Commit graph

2114 commits

Author SHA1 Message Date
SRSaunders
997b7b5b99 Add Optick traces for MoltenVK command buffer submit, image acquire, and metal encoding on macOS 2024-03-21 22:19:12 -04:00
SRSaunders
5b5b6165e6 Extend Optick to support data tags on custom storage events 2024-03-21 22:07:47 -04:00
SRSaunders
3ac61ce5d6 CMakeLists: Remove redundant code for finding dxc, now handled by ShaderMake 2024-03-20 13:49:19 -04:00
Robert Beckebans
6788b5007e Merge branch 'cinematic-audio-fix' 2024-03-17 11:41:18 +01:00
Robert Beckebans
0a3b7c9326 Show VRAM memory usage with com_showFPS > 2 in separate line 2024-03-17 11:25:21 +01:00
SRSaunders
2e2a9106e1 Correct some uint64 types and add Optick frame tag for DX12 / Vulkan Present() 2024-03-07 15:55:00 -05:00
Stephen Saunders
75011c4eea Optick: Eliminate need for blocking sleep wait at start of Vulkan clock sync 2024-03-07 13:54:35 -05:00
Stephen Saunders
bcbc734d94 Revert "Optick: Remove blocking sleep wait at start of Vulkan clock synchronization"
This reverts commit 1e8899ca86.
2024-03-05 14:44:29 -05:00
SRSaunders
1e8899ca86 Optick: Remove blocking sleep wait at start of Vulkan clock synchronization 2024-03-05 09:47:35 -05:00
SRSaunders
fc87f60440 Complete Optick instrumentation and align with HUD GPU timers 2024-02-28 11:59:41 -05:00
Robert Beckebans
d0d1f1d7b3 Merge branch 'master' of github.com:RobertBeckebans/RBDOOM-3-BFG 2024-02-26 20:50:55 +01:00
Robert Beckebans
81d4a35177 Point to newest NVRHI with patches by Steve Saunders 2024-02-26 20:50:49 +01:00
Robert Beckebans
ac5dfb8cfe Removed OpenGL code from CMakeLists.txt 2024-02-25 21:08:27 +01:00
Robert Beckebans
3082be4a46 Point to newest RobertBeckebans/nvrhi 2024-02-25 14:30:38 +01:00
Robert Beckebans
a973c40b19 Merge branch 'nvrhi-update-20240225' 2024-02-25 14:10:41 +01:00
Robert Beckebans
5c1ffe3932 Point to new RobertBeckebans/nvrhi/main which is rebased 2024-02-25 14:08:23 +01:00
Robert Beckebans
6017896cd9 Changed to nvrhi/main 2024-02-25 13:05:08 +01:00
Robert Beckebans
095d57e66a Added ShaderMake external 2024-02-25 12:46:12 +01:00
Robert Beckebans
65069c68e5
Merge pull request #852 from reeFridge/fix/850-abs-mouse-coords-for-tools
Generate absolute mouse coords when imgui tools are active
2024-02-25 12:05:29 +01:00
Robert Beckebans
5a924667d6
Merge pull request #862 from r-a-sattarov/optick-e2k-support
Optick: Add e2k support
2024-02-25 11:45:19 +01:00
SRSaunders
4100303dd8 Include DeviceManager_VK.cpp in precompiled headers (nvrhi Vulkan-Headers conflict resolved) 2024-02-23 08:46:04 -05:00
SRSaunders
0e29370423 Improve Optick error reporting to debugger and to console stderr for all platforms 2024-02-20 17:15:10 -05:00
SRSaunders
7183e8707b Change OPTICK_VERIFY to print error and continue, also fix Optick unreachable code 2024-02-18 22:10:00 -05:00
SRSaunders
2dd185dd69 Fix Optick type mismatches for non-windows 64-bit platforms 2024-02-18 01:45:49 -05:00
r-a-sattarov
0773f01ec6 Optick: Add e2k support
Ref: https://en.wikipedia.org/wiki/Elbrus_(computer)
2024-02-10 00:15:48 +03:00
Stephen Saunders
29d935946b CMakeLists: Update macOS bundle version string to 1.6.0 2024-02-07 17:48:46 -05:00
Stephen Saunders
de50e7575c Make FAR_PLANE_Z static so initializer works in DeepGBufferRadiosity_blur.ps.hlsl 2024-02-07 14:58:09 -05:00
Stephen Saunders
2139416e43 Fix default trace model allocation and refcount following restore from save file 2024-02-07 12:20:48 -05:00
Stephen Saunders
36f42a949e Wait on device idle vs GL_BlockingSwapBuffers() before vertex cache shudown on game exit 2024-02-05 14:24:15 -05:00
Stephen Saunders
f47a46abd2 Fix Render Mode and CRT Filter settings to be sticky between game launches 2024-02-05 14:21:58 -05:00
SRSaunders
dfea03be72
Merge branch 'master' into dx12-frame-latency 2024-02-04 18:20:58 -05:00
Stephen Saunders
7911f5252d Merge branch 'master' into nvrhi-rebase-040224 2024-02-04 15:02:13 -05:00
Robert Beckebans
2a0c742b1a Removed CPU/GPU usage from com_showFPS > 1 2024-02-04 16:40:18 +01:00
Robert Beckebans
436144f6e1 Merge remote-tracking branch 'SRSaunders/hud-vulkan-macos' 2024-02-04 16:32:53 +01:00
Robert Beckebans
1ebd075215 Fixed compile problems with -DSTANDALONE flag 2024-02-04 15:36:55 +01:00
Stephen Saunders
02ed35be22 Move vulkan.hpp include to DeviceManager_VK.cpp and adjust vk:: namespace references 2024-02-04 01:41:33 -05:00
Stephen Saunders
4596a34dfe nvrhi rebase 013124 and shaderCompiler to ShaderMake migration changes 2024-02-03 11:26:31 -05:00
Stephen Saunders
41a9f5fa59 macOS: Use VK_EXT_layer_settings config for all build types, add r_mvkUseMetalArgumentBuffers cvar 2024-01-29 20:58:28 -05:00
Stephen Saunders
fea41b50ba HUD Statistics Overlay: Improve frame sync time and CPU usage % calculations (all platforms) 2024-01-25 15:09:54 -05:00
Aleksey Medvedev
ee73078db1 Generate absolute mouse coords when imgui tools are active 2024-01-22 23:43:29 +07:00
Stephen Saunders
6bea484765 Vulkan: Add USE_OPTICK guard for Optick::VulkanFunctions
(cherry picked from commit f23198e2d497e2e211dff51fe375f333a50b10cf)
2024-01-21 00:23:39 -05:00
Stephen Saunders
68d0ab062f Vulkan: Use dynamic pointers for all Vulkan functions used by VMA, Optick, and MoltenVK
(cherry picked from commit a247df05e5b604cff288ef9c90dd42fd6829f0c1)
2024-01-21 00:22:54 -05:00
Stephen Saunders
4e30cdce06 Optick: Add support for reporting runtime errors with text descriptions
(cherry picked from commit a743dfb54554a9524e47471b138e4a757e92cb6c)
2024-01-21 00:22:48 -05:00
Stephen Saunders
62e9c561d5 Optick: Add support for dynamic vs. static Vulkan functions
(cherry picked from commit 821c8b46896932ff20595871b2088b0334367ed7)
2024-01-21 00:22:42 -05:00
Stephen Saunders
e2956643a7 Don't reset or lock r_useGPUSkinning cvar in multiplayer mode (not a cheat)
(cherry picked from commit 3b6598b88d71bc443c431a04e0f075410679ea36)
2024-01-21 00:22:17 -05:00
Stephen Saunders
e80b6a3e21 macOS: Support VK_EXT_layer_settings for MoltenVK >= 1.2.7 / Vulkan SDK >= 1.3.272.0
(cherry picked from commit f3c65eef3e75ea2846cffd97aff1fd2f9bf92f7f)
2024-01-21 00:22:12 -05:00
Stephen Saunders
ec2719b099 Statistics HUD: smooth CPU/GPU usage, add GPU Memory for mode 3; CMakeLists: make VMA header visible in IDE
(cherry picked from commit 8a0c493f1c4ef45312005c7e5b02cdde706bcc2b)
2024-01-21 00:20:51 -05:00
Stephen Saunders
48381ec0b9 Add comments, remove redundant call to Vulkan getProperties, enable Khronos sync2 layer based on macOS SDK version
(cherry picked from commit 18769ecce66ce75b8bb8609c71194146464786e7)
2024-01-21 00:20:28 -05:00
Stephen Saunders
bc658e4203 Vulkan: Detect and enable fragment shading rate features at individual per-feature granularity
(cherry picked from commit 638ae85c6c420160e022af171304717adb14f1f2)
2024-01-21 00:18:34 -05:00
Stephen Saunders
f434a650db Work around missing Vulkan shaderStorageImageReadWithoutFormat on Intel GPUs
(cherry picked from commit 83b97d0e1c13efad0bad86c80dcecff0f0b4628c)
2024-01-21 00:18:11 -05:00
Stephen Saunders
e37ede5f7f macOS: Update cmake*.sh build scripts for openal-soft path portability - thanks asemarafa
(cherry picked from commit 6707d4286dd281036c3401d3c3d4381186577b69)
2024-01-21 00:17:47 -05:00
Stephen Saunders
b42e64b180 macOS: Disable GPU skinning on Apple Silicon to eliminate rendering artifacts
(cherry picked from commit 86dc341567573b3bb91761e1309ed6be540050c9)
2024-01-21 00:17:32 -05:00
Stephen Saunders
9c62802810 CMakeLists: Add wildcards to remove tmp files from ZERO_CHECK regeneration (Xcode)
(cherry picked from commit 0f9f4f6022dae813092be3a16247e3312a00c46c)
2024-01-21 00:17:15 -05:00
Stephen Saunders
6e8f74154f Add CPU / GPU usage % to HUD overlay and display MoltenVK's Metal encoding time when available
(cherry picked from commit 54759765ff384bd5a3109d8c801e50952c97c4aa)
2024-01-21 00:15:42 -05:00
Stephen Saunders
7bd543f699 Remove need for barrier command list on Vulkan, simplifies code and enables macOS previous command statistics
(cherry picked from commit 9956923ee656f1294446cadd692ca61edfe9ba6a)
2024-01-21 00:14:43 -05:00
Robert Beckebans
5d4918324f Merge branch 'master' into 571-retro-8-bit-postfx 2024-01-20 13:50:15 +01:00
Robert Beckebans
a40b30d861 Renamed ENGINE_BRANCH back to master 2024-01-20 13:39:53 +01:00
Stephen Saunders
36c6956322 Initialize idPhysics_Player::clientPusherLocked to false so physics logic is sane at start 2024-01-20 02:17:15 -05:00
Stephen Saunders
9613bd6d0e Initialize idRenderModelDecal decals so members are defined for logical tests 2024-01-19 23:44:47 -05:00
Stephen Saunders
097ef81f6e Enable r_useParallelAdd* to be changed for bake* operations on multiplayer maps
(cherry picked from commit 7bee6f2096d9d3162e3280f1c4e9e81bc307e6a2)
2024-01-19 23:17:24 -05:00
Stephen Saunders
953eec4e40 Enable r_useScissor to be changed for bake* operations on multiplayer maps
(cherry picked from commit 8552611d723595e56c4ba9ae7e04ca830ddf6639)
2024-01-19 23:16:19 -05:00
Stephen Saunders
7b2aa46a43 Multiplayer: fix VoiceChat shutdown assert on remoteMachines count 2024-01-19 23:14:53 -05:00
Stephen Saunders
4569238301 Multiplayer: Read class-specific snapshot data only if network-synced 2024-01-19 23:10:13 -05:00
Stephen Saunders
9511a529af Fix regression in networking memory cleanup in idLobby 2024-01-19 23:06:04 -05:00
Robert Beckebans
bbbb14159f Tweaked dithering with standard deviation 2024-01-11 22:06:55 +01:00
Robert Beckebans
4bc81a1cd7 Added Amstrad CPC 6128 mode 2024-01-10 00:04:26 +01:00
Robert Beckebans
4879fb78ea Changed ENGINE_BRANCH string 2024-01-03 16:13:51 +01:00
Robert Beckebans
610157fe8f Added menu options for Retro modes 2024-01-03 15:54:58 +01:00
Robert Beckebans
cbe6147f03 Tweaked dithering and added more modes 2024-01-01 16:45:17 +01:00
Robert Beckebans
523e483e1c Merge branch 'master' into 571-retro-8-bit-postfx 2024-01-01 14:50:52 +01:00
Robert Beckebans
779f38d84c Tweaked PSX dithering 2023-12-30 18:43:09 +01:00
Robert Beckebans
fd5b25dc59 Added nearest filtering for PSX render mode. Closes #613 2023-12-30 15:01:31 +01:00
Robert Beckebans
567b95a642 Added r_renderMode cvar for Retro rendering modes: C64, Sega, PSX 2023-12-30 14:10:07 +01:00
Robert Beckebans
cd6c804508 Moved makeImageHeader to Image_intrinsic.cpp 2023-12-29 17:16:54 +01:00
Robert Beckebans
e51b41cc66 Added CRT options as cvars 2023-12-29 12:31:43 +01:00
Robert Beckebans
df7d0b8d28 Tweaked CRT shaders 2023-12-28 22:35:58 +01:00
Robert Beckebans
1e9bc96191 Going back to a single renderprog volatile constant buffer to avoid crashes 2023-12-28 16:16:15 +01:00
Stephen Saunders
dd17edbdc1 Simplify OPTICK_THREAD() instrumentation and fix scope for common_frame 2023-12-28 09:41:18 -05:00
Stephen Saunders
7d67082a10 Fix clang compile failure in GuiModel: use static_cast<short> in initializer list 2023-12-28 09:32:06 -05:00
Robert Beckebans
13f9ee8cfb Added old MatthiasCRT shader to crt_newpixie.*.hlsl 2023-12-28 15:29:50 +01:00
Stephen Saunders
6e2c637578 valgrind: Fix uninitialized variables in debug tools - ImmediateMode and Optick 2023-12-28 09:29:47 -05:00
Stephen Saunders
f714e791fe Fix memory leak in Optick when ThreadEntry is terminated while still in scope (i.e. exit) 2023-12-28 09:24:48 -05:00
Robert Beckebans
ed6b61a9f9 Hooked in the ability to do postfx after everything else is rendered 2023-12-28 14:39:59 +01:00
Robert Beckebans
49130533c6 Further tweaks on the C64 shader 2023-12-28 13:06:42 +01:00
Robert Beckebans
a589f3e6f0 Implemented binary search for colors in HLSL 2023-12-27 15:14:58 +01:00
Robert Beckebans
9e88365c59 Added Commodore 64 post processing effect 2023-12-26 22:08:04 +01:00
Robert Beckebans
59940e7037 Got rid of NVRHI depth-stencil is read-only warnings. Closes #760 2023-12-26 15:33:02 +01:00
Stephen Saunders
c57ffb8279 Fix decl->parsedOutsideLevelLoad flag set/reset, show state (!) in list<Decl> console commands 2023-12-26 13:15:32 +01:00
Stephen Saunders
2726e6ae29 Respect binary file row pitch for reading and uploading DXT1/DXT5 compressed mip images 2023-12-26 13:15:32 +01:00
Stephen Saunders
ad046923f5 VertexCache: enforce cache alignment without read beyond buffer boundary during allocation and update 2023-12-26 13:15:32 +01:00
Stephen Saunders
341b90bc05 Allocate correct memory size for FMT_DXT1 / FMT_DXT5 compressed images, fully init renderEntity_t in ReadFromDemoFile() 2023-12-26 13:15:32 +01:00
Stephen Saunders
aeb3e21bb9 Revert and fix filename change in idProgram::CompileText() for savefile compatibility 2023-12-26 13:15:32 +01:00
Stephen Saunders
e0fe1b8bed Properly init / shutdown device manager (all platforms) and SDL (non-windows) to avoid leaks 2023-12-26 13:15:32 +01:00
Stephen Saunders
8867e865e0 valgrind: fix undefined variables/warnings and a few more memory leaks on quit 2023-12-26 13:15:29 +01:00
Stephen Saunders
a7ef79ecb1 Fix leaks on quit: Free verts / indexes for basic surface triangles and shutdown SDL via SDL_Quit() 2023-12-26 13:14:59 +01:00
Stephen Saunders
d9835cb2b4 Revert SetMaxLength() change and instead call TakeDataOwnership() to fix memory leak in InitSaveProfile() 2023-12-26 13:14:59 +01:00
Stephen Saunders
402496411b Fix a leak in InitSaveProfile() caused by skipping file memory cleanup in ~idFile_Memory() when maxSize != 0 2023-12-26 13:14:59 +01:00
Stephen Saunders
04c638fb28 Fix a few remaining leaks in idFont, SWF Scripts, and idTrigger_Touch 2023-12-26 13:14:59 +01:00
Stephen Saunders
cb209718be Fix lightGridPoints and demo entity joints memory leaks 2023-12-26 13:14:59 +01:00
Stephen Saunders
2335326a6b Revert changes to idPolynomial, add ~idPolynomial() destructor to fix leak properly 2023-12-26 13:14:59 +01:00
Stephen Saunders
fe411ba3b5 Fix a bunch of memory leaks throughout codebase 2023-12-26 13:14:58 +01:00
Robert Beckebans
92ad0cb0fe Doubled MAX_GLOBALS for the Runners 2.6 mod. closes #835 2023-12-20 14:38:01 +01:00
Robert Beckebans
96ebce54b1 Merged script interpreter improvements from Dhewm3 #835 2023-12-16 15:48:35 +01:00
Robert Beckebans
08be7a35f9 Duplicating lights with Ctrl+D works now 2023-12-10 17:00:07 +01:00
Robert Beckebans
563f1be37d Attempt to support 'light_origin' with editLights. #825 2023-12-04 20:15:34 +01:00
Robert Beckebans
288852224a convertMapToValve220 removes light flares 2023-11-07 21:11:57 +01:00
Stephen Saunders
19fab395eb Add #include <queue> for std::queue support when USE_FFMPEG enabled 2023-11-02 00:47:52 -04:00
Stephen Saunders
f7751f6428 Fix for cinematic audio when playing Bink video files with ffmpeg decoder, improve ffmpeg a/v resync 2023-11-01 19:13:47 -04:00
Robert Beckebans
a00d6dc9d9 Possible crashfix for D3HDP #822 2023-10-30 22:41:23 +01:00
Robert Beckebans
8c464de83d Fixed scissor clipping issues of regular surfaces like light flares #651 2023-10-30 21:38:02 +01:00
Robert Beckebans
28c3ea9804 Updated FGDs for TrenchBroomBFG 2023-10-27 21:12:09 +02:00
Robert Beckebans
87e2004634 Added helper entityDefs for TrenchBroom 2023-10-26 01:52:03 +02:00
Robert Beckebans
958bd1a1cf Prioritize .wav and .ogg files over shipped .idwav files 2023-10-24 18:26:39 +02:00
Robert Beckebans
cd03d01e85 Moved ImGuizmo.{h/cpp} to neo/libs/imgui/ to avoid precompiled header issues 2023-10-18 13:48:40 +02:00
Robert Beckebans
def152081d Fixed bug in convertMapToValve220 cmd. Added origin brushes 2023-10-18 13:39:07 +02:00
Robert Beckebans
11d78d37be Added menubar with Ctrl+D Duplicate command 2023-10-18 13:39:07 +02:00
Robert Beckebans
4e638ae7a4 Light editor can use the rotation/scale gizmos 2023-10-18 13:39:06 +02:00
Robert Beckebans
8d2c54a999 Light editor can use the translation gizmo 2023-10-18 13:39:06 +02:00
Robert Beckebans
80ca705d8d Removed unimplemented renderer passes 2023-10-18 13:39:06 +02:00
Robert Beckebans
f408fcad38 Fixed Imgui and light scissor clipping issues. Closes #651 2023-10-18 13:39:06 +02:00
Robert Beckebans
8b1bc6d8cd Gizmo shows up 2023-10-18 13:39:06 +02:00
Robert Beckebans
2317b9779d ImGuizmo integration hello world 2023-10-18 13:39:06 +02:00
Robert Beckebans
6f98740772 Fallback to material stages for GetEditorImage() 2023-10-18 13:39:06 +02:00
Robert Beckebans
eb2d963784 Wrote simple exportMaterialsToBlender command 2023-10-18 13:39:06 +02:00
Robert Beckebans
719e925b2e Started to simplify the light editor 2023-10-18 13:39:06 +02:00
Robert Beckebans
d337111fbe Use same Instance pattern of AF editor for light editor 2023-10-18 13:39:06 +02:00
Robert Beckebans
c6ae88310f Always draw the console after Imgui 2023-10-18 13:39:06 +02:00
Robert Beckebans
b157445881 Added code to load UE5 editor themes into Imgui 2023-10-18 13:39:06 +02:00
Robert Beckebans
4e38e7a6dc Imgui ingame tools can use the docking feature now 2023-10-18 13:39:06 +02:00
Robert Beckebans
c9133de3da Updated Imgui to newest docking release v1.89.9 2023-10-18 13:39:06 +02:00
Robert Beckebans
b04705c594 Changed _currentRender back to RGBA16F 2023-10-18 13:06:14 +02:00
Stephen Pridham
251c879483 Move commonPasses back to private 2023-10-17 19:11:42 -04:00
Stephen Pridham
8919fab950 Fix fullscreen warp fx for grabber 2023-10-17 19:08:10 -04:00
Stephen Pridham
693883a737 Fix fullscreen fx 2023-10-17 18:01:35 -04:00
Robert Beckebans
8f84e54bb0 Restored ternary operator usage for older DXC compilers. Thanks SRSaunders 2023-10-12 10:11:00 +02:00
Robert Beckebans
feffa4a4dd Replaced ternary operators in HLSL code. Fixes #803 2023-10-09 15:14:43 +02:00
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
Robert Beckebans
330486ecdf Merge remote-tracking branch 'SRSaunders/swapchain-fixes' 2023-07-14 08:41:40 +02:00
Stephen Saunders
eaa5cf8ff4 Enable gnu extensions for Optick profiler when using gcc compiler, i.e. support ##__VA_ARGS__ 2023-07-06 11:21:07 -04:00
Stephen Saunders
37fd056c2d Fix type mismatches in Optick GPUProfiler::Stop() 2023-07-06 11:08:50 -04:00
Stephen Saunders
a99c11730e Fix system vs. bundled library logic, suppress gcc/clang warnings for some third party source libs (jpeg, zlib, minizip) 2023-06-26 15:39:13 -04:00
Stephen Saunders
eef8e1b329 Fix PCH for idlib when using gcc compiler on linux 2023-06-24 01:24:08 -04: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
02eda6f1d1 In Optick Core::DumpProgressFormatted() use vsnprintf() vs. vsprintf() for non-MSVC compilers 2023-06-23 16:02:32 -04:00
Stephen Saunders
4f6f23e8ac Fix Sync timer for timedemo "twice" mode and remove unneeded timings in TimeRenderDemo() 2023-06-20 22:25:24 -04:00
Stephen Saunders
4110dc1f05 Remove unneeded references to com_smp cvar 2023-06-20 22:04:11 -04:00
Stephen Saunders
99d9868bd9 Update CMakeLists to add clang -Wno-shorten-64-to-32 flag to suppress flood of int conversion warnings 2023-06-20 14:37:46 -04:00
Stephen Saunders
a67a100f19 Update rapidjson lib to remove deprecated std::iterator template and replace with required iterator types 2023-06-20 13:30:47 -04:00
Stephen Saunders
16077c7cd6 Update jpeglib's format_message() error routine to use snprintf() for buffer security 2023-06-20 13:16:37 -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
5ff88fdfd0 Fix Doom Classic crashes on exit and/or quit 2023-06-15 15:13:52 -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
8a915b88a4 Enable PCH in CMakeLists for Optick-enabled builds with non-MSVC compilers 2023-05-24 01:11:18 -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
Robert Beckebans
387c10ee52 Fixed crash in Delta Labs Sector 3 with Vulkan on Linux (Radeon RX 6700) 2023-05-23 17:50:25 +02: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
22dc020401 Redo Optick D3D12 VSync / Present queue labeling using measured vs. calculated frame latency 2023-05-23 08:19:53 -04:00
Robert Beckebans
5cbca047e7 Merge remote-tracking branch 'SRSaunders/dx12-alt-enter-fix' 2023-05-22 18:36:26 +02:00
Robert Beckebans
1788b9c92f Bumped version to 1.5.1 2023-05-22 18:30:00 +02:00
Robert Beckebans
87bedde244 Fixed PSO creation error in Erebus 3 map. #770 2023-05-22 18:27:32 +02:00
Stephen Saunders
6bb8c1feeb Remove unneeded Vulkan extensions: VK_KHR_present_id + macOS-specifics 2023-05-13 10:22:52 -04:00
Stephen Saunders
cf7883f688 Replace std::llround() with (int64_t) cast in optic_gpu for linux compatibility (no C++23) 2023-05-13 10:07:47 -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
be6088eee4 Extend Optick to support labeling of D3D12 VSync / Present queue with frame IDs 2023-05-12 03:04:06 -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
7c4f41bfd5 Extend Optick GPUContextScope() with typeless prototype for runtime selection of graphics API 2023-05-12 02:40:05 -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
85a9186c5b Add Optick profiler support for Vulkan Present / VSync queue via VK_GOOGLE_display_timing extension 2023-05-04 22:51:30 -04:00
Stephen Saunders
4ca70e0e17 Resolve Optick delayed GPU timestamps before dumping data on stop capture 2023-05-04 22:51:30 -04:00
Stephen Saunders
23e313cb6f Improve Optick Vulkan GPU profiler clock sync to reduce offset errors and drift 2023-05-04 22:51:30 -04:00
Stephen Saunders
18665e34a1 Fix Optick threadTLS nullptr check and OPTICK_SET_MEMORY_ALLOCATOR stub #define 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
HarrievG
ab7fefcadc - Added possibility to use Focal Length / FOV animation with GLTF Camera animations.
- Added blenderPy script which shows howto set lenscurves as a custom prop float array containing all evaluated fov values
- minor cleanup to gltfparser and gltfExtras.
- gltfExtra key value pairs can now contain a bracket enclosed string as value

