From: "Juan A. Suarez Romero" <[email protected]>
In scalar mode, URB read length limit is 15. Abort if we go beyond it.
---
src/mesa/drivers/dri/i965/brw_vec4.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp
b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 9816f0d..04287fb 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -2148,6 +2148,14 @@ brw_compile_vs(const struct brw_compiler *compiler, void
*log_data,
prog_data->base.urb_read_length =
DIV_ROUND_UP(MAX2(nr_attribute_slots, 1), 2);
+ if (is_scalar && prog_data->base.urb_read_length > 15) {
+ if (error_str)
+ *error_str = ralloc_strdup(mem_ctx,
+ "Too many attributes. Try to reduce the "
+ "number of attributes or their size");
+ return NULL;
+ }
+
prog_data->nr_attributes = nr_attributes;
prog_data->nr_attribute_slots = nr_attribute_slots;
--
2.5.0
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev