Make output variables part of Program's shared data.
Also initialize this structure within Program instead of DynamicHLSL.
This should have benefits for other back-ends. Also these variables
weren't being serialized and de-serialized with the program binary,
which could mess up WebGL apps that use MRT.
BUG=angleproject:1123
Change-Id: Ic0dd4840f26441a1bee8527dfa178b24daf82f8a
Reviewed-on: https://chromium-review.googlesource.com/294571
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 9b3f963..bc5f971 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1112,8 +1112,7 @@
LinkResult ProgramD3D::link(const gl::Data &data,
gl::InfoLog &infoLog,
gl::Shader *fragmentShader,
- gl::Shader *vertexShader,
- std::map<int, gl::VariableLocation> *outputVariables)
+ gl::Shader *vertexShader)
{
ShaderD3D *vertexShaderD3D = GetImplAs<ShaderD3D>(vertexShader);
ShaderD3D *fragmentShaderD3D = GetImplAs<ShaderD3D>(fragmentShader);
@@ -1150,10 +1149,9 @@
LinkVaryingRegisters(infoLog, vertexShaderD3D, fragmentShaderD3D);
std::vector<gl::LinkedVarying> linkedVaryings;
- if (!mDynamicHLSL->generateShaderLinkHLSL(
- data, infoLog, registers, packing, mPixelHLSL, mVertexHLSL, fragmentShaderD3D,
- vertexShaderD3D, mData.getTransformFeedbackVaryingNames(), &linkedVaryings,
- outputVariables, &mPixelShaderKey, &mUsesFragDepth))
+ if (!mDynamicHLSL->generateShaderLinkHLSL(data, mData, infoLog, registers, packing, mPixelHLSL,
+ mVertexHLSL, &linkedVaryings, &mPixelShaderKey,
+ &mUsesFragDepth))
{
return LinkResult(false, gl::Error(GL_NO_ERROR));
}