anv: track render targets & render area changes separately
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 18 Oct 2023 07:54:01 +0000 (10:54 +0300)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 18 Oct 2023 10:43:51 +0000 (13:43 +0300)
commit53a4738eb146d7584fec884fc0d7c6ba4cb6246d
tree1baad5c5c0a9c69759ded264d316c650bab40620
parentc0b6ce0aac4e992c56ca14227c410e58914f0f73
anv: track render targets & render area changes separately

The following instructions :
   - 3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
   - 3DSTATE_VIEWPORT_STATE_POINTERS_CC
   - 3DSTATE_SCISSOR_STATE_POINTERS

do not care about the content/format/count of the render targets, only
the size of the render area and count of viewport/scissor.

By tracking render targets & render area we can reduce the emission of
those instructions.

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/25778>
src/intel/vulkan/anv_private.h
src/intel/vulkan/genX_cmd_buffer.c
src/intel/vulkan/genX_gfx_state.c