[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