swr/rast: add flat shading
authorAlok Hota <alok.hota@intel.com>
Wed, 12 Sep 2018 01:01:36 +0000 (20:01 -0500)
committerAlok Hota <alok.hota@intel.com>
Tue, 30 Apr 2019 19:48:12 +0000 (19:48 +0000)
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/rasterizer/common/simdintrin.h

index 5eae34ef4e2afde2adba4f7b8507d56180afa6c9..4145ba8dcce0a804bcc7957f64c4164511877ed4 100644 (file)
@@ -305,6 +305,19 @@ static SIMDINLINE simdscalar InterpolateComponentFlat(const float* pInterpBuffer
     return vA;
 }
 
+//////////////////////////////////////////////////////////////////////////
+/// @brief Interpolates a single component (flat shade).
+/// @param pInterpBuffer - pointer to attribute barycentric coeffs
+template <UINT Attrib, UINT Comp, UINT numComponents = 4>
+static SIMDINLINE simdscalari InterpolateComponentFlatInt(const uint32_t* pInterpBuffer)
+{
+    const uint32_t interpA = pInterpBuffer[Attrib * 3 * numComponents + 0 + Comp];
+
+    simdscalari vA = _simd_set1_epi32(interpA);
+
+    return vA;
+}
+
 //////////////////////////////////////////////////////////////////////////
 /// @brief Interpolates a single component.
 /// @param vI - barycentric I