summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_emit.cpp8
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp5
2 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
index a618614c73c..dbe4dd093dd 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
@@ -25,6 +25,7 @@
extern "C" {
#include "brw_eu.h"
+#include "main/macros.h"
};
using namespace brw;
@@ -95,6 +96,13 @@ vec4_visitor::setup_attributes(int payload_reg)
prog_data->urb_read_length = (nr_attributes + 1) / 2;
+ unsigned vue_entries = MAX2(nr_attributes, c->vue_map.num_slots);
+
+ if (intel->gen == 6)
+ c->prog_data.urb_entry_size = ALIGN(vue_entries, 8) / 8;
+ else
+ c->prog_data.urb_entry_size = ALIGN(vue_entries, 4) / 4;
+
return payload_reg + nr_attributes;
}
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index ecabcc81e9e..06bde92c8d8 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -2286,11 +2286,6 @@ vec4_visitor::emit_urb_writes()
*/
inst->offset = (max_usable_mrf - base_mrf) / 2;
}
-
- if (intel->gen == 6)
- c->prog_data.urb_entry_size = ALIGN(c->vue_map.num_slots, 8) / 8;
- else
- c->prog_data.urb_entry_size = ALIGN(c->vue_map.num_slots, 4) / 4;
}
src_reg