summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
AgeCommit message (Collapse)Author
2025-02-24PerformanceMetrics: Add clamping, resetting on resize, and settingDentomologist
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-22Merge pull request #13353 from iwubcode/custom_shader_overhaul_vertex_texcoordJMC47
VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen
2025-02-17Merge pull request #13219 from Tilka/cp_cleanupJosJuice
VideoCommon: drop CP MMIO registers that were probably added in the wrong place
2025-02-14VideoCommon: move texcoord calculations to accessible functions in ↵iwubcode
VertexShaderGen
2025-02-11VideoCommon: simplify dither calculationTillmann Karras
This saves three instructions on AMD GPUs. Dunno about Nvidia.
2025-02-08VideoCommon: remove CP readonly field, it's now always falseTillmann Karras
2025-02-08VideoCommon: drop CP MMIO registers that were probably added in the wrong placeTillmann Karras
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-06Merge pull request #13330 from ↵Admiral H. Curtiss
Dentomologist/performancemetrics_allow_moving_overlays PerformanceMetrics: Allow users to move overlays
2025-02-06Merge pull request #13319 from hoogmin/infinite-style-fixJosJuice
Refactor: Infinite loop in AsyncShaderCompiler according to style guidelines
2025-02-05Refactor: Make loop non-infinite instead in AsyncShaderCompiler.Javier Martinez
2025-02-02PerformanceMetrics: Allow users to move overlaysDentomologist
Allow users to move the FPS, VPS, Speed, and Performance Graph overlays.
2025-02-02PerformanceMetrics: Call ImGui::End() unconditionallyDentomologist
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-01-29Merge pull request #13305 from OatmealDome/vertexloader-configOatmealDome
VertexLoaderBase: Allow the vertex loader type to be set via config
2025-01-28Merge pull request #13291 from iwubcode/imgui_1_91_7JMC47
Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16
2025-01-24VertexLoaderBase: Allow the vertex loader type to be set via configOatmealDome
2025-01-20Externals / VideoCommon: update imgui to 1.91.7 and implot to v0.16; imgui ↵iwubcode
changed types for ImTextureId, which was addressed by using an implicit cast
2025-01-20VideoCommon: add formatter for AbstractTextureTypeiwubcode
2025-01-12Merge pull request #13244 from dreamsyntax/bugfix-double-osd-texture-messagesAdmiral H. Curtiss
Core/VideoCommon: Fix duplicate OSD Custom Textures messages
2025-01-08Merge pull request #13180 from jordan-woyak/eof-logicAdmiral H. Curtiss
Core/VideoCommon: Fix some weird (!eof) logic.
2025-01-04Merge pull request #13233 from TryTwo/PR_CodecJMC47
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-01Simplify `std::find` with `Common::Contains`mitaclaw
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.
2024-12-30Core/VideoCommon: Fix some weird (!eof) logic.Jordan Woyak
2024-12-30Frame Dumping: Change lossless codec from FFV1 to Ut Video.TryTwo
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-12-28Core/VideoCommon: Fix duplicate OSD Custom Textures messagesdreamsyntax
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-15Modernize `std::none_of` with rangesmitaclaw
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-15Modernize `std::any_of` with rangesmitaclaw
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-15Modernize `std::all_of` with rangesmitaclaw
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-11-03GeneralWidget: Recommend default video backend in tooltipDentomologist
Recommend the platform's default video backend in the Backend tooltip instead of always recommending OpenGL.
2024-11-03VideoBackendBase: Clarify function nameDentomologist
Rename GetDefaultBackendName to GetDefaultBackendConfigName to distinguish it from the display name.
2024-10-29VideoCommon: Implement primitive breaking for primitive listsTellowKrinkle
2024-10-19Merge pull request #13135 from Tilka/warningJMC47
VideoCommon: fix -Wshadow-uncaptured-local warning and simplify
2024-10-19Merge pull request #12712 from Dentomologist/remove_defined_out_codeTilka
Remove defined-out code
2024-10-17Merge pull request #13092 from mitaclaw/ranges-modernization-3-spaceshipJMC47
Ranges Algorithms Modernization - Compare
2024-10-16VideoCommon: fix -Wshadow-uncaptured-local warning and simplifyTillmann Karras
2024-10-15Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivialJosJuice
Ranges Algorithms Modernization - Trivial
2024-10-14Merge pull request #13115 from Tilka/syncfifoJMC47
VideoCommon: fix common opcode decoding errors
2024-10-12Cache normals in addition to binormals and tangentsPokechu22
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-11Merge pull request #13117 from mitaclaw/ranges-modernization-9-trivial-findTilka
Ranges Algorithms Modernization - Find
2024-10-11GraphicsMod: Simplify `std::sort` using ranges and projectionsmitaclaw
2024-10-10C++20: Synthesize `operator!=` From `operator==`mitaclaw
The inequality operator is automatically generated by the compiler if `operator==` is defined.
2024-10-10Modernize `std::find_if` with rangesmitaclaw
In BTEmu.cpp, `std::mem_fn` was not necessary for the predicate to compile.
2024-10-10Modernize `std::find` with rangesmitaclaw
2024-10-10Modernize `std::binary_search` with rangesmitaclaw
In VolumeVerifier.cpp, constructing a `std::string_view` of the volume's GameID is unnecessary, as `std::`(`ranges::`)`binary_search` supports heterogeneous lookup. The usage in GameFile.cpp is a perfect example.
2024-10-10Modernize `std::sort` with rangesmitaclaw
2024-10-10Modernize `std::fill` with rangesmitaclaw
In DSPCore.cpp, there were two `std::fill` uses that could be simplified using `std::fill_n`. Due to their proximity with other `std::fill` algorithms being modernized with ranges, I chose to make these examples into the rare `std::ranges::fill_n`.
2024-10-10VideoCommon: fix common opcode decoding errorsTillmann Karras
Many games call GXSetGPFifo() without first waiting for the GP to finish consuming outstanding commands in the previous GP fifo. Normally, Dolphin runs OpcodeDecoding in 1000-cycle time slices. In that time frame, GXSetGPFifo() has probably completed and the GP read pointer now points to entirely new memory. If the last GP fifo copy ended in an incomplete command, the new GP fifo would most likely desync for a while. To avoid all this, give the GP a time slice right now to copy the remaining data from the previous GP fifo.
2024-10-06Fifo analyzer: Fix indexed XF loads showing "bytes" instead of "words"Pokechu22
Indexed XF loads specify the number of 32-bit words (generally floats, but light data has some integers) to load, not the number of bytes. This was only a mistake in the fifo analyzer text; the actual implementation already loaded words.
2024-10-06Merge pull request #12918 from JosJuice/revert-revert-audit-get-stateJMC47
Partially revert "Revert "Audit uses of IsRunning and GetState""
2024-10-05Merge pull request #12208 from PatrickFerry/add-vertex-depth-range-caseJules Blok
Use Vertex Depth Range when zRange Exceeds farZ
2024-10-04Partially revert "Revert "Audit uses of IsRunning and GetState""JosJuice
This reverts the revert commit bc67fc97c39628c76a4dbca411b0e8a9bfaf726a, except for the changes in BaseConfigLoader.cpp, which caused the bug that made us revert 72cf2bdb87f09deff22e1085de3290126aa4ad05. PR 12917 contains an improved change to BaseConfigLoader.cpp, which can be merged (or rejected) independently. A few changes have also been made based on review comments.