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.widaw...@intel.com> CC: Ian Romanick <i...@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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev