[Mesa-dev] [PATCH 08/24] i965: Don't use MAX_SURFACES in mark_surface_used

Jason Ekstrand jason at jlekstrand.net
Wed Mar 1 05:03:20 UTC 2017


Vulkan doesn't respect MAX_SURFACES so this assert isn't valid in that
case.  It should, however, assert that it isn't insanely large.
---
 src/mesa/drivers/dri/i965/brw_shader.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 02aa0b2..8b852d5 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -33,7 +33,10 @@ extern "C" void
 brw_mark_surface_used(struct brw_stage_prog_data *prog_data,
                       unsigned surf_index)
 {
-   assert(surf_index < BRW_MAX_SURFACES);
+   /* A binding table index is 8 bits and the top 3 values are reserved for
+    * special things (stateless and SLM).
+    */
+   assert(surf_index <= 252);
 
    prog_data->binding_table.size_bytes =
       MAX2(prog_data->binding_table.size_bytes, (surf_index + 1) * 4);
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list