Commit 1f0b468c by Jamie Madill Committed by Commit Bot

StateManagerGL: Fix reserved indexed buffer count.

We were reserving the count of shader resource limits instead of API- side binding limits. This fixes a broken dEQP test that was only showing up in some device configs. Also add an ASSERT. See: dEQP-GLES31.functional.layout_binding.ubo.fragment_binding_max_array BUG=angleproject:1920 Change-Id: I993ebc7993cc3cc78e90f74e097c0bbab9d03909 Reviewed-on: https://chromium-review.googlesource.com/754721Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent ebb1ea2d
...@@ -179,9 +179,9 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions, ...@@ -179,9 +179,9 @@ StateManagerGL::StateManagerGL(const FunctionsGL *functions,
mTextures[GL_TEXTURE_3D].resize(rendererCaps.maxCombinedTextureImageUnits); mTextures[GL_TEXTURE_3D].resize(rendererCaps.maxCombinedTextureImageUnits);
mTextures[GL_TEXTURE_2D_MULTISAMPLE].resize(rendererCaps.maxCombinedTextureImageUnits); mTextures[GL_TEXTURE_2D_MULTISAMPLE].resize(rendererCaps.maxCombinedTextureImageUnits);
mIndexedBuffers[GL_UNIFORM_BUFFER].resize(rendererCaps.maxCombinedUniformBlocks); mIndexedBuffers[GL_UNIFORM_BUFFER].resize(rendererCaps.maxUniformBufferBindings);
mIndexedBuffers[GL_ATOMIC_COUNTER_BUFFER].resize(rendererCaps.maxCombinedAtomicCounterBuffers); mIndexedBuffers[GL_ATOMIC_COUNTER_BUFFER].resize(rendererCaps.maxAtomicCounterBufferBindings);
mIndexedBuffers[GL_SHADER_STORAGE_BUFFER].resize(rendererCaps.maxCombinedShaderStorageBlocks); mIndexedBuffers[GL_SHADER_STORAGE_BUFFER].resize(rendererCaps.maxShaderStorageBufferBindings);
mSampleMaskValues.fill(~GLbitfield(0)); mSampleMaskValues.fill(~GLbitfield(0));
...@@ -411,6 +411,8 @@ void StateManagerGL::bindBuffer(GLenum type, GLuint buffer) ...@@ -411,6 +411,8 @@ void StateManagerGL::bindBuffer(GLenum type, GLuint buffer)
void StateManagerGL::bindBufferBase(GLenum type, size_t index, GLuint buffer) void StateManagerGL::bindBufferBase(GLenum type, size_t index, GLuint buffer)
{ {
ASSERT(mIndexedBuffers.count(type) > 0);
ASSERT(index < mIndexedBuffers[type].size());
auto &binding = mIndexedBuffers[type][index]; auto &binding = mIndexedBuffers[type][index];
if (binding.buffer != buffer || binding.offset != static_cast<size_t>(-1) || if (binding.buffer != buffer || binding.offset != static_cast<size_t>(-1) ||
binding.size != static_cast<size_t>(-1)) binding.size != static_cast<size_t>(-1))
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.10 = SKIP 1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.10 = SKIP
1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.15 = SKIP 1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.15 = SKIP
1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.18 = SKIP 1659 NVIDIA OPENGL : dEQP-GLES31.functional.draw_indirect.random.18 = SKIP
1920 NVIDIA OPENGL : dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_array = SKIP
1920 NVIDIA D3D11 : dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_max = SKIP 1920 NVIDIA D3D11 : dEQP-GLES31.functional.layout_binding.ubo.vertex_binding_max = SKIP
1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.builtin_gl_position = SKIP 1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.builtin_gl_position = SKIP
1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.default_block_struct_member = SKIP 1442 OPENGL D3D11 : dEQP-GLES31.functional.program_interface_query.transform_feedback_varying.resource_list.vertex_fragment.default_block_struct_member = SKIP
......
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