swr: [rasterizer core] add rasterizerSampleCount to PS context
authorTim Rowley <timothy.o.rowley@intel.com>
Thu, 4 Aug 2016 23:37:19 +0000 (17:37 -0600)
committerTim Rowley <timothy.o.rowley@intel.com>
Wed, 10 Aug 2016 16:08:17 +0000 (11:08 -0500)
Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
src/gallium/drivers/swr/rasterizer/core/backend.cpp
src/gallium/drivers/swr/rasterizer/core/state.h

index 900849d..c421179 100644 (file)
@@ -470,6 +470,7 @@ void BackendSingleSample(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t x, uint3
     psContext.pRecipW = work.pRecipW;
     psContext.pSamplePosX = (const float*)&T::MultisampleT::samplePosX;
     psContext.pSamplePosY = (const float*)&T::MultisampleT::samplePosY;
+    psContext.rasterizerSampleCount = T::MultisampleT::numSamples;
 
     for(uint32_t yy = y; yy < y + KNOB_TILE_Y_DIM; yy += SIMD_TILE_Y_DIM)
     {
@@ -660,6 +661,7 @@ void BackendSampleRate(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t x, uint32_
     psContext.recipDet = work.recipDet;
     psContext.pSamplePosX = (const float*)&T::MultisampleT::samplePosX;
     psContext.pSamplePosY = (const float*)&T::MultisampleT::samplePosY;
+    psContext.rasterizerSampleCount = T::MultisampleT::numSamples;
 
     for (uint32_t yy = y; yy < y + KNOB_TILE_Y_DIM; yy += SIMD_TILE_Y_DIM)
     {
@@ -880,6 +882,8 @@ void BackendPixelRate(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t x, uint32_t
     psContext.recipDet = work.recipDet;
     psContext.pSamplePosX = (const float*)&T::MultisampleT::samplePosX;
     psContext.pSamplePosY = (const float*)&T::MultisampleT::samplePosY;
+    psContext.rasterizerSampleCount = T::MultisampleT::numSamples;
+
     psContext.sampleIndex = 0;
     
     PixelRateZTestLoop<T> PixelRateZTest(pDC, work, coeffs, state, pDepthBase, pStencilBase, rastState.clipDistanceMask);
index f2ebf92..a3616bc 100644 (file)
@@ -340,6 +340,8 @@ struct SWR_PS_CONTEXT
     uint32_t primID;            // IN: primitive ID
     uint32_t sampleIndex;       // IN: sampleIndex
 
+    uint32_t rasterizerSampleCount; // IN: sample count used by the rasterizer
+
 };
 
 //////////////////////////////////////////////////////////////////////////