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

How to submit a RawCommandBuffer? #2528

Open
bits0rcerer opened this issue May 4, 2024 · 1 comment
Open

How to submit a RawCommandBuffer? #2528

bits0rcerer opened this issue May 4, 2024 · 1 comment

Comments

@bits0rcerer
Copy link

bits0rcerer commented May 4, 2024

I would like to synchronize between compute dispatch calls but since I dont use descriptors (https://docs.vulkan.org/samples/latest/samples/extensions/buffer_device_address/README.html) vulkano cannot do the sync for me (I assume). I found the RawRecordingCommandBuffer where I can do my own sync. But now I dont know how to submit that RawCommandBuffer to a queue.

Is there a way to submit the RawCommandBuffer?

Other workarounds I can think of are:

  • multiple CommandBuffers with fences in between
  • use a small dummy descriptor

I would like to keep using vulkano and dodge ash but both workarounds feel suboptimal. Any advice?

@marc0246
Copy link
Contributor

marc0246 commented May 7, 2024

You're right that it's not possible. Reason being that there are still pre-historic parts of the codebase that are in the way. I'm currently working on rewriting all synchronization to a task graph instead, which would include making the command buffer submission use the raw command buffer only. However, with the task graph, you wouldn't need to do that. You could just specify the range of buffer that is written by a task and not touch anything of this sort. If you must submit a RawCommandBuffer you still can, by using device.fns().v1_0.queue_submit together with the VulkanObject::handle method of vulkano's Queue, RawCommandBuffer, Semaphore and Fence. It's not that much different than if this was supported natively.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants