Add support for GL_DRAW_INDIRECT_BUFFER_BINDING binding point
BUG=angleproject:1595
TEST=dEQP-GLES31.functional.state_query.integer.draw_indirect_buffer_binding*
Change-Id: Ib8f712fdf10411ef0b7b63742d17c3caca99137b
Reviewed-on: https://chromium-review.googlesource.com/416193
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 893b818..38fc917 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -325,6 +325,7 @@
bindVertexArray(0);
bindArrayBuffer(0);
+ bindDrawIndirectBuffer(0);
bindElementArrayBuffer(0);
bindRenderbuffer(GL_RENDERBUFFER, 0);
@@ -959,6 +960,12 @@
mGLState.setArrayBufferBinding(buffer);
}
+void Context::bindDrawIndirectBuffer(GLuint bufferHandle)
+{
+ Buffer *buffer = mResourceManager->checkBufferAllocation(mImplementation.get(), bufferHandle);
+ mGLState.setDrawIndirectBufferBinding(buffer);
+}
+
void Context::bindElementArrayBuffer(GLuint bufferHandle)
{
Buffer *buffer = mResourceManager->checkBufferAllocation(mImplementation.get(), bufferHandle);
@@ -3644,11 +3651,7 @@
}
break;
case GL_DRAW_INDIRECT_BUFFER:
- if (buffer != 0)
- {
- // Binding buffers to this binding point is not implemented yet.
- UNIMPLEMENTED();
- }
+ bindDrawIndirectBuffer(buffer);
break;
case GL_DISPATCH_INDIRECT_BUFFER:
if (buffer != 0)