Commit graph

1660 commits

Author SHA1 Message Date
Stephen Saunders
46fc1b8b7c Add NVIDIA copyright notices to borrowed code in BufferObject_NVRHI.cpp and Image_NVRHI.cpp 2023-02-16 00:39:44 -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
ea2982c445 Improve Vulkan SDK component detection (dxc & MoltenVK) using FindVulkan.cmake module 2023-02-15 23:36:18 -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
86a6e486d5 Set NVRHI upload buffer size to avoid Vulkan staging buffer fragmentation
(cherry picked from commit 3a55e9701a6f4ad5297d41e3486aeb4075972383)
2023-02-14 01:11:43 -05:00
Stephen Saunders
73df924ee2 Add VulkanMemoryAllocator (vma) to the libs directory 2023-02-14 01:05:23 -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
a12db413fc Added missing TAA pixeloffset to SSAO pass 2023-02-11 18:08:00 +01:00
Robert Beckebans
3e201f63be Switched back to old projection matrix for less warping 2023-02-11 16:36:46 +01:00
Robert Beckebans
01c2db8bbd Fixed pixelNormal in ssao_compute.cs.hlsl 2023-02-11 15:41:45 +01:00
Robert Beckebans
c4748f584f Merge branch '649-donut-ssao' 2023-02-11 14:32:08 +01:00
Robert Beckebans
b4d2b03079 Removed old obsolete SSAO minify shader 2023-02-11 14:31:26 +01:00
Robert Beckebans
5de9dd9b68 Donut SSAO is kind of working 2023-02-11 14:24:59 +01:00
Robert Beckebans
2ca5a759c9 Merge branch '649-donut-ssao' 2023-02-08 09:24:39 +01:00
Robert Beckebans
9d45866a1a Simplified old SSAO backend code 2023-02-08 09:24:23 +01:00
Robert Beckebans
1d1ad26adf More SSAO experiments 2023-02-07 21:07:29 +01:00
Robert Beckebans
846cf265fb Added code for debugging Donut's SSAO pass 2023-02-07 15:06:40 +01:00
Stephen Saunders
050c766f9d Optimization: Skip ssao compute step for 2d gui overlay views 2023-02-04 01:08:46 -05:00
Stephen Saunders
0f869604c9 Run new ssao pass on 3d + 2d overlay views to avoid flickering, skip for 2d-only views 2023-02-03 17:20:25 -05:00
Stephen Saunders
c7ad3f2801 Add required render matrices to SsaoConstants and init them for render pass 2023-01-30 16:00:51 -05:00
Robert Beckebans
defe317c50 Applied MD3 crashfix by Daniel Gibson 2023-01-30 16:28:00 +01:00
Stephen Saunders
6d83ad0f8d Include modelMatrix in new SSAO compute shader constant buffer 2023-01-29 23:38:40 -05:00
Stephen Saunders
866244ffdd Fix AmbientOcclusion_blur.ps.hlsl shader for legacy r_ssaoFiltering option 2023-01-29 02:01:15 -05:00
Stephen Saunders
a466a7a4ad Restore bounded array in mipmapgen.cs.hlsl for DXIL UAV binding 2023-01-25 21:08:25 -05:00
Stephen Saunders
8fe25bf987 Fix legacy SSAO for NVRHI Vulkan and enable SSAO compute shader alternative 2023-01-25 14:23:14 -05:00
Stephen Saunders
0c7f8be44e Restore rm_precomp_header custom target for makefile / ninja command line builds 2023-01-25 12:42:42 -05:00
Stephen Saunders
ace8829cda Fix ImGui include path handling to be consistent with other external libs 2023-01-25 12:27:32 -05:00
Robert Beckebans
dfcbcc2a0a Ran astyle 2023-01-18 10:16:21 +01:00
Robert Beckebans
0a983d32ad Merge remote-tracking branch 'SRSaunders/cinematic-updates' 2023-01-18 10:04:00 +01:00
Robert Beckebans
6f89d31d19 Applied astyle 2023-01-18 09:55:03 +01:00
Robert Beckebans
68144334b6 Reverted shader related changes in CMakeLists.txt 2023-01-18 09:54:36 +01:00
Robert Beckebans
7a4c56e105 Merge remote-tracking branch 'SRSaunders/basepath-sdl-fixes' 2023-01-18 09:48:04 +01:00
Stephen Saunders
d62e8a1e55 Disable precompiled headers for the Ninja Multi-Config generator on linux & macOS 2023-01-16 11:28:20 -05: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
c4a2f52fbf Simplify precompiled.h.gch cleanup for linux/macOS using post-build custom command 2023-01-12 15:40:35 -05:00
Stephen Saunders
245d06c4d6 Comment out redundant Shaders source groups in main CMakeLists, already handled inside Shaders target 2023-01-12 15:31:18 -05: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
26edabe752 Rename / update macOS cmake build scripts, update README to reflect new names 2023-01-08 00:30:02 -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
7485a123f6 Fix idParser::Directive_include() to properly handle full os path as fetched by idLexer::GetFileName() 2023-01-07 22:53:11 -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
1340adb820 Restore support for FFMPEG legacy channel_layout & channels fields, remove self-assignment in idSoundDecoder_Vorbis::Open()
(cherry picked from commit 22f9e5cc0e42a8d101f628df461ee7649acb3e01)
2022-12-26 12:20:50 -05:00
Stephen Saunders
21b021c3c0 Update FFMPEG deprecated calls to use supported ch_layout structure
(cherry picked from commit c6fca09b0e2e24735ca808e75e90f6d03e4d16e5)
2022-12-26 12:20:42 -05:00
Stephen Saunders
f1b0f2ec00 R_TestVideo_f command fixes and Cinematics startup fix for NVRHI (BinkDec green frame)
(cherry picked from commit 846fcf14c723391c6e6b311eaaeb31926b1e65d1)
2022-12-26 12:20:25 -05:00
Stephen Saunders
600f4de937 Merge branch 'master' of https://github.com/RobertBeckebans/RBDOOM-3-BFG into cinematic-updates 2022-12-26 12:18:55 -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
21947e8f08 Merge branch 'master' into 635-nvrhi5 2022-12-22 16:49:18 +01:00
Robert Beckebans
5eaa7801db Merge fixes, default models scene remains Scene 2022-12-22 16:46:29 +01:00
HarrievG
defc18ddaa [!] Fixed loading animations when the armatures option is not used.. 2022-12-22 15:27:16 +01:00
HarrievG
0a48ec16d4 [!] Fixes loading animations from different GLTF files
[!] Fixes loading file exclusive skinned models when multiple scenes are present and scene with model is not the default scene.
2022-12-22 15:27:16 +01:00
HarrievG
8496f9bf30 [!] Fixes regenerating bMD5Anim from GLTF animation when source is newer than binary 2022-12-22 15:27:16 +01:00
HarrievG
e5ec631caf [+] Allowing binding of asset library instances in gltf scenes. 2022-12-22 15:27:16 +01:00
HarrievG
1cd57dce1d [!] dont crash when trying to load an animation from and GLB does not match last loaded model glb 2022-12-22 15:27:15 +01:00
HarrievG
0e42fbba93 [!] Root motion transfer fixes. 2022-12-22 15:27:15 +01:00
HarrievG
34d616b08c GLTF model import improvements
- Added rename node option
- Added option for root motion transferal
- Fixed re-orient option parsing
- Fixed last(?) bug in orientation frame conversion
2022-12-22 15:27:15 +01:00
HarrievG
0829898cb4 [!] Fixed loading animated file exclusive models
[!] Fixed reloading of models with a commandline (anims: todo)
2022-12-22 15:27:15 +01:00
HarrievG
e97584642a [!] Make missing joints on player model non-fatal 2022-12-22 15:27:15 +01:00
HarrievG
250c06bfc0 [!] Make checkmodelhierachy non-fatal 2022-12-22 15:27:14 +01:00
HarrievG
8c18d58c49 [+] Added -reorient option to gltf model import 2022-12-22 15:27:14 +01:00
HarrievG
0cf9dac1ef A-Style
# Conflicts:
#	neo/d3xp/Camera.cpp
#	neo/d3xp/Camera.h
2022-12-22 15:27:14 +01:00
HarrievG
31d79dfd36 [~] idAssert -> assert
[+] addOrigin model import option