# Conflicts:
#	neo/idlib/gltfProperties.h
2023-04-29 12:43:54 +02:00
Robert Beckebans
edb62c15d9 Never commit stuff before testing 2023-04-29 12:22:33 +02:00
HarrievG
03bbf9aaf4 -Fixed timestamp check while loading a camera animation from a gltf file
- Set gltfCamera fov to framefov during anim

# Conflicts:
#	neo/d3xp/Camera.cpp
2023-04-29 12:02:58 +02:00
Robert Beckebans
ad41a268b0 Fixed crash when executing extract_resources.cfg on Linux 2023-04-29 13:35:07 +02:00
Robert Beckebans
f07d8881b2 Find bone of selected armature if -transfermotion is given 2023-04-18 21:09:10 +02:00
Robert Beckebans
97c302f761 If -DSTANDALONE=ON option is set filesystem will look for content/ instead of base/ 2023-04-13 22:04:34 +02:00
Robert Beckebans
d5473c51f1 Added glTF2 import option -nomikktspace 2023-04-13 21:49:39 +02:00
Robert Beckebans
097995d21a Fixed crash and made the -rotate [yaw] glTF2 import option functional 2023-04-13 21:31:34 +02:00
Robert Beckebans
52acc84901 [glTF2] Fetch all skinned for selected rig 2023-04-12 18:43:26 +02:00
Robert Beckebans
d1d04d70da Fixed support for static glTF2 models 2023-04-12 14:09:21 +02:00
Robert Beckebans
9e927137c6 Use FindModelRoot() in idRenderModelGLTF::GetAnimBin() 2023-04-12 12:56:01 +02:00
Robert Beckebans
00b27d3141 Extended FindModelRoot logic 2023-04-10 17:17:28 +02:00
Robert Beckebans
c67a1b4379 Added glTF2 code comments 2023-04-09 20:51:01 +02:00
Robert Beckebans
f2739e4abc Fixed bone hierarchy when -addorigin is used 2023-04-09 20:41:18 +02:00
Robert Beckebans
114dbcd2c3 Some fixes to get the xaero.glb loading. Still broken 2023-04-09 17:24:52 +02:00
Robert Beckebans
0ca9d755a1 Fixed glTF2 root node lookup 2023-04-08 18:47:27 +02:00
HarrievG
cdce094518 gltf GetNode mesh* fix 2023-04-08 15:25:53 +02:00
HarrievG
a8703607d3 + bug fixes for animated gltf models
+ crude attempt to support translation animations on armature bone

