[Mesa-dev] [PATCH 0/8] intel/isl: Emit depth/stencil/hiz packets
Jason Ekstrand
jason at jlekstrand.net
Tue Apr 4 22:56:29 UTC 2017
This little series adds support to ISL for emitting the packets required
for depth and stencil buffers:
- 3DSTATE_DEPTH_BUFFER
- 3DSTATE_STENCIL_BUFFER
- 3DSTATE_HIER_DEPTH_BUFFER
- 3DSTATE_CLEAR_PARAMS
The approach taken here is to have a single function which emits all four
commands in one go. The reasoning behind doing it this way is that the
four packets are very closely intertwined. For instance,
3DSTATE_STENCIL_BUFFER and 3DSTATE_HIER_DEPTH_BUFFER do not have any extent
fields, they rely on 3DSTATE_DEPTH_BUFFER for that information. Also, the
HiZ enable bit is in 3DSTATE_DEPTH_BUFFER but the details about the HiZ
buffer are in 3DSTATE_HIER_DEPTH_BUFFER.
The alternate approach, which Topi tried in some patches of his is to
re-use the isl_surf_state_fill_info struct that we use for filling out
RENDER_SURFACE_STATE. However, this requires unlinking depth and stencil
(at the very least) which is problematic in the case where you have stencil
but no depth.
Jason Ekstrand (8):
genxml/bits: Refactor to add a container class
genxml/bits: Pull the function emit code into a helper block
genxml/bits: Emit per-field _start helpers
genxml/bits: Emit per-container _length helpers
isl: Use genx_bits.h instead of a hand-rolled table
isl: Add support for emitting depth/stencil/hiz
anv: Use ISL for emitting depth/stencil/hiz
intel/blorp: Use ISL for emitting depth/stencil/hiz
src/intel/Makefile.sources | 7 ++
src/intel/blorp/blorp_genX_exec.h | 120 ++++++------------
src/intel/genxml/gen_bits_header.py | 159 +++++++++++++++++-------
src/intel/isl/isl.c | 124 ++++++++++++++++---
src/intel/isl/isl.h | 82 +++++++++++++
src/intel/isl/isl_emit_depth_stencil.c | 189 +++++++++++++++++++++++++++++
src/intel/isl/isl_priv.h | 28 +++++
src/intel/vulkan/genX_cmd_buffer.c | 215 ++++++---------------------------
8 files changed, 601 insertions(+), 323 deletions(-)
create mode 100644 src/intel/isl/isl_emit_depth_stencil.c
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list