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 <[email protected]> Cc: Nanley Chery <[email protected]> Cc: Topi Pohjolainen <[email protected]> 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 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
