summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/ShaderCache.cpp
AgeCommit message (Collapse)Author
2026-04-17Improve usage of std::move and const references parametersMartino Fontana
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`. Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move. Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
2025-12-22Merge pull request #14043 from iwubcode/custom_resourceJMC47
VideoCommon: separate the concept of a 'resource' from an 'asset', add Material/Shader loading
2025-11-23VideoCommon: move ApplyDriverBugs for the normal pipeline out into a utility ↵iwubcode
function, add a way to hash the pipeline (using the vertex declaration instead of the native vertex format)
2025-11-21VideoCommon: add method to async shader compiler to clear pending/completed ↵iwubcode
work (used on shutdown), this will in turn clear up any resources that the worker items may have held onto
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-10-26VideoBackends / VideoCommon: add support for specifying include files in ↵iwubcode
shader code
2025-08-23VideoBackends / VideoCommon: rename member variables in RenderState to be ↵iwubcode
consistent
2025-07-08Avoid map/set double lookupsSintendo
Fix some common anti-patterns with these data structures. - You can dereference the iterator returned by `find` to access the underlying value directly, without an extra `operator[]`/`at`. - Rather than checking for an element before insertion/deletion, you can just do the operation and if needed check the return value to determine if the insertion/deletion succeeded.
2025-05-24VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, ↵iwubcode
to eventually allow for custom shaders to override vertex logic
2025-03-22VideoCommon: move to a 'process_fragment()' function to simplify custom ↵iwubcode
shaders and provide a direct override of the tev stage logic
2025-03-09VideoCommon: Move backend_info out of VideoConfig struct.Jordan Woyak
2024-08-15Use 'contains' methodmitaclaw
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.
2023-08-20VideoCommon: uber pixel shader gen changes needed to support custom pixel ↵iwubcode
shaders in graphics mods
2023-08-20VideoCommon: pixel shader gen changes needed to support custom pixel shaders ↵iwubcode
in graphics mods
2023-04-19Common/LinearDiskCache: Move interface into Common namespaceLioncash
Gets the interface out of the global namespace.
2023-04-12Resolve [-Wclass-memaccess]Minty-Meeo
2023-02-09Suppress memcpy writing to an object with no trivial copy-assignment warningsPokechu22
We need to copy padding in most of these cases, and the objects are trivially copyable; however, BitField prevents trivial copy-assignment.
2023-02-09Merge pull request #11522 from phire/KillRendererWithFireScott Mansell
Kill Renderer (with phire)
2023-02-09Lint fixesScott Mansell
2023-01-31Split out everying remaining from SwapScott Mansell
2023-01-31Replace BeginUI/EndUIScott Mansell
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-31Move Presenting, Dumping and ImGui out of RendererScott Mansell
2023-01-30VideoCommon: Better logic op invert approximationTellowKrinkle
2022-10-22VideoCommon: Add vertex shader point and line expansionTellowKrinkle
2022-09-19VideoCommon: Add separate pipeline usage for UberShadersTellowKrinkle
2022-09-19VideoCommon: Compile a few extra pipelinesTellowKrinkle
2022-09-19VideoCommon: Add dynamic vertex loader to ubershadersTellowKrinkle
2022-07-15VideoCommon: Always use fbfetch in ubershaders if availableTellowKrinkle
Reduce the number of different pipelines needed. Also works around drivers that break when you combine fbfetch with dual source blending
2022-07-13VideoCommon: Better driver bug handlingTellowKrinkle
Adds a pass to process driver deficiencies between UID caching and use, allowing a full view of the whole pipeline, since some bugs/workarounds involve interactions between blend modes and the pixel shader
2022-07-09ShaderCache: Fix inverted usage of palette_format.Admiral H. Curtiss
2022-07-02Merge pull request #8467 from CookiePLMonster/interruptable-shader-precompileAdmiral H. Curtiss
Make shader precompilation interruptable
2022-06-17VideoCommon:ShaderCache: Add const to some local variablesTellowKrinkle
2022-06-16VideoCommon: Name ubershadersTellowKrinkle
2022-06-16VideoCommon: Reduce duplicates of non-palette-requiring texture decode shadersTellowKrinkle
2022-06-10Clear the UI after async shader compilationSilent
2022-06-10Allow to interrupt shader precompilation by stopping emulationSilent
2022-01-29IOFile: Make origin parameter to Seek() an enum class.Admiral H. Curtiss
2022-01-01VideoCommon: Add names for textures and shadersPokechu22
2021-12-22Merge pull request #10215 from OatmealDome/shader-logic-opsJMC47
VideoCommon: Support shader logic ops on Metal (Apple GPUs) and OpenGL ES
2021-12-18Eliminate VarType for ComponentFormatPokechu22
2021-12-06ShaderCache: Don't turn on logic ops approximation if framebuffer fetch is ↵OatmealDome
supported
2021-10-26Externals: Update imgui to 1.85Pokechu22
2021-07-28Convert ShaderHostConfig to BitFieldPokechu22
2021-07-05treewide: convert GPLv2+ license info to SPDX tagsPierre Bourdon
SPDX standardizes how source code conveys its copyright and licensing information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX tags are adopted in many large projects, including things like the Linux kernel.
2021-03-06Convert BPMemory to BitField and enum classPokechu22
Additional changes: - For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare. (Shift has also been renamed to scale) - In TexMode0, min_filter has been split into min_mip and min_filter. - In TexImage1, image_type is now cache_manually_managed. - The unused bit in GenMode is now exposed. - LPSize's lineaspect is now named adjust_for_aspect_ratio.
2020-12-16Fix -Wclass-memaccess warningsLéo Lam
We want to clear/memset the padding bytes, not just each member, so using assignment or {} initialization is not an option. To silence the warnings, cast the object pointer to u8* (which is not undefined behavior) to make it explicit to the compiler that we want to fill the object representation.
2020-11-17VideoCommon: Migrate over to fmtLioncash
Migrates off the printf-based formatting where applicable.