i965/vec4: use attribute slots for first non payload GRF
authorAlejandro Piñeiro <apinheiro@igalia.com>
Thu, 21 Apr 2016 10:23:47 +0000 (12:23 +0200)
committerJuan A. Suarez Romero <jasuarez@igalia.com>
Thu, 12 Jan 2017 11:56:35 +0000 (12:56 +0100)
As part of the payload setup, setup_attributes is called with the first
GRF that can be used for the attributes (first ones are used for
uniforms for example) and returns the first GRF that is not part of the
payload. Before this patch, it adds directly the number of attributes.
But as with 64-bit attributes can consume more than one slot, that is
not valid anymore. This patch change the addition to use the number of
slots consumed.

gen >= 8 would not be affected, as they use the scalar mode. For that
case, the vs configuration is done at fs_visitor::assign_vs_urb_setup.

v2: add explanation in commit log (Jordan)

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/mesa/drivers/dri/i965/brw_vec4.cpp

index 5ddbe580d5ae2e9375773c27d0b3b2163ce86fca..f80162d82036ea1b73fb5878054a152d5cb8c85f 100644 (file)
@@ -1757,7 +1757,7 @@ vec4_vs_visitor::setup_attributes(int payload_reg)
 
    lower_attributes_to_hw_regs(attribute_map, false /* interleaved */);
 
-   return payload_reg + vs_prog_data->nr_attributes;
+   return payload_reg + vs_prog_data->nr_attribute_slots;
 }
 
 int