# Conflicts:
#	neo/renderer/Model_gltf.cpp
2022-12-22 15:25:01 +01:00
HarrievG
bba7ddd665 [!] Merge error fixes
# Conflicts:
#	neo/idlib/MapFile_gltf.cpp
#	neo/renderer/Model_gltf.cpp
2022-12-22 15:22:30 +01:00
Robert Beckebans
407086a603 Astyle 2022-12-19 12:40:45 +01:00
Robert Beckebans
91a33de38e Deleted obsolete cmake shortcut bash files 2022-12-19 12:39:35 +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
Stephen Saunders
fbeb02df9c Fix Vulkan descriptor set selection within bink and bink_gui shaders 2022-12-12 17:55:08 -05:00
Stephen Saunders
f41cc5e46a Decouple FFMPEG / BINKDEC cmake options from x86-only SSE intrinsics, fix macOS-specific logic for intrinsics and PCH 2022-12-12 17:48:49 -05:00
Stephen Saunders
4dc2a8ca12 Fix compileshaders.cmake to reference USE_VULKAN, fix missing override warning in Model_local.h 2022-12-12 17:35:51 -05:00
Robert Beckebans
3f8bc0a568 Fixed FramebufferInfoEx in CommonPasses 2022-12-06 23:51:49 +01:00
Robert Beckebans
a94f67adaa Point to latest RB/nvrhi/main 2022-12-06 23:43:56 +01:00
Robert Beckebans
22f10571e3 Fixed Win64 build. Renamed USE_NVRHI_VULKAN to USE_VULKAN 2022-12-06 23:28:48 +01:00
Robert Beckebans
e02f2f92c2 Removed obsolete glslang submodule 2022-11-22 18:49:25 +01:00
Robert Beckebans
432af457ca Removed legacy GL/Vulkan backends from CMakeLists.txt 2022-11-22 18:47:31 +01:00
Robert Beckebans
632ad33f80 Write constant buffers if changed or layout changed 2022-11-20 15:42:48 +01:00
Robert Beckebans
c48346c551 Move nvrhi::Device->waitForIdle() back to GL_BlockingSwapBuffers() 2022-11-20 13:37:10 +01:00
Robert Beckebans
74c8a9f94e Always write the constant buffer -> BAD but works 2022-11-20 13:34:46 +01:00
Stephen Pridham
a7f83bf631 Update the render state whenever the constant buffer is written to 2022-11-20 12:52:07 +01:00
Stephen Pridham
47d68fb6e0 Invalid binding set cache if either vertex data or joint data changes 2022-11-20 12:52:07 +01:00
Stephen Pridham
2ac23b0c9b Add back uniformsChanged = false 2022-11-20 12:52:07 +01:00
Stephen Pridham
8f190b85c2 Remove unused comment 2022-11-20 12:52:07 +01:00
Stephen Pridham
7a82dc1c9b Update NVRHI submodule 2022-11-20 12:52:07 +01:00
Stephen Pridham
726c4524e9 Update map buffer calls. Astyle 2022-11-20 12:52:07 +01:00
Stephen Pridham
4af1742b17 Astyle 2022-11-20 12:52:06 +01:00
Stephen Pridham
e3ede978d4 Update to make it easier to switch constant buffer usage 2022-11-20 12:52:06 +01:00
Stephen Pridham
47312f8997 Allow buffer ranges for constant buffers 2022-11-20 12:52:06 +01:00
Stephen Pridham
c1c0334bf2 Fix VK descriptor set slot for motionBlur shader 2022-11-20 12:52:06 +01:00
Robert Beckebans
3a3af32ddb Replaced std::min/max with Min/Max 2022-11-19 16:46:21 +01:00
Robert Beckebans
636e64a1f4 Astyle after merge conflicts 2022-11-18 16:58:08 +01:00
Robert Beckebans
37127cde0e Merge branch 'master' into 635-nvrhi4 2022-11-18 16:51:40 +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
8d57d5399b Skip GL_BlockingSwapBuffers() sync during shutdown when in Doom 3 mode (com_smp = -1) 2022-11-14 23:38:55 -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
Robert Beckebans
f1d7f2ff9e Fixed compile errors 2022-11-11 17:34:38 +01:00
Robert Beckebans
ad78435446 Merge branch '721-gltf2-cameras' into 705-gltf2-import-options 2022-11-11 17:00:47 +01:00
Robert Beckebans
6689d60b74 Passed idImportOptions along the animations loader code 2022-11-11 16:59:36 +01:00
Robert Beckebans
0d5d947f17 Apply import options to glTF2 models 2022-11-11 16:59:36 +01:00
Robert Beckebans
6cbb205ece Hook idImportOptions into idRenderModel*::InitFromFile() 2022-11-11 16:59:36 +01:00
Robert Beckebans
81d70dc5d8 Parse idImportOptions for model declarations 2022-11-11 16:59:36 +01:00
Robert Beckebans
e499514fea Little cleanup of the glTF2 code 2022-11-11 16:59:35 +01:00
Robert Beckebans
891ba7478e Added idMat4::GetTranslation() and some comments 2022-11-11 16:58:19 +01:00
Robert Beckebans
9f50dbc9bc Astyle 2022-11-11 13:12:38 +01:00
HarrievG
389798ee4b [!] Corrected Spot light transforms
[+] Added support for GLTF cameras. useable with idCameraView and idAnimatedCamera
2022-11-11 13:11:21 +01:00
HarrievG
3d366ba386 [!] Fixed runtime reloading for gltf models
[!] Fixed timestamp check for static models
2022-11-11 13:11:21 +01: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
7fb6948777 Merge branch '635-nvrhi3-cleanexit' into 635-nvrhi3 2022-11-03 18:54:56 +01:00
Robert Beckebans
600e50ad50 Astyle 2022-11-03 18:54:38 +01:00
Robert Beckebans
e9284c3818 Use fixed size (-8 -8 0, 8 8 16) bounds for all model based entities for TB 2022-11-02 15:51:12 +01:00
Robert Beckebans
15a9d12661 exportFGD proxymodel fix 2022-11-02 11:44:38 +01:00
Robert Beckebans
1ee669c31f Merge branch 'master' into 635-nvrhi3 2022-10-29 19:09:30 +02:00
Robert Beckebans
3a877568e4 Support glTF2 vertex colors for static models 2022-10-29 19:08:12 +02:00
Robert Beckebans
b53271fc68 No need to set the rotation for the Blender lights 2022-10-29 18:25:56 +02:00
Robert Beckebans
7166b50501 Astyle 2022-10-29 17:42:09 +02:00
HarrievG
889f613610 [+] Ext_KHR_lights_punctual::Point support
[!] Fix for multple collections, entity names will be written out according to the full hierarchy.
2022-10-29 17:37:47 +02:00
Stephen Saunders
3d3658384d Cleanup references to nvrhi::IDevice on shutdown, otherwise device won't clean up properly on final exit 2022-10-28 17:50:48 -04: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
Stephen Saunders
8219860378 Clean up NVRHI resources before Sys_Quit(), otherwise non-zero exit code (destructors too late) 2022-10-27 14:52:08 -04:00
HarrievG
2cf8d5c8f9 [+] Recursive entity/collection support for gltf maps
[+] KHR_lights_punctual spotlight support
2022-10-27 12:10:32 +02:00
HarrievG
9589ea300d [+] Inline support for gltf maps; add "inline" 0 property to an idStaticEntity or func_static to not inlude it in the map bsp. Defaults to 1 2022-10-27 12:10:32 +02:00
Robert Beckebans
98ed96adf4 LoadOgg fix 2022-10-27 12:09:47 +02:00
Robert Beckebans
dd69e30e40 Reenabled parallel shader compiling on Windows 2022-10-26 11:09:50 +02:00
Robert Beckebans
b3bab4de96 Merge branch 'master' into 635-nvrhi3 2022-10-26 10:59:41 +02:00
Robert Beckebans
822ff7d860 Astyle 2022-10-26 10:59:22 +02:00
Robert Beckebans
b12379e1af Merge branch '635-nvrhi3-sdl' into 635-nvrhi3 2022-10-25 20:55:54 +02:00
Robert Beckebans
bb79eae285 Turn off SSAO if Vulkan is active 2022-10-25 20:42:16 +02:00
Robert Beckebans
40aec4ca2e Turn off timer queries if Vulkan is active 2022-10-25 20:33:03 +02:00
Robert Beckebans
bdea96cc2a Astyle 2022-10-25 19:11:22 +02:00
Robert Beckebans
7ee1180d22 Build with NVRHI Vulkan by default 2022-10-25 19:10:47 +02:00
Robert Beckebans
b58f009369 LoadOgg fix 2022-10-25 19:02:34 +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
Richard Tollerton
bc8882b8a2 Cinematic.cpp: Revert removal of void from METHODDEF(void), etc.
In fd6c589d, all instances of (void) were replaced by (). However, the libjpeg
defines `METHODDEF`, `LOCAL`, `GLOBAL`, and `EXTERN` (see `jmorecfg.h`) are
occasionally used in code as if they are functions:

```
	METHODDEF(void)
	METHODDEF void
init_source( j_decompress_ptr cinfo )
```

fd6c589d therefore breaks these builds when `USE_NEWER_JPEG` is defined, because
several function definitions are missing return types.
2022-10-23 17:49:56 -05:00
Richard Tollerton
a7322c1131 Add various move constructors
Commit 93b8564b requires move constructors for many classes which do not
presently exist; they seem simple enough to add.

Fixes #708.
2022-10-23 17:49:54 -05: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
ddb2be02ff Merge branch 'master' into 635-nvrhi3 2022-10-20 17:08:08 +02:00
Robert Beckebans
9866e121ba Cleanup & Astyle 2022-10-20 16:40:11 +02:00
HarrievG
b1e198ce57 - fixed dmap crash while trying to merge leaf nodes 2022-10-20 16:28:40 +02:00
HarrievG
3702fb1dec - removal of backface genration in Aasbuild for polygonmeshes. 2022-10-20 16:28:40 +02:00