mesa/src
Iago Toral Quiroga bec3c83e19 v3dv: implement VK_KHR_buffer_device_address
This feature allows shaders to use pointers to buffers which may
not be bound via descriptor sets. Access to these buffers is done
via global intrinsics.

Because the buffers are not accessed through descriptor sets, any
live buffer flagged with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR
can be accessed by any shader using global intrinsics, so the driver
needs to make sure all these buffers are mapped by the kernel when
it submits the job for execution.

We handle this by tracking if any draw call or compute dispatch in
a job uses a pipeline that has any such shaders. If so, the job is
flagged as using buffer device address and the kernel submission
for that job will add all live BOs bound to buffers flagged with the
buffer device address usage flag.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17275>
2022-07-19 09:47:34 +02:00
..
amd vulkan: Common vk_format_get_component_bits 2022-07-18 22:14:06 +00:00
android_stub
asahi panfrost,asahi: Use util_sign_extend for unpacking 2022-07-06 11:23:18 +00:00
broadcom v3dv: implement VK_KHR_buffer_device_address 2022-07-19 09:47:34 +02:00
c11 c11: reinstate the original license and authorship 2022-06-27 11:46:22 +00:00
compiler nir: add nir_address_format_2x32bit_global 2022-07-19 09:47:34 +02:00
drm-shim drm-shim: Cleanup on device file close 2022-05-02 19:50:33 +00:00
egl kopper: Implement {EGL,GLX}_EXT_buffer_age 2022-07-18 19:31:29 +00:00
etnaviv etnaviv: drm: rename etna_drm_table_lock 2022-07-03 17:41:55 +00:00
freedreno freedreno/ir3: Enable core NIR's 16-bit ALU optimizations. 2022-07-18 22:41:18 +00:00
gallium intel/fs: Set NonPerspectiveBarycentricEnable when the interpolator needs it. 2022-07-19 01:25:47 +00:00
gbm
getopt
glx build(glx): Fix build by adding missing deps 2022-07-18 21:12:26 +00:00
gtest gtest: Fix maybe-uninitialized compiler warning 2022-06-29 21:02:18 +00:00
hgl
imagination vulkan: Common vk_format_get_component_bits 2022-07-18 22:14:06 +00:00
imgui
intel anv: move restart index to gfx state 2022-07-19 02:36:09 +00:00
loader loader: Just include driconf.h instead of redefining its values. 2022-07-12 21:57:23 +00:00
mapi Fix static glapi on Windows 2022-07-14 20:01:22 +00:00
mesa mesa/st: add implicit zeroing of clipdistance array 2022-07-18 20:33:11 +00:00
microsoft dzn: expose VK_KHR_driver_properties 2022-07-18 17:10:52 +02:00
nouveau nouveau: Drop C++03 compat code 2022-07-05 13:23:12 +00:00
panfrost panfrost: Use early-ZS helpers 2022-07-13 21:05:35 +00:00
tool meson/pps: Check if libdrm exists to compile pps 2022-06-22 11:52:36 +03:00
util util: Add a Win32 futex impl 2022-07-15 21:31:51 +00:00
virtio venus: filter out VK_EXT_physical_device_drm on the driver side 2022-07-18 19:23:53 +00:00
vulkan Revert "vulkan: Detect pNext chain loops in vk_foreach_struct()" 2022-07-18 23:48:59 -05:00
meson.build meson: Use cc.get_argument_syntax instead cc.get_id when possible. 2022-06-16 19:59:58 +00:00