# Conflicts:
#	neo/renderer/Model_gltf.cpp
2023-04-08 15:25:18 +02:00
Robert Beckebans
bc5b4d97e9 Made idRenderModelGLTF::rootID private 2023-04-08 15:17:07 +02:00
Robert Beckebans
d2115c1a07 Cleanup, indented comments 2023-04-06 15:44:07 +02:00
Robert Beckebans
033282f8d6 Avoid copy constructor in glTF library 2023-04-04 22:36:46 +02:00
HarrievG
41a0c9a310 - Fixed loading gltf models with multiple skinned meshes
- All skeletons wil now automatically use the armature node as root bone. In gltfs with a single armature you can name the armature "origin". You can also rename the armature node on import with -rename "armature" "origin".
2023-04-04 22:36:46 +02:00
Robert Beckebans
1d36dcf1a4 Removed glew and updated LICENSE_EXCEPTIONS with new third parties 2023-04-02 16:02:35 +02:00
Robert Beckebans
383d4b84c7 exportEntityDefsToBlender exports to _bl/entities.json 2023-04-02 15:42:14 +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
33b54481d1 Little cleanup 2023-03-30 22:58:59 +02:00
Robert Beckebans
49dc6cee46 Reverted com_smp back to boolean 2023-03-30 19:30:33 +02:00
Robert Beckebans
aeb219589a Merge branch 'master' into vsync-fixes 2023-03-30 18:10:31 +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
Robert Beckebans
a05d73ecef Removed unused cvar r_useHalfLambert 2023-03-29 21:20:19 +02: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
4207e22e10 Fix frame "Sync" timer calculation to handle Vulkan Vsync modes 2023-03-26 23:32:16 -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
fd86362724 Show shadow atlas stats with com_showFPS 3 2023-03-18 14:44:59 +01:00
Robert Beckebans
518af4c257 Enable D3D12 Debug Layer with r_useValidationLayers 2 2023-03-17 19:01:41 +01:00
Robert Beckebans
9f305c2399 Removed stencil shadow volumes with additional fixes by icecoldduke 2023-03-16 20:49:30 +01:00
Robert Beckebans
a6d76a7104 Stencil shadows work but some flicker as bad as in RBDOOM 1.4.0 2023-03-15 12:36:43 +01:00
Robert Beckebans
1e29c5e15d Fixed r_useShadowAtlas 0 2023-03-14 23:55:37 +01:00
Robert Beckebans
d846b54e72 Fixed most stencil shadows related bugs. Still not working 2023-03-14 22:06:19 +01:00
Robert Beckebans
a5a6bf0e33 Format doomclassic with Astyle too 2023-03-14 10:33:41 +01:00
HarrievG
fd975a8f24 Fixed recursive mesh adding in findEntities for gltf scenes 2023-03-13 19:28:55 +01:00
Robert Beckebans
972a727f1e Changed animated glTF2 models to be cached like md5 so model overlays work on them 2023-03-13 19:25:30 +01:00
Robert Beckebans
d1c8425153 Store glTF2 source timestamp in .bglb binary cache file 2023-03-13 19:17:07 +01:00
Robert Beckebans
ef9b2e6504 Removed broken aviDemo code. External tools do a better job on this 2023-03-12 12:40:21 +01:00
Robert Beckebans
1c2380e285 Removed obsolete sdl_glimp.cpp 2023-03-11 12:49:44 +01:00
Robert Beckebans
e5519c5fc4 Removed many obsolete #if defined( USE_NVRHI ) 2023-03-10 19:25:56 +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
f8faac469a Cleanup of RenderSystem.h 2023-03-10 18:39:53 +01:00
Robert Beckebans
cf9f430d1c Killed entire HLSL -> GLSL conversion code 2023-03-10 18:23:28 +01:00
Robert Beckebans
8975f59f62 Removed more obsolete Vulkan & OpenGL code 2023-03-10 18:03:20 +01:00
Robert Beckebans
9121f84559 Started to clean up the renderer removing obsolete Vulkan bits 2023-03-10 17:10:25 +01:00
Robert Beckebans
e664ac1665 Speed up bakeLightGrids by turning off vsync temporarily 2023-03-08 18:37:52 +01:00
Robert Beckebans
d17a537d3b Moved OPTICK_GPU_CONTEXT into #if USE_OPTICK_GPU firewall 2023-03-07 20:25:12 +01:00
Robert Beckebans
fa3589de66 LightEditor: Draw volume of selected light and move it with arrow keys 2023-03-07 18:26:43 +01:00
Robert Beckebans
814e5c2686 Merge branch '750-better-vsync' 2023-03-07 11:23:35 +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
e98272d708 Merge remote-tracking branch 'SRSaunders/sync-changes' into 750-better-vsync 2023-03-07 10:03:06 +01:00
Robert Beckebans
a09273af32 Fixed compile issues on Linux 2023-03-07 09:45:54 +01:00
Stephen Saunders
5aad7eb005 Disable Metal API Validation for Xcode debug builds 2023-03-07 00:10:46 -05:00
Robert Beckebans
2ad666adcf NUM_FRAME_DATA cleanup 2023-03-06 20:31: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
Robert Beckebans
d765afa278 Added more profiling events in the render backend 2023-03-06 16:32:20 +01:00
Robert Beckebans
cbdd0b06c8 Merge branch 'master' into sync-changes 2023-03-06 14:59:16 +01:00
Robert Beckebans
d878f99e5c Added more profiling events 2023-03-06 14:59:04 +01:00
SRSaunders
23c3b66c8f
Merge branch 'master' into sync-changes 2023-03-05 09:44:21 -05:00
Stephen Saunders
764469ab31 Revert #if USE_OPTICK wrappers 2023-03-05 09:36:44 -05:00
Stephen Saunders
378b66075c Revert screen shot fs_savepath change for Windows and linux 2023-03-05 08:51:34 -05:00
Stephen Saunders
7b9d36c1d1 Revert compileshaders.cmake to use SPIRV target = vulkan1.2 for macOS / MoltenVK 2023-03-05 08:38:59 -05:00
Robert Beckebans
52398a88cd Changed ENGINE_BRANCH to master 2023-03-05 10:39:59 +01:00
Robert Beckebans
784c46ebc7 Fixed Optick related compile warnings on Linux #750 2023-03-05 11:03:54 +01: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
967f38d64b Save screen shots to fs_savepath versus fs_basepath 2023-03-04 16:19:39 -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
0ac23b5f94 Removed obsolete cvar r_useHDR 2023-03-03 20:48:53 +01:00
Robert Beckebans
c8e32876a0 Removed obsolete cvar r_useSeamlessCubeMap 2023-03-03 20:36:45 +01:00
Robert Beckebans
2583765889 Went back to 15 bits for VERTCACHE_FRAME_MASK 2023-03-03 20:32:48 +01:00
Robert Beckebans
f4f416bc75 Merge branch 'optick-profiler' 2023-03-03 19:53:24 +01:00
Robert Beckebans
c9aefec3ce Added PROFILE_EVENT to RunFrame() 2023-03-03 19:52:46 +01:00
Robert Beckebans
cfd3981409 Fixed the CMake option -DOPTICK=ON/OFF 2023-03-01 16:50:27 +01:00
Robert Beckebans
b3e9c27d74 Display all the common different threads in Optick 2023-03-01 16:20:37 +01:00
Robert Beckebans
18e0e7f2e7 Fixed crash of RBDoom after stopping an Optick capture 2023-03-01 16:13:48 +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
b8a99d1330 Tweaked DrawFPS maxTime to reduce flickering if V-Sync is on 2023-02-28 10:40:25 +01:00
Robert Beckebans
6ca5eae2c3 Show picked GPU with com_showFPS > 1 2023-02-28 10:32:39 +01:00
Robert Beckebans
c95419e1d9 Small performance fix 2023-02-27 15:57:00 +01:00
Robert Beckebans
a44a691254 Tweaked exportFGD to output more FGDs with autogenerated model definitions 2023-02-24 15:36:29 +01:00
Robert Beckebans
99d7338d12 Blend shadowmaps smoothly in for small distant lights #746 2023-02-24 15:21:19 +01:00
Robert Beckebans
ee3fbb46f0 Skip shadowmaps for small distant lights #746 2023-02-24 13:55:29 +01:00
Robert Beckebans
302eb3fa85 Don't allocate non shadow casting lights into the shadow atlasgit difftool #746 2023-02-24 13:05:38 +01:00
Robert Beckebans
91abc9dffd Added menu option to choose between DX12 and Vulkan 2023-02-23 20:22:03 +01:00
Robert Beckebans
f1e9d79fb7 Added Stephen Pridham and HarrievG to menu credits 2023-02-23 10:11:58 +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
Stephen Saunders
395eabb2d2 Fix frame-over-frame timers for F12 screenshots 2023-02-23 01:39:28 -05:00
Robert Beckebans
3ad7774376 Don't display messed up timings caused by taking screenshots using F12 2023-02-22 21:11:13 +01:00
Robert Beckebans
0a1162aea0 Detect displays that only support 144, 165 and 240 Hz 2023-02-22 17:47:21 +01:00
Robert Beckebans
bdd5d8dd81 Merge branch 'master' into vma-integration 2023-02-22 13:19:55 +01:00
Robert Beckebans
204611036e Removed obsolete shader globs from CMakeLists.txt 2023-02-22 13:04:55 +01:00
Robert Beckebans
e4b7122006 Added cmake .bat files for VS2022 2023-02-22 12:37:41 +01:00
Robert Beckebans
c1fdd0cffb Fixed SSAO flickering when TAA is off #744 2023-02-22 09:48:00 +01:00
Stephen Saunders
abb3e12d39 Clean up bufferDesc initialization for idUniformBuffer::AllocBufferObject() 2023-02-19 11:30:14 -05:00
Stephen Saunders
2a0341df5f Enable shaderStorageImageReadWithoutFormat device feature for new SSAO compute shader 2023-02-19 02:25:16 -05:00