mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-18 22:00:25 +01:00
Currently driver side heap alloc obj ptr is used as object id, which is used on the renderer side for actual vk obj mapping. However, this adds an implicit dependency between any driver obj destroy/free and new obj create/allocate because the heap obj freed up can be immediately reallocated out. With venus moving to multi-ring, the ordering between asynchronous obj destroy/free and new obj create/allocate has to be guaranteed via driver side non-primary ring submission always waiting for primary ring idle. This can defeat the purpose of multi-ring in certain scenarios. So this change adds a way to assign unique id to object. Even before multi-ring, the unique object id can make device and queue object alloc/free more robust without hidden ordering requirements. This also fixes some oom cts which can intentionally fail the submission of an object destroy (renderer side obj is still present) while the driver side freed object ptr being reused for another object creating, causing object id reuse at renderer side object table. Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27083> |
||
|---|---|---|
| .. | ||
| ci | ||
| vdrm | ||
| venus-protocol | ||
| virtio-gpu | ||
| vtest | ||
| vulkan | ||
| meson.build | ||