Mesa (master): i965: Assert on the number of combined UBO and SSBO binding table entries

Iago Toral Quiroga itoral at kemper.freedesktop.org
Mon Oct 5 06:22:14 UTC 2015


Module: Mesa
Branch: master
Commit: 102f6c446b6585b00e1c1cd3c838f7b0899e49a9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=102f6c446b6585b00e1c1cd3c838f7b0899e49a9

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Wed Sep 30 10:24:11 2015 +0200

i965: Assert on the number of combined UBO and SSBO binding table entries

In theory we can't break this assertion since the compiler frontend checks
that we don't exceed any of the individual limits, but it does not hurt to
be extra safe.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_context.h  |    3 +++
 src/mesa/drivers/dri/i965/brw_shader.cpp |    1 +
 2 files changed, 4 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index 8efecf9..546f8fc 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -714,6 +714,9 @@ struct brw_vs_prog_data {
 /** Max number of SSBOs in a shader */
 #define BRW_MAX_SSBO 12
 
+/** Max number of combined UBOs and SSBOs in a shader */
+#define BRW_MAX_COMBINED_UBO_SSBO (BRW_MAX_UBO + BRW_MAX_SSBO)
+
 /** Max number of atomic counter buffer objects in a shader */
 #define BRW_MAX_ABO 16
 
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index a16e595..7bc080b 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -1366,6 +1366,7 @@ brw_assign_common_binding_table_offsets(gl_shader_stage stage,
    next_binding_table_offset += num_textures;
 
    if (shader) {
+      assert(shader->NumUniformBlocks <= BRW_MAX_COMBINED_UBO_SSBO);
       stage_prog_data->binding_table.ubo_start = next_binding_table_offset;
       next_binding_table_offset += shader->NumUniformBlocks;
    } else {




More information about the mesa-commit mailing list