intel/common: Support 1MB granularity AUX mapping format (Bspec 44930)

Signed-off-by: Jianxun Zhang <jianxun.zhang@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20259>
This commit is contained in:
Jianxun Zhang 2022-11-11 15:37:01 -08:00 committed by Marge Bot
parent 49c6e30611
commit 9698eee50d

View file

@ -111,6 +111,12 @@ enum intel_aux_map_format {
* 64KB granularity format on GFX12 devices
*/
INTEL_AUX_MAP_GFX12_64KB = 0,
/**
* 1MB granularity format on GFX125 devices
*/
INTEL_AUX_MAP_GFX125_1MB,
INTEL_AUX_MAP_LAST,
};
@ -153,6 +159,13 @@ static const struct aux_format_info aux_formats[] = {
.l1_index_mask = 0xff,
.l1_index_offset = 16,
},
[INTEL_AUX_MAP_GFX125_1MB] = {
.main_page_size = 1024 * 1024,
.main_to_aux_ratio = 256,
.l1_page_size = 2 * 1024,
.l1_index_mask = 0xf,
.l1_index_offset = 20,
},
};
struct aux_map_buffer {
@ -216,8 +229,12 @@ get_format(enum intel_aux_map_format format)
static enum intel_aux_map_format
select_format(const struct intel_device_info *devinfo)
{
return devinfo->verx10 ==
120 ? INTEL_AUX_MAP_GFX12_64KB : INTEL_AUX_MAP_LAST;
if (devinfo->verx10 >= 125)
return INTEL_AUX_MAP_GFX125_1MB;
else if (devinfo->verx10 == 120)
return INTEL_AUX_MAP_GFX12_64KB;
else
return INTEL_AUX_MAP_LAST;
}
static bool