[Mesa-dev] [PATCH v2 00/15] i965: Rework uniform handling in the back-end

Jason Ekstrand jason at jlekstrand.net
Fri Mar 25 18:06:09 UTC 2016


On Tue, Mar 22, 2016 at 3:33 PM, Jason Ekstrand <jason at jlekstrand.net>
wrote:

> This is mostly a re-send of a patch series I've had floating around in one
> form or a while for quite some time.  It's basically the same except that
> the original version was missing a work-around for Sandy Bridge.  For a
> while, I wasn't really pushing to get it merged because I couldn't
> demonstrate any actual performance benifit from pushing arrays.  However,
> with the Vulkan API, the concept of push constants is directly exposed to
> the user and we really need to be able to indirect on them.  This series
> makes the FS backend 100% ready for indirect push constants;  vec4 will
> take a little more work.
>
> It's worth noting that we've been carying these patches around in our
> Vulkan driver for probably 3 or 4 months now and it's working great.
>
> For those that prefer to review on a branch:
>
> https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=review/i965-uniforms
>
> I think Kristian has mostly reviewed these patches.  However, he never sent
> any R-Bs to the list.  I'd also like Ken or Matt to look at it from a
> design perspective.
>

I just confirmed with Kristian via SMS that he has, indeed, reviewed it.


> Jason Ekstrand (15):
>   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
>   nir: Add another index to load_uniform to specify the range read
>   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/fs: Use UD type for offsets in VARYING_PULL_CONSTANT_LOAD
>   i965/vec4: Get rid of the uniform_size array
>   i965/fs: Rename demote_pull_constants to lower_constant_loads
>   i965/fs: Push small uniform arrays
>
>  src/compiler/nir/nir.h                            |   7 +
>  src/compiler/nir/nir_intrinsics.h                 |   6 +-
>  src/compiler/nir/nir_lower_io.c                   |   5 +
>  src/compiler/nir/nir_print.c                      |   1 +
>  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    |  68 ++++++--
>  src/mesa/drivers/dri/i965/brw_fs_nir.cpp          |  63 +++++---
>  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_tcs.cpp        |   2 -
>  src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp    | 130 ++++++---------
>  src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp |   1 -
>  16 files changed, 292 insertions(+), 228 deletions(-)
>
> --
> 2.5.0.400.gff86faf
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160325/5fc98942/attachment.html>


More information about the mesa-dev mailing list