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
[gui] GGUI 2/n: Add optional graphics queue, compute queue, and surface to EmbeddedVulkanDevice #2648
Conversation
Can you somehow incorporate the debug swapchain into this? We don't need a debug swapchain / window / surface if we have the Vulkan GUI. |
Am I correct to understand that what's needed is to just always create a swapcahin and a surface when |
that sounds good |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great!
Update: since taichi now supports dynamic field creation, I tried to replace the geometry shader with a taichi kernel that generate normals. This works and is pretty fast. So I will disable geometry shaders. And regarding debug swap chain: I will do that in a future PR, after the GGUI related work is complete. |
Yes, the graphics bit is only for debugging right now. Async compute queue
would be more ideal (only if GUI is somehow made to be async). If we sync
everything then there's no benefit of using the compute queue. This could
be quite hard to design tho
…On Mon, Aug 9, 2021, 1:12 AM Dunfan Lu ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In taichi/backends/vulkan/vulkan_api.h
<#2648 (comment)>:
> @@ -41,6 +44,10 @@ struct VulkanQueueFamilyIndices {
bool is_complete() const {
return compute_family.has_value();
}
+
+ bool is_complete_for_ui() {
Later as in after we only set VK_QUEUE_COMPUTE_BIT for our compute queue?
IIUC, the reason why we currently set both VK_QUEUE_COMPUTE_BIT and
VK_QUEUE_GRAPHICS_BIT is that we need them for debugging? @bobcao3
<https://github.com/bobcao3>
If thats the case, after GGUI, I can create a separate PR that
1. removes the debug swapchain
2. only use VK_QUEUE_COMPUTE_BIT for the compute queue
3. fix this nits.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2648 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACY7Q5CM6FHJXY22ZR6BCF3T36EVXANCNFSM5BZKEUVQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email>
.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a TODO on the wide line thing and have alternative ways to do that, maybe like in SVG renderers that uses a rectangle. (Lots of devices don't support wide lines)
Related issue = #2646
This is the 2nd of a series of PRs that adds a GPU-based GUI to taichi. This PR adds an optional graphics queue, compute queue, and surface to EmbeddedVulkanDevice.