mesa/src/intel
Lionel Landwerlin 7c76125db2 anv: use 2 different buffers for surfaces/samplers in descriptor sets
We had the unfortunate finding on a recent platform to learn that the
bindless sampler heap is not functioning as expected.

Nowhere in the documentation is the size of the heap written down. So
most people assumed that's the max number that we can program (4Gb).

The reality is that it's only 64Mb.

Though it is appearing like it's working properly for the whole 4Gb
range for most apps, this is only because the HW bounds checking
applied is broken. Instead of clamping anything beyong 64Mb, it's only
clamping the last 4Kb of each 64Mb region.

So this heap is useless for us to make a 4Gb region of both sampler &
surface states...

This change essentially turns off the bindless sampler heap on DG2+.

The only location where we can put SAMPLER_STATE elements is the
dynamic state heap. Unfortunately we cannot align the dynamic state
heap with the bindless surface state heap. So the solution is to
allocate sampler & surface states separately, each from the own heap
in the descriptor pool.

We now have to provide 2 sets of offsets for surfaces & samplers.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Rohan Garg <rohan.garg@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25897>
2023-12-04 23:06:05 +00:00
..
blorp blorp: set min/max viewport depths to -FLT_MAX/FLT_MAX when EXT_depth_range_unrestricted is enabled 2023-12-01 13:23:54 +00:00
ci intel/ci: fix .hasvk-manual-rules 2023-11-27 12:55:18 +00:00
common intel/tools: hang viewer/editor 2023-12-04 14:51:29 +00:00
compiler intel/compiler: Define XE2 compiler enum 2023-12-01 02:36:12 +00:00
dev intel/dev: Add a bit for when the HW can do a indirect draw/dispatch unroll 2023-11-30 17:01:44 +00:00
ds intel/ds: add trace of buffer markers 2023-11-29 01:16:22 +00:00
genxml intel/genxml: Update 3DSTATE_TE for xe2 2023-12-02 02:22:07 +00:00
isl isl: disable MCS compression on R9G9B9E5 2023-11-09 20:20:43 +00:00
nullhw-layer meson: support installation tags 2023-09-11 13:00:45 +00:00
perf intel/perf: fix regex escaping 2023-11-27 11:58:03 +00:00
tools intel/tools: hang viewer/editor 2023-12-04 14:51:29 +00:00
vulkan anv: use 2 different buffers for surfaces/samplers in descriptor sets 2023-12-04 23:06:05 +00:00
vulkan_hasvk hasvk: update symbols that have become aliases for newer ones 2023-12-04 18:06:57 +00:00
meson.build intel: Only build perf if drivers or tools are enabled 2023-08-31 21:53:19 +00:00