Commit graph

355 commits

Author SHA1 Message Date
Robert Beckebans
a51833e4ed Applied astyle 2023-07-14 11:35:37 +02:00
Robert Beckebans
047dd46d9e Merge remote-tracking branch 'SRSaunders/clang-warnings-fixes' 2023-07-14 11:30:13 +02:00
Robert Beckebans
e0e77ce6b3 Applied astyle 2023-07-14 09:45:35 +02:00
Robert Beckebans
33615ef541 Merge remote-tracking branch 'SRSaunders/optick-vulkan' 2023-07-14 09:44:55 +02:00
Robert Beckebans
3da97f0e3f Applied astyle 2023-07-14 08:46:32 +02:00
Stephen Saunders
c0e6c7a5dd Fix MSVC warnings for RBDoom3BFG, suppress for some third party source libs (jpeg, png, oggvorbis) 2023-06-23 16:30:48 -04:00
Stephen Saunders
52dd6193bf Replace sprintf() / vsprintf() with idStr::snPrintf() / idStr::vsnPrintf() for buffer security 2023-06-20 12:24:24 -04:00
Stephen Saunders
078eb4e779 Fix SDL window vs. Vulkan swapchain extent errors, align SDL vs. Win32 window handling & error logic 2023-06-09 14:48:36 -04:00
Stephen Saunders
db79692287 Implement Vulkan eMailbox present mode option, perform runtime check for all present modes
(cherry picked from commit 268c057af1aaf59833c52744ee76465c697ebdac)
2023-06-06 11:43:50 -04:00
Stephen Saunders
9ab8c2a4da Init swapChainBufferCount to NUM_FRAME_DATA (all renderers) and clamp to Vulkan surfaceCaps 2023-06-06 11:42:22 -04:00
Stephen Saunders
89ad088ef3 Set r_maxFrameLatency max value constraint to NUM_FRAME_DATA 2023-06-01 01:01:53 -04:00
Stephen Saunders
444b25a1e8 Wait for Vulkan device idle in DestroyDeviceAndSwapChain() to avoid random crashes on exit 2023-06-01 00:53:02 -04:00
Stephen Saunders
85e980421a Change r_maxFrameLatency cvar name and set to default value of 2 frames 2023-05-27 01:40:40 -04:00
Stephen Saunders
9ebe476f4f Remove unnecessary Vulkan cast for m_SwapChain when calling OPTICK_GPU_FLIP() 2023-05-23 14:45:34 -04:00
Stephen Saunders
34332dbeeb Implement m_frameLatencyWaitableObject sync for reduced DX12 frame latency 2023-05-23 08:48:56 -04:00
Stephen Saunders
2b933df6da Enable VSync / Present queue frameID labeling for DX12 2023-05-23 08:24:40 -04:00
Stephen Saunders
6bb8c1feeb Remove unneeded Vulkan extensions: VK_KHR_present_id + macOS-specifics 2023-05-13 10:22:52 -04:00
Stephen Saunders
2d46e47046 Disable DXGI automatic display mode switching for alt-enter borderless fullscreen 2023-05-12 14:43:07 -04:00
Stephen Saunders
0b510de3e9 Update RenderBackend to select OPTICK_GPU_CONTEXT graphics API at runtime 2023-05-12 03:01:11 -04:00
Stephen Saunders
6769126b14 Add Vulkan Present / VSync queue profiling if VK_GOOGLE_display_timing extension available 2023-05-04 22:51:30 -04:00
Stephen Saunders
d9d721a73e Add Optick for Vulkan, remove need for USE_OPTICK_GPU, fix calls to OPTICK_SHUTDOWN() 2023-05-04 22:51:30 -04:00
Robert Beckebans
033282f8d6 Avoid copy constructor in glTF library 2023-04-04 22:36:46 +02:00
Robert Beckebans
75e6fe2a27 Prefer high performance GPUs in laptops with DX12 #746 2023-04-02 12:31:22 +02:00
Robert Beckebans
8c9f79b28f Applied Astyle 2023-03-31 12:28:41 +02:00
Stephen Saunders
7880773f1a Disable Win32 SC_MAXIMIZE for faster borderless fullscreen transitions 2023-03-31 11:54:44 +02:00
Stephen Saunders
acc3038933 Improve SDL desktop window position error handling and sdl_vkimp error reporting 2023-03-31 11:54:44 +02:00
Stephen Saunders
dafed51a79 Simplify VKimp_Init() and remove defunct cvars 2023-03-31 11:54:44 +02:00
Stephen Saunders
b427ec338c Support Borderless Fullscreen and Borderless Window modes for Win32 and SDL platforms 2023-03-31 11:54:44 +02:00
Robert Beckebans
49dc6cee46 Reverted com_smp back to boolean 2023-03-30 19:30:33 +02:00
Stephen Saunders
e8b76ee1ab Give each Vulkan swapchain image (vs frame) its own acquire/present semaphore 2023-03-30 01:07:43 -04:00
Stephen Saunders
3c4cdea02a Define r_mvkSynchronousQueueSubmits cvar to control MoltenVK's queue submit option 2023-03-28 12:15:41 -04:00
Stephen Saunders
59b4555bc9 Optimize macOS frame sync / fps by enabling MoltenVK asynchronous queue submission 2023-03-27 15:51:43 -04:00
Stephen Saunders
98a5d63cdc nvrhi sync option for DX12 supporting NUM_FRAME_DATA = 2 or 3 2023-03-24 13:15:00 -04:00
Stephen Saunders
5968997562 Fix Vulkan Vsync mode and handle NUM_FRAME_DATA = 2 or 3 2023-03-24 11:29:40 -04:00
Stephen Saunders
2faa15bab5 Fix Vsync mode switching to support all modes: 0 (off), 1 (smart), 2 (on) 2023-03-24 10:04:34 -04:00
Robert Beckebans
518af4c257 Enable D3D12 Debug Layer with r_useValidationLayers 2 2023-03-17 19:01:41 +01:00
Robert Beckebans
1c2380e285 Removed obsolete sdl_glimp.cpp 2023-03-11 12:49:44 +01:00
Robert Beckebans
a973403fd7 Removed OpenGL code from win_glimp.cpp 2023-03-10 19:02:59 +01:00
Robert Beckebans
95f9b4de4a Removed more obsolete Vulkan code 2023-03-10 18:49:32 +01:00
Robert Beckebans
5f269a84a6 Merge branch '750-better-vsync' of github.com:RobertBeckebans/RBDOOM-3-BFG into 750-better-vsync 2023-03-07 11:22:52 +01:00
Robert Beckebans
12789bd95e Added basic support for Optick and D3D12 2023-03-07 11:22:46 +01:00
Robert Beckebans
a09273af32 Fixed compile issues on Linux 2023-03-07 09:45:54 +01:00
Robert Beckebans
dc27b0dd40 Fixed merge conflicts and updated copyright notices 2023-03-06 20:06:15 +01:00
Robert Beckebans
9b67e2a91a Merge branch 'sync-changes' into 750-better-vsync 2023-03-06 19:58:14 +01:00
Robert Beckebans
b4b025979d Refactored DeviceManager_DX12 members for better diffing with orig Donut sample 2023-03-06 17:05:43 +01:00
Stephen Saunders
764469ab31 Revert #if USE_OPTICK wrappers 2023-03-05 09:36:44 -05:00
Stephen Saunders
b1c2cdbec8 More conservative frame sync: wait before vs after DX12 / Vulkan present operations 2023-03-04 21:15:32 -05:00
Stephen Saunders
0c217ebbe9 Fix win32 compilation errors when Optick profiling is off 2023-03-04 21:06:08 -05:00
Stephen Saunders
76da1beefd Fix compilation errors when Optick profiling is off 2023-03-04 16:39:43 -05:00
Stephen Saunders
c5aa8afe8a Fix SDL display size / refresh rate changes when already in fullscreen mode 2023-03-04 16:37:02 -05:00
Stephen Saunders
f0c61a3f55 Use command queue sync method vs. device sync for higher performance / frame rate 2023-03-04 16:19:39 -05:00
Robert Beckebans
f4f416bc75 Merge branch 'optick-profiler' 2023-03-03 19:53:24 +01:00
Robert Beckebans
b3e9c27d74 Display all the common different threads in Optick 2023-03-01 16:20:37 +01:00
Robert Beckebans
513674c4bf Added r_graphicsAdapter to select a specific GPU 2023-02-28 22:01:26 +01:00
Robert Beckebans
a441eccfd0 Super basic Optick profiler integration 2023-02-28 18:00:54 +01:00
Robert Beckebans
fc7802e007 Astyle 2023-02-23 09:55:53 +01:00
Stephen Saunders
1af7a289d5 Align permitted SDL monitor refresh rates with Windows 2023-02-23 01:48:30 -05:00
Robert Beckebans
0a1162aea0 Detect displays that only support 144, 165 and 240 Hz 2023-02-22 17:47:21 +01:00
Robert Beckebans
c1fdd0cffb Fixed SSAO flickering when TAA is off #744 2023-02-22 09:48:00 +01:00
Stephen Saunders
2a0341df5f Enable shaderStorageImageReadWithoutFormat device feature for new SSAO compute shader 2023-02-19 02:25:16 -05:00
Stephen Saunders
8c2cae0458 Define r_vmaUseForBufferMemory cvar to control if VMA is used for buffer memory allocation 2023-02-17 00:22:58 -05:00
Stephen Saunders
658521bd22 Fix PCH with VMA allocator for all platforms: Win32, Linux, macOS 2023-02-16 20:22:25 -05:00
Stephen Saunders
3029b80486 Fix posix pthread_yield and readdir_r deprecations on linux 2023-02-16 00:06:43 -05:00
Stephen Saunders
8ac44895e1 Fix PCH build failures (on linux) when USE_VMA allocator option enabled 2023-02-15 23:00:50 -05:00
Stephen Saunders
421160087d Integrate the AMD Vma allocator for images and buffer objects 2023-02-13 19:06:41 -05:00
Robert Beckebans
6f89d31d19 Applied astyle 2023-01-18 09:55:03 +01:00
Robert Beckebans
7a4c56e105 Merge remote-tracking branch 'SRSaunders/basepath-sdl-fixes' 2023-01-18 09:48:04 +01:00
Stephen Saunders
2565b1f58f Generalize basepath search logic for single-config dev builds on linux/macOS when using make or ninja 2023-01-14 01:37:49 -05:00
Robert Beckebans
eb017e40c5 Cleanup 2023-01-13 14:43:09 +01:00
Stephen Saunders
2d1945044a Create macOS app bundle for Xcode release / universal builds, add macOS app icon, update README 2023-01-12 14:46:36 -05:00
Stephen Saunders
502522826a Minor consistency change for USE_VK define in DeviceManager.h 2023-01-09 13:41:23 -05:00
Stephen Saunders
5137637126 Filter SDL video modes same as on Win32, fix SDL window position drift when exiting fullscreen 2023-01-08 00:25:05 -05:00
Stephen Saunders
1c4883354b Fix linux/macOS CreateOSPath() regression by eliminating path-relative references in fs_basepath 2023-01-07 22:44:42 -05:00
Stephen Saunders
e7b681a06e Build-time perf improvement for PCH, c_str() fix in idCameraAnim::gltfLoadAnim() 2022-12-24 14:10:55 -05:00
Robert Beckebans
407086a603 Astyle 2022-12-19 12:40:45 +01:00
Stephen Saunders
308892db87 Change DeviceManager_VK Vulkan API calls to NVRHI API, fix vulkan dll unloading bug 2022-12-16 13:42:12 -05:00
Stephen Saunders
591d9d71a7 Clean up macOS cmake build scripts and handle macOS makefile build path within Sys_DefaultBasePath() 2022-12-14 12:50:05 -05:00
Stephen Saunders
cd2bb986c2 Handle macOS / linux differences for build path option within Sys_DefaultBasePath() 2022-12-14 01:30:48 -05:00
Stephen Saunders
7f37eccf61 Extend Sys_DefaultBasePath() to check IDE build path for linux and macOS 2022-12-13 21:28:26 -05:00
Stephen Saunders
55a9950dd8 Support USE_MoltenVK cmake option for macOS NVRHI builds, update xcode cmake scripts 2022-12-12 18:13:55 -05:00
Robert Beckebans
a94f67adaa Point to latest RB/nvrhi/main 2022-12-06 23:43:56 +01:00
Robert Beckebans
3a3af32ddb Replaced std::min/max with Min/Max 2022-11-19 16:46:21 +01:00
Robert Beckebans
8a821c3a7a Astyle 2022-11-18 16:47:29 +01:00
Stephen Saunders
96347cab74 Minor defensive #ifdef change in sdl_vkimp for SetScreenParmsWindowed() - handle non-macOS / non-linux case 2022-11-18 10:30:08 -05:00
Stephen Saunders
afacd8014c Improve timer stats, get / set displayFrequency, implement Vulkan vsync mode 1, fix DX12 vsync mode 0 for fullscreen 2022-11-17 23:42:06 -05:00
Stephen Saunders
7a7571f88a Fix window resize/fullscreen handling and make consistent between DX12 and Vulkan (Windows & SDL) 2022-11-11 21:51:31 -05:00
Stephen Saunders
f5745b4ab6 Support window resize and fullscreen changes on Windows and Linux without validation errors 2022-11-10 14:56:18 -05:00
Stephen Saunders
f6e5571d39 Support image depth/stencil format D32S8 when D24S8 not available (e.g. Vulkan on AMD GPUs) 2022-11-10 14:50:09 -05:00
Stephen Saunders
80c56e573d Fix compile errors: DeviceManager.h include path for DX12, sync2 structure initialization typo for Vulkan 2022-11-10 12:19:54 -05:00
Stephen Saunders
f756ef26c2 Move DeviceManager_<API>.cpp files to neo/sys directory for single stream common maintenance 2022-11-08 16:33:29 -05:00
Stephen Saunders
7703d4221d Vulkan timer query fixes, support in-game display mode / window size / vsync changes 2022-11-08 15:27:09 -05:00
Stephen Saunders
1adedfd3fc Vulkan volatile buffer and validation error fixes (sync2, fillModeNonSolid, MoltenVK imageViewFormatSwizzle) 2022-11-08 15:21:50 -05:00
Robert Beckebans
600e50ad50 Astyle 2022-11-03 18:54:38 +01:00
Stephen Saunders
9734df5f01 Fix NVRHI device shutdown for SDL and do additional resource cleanup on exit 2022-10-28 14:11:10 -04:00
Robert Beckebans
bdea96cc2a Astyle 2022-10-25 19:11:22 +02:00
Stephen Saunders
9eef374819 Update DeviceManager_VK.cpp for Windows and SDL (linux + macOS) cross-platform portability 2022-10-23 23:31:12 -04:00
Stephen Saunders
2ffb89c80e Fix builtin/VR case sensitivity on linux, fix r_useValidationsLayers on macOS when USE_MoltenVK set 2022-10-23 08:45:53 -04:00
Stephen Saunders
86bcffdd00 Build / Source changes for NVRHI on SDL, source cleanup for clang C++17 std, initial macOS NVRHI implementation 2022-10-21 23:46:42 -04:00
Robert Beckebans
c55467ef33 Fixed several Vulkan errors 2022-09-22 20:08:07 +02:00
Robert Beckebans
1d456a9026 Probably fixed Vulkan swapchain problem 2022-09-22 18:34:07 +02:00