Allow zero output variable ES3 shaders.
We were assuming at least one variable, when some shaders could
legitimately use zero. This was causing assertions in the
dEQP shader.function tests.
BUG=angle:855
Change-Id: I7e4aa52a1c6ba98d4a396f4c642816ff95115fd5
Reviewed-on: https://chromium-review.googlesource.com/240144
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 1f67e8d..9d2dc48 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -83,10 +83,12 @@
std::vector<GLenum> GetDefaultOutputLayoutFromShader(const std::vector<PixelShaderOutputVariable> &shaderOutputVars)
{
- std::vector<GLenum> defaultPixelOutput(1);
+ std::vector<GLenum> defaultPixelOutput;
- ASSERT(!shaderOutputVars.empty());
- defaultPixelOutput[0] = GL_COLOR_ATTACHMENT0 + shaderOutputVars[0].outputIndex;
+ if (!shaderOutputVars.empty())
+ {
+ defaultPixelOutput.push_back(GL_COLOR_ATTACHMENT0 + shaderOutputVars[0].outputIndex);
+ }
return defaultPixelOutput;
}