On 15/09/15 12:20, Tapani Pälli wrote: > As what Ilia said .. please move the extension checks first and then > check for the value. There is no reason to repeat mistakes done in the > past, also there are already getters with correct behavior with > image_load_store and shader_atomic_counters in this same function. >
OK, I will fix it. > Otherwise looks good to me; > Reviewed-by: Tapani Pälli <tapani.pa...@intel.com> > Thanks! Sam > On 09/10/2015 04:36 PM, Iago Toral Quiroga wrote: >> These handle querying the buffer name attached to a giving binding point >> as well as the start offset and size of that buffer. >> --- >> src/mesa/main/get.c | 31 +++++++++++++++++++++++++++++++ >> 1 file changed, 31 insertions(+) >> >> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c >> index d5df530..24442f3 100644 >> --- a/src/mesa/main/get.c >> +++ b/src/mesa/main/get.c >> @@ -1001,6 +1001,10 @@ find_custom_value(struct gl_context *ctx, const >> struct value_desc *d, union valu >> case GL_UNIFORM_BUFFER_BINDING: >> v->value_int = ctx->UniformBuffer->Name; >> break; >> + /* GL_ARB_shader_storage_buffer_object */ >> + case GL_SHADER_STORAGE_BUFFER_BINDING: >> + v->value_int = ctx->ShaderStorageBuffer->Name; >> + break; >> /* GL_ARB_timer_query */ >> case GL_TIMESTAMP: >> if (ctx->Driver.GetTimestamp) { >> @@ -1935,6 +1939,33 @@ find_value_indexed(const char *func, GLenum >> pname, GLuint index, union value *v) >> v->value_int = ctx->UniformBufferBindings[index].Size; >> return TYPE_INT; >> >> + /* ARB_shader_storage_buffer_object */ >> + case GL_SHADER_STORAGE_BUFFER_BINDING: >> + if (index >= ctx->Const.MaxShaderStorageBufferBindings) >> + goto invalid_value; >> + if (!ctx->Extensions.ARB_shader_storage_buffer_object) >> + goto invalid_enum; >> + v->value_int = >> ctx->ShaderStorageBufferBindings[index].BufferObject->Name; >> + return TYPE_INT; >> + >> + case GL_SHADER_STORAGE_BUFFER_START: >> + if (index >= ctx->Const.MaxShaderStorageBufferBindings) >> + goto invalid_value; >> + if (!ctx->Extensions.ARB_shader_storage_buffer_object) >> + goto invalid_enum; >> + v->value_int = ctx->ShaderStorageBufferBindings[index].Offset < >> 0 ? 0 : >> + ctx->ShaderStorageBufferBindings[index].Offset; >> + return TYPE_INT; >> + >> + case GL_SHADER_STORAGE_BUFFER_SIZE: >> + if (index >= ctx->Const.MaxShaderStorageBufferBindings) >> + goto invalid_value; >> + if (!ctx->Extensions.ARB_shader_storage_buffer_object) >> + goto invalid_enum; >> + v->value_int = ctx->ShaderStorageBufferBindings[index].Size < 0 >> ? 0 : >> + ctx->ShaderStorageBufferBindings[index].Size; >> + return TYPE_INT; >> + >> /* ARB_texture_multisample / GL3.2 */ >> case GL_SAMPLE_MASK_VALUE: >> if (index != 0) >> > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev