Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

render/vulkan: add support for VK_EXT_external_memory_host #3264

Open
emersion opened this issue Oct 18, 2021 · 5 comments
Open

render/vulkan: add support for VK_EXT_external_memory_host #3264

emersion opened this issue Oct 18, 2021 · 5 comments

Comments

@emersion
Copy link
Member

emersion commented Oct 18, 2021

This would allow for non-blocking shm texture uploads.


wlroots has migrated to gitlab.freedesktop.org. This issue has been moved to:

https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3264

@jbeich
Copy link
Contributor

jbeich commented Oct 18, 2021

Needs to be optional due to missing userptr on BSDs, see FreeBSDDesktop/kms-drm#197 (comment) and mesa!13162.

CC @unrelentingtech to check if radv is also affected.

@emersion
Copy link
Member Author

Not all drivers implement the ext anyways, so yeah we'll make it optional.

@valpackett
Copy link
Contributor

@jbeich yes, radv would be affected of course. We really should implement mmu notifiers already…

@ascent12
Copy link
Member

ascent12 commented Nov 1, 2021

This would allow for non-blocking shm texture uploads.

Isn't uploading stuff to the GPU just a normal command submission, that isn't blocking anyway? It just depends how you wait on the fence or whatever.
All I think this extension would allow is potentially skipping a copy of the client's contents into a staging buffer.

@emersion
Copy link
Member Author

emersion commented Nov 1, 2021

This memcpy is blocking:

// write data into staging buffer span

The ext allows Vulkan to asynchronously perform that memcpy, but I think the staging buffer will stay since we need HOST_VISIBLE | HOST_COHERENT?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

5 participants