anv: More carefully dirty state in BindDescriptorSets
authorJason Ekstrand <jason@jlekstrand.net>
Thu, 7 Nov 2019 17:44:08 +0000 (11:44 -0600)
committerJason Ekstrand <jason@jlekstrand.net>
Mon, 18 Nov 2019 18:35:14 +0000 (18:35 +0000)
commit22f16ff54a4a23a9903e837d37e9d3d838e535f1
tree269a8855ca7dace020db74162b0a7910f697904d
parentca8117b5d544f9580d05e9416abd03446e285e16
anv: More carefully dirty state in BindDescriptorSets

Instead of dirtying all graphics or all compute based on binding point,
we're now much more careful.  We first check to see if the actual
descriptor set changed and then only dirty the stages used by that
descriptor set.  For dynamic offsets, we keep a bitfield per-stage of
which offsets are actually used in that stage and we only dirty push
constants and descriptors if that stage has dynamic offsets AND those
offsets actually change.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/anv_descriptor_set.c
src/intel/vulkan/anv_private.h
src/intel/vulkan/genX_cmd_buffer.c