[Mesa-dev] i965/meta: Bypass core vertex buffer setup
Topi Pohjolainen
topi.pohjolainen at intel.com
Thu Feb 25 09:46:05 UTC 2016
This series introduces custom pipeline state upload for fast, rep
and resolve clears. For now only vertex buffer and vertex fetcher
state uploads are overrided. The base mechanism, however, makes it
possible to reduce the dependence to core context gradually by one
atom at a time if desired.
I tried a few approaches, and I selected this as it was the least
intrusive and didn't regress any synthetic benchmarks.
During the development of render buffer compression I discovered
corner cases that out current driver internal context save/restore
mechanism couldn't support. I tried fixing it but just discovered
more corner cases to consider. I worked on blorp+meta in the past
and decided to try one more time if I could break the dependence
of meta operations from core context.
The last patch in the series is not critical, it is just something
I wrote on the way.
CC: Ben Widawsky <benjamin.widawsky at intel.com>
CC: Ian Romanick <idr at freedesktop.org>
Topi Pohjolainen (14):
i965: Reduce scope of indirect draw flag
i965: Reduce scope of vertex access type
i965: Expose draw primitive formatting
i965/blorp: Use meta utility for primitive emission
i965/blorp: Refactor batch buffer save/restore
i965/blorp: Move vertex buffer setup to meta util
i965/blorp: Move clipper disabling to meta util
i965/meta: Prepare vertex buffer setup for gen8
i965/gen8: Expose emission for system generated values
i965: Add means to override individual pipeline parts
i965: Introduce enumeration for atoms
i965/meta: Introduce custom pipeline
i965/meta: Setup vertices for fast clear without core vbo support
i965: Don't add fast cleared buffers to render cache
src/mesa/drivers/dri/i965/brw_atoms.h | 265 +++++++++++
src/mesa/drivers/dri/i965/brw_blorp.cpp | 42 +-
src/mesa/drivers/dri/i965/brw_blorp.h | 3 -
src/mesa/drivers/dri/i965/brw_context.c | 2 +
src/mesa/drivers/dri/i965/brw_context.h | 13 +
src/mesa/drivers/dri/i965/brw_draw.c | 86 ++--
src/mesa/drivers/dri/i965/brw_draw.h | 13 +
src/mesa/drivers/dri/i965/brw_meta_fast_clear.c | 58 +--
src/mesa/drivers/dri/i965/brw_meta_util.c | 352 ++++++++++++++
src/mesa/drivers/dri/i965/brw_meta_util.h | 22 +
src/mesa/drivers/dri/i965/brw_state.h | 7 +
src/mesa/drivers/dri/i965/brw_state_upload.c | 585 +++++++++++++-----------
src/mesa/drivers/dri/i965/gen6_blorp.cpp | 85 +---
src/mesa/drivers/dri/i965/gen7_blorp.cpp | 22 +-
src/mesa/drivers/dri/i965/gen8_draw_upload.c | 101 ++--
15 files changed, 1136 insertions(+), 520 deletions(-)
create mode 100644 src/mesa/drivers/dri/i965/brw_atoms.h
--
2.5.0
More information about the mesa-dev
mailing list