[Mesa-dev] i965/blorp: Use flat vertex inputs instead of uniforms
Topi Pohjolainen
topi.pohjolainen at intel.com
Thu Jun 23 19:16:56 UTC 2016
In addition to the actual vertex coordinates blorp will get another
vertex input buffer providing the constants that are until now
provided as uniforms. This will remove the need to configure push
constants and their allocation in the pipeline.
First three patches refactor the vertex data setup for blorp. The
existing logic in blorp already supports all gens (gen6-gen9). I
chose to change the core upload logic accordingly and simply use that
for blorp.
Patches 5-8 pack the constants in blorp programs into vec4s. By
default compiler puts input variables two full hardware registers
apart. Having them in vec4s drops the need to repack them.
Last four patches take actual advantage of the change by dropping
unnecessary pipeline reconfiguration.
CC: Kenneth Graunke <kenneth at whitecape.org>
CC: Jason Ekstrand <jason at jlekstrand.net>
Topi Pohjolainen (18):
i965/draw: Expose vertex buffer state setup
i965: Unify vertex buffer setup
i965/blorp: Split vertex data and element setup
i965/blorp: Use core vertex buffer state setup
i965/blorp: Rename push constants to inputs
i965/blorp: Share input slot between pixel kill and blend/scaled
i965/blorp: Load tranformation coordinates as vec4
i965/blorp: Drop LOAD_UNIFORM macro
i965/blorp: Store input read mask
i965/blorp: Add support for flat input buffer
i965/blorp: Tell vertex fetcher about flat inputs
i965/blorp: Prepare for more than two vertex attributes
i965/blorp: Use flat inputs instead of uniforms
i965/blorp: Remove support for push constants
i965/urb: Allow blorp to record current settings
i965/blorp: Fix the size requirement for vertex elements
i965/blorp/gen7+: Stop trashing push constant allocation
i965/blorp/gen7+: Do not trigger push constant space reconfig
src/mesa/drivers/dri/i965/brw_blorp.c | 18 +-
src/mesa/drivers/dri/i965/brw_blorp.h | 81 ++++++---
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 135 +++++++++------
src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 15 +-
src/mesa/drivers/dri/i965/brw_context.h | 12 +-
src/mesa/drivers/dri/i965/brw_draw.h | 13 ++
src/mesa/drivers/dri/i965/brw_draw_upload.c | 74 +++++---
src/mesa/drivers/dri/i965/gen6_blorp.c | 240 +++++++++++++-------------
src/mesa/drivers/dri/i965/gen7_blorp.c | 153 ++++------------
src/mesa/drivers/dri/i965/gen7_urb.c | 93 +++++-----
src/mesa/drivers/dri/i965/gen8_blorp.c | 86 ++-------
src/mesa/drivers/dri/i965/gen8_draw_upload.c | 41 ++---
12 files changed, 448 insertions(+), 513 deletions(-)
--
2.5.5
More information about the mesa-dev
mailing list