anv: add new low level emission & dirty state tracking
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 2 Aug 2023 08:36:39 +0000 (11:36 +0300)
committerMarge Bot <emma+marge@anholt.net>
Wed, 6 Sep 2023 20:07:02 +0000 (20:07 +0000)
commit50f6903bd9c472eef2af2cbf62027df3bbe0ca8a
treed5aa862d53783b663586bacf3f6479978bf14ff7
parent8d66ff01b1a3b59851c74cc609636b1a107896e0
anv: add new low level emission & dirty state tracking

A single Vulkan state can map to multiple fields in different GPU
instructions. This change introduces the bottom half of a simplified
emission mechanism where we do the following :
          Vulkan runtime state
                   |
                   V
        Intermediate driver state
                   |
                   V
         Instruction programming

This way we can detect that the intermediate state didn't change and
avoid HW instruction emission.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24536>
src/intel/vulkan/anv_cmd_buffer.c
src/intel/vulkan/anv_device.c
src/intel/vulkan/anv_genX.h
src/intel/vulkan/anv_private.h
src/intel/vulkan/anv_util.c
src/intel/vulkan/genX_blorp_exec.c
src/intel/vulkan/genX_cmd_buffer.c
src/intel/vulkan/genX_gfx_state.c
src/intel/vulkan/genX_gpu_memcpy.c
src/intel/vulkan/genX_simple_shader.h