[Mesa-dev] [PATCH 00/11] intel/isl: Add support for HiZ and stencil on gen6

Jason Ekstrand jason at jlekstrand.net
Wed May 31 00:55:09 UTC 2017


This little series adds support to ISL for gen6 HiZ ans stencil via a new
isl_dim_layout enum value.  Unfortunately, I couldn't easily add the new
layout without doing a little refactoring.  The way ISL likes to calculate
surface layouts today is fairly heavily based on the needs of 2D array
textures.  The gen4 3D and gen9 1D layouts are bolted on but not really
first-class citizens in some sense.  In order to better accommodate more
exotic layouts, I re factored things so that the primary layout helper
generates the total surface extent in elements instead of the slice0 extent
that they were generating before.  I think the new code is somewhat easier
to follow especially for 1D and 3D images.

The last patch moves some things around so that BLORP now handles gen6 HiZ
and stencil properly in the back-end and there is no longer any need for
brw_blorp to do surface offsetting.  I'm hoping that this will make Topi's
life much easier as he tries to rework his "convert i965 to ISL" patches to
accommodate the recent revelation about gen6 HiZ and stencil.

Cc: Chad Versace <chadversary at chromium.org>
Cc: Nanley Chery <nanley.g.chery at intel.com>
Cc: Topi Pohjolainen <topi.pohjolainen at intel.com>

Jason Ekstrand (11):
  intel/isl: Remove the device parameter from isl_tiling_get_info
  intel/isl: Move isl_calc_array_pitch_el_rows higher up
  intel/isl: Refactor isl_calc_array_pitch_el_rows
  intel/isl: Add an isl_assert_div helper
  intel/isl: Refactor to use a phys_total_el extent.
  intel/isl: Don't check array pitch for gen4 3D textures
  intel/isl: Generate phys_total_el from isl_calc_phys_extent
  intel/isl: Add a new layout for HiZ and stencil on Sandy Bridge
  intel/isl: Make get_intratile_offset_el take the element size in bits
  intel/isl: Add a helper for getting the byte/tile offset of a subimage
  intel/blorp: Handle gen6 stencil/HiZ offsets in the back-end

 src/intel/blorp/blorp_blit.c                       |  15 +-
 src/intel/blorp/blorp_genX_exec.h                  |  32 +-
 src/intel/isl/isl.c                                | 619 ++++++++++++++-------
 src/intel/isl/isl.h                                |  76 ++-
 src/intel/isl/isl_emit_depth_stencil.c             |   1 +
 src/intel/isl/isl_priv.h                           |   7 +
 src/intel/isl/isl_surface_state.c                  |   2 +-
 .../isl/tests/isl_surf_get_image_offset_test.c     |   1 -
 src/mesa/drivers/dri/i965/brw_blorp.c              |  61 --
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c   |   3 +-
 src/mesa/drivers/dri/i965/intel_blit.c             |   3 +-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c      |  17 +-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.h      |   2 +-
 13 files changed, 535 insertions(+), 304 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list