Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please support VK_EXT_host_image_copy #3516

Open
ShabbyX opened this issue Jan 7, 2025 · 3 comments
Open

Please support VK_EXT_host_image_copy #3516

ShabbyX opened this issue Jan 7, 2025 · 3 comments
Labels
Feature An improvement or feature Unresolved Waiting for a fix or implementation

Comments

@ShabbyX
Copy link
Contributor

ShabbyX commented Jan 7, 2025

Description of Feature

The VK_EXT_host_image_copy extension is promoted and is now core in Vulkan 1.4. While the feature is partially required (i.e. either hostImageCopy is required, or a dedicated transfer queue), it is expected to be practically ubiquitous on UMA devices. Android requires this feature for Android 16+.

It's a pretty significant feature for texture data stream on UMA devices, and it would be great to have support for it in RenderDoc.

Environment

  • Graphics API: Vulkan
@ShabbyX
Copy link
Contributor Author

ShabbyX commented Jan 7, 2025

@baldurk I'd be happy to take a stab at this, provided some pointers. In particular, the functions in this extension execute on the host, not sure how renderdoc deals with that (everything I've done so far was in command buffers)

@baldurk
Copy link
Owner

baldurk commented Jan 7, 2025

Yes if you want to look into it feel free. Supporting this extension is not a priority for me so I don't know when I would implement it myself.

I'm not quite sure what you mean about how the functions don't execute in a command buffer. That doesn't change much in the implementation - it mostly makes things simpler as it means no need to track whether or not to replay due to partial command buffer replay etc. They can "just" be serialised directly.

I haven't looked at the extension but I assume it works similarly to a Map/Unmap with maybe some extra info? So I would recommend looking at how those functions are implemented - some of it may not apply due to those needing to check for changes assuming this extension doesn't also have a similar map/unmap system.

@baldurk baldurk added Feature An improvement or feature Unresolved Waiting for a fix or implementation labels Jan 7, 2025
@ShabbyX
Copy link
Contributor Author

ShabbyX commented Jan 7, 2025

Great thanks, sure I'll take a look. Conceptually, capturing these commands would be similar to capturing some imaginary vkMemcpy(dst, src, count), where src memory must be captured according to count, but not dst memory.

ShabbyX added a commit to ShabbyX/renderdoc that referenced this issue Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature An improvement or feature Unresolved Waiting for a fix or implementation
Projects
None yet
Development

No branches or pull requests

2 participants