Commit 971f8508 by Xinghua Cao Committed by Geoff Lang

Implement get compute work group size for glGetProgramiv

BUG=angleproject:2187 TEST=dEQP-GLES31.functional.state_query.program.compute_work_group_size_get_programiv Change-Id: Ic09153ffccfb207e37ad70cf7e14714be987e7e1 Reviewed-on: https://chromium-review.googlesource.com/722178Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 55bde916
...@@ -541,6 +541,10 @@ class Program final : angle::NonCopyable, public LabeledObject ...@@ -541,6 +541,10 @@ class Program final : angle::NonCopyable, public LabeledObject
} }
const std::vector<ImageBinding> &getImageBindings() const { return mState.mImageBindings; } const std::vector<ImageBinding> &getImageBindings() const { return mState.mImageBindings; }
const sh::WorkGroupSize &getComputeShaderLocalSize() const
{
return mState.mComputeShaderLocalSize;
}
const ProgramState &getState() const { return mState; } const ProgramState &getState() const { return mState; }
......
...@@ -853,6 +853,14 @@ void QueryProgramiv(const Context *context, const Program *program, GLenum pname ...@@ -853,6 +853,14 @@ void QueryProgramiv(const Context *context, const Program *program, GLenum pname
case GL_PROGRAM_SEPARABLE: case GL_PROGRAM_SEPARABLE:
*params = program->isSeparable(); *params = program->isSeparable();
break; break;
case GL_COMPUTE_WORK_GROUP_SIZE:
{
const sh::WorkGroupSize &localSize = program->getComputeShaderLocalSize();
params[0] = localSize[0];
params[1] = localSize[1];
params[2] = localSize[2];
}
break;
default: default:
UNREACHABLE(); UNREACHABLE();
break; break;
......
...@@ -4151,6 +4151,7 @@ bool ValidateGetProgramivBase(ValidationContext *context, ...@@ -4151,6 +4151,7 @@ bool ValidateGetProgramivBase(ValidationContext *context,
break; break;
case GL_PROGRAM_SEPARABLE: case GL_PROGRAM_SEPARABLE:
case GL_COMPUTE_WORK_GROUP_SIZE:
if (context->getClientVersion() < Version(3, 1)) if (context->getClientVersion() < Version(3, 1))
{ {
ANGLE_VALIDATION_ERR(context, InvalidEnum(), ES31Required); ANGLE_VALIDATION_ERR(context, InvalidEnum(), ES31Required);
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
1951 D3D11 : dEQP-GLES31.functional.state_query.indexed.shader_storage_buffer_* = FAIL 1951 D3D11 : dEQP-GLES31.functional.state_query.indexed.shader_storage_buffer_* = FAIL
1442 D3D11 : dEQP-GLES31.functional.state_query.internal_format.renderbuffer.* = FAIL 1442 D3D11 : dEQP-GLES31.functional.state_query.internal_format.renderbuffer.* = FAIL
1679 D3D11 : dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample.* = FAIL 1679 D3D11 : dEQP-GLES31.functional.state_query.texture_level.texture_2d_multisample.* = FAIL
1442 D3D11 : dEQP-GLES31.functional.state_query.program.compute_work_group_size_get_programiv = FAIL
1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.texture.texparameter* = SKIP 1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.callbacks.texture.texparameter* = SKIP
1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameter* = SKIP 1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.get_error.texture.texparameter* = SKIP
1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.log.texture.texparameter* = SKIP 1442 D3D11 : dEQP-GLES31.functional.debug.negative_coverage.log.texture.texparameter* = SKIP
...@@ -1253,7 +1254,6 @@ ...@@ -1253,7 +1254,6 @@
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.partial_query.num_sample_counts = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.partial_query.num_sample_counts = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.partial_query.samples = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.internal_format.partial_query.samples = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program.program_separable_get_programiv = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program.compute_work_group_size_get_programiv = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program.active_atomic_counter_buffers_get_programiv = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.state_query.program_pipeline.* = FAIL
1442 OPENGL D3D11 : dEQP-GLES31.functional.synchronization.* = FAIL 1442 OPENGL D3D11 : dEQP-GLES31.functional.synchronization.* = 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