mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-20 23:10:30 +01:00
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:
parent
7354d3a947
commit
a6a95591aa
3 changed files with 6 additions and 5 deletions
|
|
@ -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))) {
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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 ||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue