OSDN Git Service

Fix stencil state plumbing
authorChris Forbes <chrisforbes@google.com>
Sat, 16 Mar 2019 02:31:21 +0000 (19:31 -0700)
committerChris Forbes <chrisforbes@google.com>
Sat, 16 Mar 2019 05:10:32 +0000 (05:10 +0000)
Bug: b/128715612
Test: dEQP-VK.pipeline.stencil.format.*
Change-Id: I4789c0ff77c43e91fc7cbd7e2aceab0b1ba9cdb3
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/27429
Tested-by: Chris Forbes <chrisforbes@google.com>
Presubmit-Ready: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>

src/Device/PixelProcessor.cpp
src/Device/PixelProcessor.hpp
src/Device/Renderer.cpp

index c55dd5d..da40dbe 100644 (file)
@@ -118,92 +118,6 @@ namespace sw
                context->setColorWriteMask(index, rgbaMask);
        }
 
-       void PixelProcessor::setStencilEnable(bool stencilEnable)
-       {
-               context->stencilEnable = stencilEnable;
-       }
-
-       void PixelProcessor::setStencilCompare(VkCompareOp stencilCompareMode)
-       {
-               context->stencilCompareMode = stencilCompareMode;
-       }
-
-       void PixelProcessor::setStencilReference(int stencilReference)
-       {
-               context->stencilReference = stencilReference;
-               stencil.set(stencilReference, context->stencilMask, context->stencilWriteMask);
-       }
-
-       void PixelProcessor::setStencilReferenceCCW(int stencilReferenceCCW)
-       {
-               context->stencilReferenceCCW = stencilReferenceCCW;
-               stencilCCW.set(stencilReferenceCCW, context->stencilMaskCCW, context->stencilWriteMaskCCW);
-       }
-
-       void PixelProcessor::setStencilMask(int stencilMask)
-       {
-               context->stencilMask = stencilMask;
-               stencil.set(context->stencilReference, stencilMask, context->stencilWriteMask);
-       }
-
-       void PixelProcessor::setStencilMaskCCW(int stencilMaskCCW)
-       {
-               context->stencilMaskCCW = stencilMaskCCW;
-               stencilCCW.set(context->stencilReferenceCCW, stencilMaskCCW, context->stencilWriteMaskCCW);
-       }
-
-       void PixelProcessor::setStencilFailOperation(VkStencilOp stencilFailOperation)
-       {
-               context->stencilFailOperation = stencilFailOperation;
-       }
-
-       void PixelProcessor::setStencilPassOperation(VkStencilOp stencilPassOperation)
-       {
-               context->stencilPassOperation = stencilPassOperation;
-       }
-
-       void PixelProcessor::setStencilZFailOperation(VkStencilOp stencilZFailOperation)
-       {
-               context->stencilZFailOperation = stencilZFailOperation;
-       }
-
-       void PixelProcessor::setStencilWriteMask(int stencilWriteMask)
-       {
-               context->stencilWriteMask = stencilWriteMask;
-               stencil.set(context->stencilReference, context->stencilMask, stencilWriteMask);
-       }
-
-       void PixelProcessor::setStencilWriteMaskCCW(int stencilWriteMaskCCW)
-       {
-               context->stencilWriteMaskCCW = stencilWriteMaskCCW;
-               stencilCCW.set(context->stencilReferenceCCW, context->stencilMaskCCW, stencilWriteMaskCCW);
-       }
-
-       void PixelProcessor::setTwoSidedStencil(bool enable)
-       {
-               context->twoSidedStencil = enable;
-       }
-
-       void PixelProcessor::setStencilCompareCCW(VkCompareOp stencilCompareMode)
-       {
-               context->stencilCompareModeCCW = stencilCompareMode;
-       }
-
-       void PixelProcessor::setStencilFailOperationCCW(VkStencilOp stencilFailOperation)
-       {
-               context->stencilFailOperationCCW = stencilFailOperation;
-       }
-
-       void PixelProcessor::setStencilPassOperationCCW(VkStencilOp stencilPassOperation)
-       {
-               context->stencilPassOperationCCW = stencilPassOperation;
-       }
-
-       void PixelProcessor::setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation)
-       {
-               context->stencilZFailOperationCCW = stencilZFailOperation;
-       }
-
        void PixelProcessor::setBlendConstant(const Color<float> &blendConstant)
        {
                // FIXME: Compact into generic function   // FIXME: Clamp
index 3c4dcce..2d4437a 100644 (file)
@@ -158,23 +158,6 @@ namespace sw
                void setColorLogicOpEnabled(bool colorLogicOpEnabled);
                void setLogicalOperation(VkLogicOp logicalOperation);
 
-               void setStencilEnable(bool stencilEnable);
-               void setStencilCompare(VkCompareOp stencilCompareMode);
-               void setStencilReference(int stencilReference);
-               void setStencilMask(int stencilMask);
-               void setStencilFailOperation(VkStencilOp stencilFailOperation);
-               void setStencilPassOperation(VkStencilOp stencilPassOperation);
-               void setStencilZFailOperation(VkStencilOp stencilZFailOperation);
-               void setStencilWriteMask(int stencilWriteMask);
-               void setTwoSidedStencil(bool enable);
-               void setStencilCompareCCW(VkCompareOp stencilCompareMode);
-               void setStencilReferenceCCW(int stencilReference);
-               void setStencilMaskCCW(int stencilMask);
-               void setStencilFailOperationCCW(VkStencilOp stencilFailOperation);
-               void setStencilPassOperationCCW(VkStencilOp stencilPassOperation);
-               void setStencilZFailOperationCCW(VkStencilOp stencilZFailOperation);
-               void setStencilWriteMaskCCW(int stencilWriteMask);
-
                void setBlendConstant(const Color<float> &blendConstant);
 
                void setAlphaBlendEnable(bool alphaBlendEnable);
@@ -197,8 +180,6 @@ namespace sw
                void setRoutineCacheSize(int routineCacheSize);
 
                // Other semi-constants
-               Stencil stencil;
-               Stencil stencilCCW;
                Factor factor;
 
        private:
index d803e61..7a08703 100644 (file)
@@ -328,8 +328,8 @@ namespace sw
 
                if(pixelState.stencilActive)
                {
-                       data->stencil[0] = stencil;
-                       data->stencil[1] = stencilCCW;
+                       data->stencil[0].set(context->stencilReference, context->stencilMask, context->stencilWriteMask);
+                       data->stencil[1].set(context->stencilReferenceCCW, context->stencilMaskCCW, context->stencilWriteMaskCCW);
                }
 
                data->lineWidth = context->lineWidth;