summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
AgeCommit message (Collapse)Author
2026-01-19VideoCommon: Move TextureInfo getters to headerJosJuice
This improves my PC's performance on RS2 Hoth by... 0.1% or so, which I think is within the margin of error. But this change also cuts down on boilerplate.
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-17Merge pull request #14289 from Sintendo/typosJMC47
Fix various typos and spelling mistakes
2026-01-17Merge pull request #14268 from JoshuaVandaele/std-tounderlyingiwubcode
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17Fix various typos and spelling mistakesSintendo
2026-01-17VideoCommon: Don't create mipmap vector in TextureInfoJosJuice
The TextureInfo constructor creates a vector of MipLevels. This could be good for performance if MipLevels are accessed very often for each TextureInfo, but that's not the case. Dolphin creates thousands of TextureInfos per second that it never accesses the mipmap levels of because there's a hit in the texture cache, and in the uncommon case of a texture cache miss, the mipmap levels only get looped through once. To make the common case of texture cache hits as fast as possible, let's not create a vector in the TextureInfo constructor. This commit implements a custom iterator for MipLevels instead. In my testing on the Death Star level of Rogue Squadron 2, this speeds up TextureInfo::FromStage by 200%, giving an overall emulation speedup of a bit over 1%. Results on the Hoth level are even better, with TextureInfo::FromStage being close to 300% faster and overall emulation being over 4% faster. (Single core, no GPU texture decoding.)
2026-01-09c++23: Replace Common::ToUnderlying with std::to_underlyingJoshua Vandaële
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2025-12-29ShaderAsset: Fix shadowed variableJoshua Vandaële
`samplers` is a member defined in ShaderAsset.h
2025-12-27Merge pull request #14228 from iwubcode/clear_compiler_work_resource_mgriwubcode
VideoCommon: clear all compiler work when resource manager shuts down
2025-12-27Merge pull request #14234 from JoshuaVandaele/wunused-cpipelineJosJuice
CustomPipeline: Remove unused functions
2025-12-27Merge pull request #14233 from Sintendo/fix-shader-resource-warningJosJuice
VideoCommon: Fix ShaderResource init order warning
2025-12-27CustomPipeline: Remove unused functionsJoshua Vandaële
2025-12-26VideoCommon: Fix ShaderResource init order warningSintendo
2025-12-24VideoCommon: initialize stored viewport to 0, fixes a crash in debug mode ↵iwubcode
for d3d
2025-12-24VideoCommon: clear all compiler work when resource manager shuts downiwubcode
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-12-22Merge pull request #14206 from cscd98/send-messageJMC47
mingw: replace usages of SendMessage due to clash with existing function
2025-12-22Merge pull request #14166 from jordan-woyak/immediate-xfb-limitJMC47
VideoCommon: Add setting to limit immediate swaps to one per VI.
2025-12-22Merge pull request #14151 from iwubcode/material_asset_booleanJMC47
VideoCommon: fix MaterialAsset so that boolean parameters are written properly
2025-12-22Merge pull request #14150 from iwubcode/clear_async_compiler_work_itemsJMC47
VideoCommon: add method to async shader compiler to clear pending/completed work, use on shutdown
2025-12-22Merge pull request #14117 from iwubcode/end_utility_drawingJMC47
VideoCommon: avoid assuming global state exists for 'EndUtilityDrawing'
2025-12-22Merge pull request #14114 from jordan-woyak/freelook-config-cleanupJMC47
Core: Eliminate FreeLookConfig by putting the "active config" within FreeLookCamera.
2025-12-10mingw: replace SendMessage usage as clashes with existing functionCraig Carnell
2025-12-10Update Comments Based On Hardware TestNuh Uh
Checked on hardware that this bias was not added because I had assumed the other way around would be true, forgot to ask about making a PR for this when I initially had done so
2025-11-25VideoCommon: Add a hidden setting to cap immediate XFB swaps to one per VI.Jordan Woyak
2025-11-23VideoCommon: move resource state processing to the resource base classiwubcode
2025-11-23VideoCommon: update resource manager with a material/shader/and ↵iwubcode
texture(+sampler) resource to show the complexities that warrant the resource manager system
2025-11-23VideoCommon: add custom includer to custom shaders, this will allow us to ↵iwubcode
ship built-in custom shaders in the future
2025-11-23VideoCommon: add some helper functions for resource logic that generates ↵iwubcode
invalid textures for when a texture isn't provided for a custom asset
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-23VideoCommon: add a texture pool for resource managementiwubcode
2025-11-23VideoCommon: separate the concept of a 'resource' from an 'asset'. A ↵iwubcode
resource is potentially multiple assets that are chained together but represent one type of data to the rest of the system. An example is a 'material'. A 'material' is a collection of textures, a custom shader, and some metadata that all comes together to form what the concept of the material is. There will be a 'material' resource. For now, start small by introducing the interface and change our texture loading which used assets from the old resource manager, to an actual resource.
2025-11-23VideoCommon: rename 'IsAnisostropicEnhancementSafe' to ↵iwubcode
'IsAnisotropicEnhancementSafe' in TextureCacheBase
2025-11-23Merge pull request #14149 from iwubcode/shader_asset_vector_propertiesJMC47
VideoCommon: update ShaderAsset to use a vector of properties
2025-11-22Merge pull request #14037 from jordan-woyak/presentation-timingJMC47
Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.
2025-11-21VideoCommon: update ShaderAsset to use a vector of properties, this way we ↵iwubcode
ensure the order of these properties match the order of the material
2025-11-21VideoCommon: update ShaderAsset to remove requirement of the code name being ↵iwubcode
in the shader source, this just makes it more difficult to iteratively test changes, assume shader devs know what they are doing
2025-11-21VideoCommon: remove template parameter from lock guards in ↵iwubcode
AsyncShaderCompiler, let type deduction do its thing and improve readability
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-20VideoCommon: fix MaterialAsset so that boolean parameters are written to ↵iwubcode
memory as integers, matching the format internally expected by shaders
2025-11-20VideoCommon: avoid assuming global state exists for 'EndUtilityDrawing', use ↵iwubcode
last stored viewport/scissor rect instead
2025-11-19Merge pull request #14121 from jordan-woyak/warn-silenceJordan Woyak
Common and VideoCommon: Silence a few warnings.
2025-11-16Merge pull request #13922 from TryTwo/imgui_add_default_fontJosJuice
OSD/Imgui: Add a better default font
2025-11-15VideoCommon/FramebufferManager: Silence warning:Jordan Woyak
warning: virtual method '~FramebufferManager' is inside a 'final' class and can never be overridden [-Wunnecessary-virtual-specifier]
2025-11-12Core: Eliminate FreeLookConfig by putting the "active config" within ↵Jordan Woyak
FreeLookCamera.
2025-11-12Merge pull request #14100 from AndrewGDX/masterJordan Woyak
Improved stereoscopic 3D settings
2025-11-12Improved stereoscopic 3D settingsAndrewGDX
2025-11-11VideoCommon/PerformanceMetrics: Display current offset between the latest ↵Jordan Woyak
frame presentation time and the intended presentation time in the "Show Frame Times" box.
2025-11-11VideoCommon: Add "Smooth Early Presentation" setting to improve frame pacing ↵Jordan Woyak
with ImmediateXFB and/or RushFramePresentation.
2025-11-11VideoCommon: Make Presenter aware of the next swap time to eliminate unsafe ↵Jordan Woyak
usage of GetTicks() with ImmediateXFB + DualCore.