Commit b9b4569b by Courtney Goeltzenleuchter Committed by Commit Bot

Save binding information when caching shader

Test: KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_FragmentShader Bug: angleproject:4106 Bug: angleproject:3089 Change-Id: Ia92ee172ae574e50bf1759583e46ffb54f348962 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2072871Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
parent de3b97eb
...@@ -659,6 +659,7 @@ void WriteShaderVar(BinaryOutputStream *stream, const sh::ShaderVariable &var) ...@@ -659,6 +659,7 @@ void WriteShaderVar(BinaryOutputStream *stream, const sh::ShaderVariable &var)
stream->writeIntVector(var.arraySizes); stream->writeIntVector(var.arraySizes);
stream->writeInt(var.staticUse); stream->writeInt(var.staticUse);
stream->writeInt(var.active); stream->writeInt(var.active);
stream->writeInt(var.binding);
stream->writeString(var.structName); stream->writeString(var.structName);
stream->writeInt(var.hasParentArrayIndex() ? var.parentArrayIndex() : -1); stream->writeInt(var.hasParentArrayIndex() ? var.parentArrayIndex() : -1);
ASSERT(var.fields.empty()); ASSERT(var.fields.empty());
...@@ -673,6 +674,7 @@ void LoadShaderVar(BinaryInputStream *stream, sh::ShaderVariable *var) ...@@ -673,6 +674,7 @@ void LoadShaderVar(BinaryInputStream *stream, sh::ShaderVariable *var)
stream->readIntVector<unsigned int>(&var->arraySizes); stream->readIntVector<unsigned int>(&var->arraySizes);
var->staticUse = stream->readBool(); var->staticUse = stream->readBool();
var->active = stream->readBool(); var->active = stream->readBool();
var->binding = stream->readInt<int>();
var->structName = stream->readString(); var->structName = stream->readString();
var->setParentArrayIndex(stream->readInt<int>()); var->setParentArrayIndex(stream->readInt<int>());
} }
...@@ -1685,10 +1687,6 @@ void Program::resolveLinkImpl(const Context *context) ...@@ -1685,10 +1687,6 @@ void Program::resolveLinkImpl(const Context *context)
// Must be called after markUnusedUniformLocations. // Must be called after markUnusedUniformLocations.
postResolveLink(context); postResolveLink(context);
// TODO(syoussefi): this might need to be moved to postResolveLink() so it will be called from
// deserialize() as well. http://anglebug.com/3089
setUniformValuesFromBindingQualifiers();
// Save to the program cache. // Save to the program cache.
MemoryProgramCache *cache = context->getMemoryProgramCache(); MemoryProgramCache *cache = context->getMemoryProgramCache();
if (cache && if (cache &&
...@@ -5709,6 +5707,8 @@ void Program::postResolveLink(const gl::Context *context) ...@@ -5709,6 +5707,8 @@ void Program::postResolveLink(const gl::Context *context)
mState.updateActiveSamplers(); mState.updateActiveSamplers();
mState.updateActiveImages(); mState.updateActiveImages();
setUniformValuesFromBindingQualifiers();
if (context->getExtensions().multiDraw) if (context->getExtensions().multiDraw)
{ {
mState.mDrawIDLocation = getUniformLocation("gl_DrawID").value; mState.mDrawIDLocation = getUniformLocation("gl_DrawID").value;
......
...@@ -146,17 +146,6 @@ ...@@ -146,17 +146,6 @@
2703 VULKAN ANDROID : KHR-GLES31.core.arrays_of_arrays.* = SKIP 2703 VULKAN ANDROID : KHR-GLES31.core.arrays_of_arrays.* = SKIP
// Failing on Android with SwiftShader // Failing on Android with SwiftShader
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_ComputeShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_FragmentShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2D_layout_binding_texture_VertexShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2DArray_layout_binding_texture_ComputeShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2DArray_layout_binding_texture_FragmentShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler2DArray_layout_binding_texture_VertexShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler3D_layout_binding_texture_ComputeShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler3D_layout_binding_texture_FragmentShader = FAIL
4106 SWIFTSHADER ANDROID : KHR-GLES31.core.layout_binding.sampler3D_layout_binding_texture_VertexShader = FAIL
// Failing on Android with SwiftShader
4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-bvec4 = FAIL 4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-bvec4 = FAIL
4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-ivec4 = FAIL 4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-ivec4 = FAIL
4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-uvec4 = FAIL 4300 SWIFTSHADER ANDROID : KHR-GLES31.core.shader_integer_mix.mix-uvec4 = FAIL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment