This series is kind-of two series in one. First, we rework the way we do uniform handling all throughout both backends. In particular, we stop using reladdr and, instead, start using MOV_INDIRECT. Doing this allows us some nice simplifications: First, we no longer have the recursive reladdr problem; it's gone by design. Second, we can now get rid of the extra arrays of uniform sizes that we've been carying around everywhere. The fact that they exist has bothered me for a while, but no more!
The second half of the series does a bunch of cleanups on the MOV_INDIRECT instruction in the FS and then starts using it to do indirect push constants. Jason Ekstrand (15): nir: Add another index to load_uniform to specify the range read i965/fs: Use UD type for offsets in VARYING_PULL_CONSTANT_LOAD i965/fs: Use MOV_INDIRECT for all indirect uniform loads i965/fs: Get rid of reladdr i965/fs: Stop relying on param_size in assign_constant_locations i965/fs: Get rid of the param_size array i965/vec4: Inline get_pull_constant_offset i965/vec4: Use MOV_INDIRECT instead of reladdr for indirect push constants i965/vec4: Get rid of the uniform_size array i965/fs: Add support for doing MOV_INDIRECT on uniforms i965/fs: Don't force MASK_DISABLE on INDIRECT_MOV instructions i965/fs: Fix regs_read() for MOV_INDIRECT with a non-zero subnr i965/fs: Add support for MOV_INDIRECT on pre-Broadwell hardware i965/fs: Rename demote_pull_constants to lower_constant_loads i965/fs: Push small uniform arrays src/glsl/nir/nir_intrinsics.h | 7 +- src/glsl/nir/nir_lower_io.c | 5 + src/mesa/drivers/dri/i965/brw_fs.cpp | 189 +++++++++++++--------- src/mesa/drivers/dri/i965/brw_fs.h | 4 +- src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 52 ++++-- src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 62 ++++--- src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 3 - src/mesa/drivers/dri/i965/brw_ir_fs.h | 5 +- src/mesa/drivers/dri/i965/brw_vec4.cpp | 10 +- src/mesa/drivers/dri/i965/brw_vec4.h | 7 +- src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 19 +-- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 130 ++++++--------- src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp | 1 - 13 files changed, 267 insertions(+), 227 deletions(-) -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev