[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