anv/cmd_buffer: Remove the 1-D case from the HiZ QPitch calculation
The 1-D special case doesn't actually apply to depth or HiZ. I discovered this while converting BLORP over to genxml and ISL. The reason is that the 1-D special case only applies to the new Sky Lake 1-D layout which is only used for LINEAR 1-D images. For tiled 1-D images, such as depth buffers, the old gen4 2-D layout is used and the QPitch should be in rows. Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Cc: "13.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
@@ -2181,11 +2181,14 @@ cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer)
|
||||
* - SURFTYPE_1D: distance in pixels between array slices
|
||||
* - SURFTYPE_2D/CUBE: distance in rows between array slices
|
||||
* - SURFTYPE_3D: distance in rows between R - slices
|
||||
*
|
||||
* Unfortunately, the docs aren't 100% accurate here. They fail to
|
||||
* mention that the 1-D rule only applies to linear 1-D images.
|
||||
* Since depth and HiZ buffers are always tiled, they are treated as
|
||||
* 2-D images. Prior to Sky Lake, this field is always in rows.
|
||||
*/
|
||||
hdb.SurfaceQPitch =
|
||||
image->aux_surface.isl.dim == ISL_SURF_DIM_1D ?
|
||||
isl_surf_get_array_pitch_el(&image->aux_surface.isl) >> 2 :
|
||||
isl_surf_get_array_pitch_el_rows(&image->aux_surface.isl) >> 2;
|
||||
isl_surf_get_array_pitch_el_rows(&image->aux_surface.isl) >> 2;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user