summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexManagerBase.cpp
AgeCommit message (Collapse)Author
2026-01-18VideoCommon: Defer creating TextureInfoJosJuice
TextureCacheBase::LoadImpl has a hot path where the passed-in TextureInfo never gets used. Instead of passing in a TextureInfo, let's pass in the stage and create the TextureInfo from the stage if needed. This unlocks somewhere above an additional 4% performance boost in the Hoth level of Rogue Squadron 2 on my PC. Performance varies, making it difficult for me to measure, so treat this as a very approximate number.
2026-01-17Fix various typos and spelling mistakesSintendo
2025-11-06Common: Remove the string parameters from the HookableEvent interface.Jordan Woyak
2025-11-02Common: Make HookableEvent use non-static data.Jordan Woyak
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-08-23VideoBackends / VideoCommon: rename member variables in RenderState to be ↵iwubcode
consistent
2025-08-14DolphinAnalytics: Use Pascal case for GameQuirk enumDentomologist
2025-04-01VideoCommon: fix a mali bug by moving the perf queries back to being close ↵iwubcode
to the draw call, having them apart seems to cause errors on some devices
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
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-10-19Merge pull request #12712 from Dentomologist/remove_defined_out_codeTilka
Remove defined-out code
2024-10-15Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivialJosJuice
Ranges Algorithms Modernization - Trivial
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-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-06-01VideoCommon: pull texture sampler out of texture cache so that it can be ↵iwubcode
used in other places in the future
2024-04-18VideoCommon: Show the average projection to viewport ratio in statisticsJordan Woyak
window.
2024-04-15Remove defined-out codeDentomologist
2024-01-31VideoCommon/Statistics: Remove global system accessor from s_after_frame_eventLioncash
Instead, we make the event take a reference to the system and then pass it in when the event is triggered. This does introduce two other accessors, but these are much easier to refactor out over time, and without modification to the existing event interface.
2024-01-31Migrate SConfig::bWii to System.Admiral H. Curtiss
2024-01-27VideoCommon: refactor drawing into its own functioniwubcode
2024-01-26Merge pull request #12443 from iwubcode/custom_pipeline_action_material_cubemapMai
VideoCommon: update custom pipeline action to support a variety of texture samplers, support for materials, and more!
2024-01-04Core/SystemTimers: Refactor to class, move to System.Admiral H. Curtiss
2023-12-19VideoCommon: update custom pipeline action to support a variety of texture ↵iwubcode
samplers (2D, 2D array, and cube maps)
2023-12-18Merge pull request #12170 from Filoppi/custom_aspect_ratioAdmiral H. Curtiss
Add support for custom aspect ratios
2023-12-18Video: polish aspect ratio related code comments to make it clearerFiloppi
2023-12-12VideoCommon: prepare graphics mods for custom shader material dataiwubcode
2023-12-11VertexManagerBase: Resolve -Wsign-compare warningLioncash
2023-11-26VideoCommon: move xf state management to its own class, so changes can be ↵iwubcode
detected in places other than VertexShaderManager
2023-10-05VideoCommon: add custom pixel shader constants as a buffer of data to be ↵iwubcode
passed to all backends
2023-09-06VideoCommon: Expose the widescreen heuristic's standard and widescreen ratio ↵Jordan Woyak
values in onion config.
2023-09-05VertexManagerBase: Allow widecreen heuristic constants to be overriden by ↵OatmealDome
onion config
2023-08-20VideoCommon: add milliseconds elapsed time value to pixel shaders as a ↵iwubcode
uniform to be able to support animation effects in custom shaders
2023-08-20VideoCommon: add custom shader cache to VertexManagerBase, supporting custom ↵iwubcode
pixel shaders by replacing the existing pipeline with a modified one
2023-07-02VideoCommon: don't do pointer copies during graphics mod callback iterationiwubcode
2023-03-20VideoCommon:VertexManagerBase: Only calculate remaining indices onceRobin Kertels
Before, both of those were calculated 3 times due to the ASSERTs.
2023-02-09Lint fixesScott Mansell
2023-01-31Cleanup headersScott Mansell
2023-01-31Split out everying remaining from SwapScott Mansell
2023-01-31Wire up frame before/after eventsScott Mansell
2023-01-31Move GraphicsMod out of RenderBaseScott Mansell
2023-01-31Move BoundingBox out of RenderBaseScott Mansell
They were essentially just pass-though methods
2023-01-31Split AbstractGfx out of RendererScott Mansell
Almost all the virtual functions in Renderer are part of dolphin's "graphics api abstraction layer", which has slowly formed over the last decade or two. Most of the work was done previously with the introduction of the various "AbstractX" classes, associated with texture cache cleanups and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal). We are simply taking the last step and yeeting these functions out of Renderer. This "AbstractGfx" class is now completely agnostic of any details from the flipper/hollywood GPU we are emulating, though somewhat specialized. (Will not build, this commit only contains changes outside VideoBackends)
2023-01-26Merge pull request #11208 from TellowKrinkle/CPUCullPierre Bourdon
Cull vertices on the CPU
2023-01-25VideoCommon: Cull vertices on the CPUTellowKrinkle
2023-01-03VertexManagerBase: Move free space check to after the buffer is resetPokechu22
Fixes incorrect logspam when the buffer needed to be reset on flushes (which we already were doing, but 52feed04dbf9d487138944ed834bd877620eef74 moved it to after the check was made). This is https://bugs.dolphin-emu.org/issues/10312. I also converted it to an assert, as if this does happen, things are going to render incorrectly, so we want to make it obvious.
2022-12-29VideoCommon: De-globalize GeometryShaderManager class.Admiral H. Curtiss
2022-12-28VideoCommon: De-globalize VertexShaderManager class.Admiral H. Curtiss
2022-12-27VideoCommon: De-globalize PixelShaderManager class.Admiral H. Curtiss
2022-10-22VideoCommon: Support hot reloading of VS expandTellowKrinkle
2022-10-22VideoCommon: Add vertex shader point and line expansionTellowKrinkle
2022-10-09Simplify saving CP statePokechu22
Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0dfaba2a88036468b6d971bb1d7e463d, we can just use p.Do on it instead of manually saving each field.