mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-25 12:38:11 +02:00
The old interfaces added back in clover's time were modeled after a very bindful resource model. However SVM (shared virtual memory) requires us to be way more flexible. The new interfaces allow frontends to create a cut-out in the GPU's vm and to assign addresses themselves. This gives us the following benefits: - The frontend is empowered to synchronize resource addresses between several devices. cl_mem objects in OpenCL span across a set of multiple devices and SVM requires them to have the same VMA across all of them. - Coarse grain SVM can be implemented without bothering drivers too much as the frontend can be responsible to make sure a host allocation with a specific VMA matches a GPU allocation with the identical VMA. - Support for Global variables in the CrossWorkgroup storage class Initializers. Those can depend on addresses of CrossWorkgroup memory, if the frontend can just assign a VMA, this address can be passed as a constant to spirv_to_nir and folded without the need to support spilling of constant initializers. Drivers not able to give us a vm-cutout are left with implementing cl_ext_buffer_device_address instead. Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32942> |
||
|---|---|---|
| .. | ||
| amd | ||
| android_stub | ||
| asahi | ||
| broadcom | ||
| c11 | ||
| compiler | ||
| drm-shim | ||
| egl | ||
| etnaviv | ||
| freedreno | ||
| gallium | ||
| gbm | ||
| getopt | ||
| gfxstream | ||
| glx | ||
| gtest | ||
| imagination | ||
| imgui | ||
| intel | ||
| loader | ||
| mapi | ||
| mesa | ||
| microsoft | ||
| nouveau | ||
| panfrost | ||
| tool | ||
| util | ||
| virtio | ||
| vulkan | ||
| x11 | ||
| .clang-format | ||
| meson.build | ||