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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev