[Mesa-dev] [PATCH v2 00/32] intel/isl: Add support for Yf and Ys texturing

Jason Ekstrand jason at jlekstrand.net
Fri Oct 12 18:46:30 UTC 2018


This series adds support for the Yf and Ys formats.  I've had it kicking
around for a while but got bogged down debugging a CNL miptail issue.  I
decided yesterday to give it a rebase and I'm sending it out again.  This
time, Ys actually works thanks to anv's ability to enforce 64K alignments
of buffers.  I do not expect the final anv patch to actually get merged
this time around as I've been told by various people that Yf and Ys don't
actually help performance that much.  They are, however, required for
sparse texturing so I'd like to get the ISL patches merged so they can stop
bitrotting.  This series passes jenkins both as-is and with a hack to
disable Ys and fall back to Yf.

There are still some bugs with Yf miptails on CNL but I don't think they
affect Ys so we can sort them out later.

Most of the patches have already been reviewed by Topi (thanks!) so it's
just one patch in the middle (Disallow Yf and Ys for 1D depth surfaces) and
some of the ones towards the end that need review.

Jason Ekstrand (32):
  intel/isl: Add a isl_surf_get_image_offset_B_tile_el helper
  intel/blorp: Use isl_surf_get_image_offset_B_tile_el in ccs_ambiguate
  intel/isl: Make the offset helpers four dimensional
  intel/isl: Make tile logical extents four dimensional
  intel/isl: Use a 4D physical total extent for size calculations
  intel/isl: Expose isl_tiling_get_info
  intel/isl: Rename ISL_TILING_Yf/s to ISL_TILING_GEN9_Yf/s
  intel/isl: Add gen10 variants of Yf and Ys tiling
  intel/isl: Implement correct tile size calculations for Ys/Yf
  intel/isl: Use the tile size for computing standard Y alignments
  intel/isl: Use ISL_DIM_LAYOUT_GEN9_1D for Yf/Ys
  intel/isl: Disallow Yf and Ys for 1D depth surfaces
  intel/isl: Use the depth field of phys_level0_sa for GEN4_2D 3D
    surfaces
  intel/isl: Fill out the correct phys_total_extent for Ys/Yf
  intel/isl: Support Yf/Ys in isl_surf_get_image_offset_sa
  intel/isl: Pull the uncompressed surface view code from anv
  intel/blorp: Adjust the compressed copy rectangle before
    convert_to_single_slice
  intel/blorp: Use isl_surf_get_uncompressed_surf
  intel/isl: Support Ys and Yf in isl_surf_get_uncompressed_surf
  intel/isl: Don't compute image tiling data for Yf/Ys tiling
  intel/isl: Support Yf/Ys tiling in surf_fill_state
  intel/isl: Support Yf/Ys tiling in emit_depth_stencil_hiz
  intel/isl: Allow Yf and Ys tiling
  intel/isl: Add initial data-structure support for miptails
  intel/isl: Add a max_miptail_levels field to isl_tile_info
  intel/isl: Add support for computing offsets with miptails
  intel/isl: Add units to view dimensions in
    isl_surf_get_uncompressed_surf
  intel/isl: Support miptails in isl_surf_get_uncompressed_surf
  intel/isl: Disallow CCS on 3D surfaces with miptails
  intel/isl: Start using miptails
  anv: Enable support for Yf and Ys tiled images
  anv/image: Wrap an error return in vk_error

 src/intel/Makefile.isl.am                     |   9 +-
 src/intel/blorp/blorp_blit.c                  |  69 +-
 src/intel/blorp/blorp_clear.c                 |   8 +-
 src/intel/isl/isl.c                           | 935 ++++++++++++++++--
 src/intel/isl/isl.h                           | 145 ++-
 src/intel/isl/isl_drm.c                       |   6 +-
 src/intel/isl/isl_emit_depth_stencil.c        |  23 +-
 src/intel/isl/isl_gen7.c                      |  25 +-
 src/intel/isl/isl_gen9.c                      |  85 +-
 src/intel/isl/isl_storage_image.c             |  17 +-
 src/intel/isl/isl_surface_state.c             |  32 +-
 src/intel/isl/meson.build                     |  11 +
 .../tests/isl_surf_get_image_offset_test.c    |   4 +-
 src/intel/isl/tests/isl_tile_std_y_test.c     | 201 ++++
 src/intel/vulkan/anv_device.c                 |   6 +-
 src/intel/vulkan/anv_image.c                  |  47 +-
 src/mesa/drivers/dri/i965/intel_blit.c        |  12 +-
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c |  21 +-
 18 files changed, 1357 insertions(+), 299 deletions(-)
 create mode 100644 src/intel/isl/tests/isl_tile_std_y_test.c

-- 
2.19.1



More information about the mesa-dev mailing list