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
synchronousQueueSubmits can not be set to true without rebuilding MoltenVK #217
Comments
@zeux frankly, I don't understand why you'd ever want to profile with |
@kvark Of course, this isn't really how Vulkan/Metal are supposed to be driven - if you have several command recording threads, with default value of |
That puzzles me no less :)
Isn't it using the very same libdispatch queue anyway? So a subsequent submission would still not be able to be done in parallel with the last one, no matter what thread it's trying to execute on.
That's an interesting fact, however I don't think the analogy holds here given the separate recording from submission in Vulkan. |
This doesn’t provide parallelism between submissions but it provides parallelism between recording and submission. The latter has very significant cost in MVK. There are non-trivial details wrt linearizing the command flow - I don’t know OTOH how possible it is to do immediate recording that is done when the recording ends - not when submission is performed... The driver threading I mentioned is the same, really. DX11 deferred contexts have a separation between recording and submission, but recording typically just buffers commands and submission flushes them to the driver thread which is exactly what MVK is doing. |
@zeux Ah! Good catch! Will fix. |
BTW...another purpose of the dispatch queue is to support the Vulkan concept of assigning a queue submission priority. |
Fixed in PR #219. Please retest and close. |
While it's possible to set the device configuration after device is created, the value of
synchronousQueueSubmits
is assigned in MVKDevice ctor and immediately read in MVKQueue ctor since device creates all the queues. This value is then "cached" (by initializing_execQueue
) and is impossible to set later.Profiling MoltenVK would be easier if
synchronousQueueSubmits
was possible to set after device is created.The text was updated successfully, but these errors were encountered: