Commit a98a2811 by Qin Jiajia Committed by Commit Bot

ES31: Add support for GL_DISPATCH_INDIRECT_BUFFER_BINDING binding point

BUG=angleproject:2270 TEST=dEQP-GLES31.functional.state_query.integer.dispatch_indirect_buffer_binding_* Change-Id: I2c286c219c5c849d7ba417069f53f2d0fae6abf1 Reviewed-on: https://chromium-review.googlesource.com/799990 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 3c613c0d
...@@ -665,6 +665,7 @@ bool ValidationContext::getQueryParameterInfo(GLenum pname, GLenum *type, unsign ...@@ -665,6 +665,7 @@ bool ValidationContext::getQueryParameterInfo(GLenum pname, GLenum *type, unsign
{ {
case GL_ATOMIC_COUNTER_BUFFER_BINDING: case GL_ATOMIC_COUNTER_BUFFER_BINDING:
case GL_DRAW_INDIRECT_BUFFER_BINDING: case GL_DRAW_INDIRECT_BUFFER_BINDING:
case GL_DISPATCH_INDIRECT_BUFFER_BINDING:
case GL_MAX_FRAMEBUFFER_WIDTH: case GL_MAX_FRAMEBUFFER_WIDTH:
case GL_MAX_FRAMEBUFFER_HEIGHT: case GL_MAX_FRAMEBUFFER_HEIGHT:
case GL_MAX_FRAMEBUFFER_SAMPLES: case GL_MAX_FRAMEBUFFER_SAMPLES:
......
...@@ -1256,6 +1256,10 @@ void State::setBufferBinding(const Context *context, BufferBinding target, Buffe ...@@ -1256,6 +1256,10 @@ void State::setBufferBinding(const Context *context, BufferBinding target, Buffe
mBoundBuffers[target].set(context, buffer); mBoundBuffers[target].set(context, buffer);
mDirtyBits.set(DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING); mDirtyBits.set(DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING);
break; break;
case BufferBinding::DispatchIndirect:
mBoundBuffers[target].set(context, buffer);
mDirtyBits.set(DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING);
break;
case BufferBinding::TransformFeedback: case BufferBinding::TransformFeedback:
if (mTransformFeedback.get() != nullptr) if (mTransformFeedback.get() != nullptr)
{ {
...@@ -2046,6 +2050,9 @@ void State::getIntegerv(const Context *context, GLenum pname, GLint *params) ...@@ -2046,6 +2050,9 @@ void State::getIntegerv(const Context *context, GLenum pname, GLint *params)
case GL_SHADER_STORAGE_BUFFER_BINDING: case GL_SHADER_STORAGE_BUFFER_BINDING:
*params = mBoundBuffers[BufferBinding::ShaderStorage].id(); *params = mBoundBuffers[BufferBinding::ShaderStorage].id();
break; break;
case GL_DISPATCH_INDIRECT_BUFFER_BINDING:
*params = mBoundBuffers[BufferBinding::DispatchIndirect].id();
break;
default: default:
UNREACHABLE(); UNREACHABLE();
break; break;
......
...@@ -394,6 +394,7 @@ class State : public OnAttachmentDirtyReceiver, angle::NonCopyable ...@@ -394,6 +394,7 @@ class State : public OnAttachmentDirtyReceiver, angle::NonCopyable
DIRTY_BIT_RENDERBUFFER_BINDING, DIRTY_BIT_RENDERBUFFER_BINDING,
DIRTY_BIT_VERTEX_ARRAY_BINDING, DIRTY_BIT_VERTEX_ARRAY_BINDING,
DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING, DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING,
DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING,
DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING, DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING,
DIRTY_BIT_PROGRAM_BINDING, DIRTY_BIT_PROGRAM_BINDING,
DIRTY_BIT_PROGRAM_EXECUTABLE, DIRTY_BIT_PROGRAM_EXECUTABLE,
......
...@@ -1931,6 +1931,9 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt ...@@ -1931,6 +1931,9 @@ void StateManagerGL::syncState(const gl::Context *context, const gl::State::Dirt
case gl::State::DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING: case gl::State::DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING:
// TODO: implement this // TODO: implement this
break; break;
case gl::State::DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING:
// TODO(jiajia.qin@intel.com): implement this
break;
case gl::State::DIRTY_BIT_PROGRAM_BINDING: case gl::State::DIRTY_BIT_PROGRAM_BINDING:
{ {
mProgramTexturesAndSamplersDirty = true; mProgramTexturesAndSamplersDirty = true;
......
...@@ -686,6 +686,9 @@ void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits ...@@ -686,6 +686,9 @@ void ContextVk::syncState(const gl::Context *context, const gl::State::DirtyBits
case gl::State::DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING: case gl::State::DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING:
WARN() << "DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING unimplemented"; WARN() << "DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING unimplemented";
break; break;
case gl::State::DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING:
WARN() << "DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING unimplemented";
break;
case gl::State::DIRTY_BIT_PROGRAM_BINDING: case gl::State::DIRTY_BIT_PROGRAM_BINDING:
WARN() << "DIRTY_BIT_PROGRAM_BINDING unimplemented"; WARN() << "DIRTY_BIT_PROGRAM_BINDING unimplemented";
break; break;
......
...@@ -1215,7 +1215,6 @@ ...@@ -1215,7 +1215,6 @@
1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.render.depth24_stencil8_draw = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.misc.compare_mode_effect = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.misc.compare_mode_effect = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.misc.base_level = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.stencil_texturing.misc.base_level = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.integer.dispatch_indirect_buffer_binding_* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.integer.program_pipeline_binding_* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.indexed.image_binding* = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.indexed.image_binding* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.texture.texture_2d.depth_stencil_mode_* = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.texture.texture_2d.depth_stencil_mode_* = 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