From 3a6c0cf6058255fc3710905b1c7ad8deaa8472f7 Mon Sep 17 00:00:00 2001
From: Joshua Ashton <joshua@froggi.es>
Date: Sat, 9 May 2020 20:49:55 +0100
Subject: [PATCH] [dxso] Implicitly define Color inputs as centroid in PS <= 2

---
 src/dxso/dxso_compiler.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/dxso/dxso_compiler.cpp b/src/dxso/dxso_compiler.cpp
index ba7ad2a2..0e5fa38c 100644
--- a/src/dxso/dxso_compiler.cpp
+++ b/src/dxso/dxso_compiler.cpp
@@ -624,6 +624,9 @@ namespace dxvk {
     const bool pixel  = m_programInfo.type() == DxsoProgramTypes::PixelShader;
     const bool vertex = !pixel;
 
+    if (pixel && input && semantic.usage == DxsoUsage::Color && m_programInfo.majorVersion() < 3)
+      centroid = true;
+
     uint32_t slot = 0;
 
     uint32_t& slots = input
@@ -1165,7 +1168,7 @@ namespace dxvk {
           this->emitDclInterface(
             false, reg.id.num,
             DxsoSemantic{ DxsoUsage::Color, reg.id.num },
-            IdentityWriteMask, false); // TODO: Do we want to make this centroid?
+            IdentityWriteMask, false);
 
           m_module.opStore(ptr.id, m_module.constfReplicant(0, ptr.type.ccount));
         }