iris: move bindless surface state heap inside the surface state heap
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Tue, 15 Nov 2022 12:26:38 +0000 (14:26 +0200)
committerMarge Bot <emma+marge@anholt.net>
Sat, 19 Nov 2022 14:58:57 +0000 (14:58 +0000)
commitdaab161535747cf5aef443e4cee46c5415662848
treebc78278b24fd248a19594f2ed7878b67c8bec1ef
parent64f1ae4bc51276326fdce1fde06906b5aa42375d
iris: move bindless surface state heap inside the surface state heap

We're about to make scratch surface states part of the surface state
heap. Because those are required to be in the low 26bits parts surface
state heap (we're limited in bits handed in the CFE_STATE, 3DSTATE_VS,
etc... instructions), this change splits the 32bit surface state heap
as follow:

   - 8Mb of surface states for scratch
   - 1Gb - 8Mb of binding tables
   - 3Gb of surface states

That way all of the surfaces are located within a 4Gb region visible
from STATE_BASE_ADDRESS::SurfaceStateBaseAddress

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19727>
src/gallium/drivers/iris/iris_bufmgr.c
src/gallium/drivers/iris/iris_bufmgr.h
src/gallium/drivers/iris/iris_context.c
src/gallium/drivers/iris/iris_context.h
src/gallium/drivers/iris/iris_program.c
src/gallium/drivers/iris/iris_resource.c
src/gallium/drivers/iris/iris_resource.h
src/gallium/drivers/iris/iris_state.c