diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_emit.cpp | 8 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 5 |
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 |