-
Notifications
You must be signed in to change notification settings - Fork 158
Added new sample to demonstrate OpenCL-Vulkan interop with ocean surface simulation #110
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
base: main
Are you sure you want to change the base?
Conversation
main subject of this sample is ocean surface simulation
bashbaug
left a comment
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.
This is awesome! I love this! Nice work!
I'll do a more thorough review a little later, but here are a few minor issues I found running this on our implementation, and a few high-level questions:
-
This sample uses glfw for its windowing library. I'm OK with this personally, and it's used for other Vulkan samples, but the OpenGL samples in this SDK currently use SFML instead. If we're going to use glfw for the Vulkan samples, should we consider adding some CMake smarts for it? Getting glfw working on Windows especially can be challenging.
-
Would it be possible to add a framerate counter or similar, to quantify the benefit of using external memory vs. copying via the host?
Thanks!
Thanks :)
I could use SFML but in order to support vulkan window that would require newer version than requested 2.5.1. Update: I just added GLFW related corrections to cmake files but I am not sure if that satisfies all project requirement, it builds at my machine, I will ask mobica fellows for verification as well.
Indeed that would be useful, I will check it Update: added tracking of FPS in a title bar of main window which could be toggled with 'e' key |
-added support of FPS in title bar of main window -corrected reading shaders/kernels with cl::util::read_exe_relative_text_file -complemented readme
-SFML version 2.6 required
To avoid multiplication of dependencies I replaced glfw with SFML. It requires minimum version 2.6 (earlier versions do not support vulkan surface) |
-extended VkDescriptorPoolSize with second image stage -removed obsolete layer settings for vkCreateDevice -misprint fixes
-fixed the problem related to order of cleanup -fixed the bug with VK_ERROR_LOST_DEVICE at the finish -optimize the way of updating uniform buffer
The sample follow general steps (with multiple optimizations) described in the publication: Realtime GPGPU FFT ocean water simulation
Main focus of the sample is to demonstrate how to share compute/render resources between
OpenCLandVulkanto simulate an ocean surface.