intel/dev: poison macros for workarounds fixed at a stepping

INTEL_NEEDS_WA macros are valid when a workaround applies to all
platforms which have the GFX_VERx10 versions for the workaround.

Some workarounds were fixed at a stepping after the platform release.
If a workaround applies partially to any platform, then GFX_VERx10
cannot be used to correctly apply the workaround.

This change invalidates INTEL_NEEDS_WA_16014538804 and
INTEL_NEEDS_WA_22014412737, which were fixed for MTL platforms at
stepping b0.  The run-time checks were already present for all uses of
these macros.  Updating the poisoned macros to INTEL_WA_{num}_GFX_VER
compiles out the run-time checks on platforms where they cannot apply.

Acked-by: Caio Oliveira <caio.oliveira@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26898>
This commit is contained in:
Mark Janes 2023-12-08 11:34:48 -08:00 committed by Marge Bot
parent 7354d3a947
commit a6a95591aa
3 changed files with 6 additions and 5 deletions

View file

@ -8118,7 +8118,7 @@ genX(emit_3dprimitive_was)(struct iris_batch *batch,
UNUSED const struct intel_device_info *devinfo = batch->screen->devinfo;
UNUSED const struct iris_context *ice = batch->ice;
#if INTEL_NEEDS_WA_22014412737 || INTEL_NEEDS_WA_16014538804
#if INTEL_WA_22014412737_GFX_VER || INTEL_WA_16014538804_GFX_VER
if (intel_needs_workaround(devinfo, 22014412737) &&
(point_or_line_list(primitive_type) || indirect ||
(vertex_count == 1 || vertex_count == 2))) {

View file

@ -249,8 +249,9 @@ def partial_gens(wa_def):
# eliminate each platform specifically indicated by the WA, to see if
# are left over.
for platform in bug["mesa_platforms"]:
wa_required_for_completeness.remove(platform)
for platform, desc in bug["mesa_platforms"].items():
if desc["steppings"] == "all":
wa_required_for_completeness.remove(platform)
# if any platform remains in the required set, then this wa *partially*
# applies to one of the gfxvers.

View file

@ -3813,7 +3813,7 @@ genX(CmdExecuteCommands)(
"Secondary cmd buffer not tracked in VF cache");
}
#if INTEL_NEEDS_WA_16014538804
#if INTEL_WA_16014538804_GFX_VER
if (anv_cmd_buffer_is_render_queue(container) &&
intel_needs_workaround(device->info, 16014538804))
anv_batch_emit(&container->batch, GENX(PIPE_CONTROL), pc);
@ -8601,7 +8601,7 @@ genX(batch_emit_post_3dprimitive_was)(struct anv_batch *batch,
uint32_t primitive_topology,
uint32_t vertex_count)
{
#if INTEL_NEEDS_WA_22014412737 || INTEL_NEEDS_WA_16014538804
#if INTEL_WA_22014412737_GFX_VER || INTEL_WA_16014538804_GFX_VER
if (intel_needs_workaround(device->info, 22014412737) &&
(primitive_topology == _3DPRIM_POINTLIST ||
primitive_topology == _3DPRIM_LINELIST ||