Fix register packing for structs in d3d9.
Fixes WebGL test misc/shader-with-array-of-structs-uniform
BUG=angle:656
Change-Id: If79a19db4d40bab9110422f7876de32e7f85e506
Reviewed-on: https://chromium-review.googlesource.com/200620
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Nicolas Capens <nicolascapens@chromium.org>
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index cf76407..8525ffb 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -1847,7 +1847,8 @@
{
if (constant.arraySize > 0)
{
- const unsigned int elementRegisterCount = HLSLVariableRegisterCount(constant) / constant.arraySize;
+ ShShaderOutput outputType = Shader::getCompilerOutputType(shader);
+ const unsigned int elementRegisterCount = HLSLVariableRegisterCount(constant, outputType) / constant.arraySize;
for (unsigned int elementIndex = 0; elementIndex < constant.arraySize; elementIndex++)
{