v3dv/cmd_buffer: update shader variants at CmdBindDescriptorSets/CmdBindPipeline
authorAlejandro Piñeiro <apinheiro@igalia.com>
Wed, 25 Mar 2020 10:50:16 +0000 (11:50 +0100)
committerMarge Bot <eric+marge@anholt.net>
Tue, 13 Oct 2020 21:21:29 +0000 (21:21 +0000)
commit07addb41835a556361515261ee27a095118fa63a
tree3f1489425fc09b7d341a9110fafca5fecf709a95
parentf76dad8f89911e18ddfbe8a5a2c5427f3f1c5226
v3dv/cmd_buffer: update shader variants at CmdBindDescriptorSets/CmdBindPipeline

Specially after CmdBindDescriptorSets, it is likely that we would need
a new shader variant, like for example if sampler descriptor sets are
bound.

At that moment a new v3d key is populated, using as base the one used
at pipeline creation, so only cmd_buffer depending values are changed.

Then a new variant is requested. Note that internally it is handled
with a cache, so no new compilation will be done if not needed.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
src/broadcom/vulkan/v3dv_cmd_buffer.c
src/broadcom/vulkan/v3dv_descriptor_set.c
src/broadcom/vulkan/v3dv_formats.c
src/broadcom/vulkan/v3dv_pipeline.c
src/broadcom/vulkan/v3dv_private.h
src/broadcom/vulkan/v3dv_uniforms.c