Implement GL_RASTERIZER_DISCARD.
BUG=angle:498
Change-Id: Ib60c39e206003ae67c93769e35f7f9ef790ce9f4
Reviewed-on: https://chromium-review.googlesource.com/184396
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Tested-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
index ecc1887..0c80c03 100644
--- a/src/libGLESv2/renderer/d3d11/Renderer11.cpp
+++ b/src/libGLESv2/renderer/d3d11/Renderer11.cpp
@@ -1403,7 +1403,7 @@
}
}
-void Renderer11::applyShaders(gl::ProgramBinary *programBinary)
+void Renderer11::applyShaders(gl::ProgramBinary *programBinary, bool rasterizerDiscard)
{
ShaderExecutable *vertexExe = programBinary->getVertexExecutable();
ShaderExecutable *pixelExe = programBinary->getPixelExecutable();
@@ -1419,6 +1419,12 @@
geometryShader = NULL;
}
+ // Skip pixel shader if we're doing rasterizer discard.
+ if (rasterizerDiscard)
+ {
+ pixelShader = NULL;
+ }
+
bool dirtyUniforms = false;
if (vertexShader != mAppliedVertexShader)