mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-27 02:20:38 +02:00
intel: Disable CCS_E support for YCRCB on gfx12
The table in Bspec 47715 lists these formats as "Not Supported" in the "Lossless Compression Support" column. Reviewed-by: Iván Briano <ivan.briano@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39628>
This commit is contained in:
parent
a66d19b691
commit
23a3c8c972
3 changed files with 14 additions and 20 deletions
|
|
@ -2789,18 +2789,6 @@ get_ccs_compatible_uint_format(const struct isl_format_layout *fmtl)
|
|||
case ISL_FORMAT_R8G8_SINT:
|
||||
return ISL_FORMAT_R8G8_UINT;
|
||||
|
||||
case ISL_FORMAT_YCRCB_NORMAL:
|
||||
case ISL_FORMAT_YCRCB_SWAPY:
|
||||
case ISL_FORMAT_YCRCB_SWAPUV:
|
||||
case ISL_FORMAT_YCRCB_SWAPUVY:
|
||||
/* Tiger Lake starts claiming CCS_E support for certain YCRCB formats.
|
||||
* BLORP chooses to take the CCS-compatible format path whenever ISL
|
||||
* claims CCS_E support on a format, not when CCS_E is actually used.
|
||||
* Therefore, if these formats are going to be used with BLORP, we need
|
||||
* a CCS-compatible format. R8G8_UINT seems as good as any.
|
||||
*/
|
||||
return ISL_FORMAT_R8G8_UINT;
|
||||
|
||||
case ISL_FORMAT_R8_SNORM:
|
||||
case ISL_FORMAT_R8_SINT:
|
||||
return ISL_FORMAT_R8_UINT;
|
||||
|
|
|
|||
|
|
@ -3931,13 +3931,19 @@ _isl_surf_info_supports_ccs(const struct isl_device *dev,
|
|||
enum isl_format format,
|
||||
isl_surf_usage_flags_t usage)
|
||||
{
|
||||
if (!isl_format_supports_ccs_d(dev->info, format) &&
|
||||
!isl_format_supports_ccs_e(dev->info, format))
|
||||
return false;
|
||||
|
||||
/* CCS is only for color images on Gfx7-11 */
|
||||
if (ISL_GFX_VER(dev) <= 11 && isl_surf_usage_is_depth_or_stencil(usage))
|
||||
return false;
|
||||
/* On ICL and prior, CCS is only for RGB images.
|
||||
* RGB images must support either CCS_D or CCS_E.
|
||||
*/
|
||||
if (isl_format_is_yuv(format) ||
|
||||
isl_surf_usage_is_depth_or_stencil(usage)) {
|
||||
if (ISL_GFX_VER(dev) <= 11)
|
||||
return false;
|
||||
} else {
|
||||
if (!isl_format_supports_ccs_d(dev->info, format) &&
|
||||
!isl_format_supports_ccs_e(dev->info, format))
|
||||
return false;
|
||||
}
|
||||
|
||||
/* With depth surfaces on gfx12, HIZ is required for CCS. */
|
||||
if (ISL_GFX_VER(dev) == 12 && isl_surf_usage_is_depth(usage) &&
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ static const struct surface_format_info format_info[] = {
|
|||
SF( 90, x, x, x, x, x, x, x, x, x, x, x, x, I8_SINT)
|
||||
SF( 45, 45, x, x, x, x, x, x, x, x, x, x, x, DXT1_RGB_SRGB)
|
||||
SF( Y, Y, x, x, x, x, x, x, x, x, x, x, x, R1_UNORM)
|
||||
SF( Y, Y, x, Y, Y, x, x, x, 60, x, x, 120, x, YCRCB_NORMAL)
|
||||
SF( Y, Y, x, Y, Y, x, x, x, 60, x, x, x, x, YCRCB_NORMAL)
|
||||
SF( Y, Y, x, Y, Y, x, x, x, 60, x, x, x, x, YCRCB_SWAPUVY)
|
||||
SF( 45, 45, x, x, x, x, x, x, x, x, x, x, x, P2_UNORM_PALETTE0)
|
||||
SF( 45, 45, x, x, x, x, x, x, x, x, x, x, x, P2_UNORM_PALETTE1)
|
||||
|
|
@ -280,7 +280,7 @@ static const struct surface_format_info format_info[] = {
|
|||
SF( Y, Y, x, x, x, x, x, x, x, x, x, x, x, BC3_UNORM_SRGB)
|
||||
SF( Y, x, x, x, x, x, x, x, x, x, x, x, x, MONO8)
|
||||
SF( Y, Y, x, x, Y, x, x, x, 60, x, x, x, x, YCRCB_SWAPUV)
|
||||
SF( Y, Y, x, x, Y, x, x, x, 60, x, x, 120, x, YCRCB_SWAPY)
|
||||
SF( Y, Y, x, x, Y, x, x, x, 60, x, x, x, x, YCRCB_SWAPY)
|
||||
SF( Y, Y, x, x, x, x, x, x, x, x, x, x, x, DXT1_RGB)
|
||||
/* smpl filt shad CK RT AB VB SO color TW TR ccs_e TA */
|
||||
SF( Y, Y, x, x, x, x, x, x, x, x, x, x, x, FXT1)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue