Don't blend integer formats
True integer formats should not use blend modes.
This cl explicitly disables any blend operation
on render targets using integer formats.
Bug: b/153203552
Change-Id: Ia756953c61caef8e32e55aa31126044973ae1870
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/43548
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 26ed5b5..25325fb 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -1109,7 +1109,7 @@
void PixelRoutine::alphaBlend(int index, const Pointer<Byte> &cBuffer, Vector4s ¤t, const Int &x)
{
- if(!state.blendState[index].alphaBlendEnable)
+ if(!state.blendState[index].alphaBlendEnable || vk::Format(state.targetFormat[index]).isUnnormalizedInteger())
{
return;
}
@@ -1869,7 +1869,7 @@
void PixelRoutine::alphaBlend(int index, const Pointer<Byte> &cBuffer, Vector4f &oC, const Int &x)
{
- if(!state.blendState[index].alphaBlendEnable)
+ if(!state.blendState[index].alphaBlendEnable || vk::Format(state.targetFormat[index]).isUnnormalizedInteger())
{
return;
}