-
Notifications
You must be signed in to change notification settings - Fork 652
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
Unify class VulkanSample and HPPVulkanSample. #910
Conversation
2f347ab
to
051056e
Compare
e491abd
to
caa7e1f
Compare
5049451
to
265a888
Compare
Somehow other peoples changes has sneaked into this one. Maybe due to some rebasing? |
e6bc330
to
5c17bb5
Compare
@asuessenbach as it has been a few days it likely wont be achievable with git reflog. Something you might try is
I tend to be able to fix these changes locally if it happens to me but its quite hard to recall the precise steps i normally take. The steps above may not work for you but its something to try at least |
I will take a more thorough review once the rebase issues are sorted. I reviewed Im happy with the overall interface. I would have suggested something like |
It seems, all the alien changes have gone with my latest force-push. So feel free to review in more depth ;) |
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.
In general very happy with the change. Following this pattern in the future should let us condense a lot of the duplicate interfaces. In time this should help simplify things again but also mean that we transition to the C++ api seamlessly.
Will approve when ive tested locally. Hopefully tomorrow! If i don't end up reviewing soon please @ me
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.
Tested this on Windows 11 with an RTX 4070 and on Android 13 with a Google Pixel 4a (build from Windows 11). Compiles and runs fine on both.
I'm not much of a C+++ expert, but this looks like a nice solution and a step in the right direction and gets a thumbs up from me :)
Thank you very much for this PR!
third_party/vulkan
Outdated
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.
was this updated intentionally?
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.
Yes, that was intentional.
For some unknown reason, one of the compiler in the CI complained about some template magic in Vulkan-Hpp. Updating that to a newer version resolved that.
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! Thanks for all the work on this
2805da5
Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Unify class VulkanSample and HPPVulkanSample. Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Fix typo. Adjust hpp_timestamp_queries and oit_depth_peeling. Fix color_write_enable. Fix validation errors in timeline_semaphores sample (KhronosGroup#927) * Fix validation errors in timeline_semaphores sample The command buffer was being implicitly reset, but wasn't resettable. * Review feedback addressed Used a much simpler approach to resolve the error Allow explicit skips in batch mode (KhronosGroup#914) * Allow explicit skips in batch mode * Fix bug in CLI11 wrapper that inhibits multi-value flag parsing Unify class VulkanSample and HPPVulkanSample. Unify class VulkanSample and HPPVulkanSample. Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Introduce enum class vkb::BindingType to select between C- and C++-bindings of vulkan; replaces the boolean template parameter of VulkanSample. Adjustments after rebasing. Update vulkan Adjustments due to rebasing. Unify class VulkanSample and HPPVulkanSample. Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Unify class VulkanSample and HPPVulkanSample. Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Fix typo. Adjust hpp_timestamp_queries and oit_depth_peeling. Fix color_write_enable. Fix validation errors in timeline_semaphores sample (KhronosGroup#927) * Fix validation errors in timeline_semaphores sample The command buffer was being implicitly reset, but wasn't resettable. * Review feedback addressed Used a much simpler approach to resolve the error Allow explicit skips in batch mode (KhronosGroup#914) * Allow explicit skips in batch mode * Fix bug in CLI11 wrapper that inhibits multi-value flag parsing Unify class VulkanSample and HPPVulkanSample. Unify class VulkanSample and HPPVulkanSample. Introduce type aliases on conditional types; refactor dual interface functions to single ones using those conditional types. Plus slightly adjust a few functions in VulkanSample for consistency. Fix indentation in CMakeLists.txt; simplify body of VulkanSample::create_instance; fix device usage in profiles sample Introduce Parent for class VulkanSample. Introduce enum class vkb::BindingType to select between C- and C++-bindings of vulkan; replaces the boolean template parameter of VulkanSample. Adjustments after rebasing. Update vulkan
Merging per agreement on the call - now that conflicts are resolved.. |
Description
First step to unifying C- and C++-bindings of vulkan in the framework: Unify the central classes
VulkanSample
andHPPVulkanSample
.Conceptually does the following:
VulkanSample
andHPPVulkanSample
by a templated classtemplate <bool CppBindings> VulkanSample
.CppBindings
, it provides some interface functions using the C-bindings data types or the C++-bindings data types.Device
andHPPDevice
, ...) still exist and their usage in this class' interface are also controlled by the bool template parameterCppBindings
.Build tested on Win10 with VS2022. Run tested on Win10 with NVidia GPU.
General Checklist:
Please ensure the following points are checked:
Note: The Samples CI runs a number of checks including:
Sample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist: