intel: Disable 16x MSAA support on Xe3
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

16x MSAA isn't supported at all on certain Xe3 variants, and on its way
out on the rest.  Most vendors choose not to support it, and many apps
offer more modern multisampling and upscaling techniques these days.

Only 2/4/8x are supported going forward.

Cc: mesa-stable
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36592>
This commit is contained in:
Kenneth Graunke 2025-06-11 21:37:08 -07:00 committed by Marge Bot
parent f7def1ac1e
commit dc2c3cf06b
4 changed files with 5 additions and 3 deletions

View file

@ -112,7 +112,7 @@ iris_is_format_supported(struct pipe_screen *pscreen,
{
struct iris_screen *screen = (struct iris_screen *) pscreen;
const struct intel_device_info *devinfo = screen->devinfo;
uint32_t max_samples = devinfo->ver == 8 ? 8 : 16;
uint32_t max_samples = devinfo->ver == 8 || devinfo->ver >= 30 ? 8 : 16;
if (sample_count > max_samples ||
!util_is_power_of_two_or_zero(sample_count))

View file

@ -3795,7 +3795,8 @@ iris_set_framebuffer_state(struct pipe_context *ctx,
ice->state.dirty |= IRIS_DIRTY_MULTISAMPLE;
/* We need to toggle 3DSTATE_PS::32 Pixel Dispatch Enable */
if (GFX_VER >= 9 && (cso->samples == 16 || samples == 16))
if (GFX_VER >= 9 && GFX_VER < 30 &&
(cso->samples == 16 || samples == 16))
ice->state.stage_dirty |= IRIS_STAGE_DIRTY_FS;
/* We may need to emit blend state for Wa_14018912822. */

View file

@ -511,7 +511,7 @@ isl_device_get_supported_tilings(const struct isl_device *dev)
isl_sample_count_mask_t ATTRIBUTE_CONST
isl_device_get_sample_counts(const struct isl_device *dev)
{
if (ISL_GFX_VER(dev) >= 9) {
if (ISL_GFX_VER(dev) >= 9 && ISL_GFX_VER(dev) < 30) {
return ISL_SAMPLE_COUNT_1_BIT |
ISL_SAMPLE_COUNT_2_BIT |
ISL_SAMPLE_COUNT_4_BIT |

View file

@ -478,6 +478,7 @@ get_features(const struct anv_physical_device *pdevice,
.sparseResidency8Samples = has_sparse_or_fake &&
pdevice->info.verx10 != 125,
.sparseResidency16Samples = has_sparse_or_fake &&
pdevice->info.ver < 30 &&
pdevice->info.verx10 != 125,
.variableMultisampleRate = true,
.inheritedQueries = true,