anv: Fix dynamic primitive topology for tess on Gfx7.x too
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 16 Jun 2021 22:58:28 +0000 (15:58 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 17 Jun 2021 02:00:32 +0000 (02:00 +0000)
Commit 24342e499bc58348b257716f629dccca3c1b0833 changed how primitive
topology is handled on Gfx8+ but missed updating the Gfx7.x code.

As a result, tests which previously used topologies like PATCHLIST_3
instead started using bogus ones like LINESTRIP_ADJ.  This caused a
GPU hangs in a bunch of Vulkan conformance tests involving tessellation.

This fixes those hangs.

Fixes: 24342e499bc ("anv: fix dynamic primitive topology for tess")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11434>

src/intel/vulkan/gfx7_cmd_buffer.c

index c7d1b96..ff808f2 100644 (file)
@@ -343,7 +343,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer)
                                       ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY)) {
       uint32_t topology;
       if (anv_pipeline_has_stage(pipeline, MESA_SHADER_TESS_EVAL))
-         topology = d->primitive_topology;
+         topology = pipeline->topology;
       else
          topology = genX(vk_to_intel_primitive_type)[d->primitive_topology];