mesa: rename gl_shader_program's NumUniformBlocks to NumBufferInterfaceBlocks
Because it counts shader storage blocks too. v2: - Use NumBufferInterfaceBlocks instead (Jordan). Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
@@ -48,7 +48,7 @@ static unsigned
|
||||
get_uniform_block_index(const gl_shader_program *shProg,
|
||||
const char *uniformBlockName)
|
||||
{
|
||||
for (unsigned i = 0; i < shProg->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < shProg->NumBufferInterfaceBlocks; i++) {
|
||||
if (!strcmp(shProg->UniformBlocks[i].Name, uniformBlockName))
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -500,7 +500,7 @@ public:
|
||||
if (var->is_interface_instance() && var->type->is_array()) {
|
||||
unsigned l = strlen(var->get_interface_type()->name);
|
||||
|
||||
for (unsigned i = 0; i < prog->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < prog->NumBufferInterfaceBlocks; i++) {
|
||||
if (strncmp(var->get_interface_type()->name,
|
||||
prog->UniformBlocks[i].Name,
|
||||
l) == 0
|
||||
@@ -510,7 +510,7 @@ public:
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (unsigned i = 0; i < prog->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < prog->NumBufferInterfaceBlocks; i++) {
|
||||
if (strcmp(var->get_interface_type()->name,
|
||||
prog->UniformBlocks[i].Name) == 0) {
|
||||
ubo_block_index = i;
|
||||
|
||||
+5
-5
@@ -1187,7 +1187,7 @@ interstage_cross_validate_uniform_blocks(struct gl_shader_program *prog)
|
||||
for (unsigned int j = 0; j < sh->NumUniformBlocks; j++) {
|
||||
int index = link_cross_validate_uniform_block(prog,
|
||||
&prog->UniformBlocks,
|
||||
&prog->NumUniformBlocks,
|
||||
&prog->NumBufferInterfaceBlocks,
|
||||
&sh->UniformBlocks[j]);
|
||||
|
||||
if (index == -1) {
|
||||
@@ -2802,7 +2802,7 @@ check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||
unsigned shader_blocks[MESA_SHADER_STAGES] = {0};
|
||||
unsigned total_shader_storage_blocks = 0;
|
||||
|
||||
for (unsigned i = 0; i < prog->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < prog->NumBufferInterfaceBlocks; i++) {
|
||||
/* Don't check SSBOs for Uniform Block Size */
|
||||
if (!prog->UniformBlocks[i].IsShaderStorage &&
|
||||
prog->UniformBlocks[i].UniformBufferSize > ctx->Const.MaxUniformBlockSize) {
|
||||
@@ -2836,7 +2836,7 @@ check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||
|
||||
if (total_uniform_blocks > ctx->Const.MaxCombinedUniformBlocks) {
|
||||
linker_error(prog, "Too many combined uniform blocks (%d/%d)\n",
|
||||
prog->NumUniformBlocks,
|
||||
prog->NumBufferInterfaceBlocks,
|
||||
ctx->Const.MaxCombinedUniformBlocks);
|
||||
} else {
|
||||
for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||
@@ -2939,7 +2939,7 @@ check_image_resources(struct gl_context *ctx, struct gl_shader_program *prog)
|
||||
|
||||
total_image_units += sh->NumImages;
|
||||
|
||||
for (unsigned j = 0; j < prog->NumUniformBlocks; j++) {
|
||||
for (unsigned j = 0; j < prog->NumBufferInterfaceBlocks; j++) {
|
||||
int stage_index = prog->UniformBlockStageIndex[i][j];
|
||||
if (stage_index != -1 && sh->UniformBlocks[stage_index].IsShaderStorage)
|
||||
total_shader_storage_blocks++;
|
||||
@@ -3418,7 +3418,7 @@ build_program_resource_list(struct gl_shader_program *shProg)
|
||||
}
|
||||
|
||||
/* Add program uniform blocks and shader storage blocks. */
|
||||
for (unsigned i = 0; i < shProg->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < shProg->NumBufferInterfaceBlocks; i++) {
|
||||
bool is_shader_storage = shProg->UniformBlocks[i].IsShaderStorage;
|
||||
GLenum type = is_shader_storage ? GL_SHADER_STORAGE_BLOCK : GL_UNIFORM_BLOCK;
|
||||
if (!add_program_resource(shProg, type,
|
||||
|
||||
@@ -101,7 +101,7 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
|
||||
|
||||
ralloc_free(shProg->UniformBlocks);
|
||||
shProg->UniformBlocks = NULL;
|
||||
shProg->NumUniformBlocks = 0;
|
||||
shProg->NumBufferInterfaceBlocks = 0;
|
||||
for (i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||
ralloc_free(shProg->UniformBlockStageIndex[i]);
|
||||
shProg->UniformBlockStageIndex[i] = NULL;
|
||||
|
||||
@@ -1530,7 +1530,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
||||
*/
|
||||
brw_mark_surface_used(prog_data,
|
||||
stage_prog_data->binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
if (has_indirect) {
|
||||
@@ -1593,7 +1593,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
||||
*/
|
||||
brw_mark_surface_used(prog_data,
|
||||
stage_prog_data->binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
/* Get the offset to read from */
|
||||
@@ -1786,7 +1786,7 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr
|
||||
|
||||
brw_mark_surface_used(prog_data,
|
||||
stage_prog_data->binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
/* Offset */
|
||||
@@ -1952,7 +1952,7 @@ fs_visitor::nir_emit_ssbo_atomic(const fs_builder &bld,
|
||||
*/
|
||||
brw_mark_surface_used(prog_data,
|
||||
stage_prog_data->binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
fs_reg offset = get_nir_src(instr->src[1]);
|
||||
|
||||
@@ -592,7 +592,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
|
||||
|
||||
brw_mark_surface_used(&prog_data->base,
|
||||
prog_data->base.binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
/* Offset */
|
||||
@@ -739,7 +739,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
|
||||
*/
|
||||
brw_mark_surface_used(&prog_data->base,
|
||||
prog_data->base.binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
src_reg offset_reg = src_reg(this, glsl_type::uint_type);
|
||||
@@ -889,7 +889,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
|
||||
*/
|
||||
brw_mark_surface_used(&prog_data->base,
|
||||
prog_data->base.binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
unsigned const_offset = instr->const_index[0];
|
||||
@@ -950,7 +950,7 @@ vec4_visitor::nir_emit_ssbo_atomic(int op, nir_intrinsic_instr *instr)
|
||||
*/
|
||||
brw_mark_surface_used(&prog_data->base,
|
||||
prog_data->base.binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
src_reg offset = get_nir_src(instr->src[1], 1);
|
||||
|
||||
@@ -1872,7 +1872,7 @@ vec4_visitor::visit(ir_expression *ir)
|
||||
*/
|
||||
brw_mark_surface_used(&prog_data->base,
|
||||
prog_data->base.binding_table.ubo_start +
|
||||
shader_prog->NumUniformBlocks - 1);
|
||||
shader_prog->NumBufferInterfaceBlocks - 1);
|
||||
}
|
||||
|
||||
if (const_offset_ir) {
|
||||
|
||||
@@ -2689,7 +2689,7 @@ struct gl_shader_program
|
||||
*/
|
||||
unsigned LastClipDistanceArraySize;
|
||||
|
||||
unsigned NumUniformBlocks;
|
||||
unsigned NumBufferInterfaceBlocks;
|
||||
struct gl_uniform_block *UniformBlocks;
|
||||
|
||||
/**
|
||||
|
||||
@@ -713,7 +713,7 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
|
||||
if (!has_ubo)
|
||||
break;
|
||||
|
||||
for (i = 0; i < shProg->NumUniformBlocks; i++) {
|
||||
for (i = 0; i < shProg->NumBufferInterfaceBlocks; i++) {
|
||||
/* Add one for the terminating NUL character.
|
||||
*/
|
||||
const GLint len = strlen(shProg->UniformBlocks[i].Name) + 1;
|
||||
@@ -730,7 +730,7 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname,
|
||||
break;
|
||||
|
||||
*params = 0;
|
||||
for (unsigned i = 0; i < shProg->NumUniformBlocks; i++) {
|
||||
for (unsigned i = 0; i < shProg->NumBufferInterfaceBlocks; i++) {
|
||||
if (!shProg->UniformBlocks[i].IsShaderStorage)
|
||||
(*params)++;
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ _mesa_clear_shader_program_data(struct gl_shader_program *shProg)
|
||||
|
||||
ralloc_free(shProg->UniformBlocks);
|
||||
shProg->UniformBlocks = NULL;
|
||||
shProg->NumUniformBlocks = 0;
|
||||
shProg->NumBufferInterfaceBlocks = 0;
|
||||
for (i = 0; i < MESA_SHADER_STAGES; i++) {
|
||||
ralloc_free(shProg->UniformBlockStageIndex[i]);
|
||||
shProg->UniformBlockStageIndex[i] = NULL;
|
||||
|
||||
@@ -1002,10 +1002,10 @@ _mesa_UniformBlockBinding(GLuint program,
|
||||
if (!shProg)
|
||||
return;
|
||||
|
||||
if (uniformBlockIndex >= shProg->NumUniformBlocks) {
|
||||
if (uniformBlockIndex >= shProg->NumBufferInterfaceBlocks) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE,
|
||||
"glUniformBlockBinding(block index %u >= %u)",
|
||||
uniformBlockIndex, shProg->NumUniformBlocks);
|
||||
uniformBlockIndex, shProg->NumBufferInterfaceBlocks);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1054,10 +1054,10 @@ _mesa_ShaderStorageBlockBinding(GLuint program,
|
||||
if (!shProg)
|
||||
return;
|
||||
|
||||
if (shaderStorageBlockIndex >= shProg->NumUniformBlocks) {
|
||||
if (shaderStorageBlockIndex >= shProg->NumBufferInterfaceBlocks) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE,
|
||||
"glShaderStorageBlockBinding(block index %u >= %u)",
|
||||
shaderStorageBlockIndex, shProg->NumUniformBlocks);
|
||||
shaderStorageBlockIndex, shProg->NumBufferInterfaceBlocks);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user