Tilka
5523b9a01b
Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement
...
PerformanceMetrics: Fix window arrangement
2025-04-25 01:40:58 +01:00
Joshua Vandaële
2c54ee94c1
linter: Apply clang-format 19.1 formatting
...
find ./Source/ -name '*.cpp' -o -name '*.h' | xargs clang-format-19 -i
2025-04-23 11:19:20 +02:00
Jordan Woyak
af960651e8
Common: SPSCQueue cleanups and improvements.
2025-04-22 23:49:32 -05:00
Jordan Woyak
4aa056dd4d
BPStructs: Add TODO for unsafe usage of GetTicks.
2025-04-08 19:58:31 -05:00
JMC47
ee27f03a43
Merge pull request #13439 from jordan-woyak/perf-marker
...
Core: Move CountPerformanceMarker to VideoInterface to eliminate a Throttle call. PerformanceMetrics: Fixes/Cleanups.
2025-04-07 17:57:56 -04:00
Dentomologist
ec49ea5be3
PerformanceMetrics: Fix window arrangement
...
Fix overlays stacking on top of each other or not moving to the edge of
the screen when enabling or disabling overlays while emulation is
active.
This change only applies when Config::GFX_MOVABLE_PERFORMANCE_METRICS is
False.
2025-04-05 14:22:17 -07:00
Jordan Woyak
c42dab6388
Core: Move CountPerformanceMarker to VideoInterface to eliminate a Throttle call. PerformanceMetrics: Fixes/Cleanups.
2025-04-02 23:23:51 -05:00
iwubcode
ec36fce7c6
VideoCommon: fix a mali bug by moving the perf queries back to being close to the draw call, having them apart seems to cause errors on some devices
2025-04-01 18:32:42 -05:00
JMC47
9819d66a47
Merge pull request #13221 from mitaclaw/nrvo-fails-1
...
GCC: Remedy NRVO Fails
2025-03-29 03:26:46 -04:00
JMC47
932b4abdcf
Merge pull request #13457 from jordan-woyak/efb-access-fix
...
VideoCommon: Fix out-of-bounds and disabled EFB access.
2025-03-28 18:43:57 -04:00
Joshua Vandaële
3a1a60d4f8
Fix shadowed variable warnings and missing declarations
...
- PPCSymbolDB: Resolve shadowed variable warnings
- PerformanceMetrics: Resolve shadowed variable warnings
- SWEfbInterface: Add missing declarations
2025-03-27 21:48:08 +01:00
Jordan Woyak
e351f03cdf
VideoCommon: Fix out-of-bounds and disabled EFB access.
2025-03-26 01:23:16 -05:00
JMC47
ad3650abfc
Merge pull request #13093 from mitaclaw/ranges-modernization-4-projection
...
Ranges Algorithms Modernization - Projection
2025-03-23 15:56:13 -04:00
JMC47
cef4d8fb76
Merge pull request #13432 from iwubcode/custom_pixel_fragment
...
VideoCommon: move to a 'process_fragment()' function to simplify custom shaders
2025-03-23 15:21:48 -04:00
JMC47
28f1beeca8
Merge pull request #13398 from jordan-woyak/perf-tracker
...
PerformanceTracker: Eliminate mutex. General cleanups.
2025-03-23 15:21:11 -04:00
iwubcode
8e253518e6
VideoCommon: move to a 'process_fragment()' function to simplify custom shaders and provide a direct override of the tev stage logic
2025-03-22 15:22:00 -05:00
Jordan Woyak
561aee7707
Config: Expose Default and 1x Anisotropic Filtering setting.
2025-03-17 20:46:24 -05:00
Pokechu22
79a1e480ca
Enable anisotropic filtering when the game requests it
2025-03-17 20:46:19 -05:00
JosJuice
0299540209
Merge pull request #13397 from jordan-woyak/perf-metrics
...
PerformanceMetrics: Eliminated a mutex. Code cleanups.
2025-03-17 23:20:41 +01:00
OatmealDome
49bee36e6a
Merge pull request #13435 from iwubcode/uninitialized_directx
...
VideoCommon: initialize uninitialized state value in pixel ubershader
2025-03-16 14:56:44 -04:00
iwubcode
c5f89f2de9
VideoCommon: initialize uninitialized state value in pixel ubershader to prevent error on directx in some games
2025-03-16 11:35:56 -05:00
Jordan Woyak
48b2f7d200
VideoConfig: Eliminate frame dumping members.
2025-03-16 04:30:06 -05:00
JMC47
f4c37aeb14
Merge pull request #13423 from jordan-woyak/async-request-cleanup-1
...
AsyncRequests Cleanups.
2025-03-15 18:17:29 -04:00
JMC47
e3deb14156
Merge pull request #13347 from iwubcode/custom_shader_overhaul_lighting
...
VideoCommon: move lighting shader logic to callable functions
2025-03-15 17:26:32 -04:00
Jordan Woyak
46e0952e97
PerformanceTracker: Use SPSCQueue and atomic to eliminate need for a mutex. Clean up some math.
2025-03-15 14:40:00 -05:00
Jordan Woyak
c763961112
PerformanceTracker: Use std::deque instead of hand-rolled circular
...
queue.
2025-03-15 14:40:00 -05:00
Jordan Woyak
b2ce3fbefc
PerformanceTracker: Pass chrono values instead of us s64.
2025-03-15 14:40:00 -05:00
JosJuice
f2d1918714
Fix broken merge of PR #13181
...
This undoes one of the changes of PR #13181 . I'm guessing the relevant
code changed between when the PR was last pushed to and when it was
merged.
2025-03-15 17:23:39 +01:00
JosJuice
8c7ab286f5
Merge pull request #13181 from tygyh/Replace-'reinterpret_cast'
...
Replace 'reinterpret_cast' with 'static_cast'
2025-03-15 15:31:38 +01:00
JosJuice
3fb4084e25
Merge pull request #13345 from Tilka/unswap_depth
...
Fix depth texture being incorrectly affected by swap table
2025-03-15 14:30:19 +01:00
Jordan Woyak
2690a62949
Core: Remove unused GetActualEmulationSpeed function and related variables/functions.
2025-03-14 03:10:13 -05:00
Jordan Woyak
e1745f682f
PerformanceMetrics: Eliminated a mutex. Code cleanups.
2025-03-14 03:10:13 -05:00
Jordan Woyak
6c158ed590
VideoCommon: Create AsyncRequests directly in MMU code to eliminate EFB-related functions in VideoBackendBase.
2025-03-14 01:14:51 -05:00
Jordan Woyak
63b848ca93
VideoCommon: Eliminate EFBAccessType enum. Eliminate union and switch statement handler in AsyncRequests.
2025-03-14 00:59:41 -05:00
iwubcode
15372dc835
VideoCommon: move lighting shader logic to callable functions
2025-03-13 23:56:04 -05:00
JMC47
0e2785a562
Merge pull request #13387 from jordan-woyak/frame-pacing
...
CoreTiming: Improve frame pacing
2025-03-13 14:23:18 -04:00
Jordan Woyak
5b36c13bfb
VideoCommon: Rename Renderer to EFBInterface.
2025-03-12 21:09:16 -05:00
JMC47
de997d616f
Merge pull request #13416 from jordan-woyak/unused-viewport-correction
...
VertexShaderManager: Eliminate unnecessary m_viewport_correction member.
2025-03-11 19:00:55 -04:00
JMC47
b7bd0a0836
Merge pull request #13413 from jordan-woyak/vconfig-progressive
...
VideoConfig: Eliminate bForceProgressive.
2025-03-11 18:59:28 -04:00
JMC47
67c8d5640f
Merge pull request #13412 from jordan-woyak/netplay-vconfig
...
VideoConfig: Eliminate NetPlay related members.
2025-03-11 18:59:02 -04:00
JMC47
1698daef66
Merge pull request #13410 from jordan-woyak/movie-vconfig
...
Movie: Eliminate MovieManager::SetGraphicsConfig.
2025-03-11 18:58:45 -04:00
Jordan Woyak
c191ed5321
VertexShaderManager: Eliminate unnecessary m_viewport_correction member.
2025-03-11 03:55:57 -05:00
Jordan Woyak
de01a790e1
VideoConfig: Eliminate bForceProgressive.
2025-03-10 19:02:43 -05:00
Jordan Woyak
7f3d8a1ad4
VideoConfig: Eliminate NetPlay related members.
2025-03-10 18:53:44 -05:00
Jordan Woyak
44423a3656
Movie: Eliminate MovieManager::SetGraphicsConfig.
2025-03-10 18:16:49 -05:00
Jordan Woyak
7222188cde
Core/VideoCommon: Push presentation time calculated from CPU thread to GPU thread.
2025-03-10 16:40:46 -05:00
Jordan Woyak
fe2d247acb
VideoCommon: Don't merge EFBPoke AsyncRequests.
2025-03-10 16:37:24 -05:00
mitaclaw
433c6ce0f2
GCC: Remedy NRVO Fails
...
Using the `-Wnrvo` flag introduced by GCC 14, I identified a few places where NRVO was clearly intended, but is fumbled.
2025-03-10 12:38:03 -07:00
JMC47
5ed8b7bc9d
Merge pull request #13403 from jordan-woyak/backend_info
...
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-10 15:06:19 -04:00
mitaclaw
e4efe011d7
Modernize `std::max_element` with ranges and projections
2025-03-09 13:26:39 -07:00
mitaclaw
8b9f92a0af
Modernize `std::sort` with ranges and projections
...
In PPCTables.cpp, the code is currently unused so I was unable to test it.
In CustomPipeline.cpp, a pointer to member function cannot be used due to 16.4.5.2.1 of the C++ Standard regarding "addressable functions". https://eel.is/c++draft/namespace.std#6
In Fs.cpp and DirectoryBlob.cpp, these examples used projections in a previous iteration of this commit, but no longer do. Still, they remain in this commit because the PR they would actually belong to is already merged.
2025-03-09 13:26:38 -07:00
mitaclaw
62b2b939b5
Simplify `std::find_if` with `std::ranges::find` and projections
...
In LabelMap.cpp, the code is currently unused so I was unable to test it.
In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09 13:26:35 -07:00
Jordan Woyak
c18c039089
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-09 01:42:45 -06:00
Jordan Woyak
7925240107
Core/VideoBackendBase: Call ExitGpuLoop from Core to eliminate Video_ExitLoop.
2025-03-07 17:30:33 -06:00
iwubcode
6dedf11c96
VideoCommon: mark 'WriteTexCoordTransforms' as 'static'
2025-03-02 11:27:54 -06:00
Tillmann Karras
4e460a7968
UberShaderPixel: use unswapped texture samples for depth
2025-02-25 18:45:01 +00:00
Tillmann Karras
359fb51d64
PixelShaderGen: use unswapped texture samples for depth
2025-02-25 18:45:01 +00:00
Dentomologist
0645a267d9
PerformanceMetrics: Add clamping, resetting on resize, and setting
...
Clamp overlays to the render window (with some padding), reset their
positions when the render window changes sizes, and add a setting to
enable moving the overlays (off by default, .ini only for now).
2025-02-24 13:17:57 -08:00
JMC47
43a6ec5bbd
Merge pull request #13353 from iwubcode/custom_shader_overhaul_vertex_texcoord
...
VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen
2025-02-22 02:32:47 -05:00
JosJuice
af064c57de
Merge pull request #13219 from Tilka/cp_cleanup
...
VideoCommon: drop CP MMIO registers that were probably added in the wrong place
2025-02-17 21:27:19 +01:00
iwubcode
1ce78dd9b4
VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen
2025-02-14 22:44:49 -06:00
Tillmann Karras
5db6bd6054
VideoCommon: simplify dither calculation
...
This saves three instructions on AMD GPUs. Dunno about Nvidia.
2025-02-11 19:23:37 +00:00
Tillmann Karras
19d954eaea
VideoCommon: remove CP readonly field, it's now always false
2025-02-08 11:46:49 +00:00
Tillmann Karras
84e72c185a
VideoCommon: drop CP MMIO registers that were probably added in the wrong place
...
I think someone confused these with the actual token and bounding box
registers in PE, which were added later. In CP they never did anything
and it's suspicious that they have the same addresses as their PE
counterparts. On real hardware they always read as zero.
2025-02-08 11:46:49 +00:00
Admiral H. Curtiss
05f217bd0b
Merge pull request #13330 from Dentomologist/performancemetrics_allow_moving_overlays
...
PerformanceMetrics: Allow users to move overlays
2025-02-06 21:56:57 +01:00
JosJuice
db285b7c87
Merge pull request #13319 from hoogmin/infinite-style-fix
...
Refactor: Infinite loop in AsyncShaderCompiler according to style guidelines
2025-02-06 18:31:28 +01:00
Javier Martinez
7dec083af5
Refactor: Make loop non-infinite instead in AsyncShaderCompiler.
2025-02-05 20:06:59 -05:00
Dentomologist
4b8e36cba9
PerformanceMetrics: Allow users to move overlays
...
Allow users to move the FPS, VPS, Speed, and Performance Graph overlays.
2025-02-02 19:40:01 -08:00
Dentomologist
f94e6cb73e
PerformanceMetrics: Call ImGui::End() unconditionally
...
Move ImGui::End() calls out of if(ImGui::Begin()) blocks.
Quoting from ImGui::Begin's function comment in imgui.cpp:
"You always need to call ImGui::End() even if false is returned."
In practice this didn't cause problems because the windows don't have
title bars and thus can't be collapsed, and so the block containing
::End would always run, but let's do it the right way.
2025-02-02 14:14:56 -08:00
OatmealDome
b5a0d293ae
Merge pull request #13305 from OatmealDome/vertexloader-config
...
VertexLoaderBase: Allow the vertex loader type to be set via config
2025-01-29 17:14:05 -05:00
JMC47
e16e3f9a61
Merge pull request #13291 from iwubcode/imgui_1_91_7
...
Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16
2025-01-28 20:57:28 -05:00
OatmealDome
bffaec9c5e
VertexLoaderBase: Allow the vertex loader type to be set via config
2025-01-24 18:31:42 -05:00
iwubcode
25c805be99
Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16; imgui changed types for ImTextureId, which was addressed by using an implicit cast
2025-01-20 14:47:14 -06:00
iwubcode
ee906ae6e8
VideoCommon: add formatter for AbstractTextureType
2025-01-20 14:24:54 -06:00
Admiral H. Curtiss
3ea870ef8c
Merge pull request #13244 from dreamsyntax/bugfix-double-osd-texture-messages
...
Core/VideoCommon: Fix duplicate OSD Custom Textures messages
2025-01-12 16:16:09 +01:00
Admiral H. Curtiss
7133bfbb0e
Merge pull request #13180 from jordan-woyak/eof-logic
...
Core/VideoCommon: Fix some weird (!eof) logic.
2025-01-08 05:27:42 +01:00
JMC47
6b686be5f1
Merge pull request #13233 from TryTwo/PR_Codec
...
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-04 22:26:36 -05:00
mitaclaw
110d32729e
Simplify `std::find` with `Common::Contains`
...
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).
The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2025-01-01 09:52:03 -08:00
Jordan Woyak
0938fca6e3
Core/VideoCommon: Fix some weird (!eof) logic.
2024-12-30 20:13:59 -06:00
TryTwo
3d248d000f
Frame Dumping: Change lossless codec from FFV1 to Ut Video.
...
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-12-30 14:07:43 -07:00
dreamsyntax
07f712f8a0
Core/VideoCommon: Fix duplicate OSD Custom Textures messages
...
Resolves duplicate OSD messages for Loading and Found custom textures.
VideoBackend initialization results in HiresTexture::Init being called.
We already call HiresTexture::Update when OnNewTitleLoad is called.
Thus we can remove HiresTextures::Init completely as it is redundant.
2024-12-28 01:09:50 -07:00
mitaclaw
2b0cd16c8c
Modernize `std::none_of` with ranges
...
In JitRegCache.cpp, the lambda predicate were replaced by a pointer to member function because ranges algorithms are able to invoke those.
In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
In BoundingBox.cpp, the lambda predicate was returning the bool element unchanged, so `std::identity` was a better fit.
2024-12-15 19:54:17 -08:00
mitaclaw
140252ffc0
Modernize `std::any_of` with ranges
...
In WiimoteReal.cpp, JitRegCache.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.
In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
2024-12-15 19:54:16 -08:00
mitaclaw
860e6cf5cb
Modernize `std::all_of` with ranges
...
In DITSpecification.cpp, MaterialAsset.cpp, and ShaderAsset.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.
In NetPlayClient.cpp, the non-trivial `NetPlay::Player` elements were being passed by value in `NetPlayClient::DoAllPlayersHaveGame()`. This has been fixed.
In WIABlob.cpp, the second example's predicate was returning the `std::optional` by value instead of implicitly converting it to a bool. This has been fixed.
2024-12-15 19:50:34 -08:00
Dr. Dystopia
6d44afc7dd
Replace 'reinterpret_cast' with 'static_cast'
2024-11-08 07:26:47 +01:00
Dentomologist
47a86d920f
GeneralWidget: Recommend default video backend in tooltip
...
Recommend the platform's default video backend in the Backend tooltip
instead of always recommending OpenGL.
2024-11-03 12:28:30 -08:00
Dentomologist
7b8610f4ea
VideoBackendBase: Clarify function name
...
Rename GetDefaultBackendName to GetDefaultBackendConfigName to
distinguish it from the display name.
2024-11-03 12:26:57 -08:00
TellowKrinkle
5ef4fcb005
VideoCommon: Implement primitive breaking for primitive lists
2024-10-29 22:38:22 -05:00
JMC47
05e3a52de0
Merge pull request #13135 from Tilka/warning
...
VideoCommon: fix -Wshadow-uncaptured-local warning and simplify
2024-10-19 15:12:25 -04:00
Tilka
fed8220c39
Merge pull request #12712 from Dentomologist/remove_defined_out_code
...
Remove defined-out code
2024-10-19 19:36:19 +01:00
JMC47
21f4319302
Merge pull request #13092 from mitaclaw/ranges-modernization-3-spaceship
...
Ranges Algorithms Modernization - Compare
2024-10-17 13:37:16 -04:00
Tillmann Karras
0e41adb7b7
VideoCommon: fix -Wshadow-uncaptured-local warning and simplify
2024-10-16 18:36:00 +01:00
JosJuice
07605bf67c
Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivial
...
Ranges Algorithms Modernization - Trivial
2024-10-15 17:08:55 +02:00
JMC47
ef8b753cd7
Merge pull request #13115 from Tilka/syncfifo
...
VideoCommon: fix common opcode decoding errors
2024-10-14 21:26:08 -04:00
Pokechu22
937bb2aa2e
Cache normals in addition to binormals and tangents
...
Fixes LIT (https://bugs.dolphin-emu.org/issues/13635 ). The text does not include normals, but has lighting enabled. With the previous default of (0, 0, 0), lighting was always black (as dot(X, (0, 0, 0)) is always 0). It seems like the normal from the map in the background (0, 0, 1) is re-used.
LIT also has the vertex color enabled while vertex color is not specified, the same as SMS's debug cubes; the default MissingColorValue GameINI value of solid white seems to work correctly in this case.
2024-10-12 10:32:41 -07:00
Tilka
c1832d17f6
Merge pull request #13117 from mitaclaw/ranges-modernization-9-trivial-find
...
Ranges Algorithms Modernization - Find
2024-10-11 20:27:18 +01:00
mitaclaw
8b1975ab18
GraphicsMod: Simplify `std::sort` using ranges and projections
2024-10-11 12:08:22 -07:00
mitaclaw
e8d5fb89e4
C++20: Synthesize `operator!=` From `operator==`
...
The inequality operator is automatically generated by the compiler if `operator==` is defined.
2024-10-10 20:23:55 -07:00
mitaclaw
e4fb837f4b
Modernize `std::find_if` with ranges
...
In BTEmu.cpp, `std::mem_fn` was not necessary for the predicate to compile.
2024-10-10 15:28:11 -07:00
mitaclaw
6ca7e2856b
Modernize `std::find` with ranges
2024-10-10 15:28:11 -07:00