Closed SRSaunders closed 2 months ago
I hope to get to this, this weekend.
nvrhi recently updated their included Vulkan-Headers submodule to version 277, which unfortunately breaks the RBDoom3BFG build, plus any other build that uses cmake's find_package(Vulkan)
and includes nvrhi. I have been working with @apanteleev on a fix (see https://github.com/NVIDIAGameWorks/nvrhi/issues/45). This is not completely resolved yet, but in the mean time you can use the attached patch file to update nvrhi's CMakeLists.txt file to temporarily correct the issue: nvrhi-cmakelists.patch
The good thing is that once resolved, it will finally correct the long standing issue with precompiled header version conflicts with vulkan.hpp includes. This means that DeviceManager_VK.cpp will no longer need special handling re precompiled headers for all platforms. UPDATE: I have gone ahead and pushed this change here since the remaining issue with nvrhi's use of Vulkan-Headers v277 is somewhat independent. Note the attached CMakeLists patch file is still required until such time as nVidia fixes the conflict with find_package(Vulkan)
.
Thanks to @apanteleev the Vulkan-Headers issue is now resolved and no workaround patch is needed when using the latest main at nvrhi.
Oh well I rebased RobertBeckebans/nvrhi based on the newest Nvidia/nvrhi and merged your PR into master.
Can you rebase your macOS specific changes into a new PR for RobertBeckebans/nvrhi ?
Thanks for doing the merge. Some of my changes were already merged into nvrhi and ShaderMake main with nVidia - I have closed those PRs. However, I would appreciate you merging the remaining rebased PRs at: https://github.com/RobertBeckebans/nvrhi/pulls
https://github.com/RobertBeckebans/nvrhi/pull/5 is generic, while https://github.com/RobertBeckebans/nvrhi/pull/6 and https://github.com/RobertBeckebans/nvrhi/pull/7 have macOS stuff.
I just wanted to put this up before end of day for @RobertBeckebans. I had to merge your latest changes to master.
This addresses the RBDoom3BFG project part of #853.
The complete solution requires:
git submodule update --init --recursive
to make sure nvrhi submodule dependencies are updatedgit submodule add https://github.com/RobertBeckebans/ShaderMake.git neo/extern/ShaderMake
This should be enough
for Windows. For macOS (possibly linux too), I have some additional commits required to address clang build errors for the nvrhi and ShaderMake projects(these clang changes are now merged into nVidia's nvrhi and ShaderMake main branches).I can push these if and when you decide to proceed, and once your nvrhi and ShaderMake repos can accept these PRs.On the performance side I don't see much change. DX12 and Vulkan for Windows, Vulkan for linux and Vulkan for macOS all benchmark out to about the same frame rates before and after the rebase.