anv: implement EDS2.extendedDynamicState2PatchControlPoints
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Sat, 8 Apr 2023 20:21:29 +0000 (23:21 +0300)
committerMarge Bot <emma+marge@anholt.net>
Wed, 24 May 2023 18:32:07 +0000 (18:32 +0000)
commite9fa840eed242812914dfd33d6c0c42d4e3d2197
tree7a1fa5e5ab7faa826bc25e2874f96bb51974118a
parent429ef02f83e6516ec984caefba5046c939c6b8ee
anv: implement EDS2.extendedDynamicState2PatchControlPoints

We make the compiler assume the worst possible case (it's not great
because we have to burn 32 GRFs of potential input data) and then we
push the actual value through push constants.

This enables VK_EXT_gpl usage on zink, which causes two traces to change
their results.  Raven is an imperceptible change, blender has missing
original pngs but looks plausible.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22378>
16 files changed:
src/gallium/drivers/zink/ci/traces-zink-restricted.yml
src/gallium/drivers/zink/ci/traces-zink.yml
src/gallium/drivers/zink/ci/zink-anv-tgl-validation-settings.txt
src/intel/vulkan/anv_blorp.c
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/anv_device.c
src/intel/vulkan/anv_generated_indirect_draws.c
src/intel/vulkan/anv_nir.h
src/intel/vulkan/anv_nir_compute_push_layout.c
src/intel/vulkan/anv_nir_lower_load_patch_vertices_in.c [new file with mode: 0644]
src/intel/vulkan/anv_pipeline.c
src/intel/vulkan/anv_pipeline_cache.c
src/intel/vulkan/anv_private.h
src/intel/vulkan/genX_cmd_buffer.c
src/intel/vulkan/grl/genX_grl_dispatch.c
src/intel/vulkan/meson.build