anv: Set maxComputeSharedMemorySize value for Xe2 platforms
Xe2 platforms allows for a larger compute shared memory(SLM). For LNL this limit is 160KB but due to a workaround the limit is 128K. BSpec: 71053 Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28910>
This commit is contained in:
committed by
Marge Bot
parent
ddda68bbf5
commit
fd368f5521
@@ -1981,3 +1981,33 @@ intel_device_info_wa_stepping(struct intel_device_info *devinfo)
|
|||||||
return INTEL_STEPPING_RELEASE;
|
return INTEL_STEPPING_RELEASE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
intel_device_info_get_max_slm_size(const struct intel_device_info *devinfo)
|
||||||
|
{
|
||||||
|
uint32_t k_bytes = 0;
|
||||||
|
|
||||||
|
if (devinfo->verx10 >= 200) {
|
||||||
|
k_bytes = intel_device_info_get_max_preferred_slm_size(devinfo);
|
||||||
|
} else {
|
||||||
|
k_bytes = 64;
|
||||||
|
}
|
||||||
|
|
||||||
|
return k_bytes * 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t
|
||||||
|
intel_device_info_get_max_preferred_slm_size(const struct intel_device_info *devinfo)
|
||||||
|
{
|
||||||
|
uint32_t k_bytes = 0;
|
||||||
|
|
||||||
|
if (devinfo->verx10 >= 200) {
|
||||||
|
if (intel_needs_workaround(devinfo, 16018610683))
|
||||||
|
k_bytes = 128;
|
||||||
|
else
|
||||||
|
k_bytes = 160;
|
||||||
|
} else {
|
||||||
|
k_bytes = 128;
|
||||||
|
}
|
||||||
|
|
||||||
|
return k_bytes * 1024;
|
||||||
|
}
|
||||||
|
|||||||
@@ -211,6 +211,9 @@ void intel_device_info_update_after_hwconfig(struct intel_device_info *devinfo);
|
|||||||
|
|
||||||
enum intel_wa_steppings intel_device_info_wa_stepping(struct intel_device_info *devinfo);
|
enum intel_wa_steppings intel_device_info_wa_stepping(struct intel_device_info *devinfo);
|
||||||
|
|
||||||
|
uint32_t intel_device_info_get_max_slm_size(const struct intel_device_info *devinfo);
|
||||||
|
uint32_t intel_device_info_get_max_preferred_slm_size(const struct intel_device_info *devinfo);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1338,7 +1338,7 @@ get_properties(const struct anv_physical_device *pdevice,
|
|||||||
.maxFragmentOutputAttachments = 8,
|
.maxFragmentOutputAttachments = 8,
|
||||||
.maxFragmentDualSrcAttachments = 1,
|
.maxFragmentDualSrcAttachments = 1,
|
||||||
.maxFragmentCombinedOutputResources = MAX_RTS + max_ssbos + max_images,
|
.maxFragmentCombinedOutputResources = MAX_RTS + max_ssbos + max_images,
|
||||||
.maxComputeSharedMemorySize = 64 * 1024,
|
.maxComputeSharedMemorySize = intel_device_info_get_max_slm_size(&pdevice->info),
|
||||||
.maxComputeWorkGroupCount = { 65535, 65535, 65535 },
|
.maxComputeWorkGroupCount = { 65535, 65535, 65535 },
|
||||||
.maxComputeWorkGroupInvocations = max_workgroup_size,
|
.maxComputeWorkGroupInvocations = max_workgroup_size,
|
||||||
.maxComputeWorkGroupSize = {
|
.maxComputeWorkGroupSize = {
|
||||||
|
|||||||
Reference in New Issue
Block a user