Commit 46988abe by Alexis Hetu Committed by Alexis Hétu

Removed SwiftShader's custom LogicalOperation enum

Replaced LogicalOperation with VkLogicOp. Bug b/118386749 Change-Id: I9776dd112e2a742cd73fba241e0659813cc974e7 Reviewed-on: https://swiftshader-review.googlesource.com/c/22849Tested-by: 's avatarAlexis Hétu <sugoi@google.com> Reviewed-by: 's avatarNicolas Capens <nicolascapens@google.com>
parent 18a84258
...@@ -238,7 +238,7 @@ namespace sw ...@@ -238,7 +238,7 @@ namespace sw
sampleMask = 0xFFFFFFFF; sampleMask = 0xFFFFFFFF;
colorLogicOpEnabled = false; colorLogicOpEnabled = false;
logicalOperation = LOGICALOP_COPY; logicalOperation = VK_LOGIC_OP_COPY;
} }
bool Context::setDepthBufferEnable(bool depthBufferEnable) bool Context::setDepthBufferEnable(bool depthBufferEnable)
...@@ -325,7 +325,7 @@ namespace sw ...@@ -325,7 +325,7 @@ namespace sw
return modified; return modified;
} }
bool Context::setLogicalOperation(LogicalOperation logicalOperation) bool Context::setLogicalOperation(VkLogicOp logicalOperation)
{ {
bool modified = (Context::logicalOperation != logicalOperation); bool modified = (Context::logicalOperation != logicalOperation);
Context::logicalOperation = logicalOperation; Context::logicalOperation = logicalOperation;
...@@ -377,9 +377,9 @@ namespace sw ...@@ -377,9 +377,9 @@ namespace sw
return colorBlend || alphaBlend; return colorBlend || alphaBlend;
} }
LogicalOperation Context::colorLogicOp() VkLogicOp Context::colorLogicOp()
{ {
return colorLogicOpEnabled ? logicalOperation : LOGICALOP_COPY; return colorLogicOpEnabled ? logicalOperation : VK_LOGIC_OP_COPY;
} }
BlendFactor Context::sourceBlendFactor() BlendFactor Context::sourceBlendFactor()
......
...@@ -129,28 +129,6 @@ namespace sw ...@@ -129,28 +129,6 @@ namespace sw
BLENDOP_LAST = BLENDOP_NULL BLENDOP_LAST = BLENDOP_NULL
}; };
enum LogicalOperation ENUM_UNDERLYING_TYPE_UNSIGNED_INT
{
LOGICALOP_CLEAR,
LOGICALOP_SET,
LOGICALOP_COPY,
LOGICALOP_COPY_INVERTED,
LOGICALOP_NOOP,
LOGICALOP_INVERT,
LOGICALOP_AND,
LOGICALOP_NAND,
LOGICALOP_OR,
LOGICALOP_NOR,
LOGICALOP_XOR,
LOGICALOP_EQUIV,
LOGICALOP_AND_REVERSE,
LOGICALOP_AND_INVERTED,
LOGICALOP_OR_REVERSE,
LOGICALOP_OR_INVERTED,
LOGICALOP_LAST = LOGICALOP_OR_INVERTED
};
enum TransparencyAntialiasing ENUM_UNDERLYING_TYPE_UNSIGNED_INT enum TransparencyAntialiasing ENUM_UNDERLYING_TYPE_UNSIGNED_INT
{ {
TRANSPARENCY_NONE, TRANSPARENCY_NONE,
...@@ -191,7 +169,7 @@ namespace sw ...@@ -191,7 +169,7 @@ namespace sw
bool setWriteSRGB(bool sRGB); bool setWriteSRGB(bool sRGB);
bool setColorLogicOpEnabled(bool colorLogicOpEnabled); bool setColorLogicOpEnabled(bool colorLogicOpEnabled);
bool setLogicalOperation(LogicalOperation logicalOperation); bool setLogicalOperation(VkLogicOp logicalOperation);
bool depthWriteActive(); bool depthWriteActive();
bool alphaTestActive(); bool alphaTestActive();
...@@ -209,7 +187,7 @@ namespace sw ...@@ -209,7 +187,7 @@ namespace sw
BlendFactor destBlendFactorAlpha(); BlendFactor destBlendFactorAlpha();
BlendOperation blendOperationAlpha(); BlendOperation blendOperationAlpha();
LogicalOperation colorLogicOp(); VkLogicOp colorLogicOp();
unsigned short pixelShaderModel() const; unsigned short pixelShaderModel() const;
unsigned short vertexShaderModel() const; unsigned short vertexShaderModel() const;
...@@ -300,7 +278,7 @@ namespace sw ...@@ -300,7 +278,7 @@ namespace sw
unsigned int multiSampleMask; unsigned int multiSampleMask;
bool colorLogicOpEnabled; bool colorLogicOpEnabled;
LogicalOperation logicalOperation; VkLogicOp logicalOperation;
}; };
} }
......
...@@ -333,7 +333,7 @@ namespace sw ...@@ -333,7 +333,7 @@ namespace sw
context->setColorLogicOpEnabled(colorLogicOpEnabled); context->setColorLogicOpEnabled(colorLogicOpEnabled);
} }
void PixelProcessor::setLogicalOperation(LogicalOperation logicalOperation) void PixelProcessor::setLogicalOperation(VkLogicOp logicalOperation)
{ {
context->setLogicalOperation(logicalOperation); context->setLogicalOperation(logicalOperation);
} }
......
...@@ -81,7 +81,7 @@ namespace sw ...@@ -81,7 +81,7 @@ namespace sw
bool centroid : 1; bool centroid : 1;
bool frontFaceCCW : 1; bool frontFaceCCW : 1;
LogicalOperation logicalOperation : BITS(LOGICALOP_LAST); VkLogicOp logicalOperation : BITS(VK_LOGIC_OP_END_RANGE);
Sampler::State sampler[TEXTURE_IMAGE_UNITS]; Sampler::State sampler[TEXTURE_IMAGE_UNITS];
...@@ -217,7 +217,7 @@ namespace sw ...@@ -217,7 +217,7 @@ namespace sw
void setColorWriteMask(int index, int rgbaMask); void setColorWriteMask(int index, int rgbaMask);
void setColorLogicOpEnabled(bool colorLogicOpEnabled); void setColorLogicOpEnabled(bool colorLogicOpEnabled);
void setLogicalOperation(LogicalOperation logicalOperation); void setLogicalOperation(VkLogicOp logicalOperation);
void setStencilEnable(bool stencilEnable); void setStencilEnable(bool stencilEnable);
void setStencilCompare(VkCompareOp stencilCompareMode); void setStencilCompare(VkCompareOp stencilCompareMode);
......
...@@ -1154,7 +1154,7 @@ namespace sw ...@@ -1154,7 +1154,7 @@ namespace sw
void PixelRoutine::logicOperation(int index, Pointer<Byte> &cBuffer, Vector4s &current, Int &x) void PixelRoutine::logicOperation(int index, Pointer<Byte> &cBuffer, Vector4s &current, Int &x)
{ {
if(state.logicalOperation == LOGICALOP_COPY) if(state.logicalOperation == VK_LOGIC_OP_COPY)
{ {
return; return;
} }
...@@ -1164,80 +1164,80 @@ namespace sw ...@@ -1164,80 +1164,80 @@ namespace sw
switch(state.logicalOperation) switch(state.logicalOperation)
{ {
case LOGICALOP_CLEAR: case VK_LOGIC_OP_CLEAR:
current.x = UShort4(0); current.x = UShort4(0);
current.y = UShort4(0); current.y = UShort4(0);
current.z = UShort4(0); current.z = UShort4(0);
break; break;
case LOGICALOP_SET: case VK_LOGIC_OP_SET:
current.x = UShort4(0xFFFFu); current.x = UShort4(0xFFFFu);
current.y = UShort4(0xFFFFu); current.y = UShort4(0xFFFFu);
current.z = UShort4(0xFFFFu); current.z = UShort4(0xFFFFu);
break; break;
case LOGICALOP_COPY: case VK_LOGIC_OP_COPY:
ASSERT(false); // Optimized out ASSERT(false); // Optimized out
break; break;
case LOGICALOP_COPY_INVERTED: case VK_LOGIC_OP_COPY_INVERTED:
current.x = ~current.x; current.x = ~current.x;
current.y = ~current.y; current.y = ~current.y;
current.z = ~current.z; current.z = ~current.z;
break; break;
case LOGICALOP_NOOP: case VK_LOGIC_OP_NO_OP:
current.x = pixel.x; current.x = pixel.x;
current.y = pixel.y; current.y = pixel.y;
current.z = pixel.z; current.z = pixel.z;
break; break;
case LOGICALOP_INVERT: case VK_LOGIC_OP_INVERT:
current.x = ~pixel.x; current.x = ~pixel.x;
current.y = ~pixel.y; current.y = ~pixel.y;
current.z = ~pixel.z; current.z = ~pixel.z;
break; break;
case LOGICALOP_AND: case VK_LOGIC_OP_AND:
current.x = pixel.x & current.x; current.x = pixel.x & current.x;
current.y = pixel.y & current.y; current.y = pixel.y & current.y;
current.z = pixel.z & current.z; current.z = pixel.z & current.z;
break; break;
case LOGICALOP_NAND: case VK_LOGIC_OP_NAND:
current.x = ~(pixel.x & current.x); current.x = ~(pixel.x & current.x);
current.y = ~(pixel.y & current.y); current.y = ~(pixel.y & current.y);
current.z = ~(pixel.z & current.z); current.z = ~(pixel.z & current.z);
break; break;
case LOGICALOP_OR: case VK_LOGIC_OP_OR:
current.x = pixel.x | current.x; current.x = pixel.x | current.x;
current.y = pixel.y | current.y; current.y = pixel.y | current.y;
current.z = pixel.z | current.z; current.z = pixel.z | current.z;
break; break;
case LOGICALOP_NOR: case VK_LOGIC_OP_NOR:
current.x = ~(pixel.x | current.x); current.x = ~(pixel.x | current.x);
current.y = ~(pixel.y | current.y); current.y = ~(pixel.y | current.y);
current.z = ~(pixel.z | current.z); current.z = ~(pixel.z | current.z);
break; break;
case LOGICALOP_XOR: case VK_LOGIC_OP_XOR:
current.x = pixel.x ^ current.x; current.x = pixel.x ^ current.x;
current.y = pixel.y ^ current.y; current.y = pixel.y ^ current.y;
current.z = pixel.z ^ current.z; current.z = pixel.z ^ current.z;
break; break;
case LOGICALOP_EQUIV: case VK_LOGIC_OP_EQUIVALENT:
current.x = ~(pixel.x ^ current.x); current.x = ~(pixel.x ^ current.x);
current.y = ~(pixel.y ^ current.y); current.y = ~(pixel.y ^ current.y);
current.z = ~(pixel.z ^ current.z); current.z = ~(pixel.z ^ current.z);
break; break;
case LOGICALOP_AND_REVERSE: case VK_LOGIC_OP_AND_REVERSE:
current.x = ~pixel.x & current.x; current.x = ~pixel.x & current.x;
current.y = ~pixel.y & current.y; current.y = ~pixel.y & current.y;
current.z = ~pixel.z & current.z; current.z = ~pixel.z & current.z;
break; break;
case LOGICALOP_AND_INVERTED: case VK_LOGIC_OP_AND_INVERTED:
current.x = pixel.x & ~current.x; current.x = pixel.x & ~current.x;
current.y = pixel.y & ~current.y; current.y = pixel.y & ~current.y;
current.z = pixel.z & ~current.z; current.z = pixel.z & ~current.z;
break; break;
case LOGICALOP_OR_REVERSE: case VK_LOGIC_OP_OR_REVERSE:
current.x = ~pixel.x | current.x; current.x = ~pixel.x | current.x;
current.y = ~pixel.y | current.y; current.y = ~pixel.y | current.y;
current.z = ~pixel.z | current.z; current.z = ~pixel.z | current.z;
break; break;
case LOGICALOP_OR_INVERTED: case VK_LOGIC_OP_OR_INVERTED:
current.x = pixel.x | ~current.x; current.x = pixel.x | ~current.x;
current.y = pixel.y | ~current.y; current.y = pixel.y | ~current.y;
current.z = pixel.z | ~current.z; current.z = pixel.z | ~current.z;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment