iwubcode
d7b7c47453
Merge pull request #14612 from linkmauve/remove-glx
...
Remove GLX support
2026-04-22 21:12:15 -05:00
iwubcode
306daff517
Data: update De Blob 1 and 2 to use explicit bloom target
...
These two games have some strange rendering behaviors and therefore can't use the generic bloom actions.
These games have several bloom EFB copies and they draw that on top of an already rendered game. After doing that, they render some other draw calls to "fixup" the bloom that it drew to effectively remove it. This isn't uncommon but there is one special thing these games do...they use a RAM EFB copy for the 'fixup'. This means when playing with high IR, the game will look blurry in specific parts of the screen where the game was attempting to fix the copy!
Bloom removal has addressed this by removing all the draw calls related to the bloom, including the fixup draws. The user then needs to turn on 'EFB Copy To Texture Only' for the best visuals (De Blob 2 in particular is broken without this) as the default settings.
Bloom blurred will need special attention too but Dolphin doesn't currently have enough functionality to handle it.
2026-03-26 20:14:40 -05:00
iwubcode
41adc6fba8
Data: update Sonic Colors bloom definitions to remove repeats, thanks FrankyBuster
2026-03-26 20:14:40 -05:00
iwubcode
7d683b02ed
Data: update Pandora's Tower Bloom and DOF definitions
2026-03-26 20:14:40 -05:00
iwubcode
d8c8a04ab8
Data: add a blurred DOF feature
2026-03-26 20:14:40 -05:00
iwubcode
db72877520
Data: add more bloom graphics mods
2026-03-26 20:14:40 -05:00
iwubcode and TryTwo
ace082af23
Data: provide a blur mod for games with bloom
...
Add a mod for all games with bloom targets that blurs the bloom based on resolution using a custom material. The shader exposes bloom brightness and the amount of spread through uniforms (not exposed in the UI yet).
The original shader logic was done by TryTwo. This shader was reworked for graphics mods and cleaned up slightly.
Co-authored-by: TryTwo <[email protected] >
2026-03-26 20:13:16 -05:00
iwubcode
6b7a9e6ac3
VideoCommon: allow graphics mods to be added to sub folders
2026-03-26 20:13:16 -05:00
iwubcode
9cde551e29
VideoCommon: watch the user and system graphics mods directories for modified assets
2026-03-26 20:13:16 -05:00
iwubcode
1f72403ec7
VideoCommon: optionally apply materials to EFBs
...
After an EFB operation is turned into a texture, if there is a graphics mod action that provides a custom material, update the EFB texture with the material
2026-03-26 20:13:16 -05:00
iwubcode
7bfd43eb1a
VideoCommon: update CustomPipelineAction to get a Material when an EFB is received
2026-03-26 20:13:16 -05:00
iwubcode
2d8f955851
VideoCommon: enhance 'CustomResourceManager' for post processing
...
This expands the interface of 'CustomResourceManager' to get a Material for post processing a frame buffer (currently EFB). The flow is similar to the normal draw material but distinguishes itself by not needing a UID. The full shader is much simpler than the draw shader and is currently put inline with the shader resource.
2026-03-26 20:13:16 -05:00
iwubcode
6ba2d2e081
VideoCommon: update graphics mod action interface
...
* Add a 'AfterEFB' function to graphics mod action that can return a Material
* Rename previous EFB graphics mod function to 'BeforeEFB' to differentiate from 'AfterEFB'
* Rename previous XFB graphics mod function to 'BeforeXFB' to mirror EFB
2026-03-26 18:52:01 -05:00
iwubcode
4dae6bf97a
Merge pull request #14173 from JoshuaVandaele/WIL-submodule
...
Make WIL a submodule and update it
2026-01-21 18:04:49 -06:00
iwubcode
9656332356
Core: add game id to fifo logs, this makes it easier to test graphical enhancements which use the game id to load
2026-01-19 16:03:19 -06:00
iwubcode
d8e123a70c
Merge pull request #14241 from jordan-woyak/ar-decode-cleanups
...
ARDecrypt: Code modernization.
2026-01-18 12:04:53 -06:00
iwubcode
373e35ed5b
Merge pull request #14267 from jordan-woyak/std-expected
...
Common: Replace Result with std::expected.
2026-01-17 22:33:15 -06:00
iwubcode
6d40f4e897
Merge pull request #14265 from JoshuaVandaele/std-unreachable
...
c++23: Replace Common::Unreachable with std::unreachable
2026-01-17 22:32:53 -06:00
iwubcode
b556bd99d7
Merge pull request #14268 from JoshuaVandaele/std-tounderlying
...
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
iwubcode
cc0ce62e7f
Merge pull request #14252 from Dentomologist/set_standard_to_c++23
...
Set standard to c++23 for non-MSVC compilers
2026-01-08 14:35:17 -06:00
iwubcode
aa1605e95a
Merge pull request #14228 from iwubcode/clear_compiler_work_resource_mgr
...
VideoCommon: clear all compiler work when resource manager shuts down
2025-12-27 13:09:21 -06:00
iwubcode and Jordan Woyak
c9ef05c4b3
Common: update Flags to allow const object usage
...
Co-authored-by: Jordan Woyak <[email protected] >
2025-12-25 21:07:45 -06:00
iwubcode
66c392f729
VideoCommon: initialize stored viewport to 0, fixes a crash in debug mode for d3d
2025-12-24 15:23:25 -06:00
iwubcode
f846fc0d02
VideoCommon: clear all compiler work when resource manager shuts down
2025-12-24 01:51:55 -06:00
iwubcode
c97a947f67
VideoCommon: move resource state processing to the resource base class
2025-11-23 11:08:50 -06:00
iwubcode
5c00f07074
VideoCommon: update resource manager with a material/shader/and texture(+sampler) resource to show the complexities that warrant the resource manager system
2025-11-23 11:08:50 -06:00
iwubcode
23c637c029
VideoCommon: add custom includer to custom shaders, this will allow us to ship built-in custom shaders in the future
2025-11-23 11:04:51 -06:00
iwubcode
93a6cc80b4
VideoCommon: add some helper functions for resource logic that generates invalid textures for when a texture isn't provided for a custom asset
2025-11-23 11:04:24 -06:00
iwubcode
8016e2cfbd
VideoCommon: move ApplyDriverBugs for the normal pipeline out into a utility function, add a way to hash the pipeline (using the vertex declaration instead of the native vertex format)
2025-11-23 11:04:24 -06:00
iwubcode
989ecca235
VideoCommon: add a texture pool for resource management
2025-11-23 11:04:24 -06:00
iwubcode
2d21a99205
VideoCommon: separate the concept of a 'resource' from an 'asset'. A 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-23 11:04:24 -06:00
iwubcode
59d9c1772a
VideoCommon: rename 'IsAnisostropicEnhancementSafe' to 'IsAnisotropicEnhancementSafe' in TextureCacheBase
2025-11-23 11:04:24 -06:00
iwubcode
2c646cec40
VideoCommon: update ShaderAsset to use a vector of properties, this way we ensure the order of these properties match the order of the material
2025-11-21 14:31:10 -06:00
iwubcode
1f083a60c9
VideoCommon: update ShaderAsset to remove requirement of the code name being in the shader source, this just makes it more difficult to iteratively test changes, assume shader devs know what they are doing
2025-11-21 14:29:24 -06:00
iwubcode
506e378289
VideoCommon: remove template parameter from lock guards in AsyncShaderCompiler, let type deduction do its thing and improve readability
2025-11-21 01:18:35 -06:00
iwubcode
75c66e35c6
VideoCommon: add method to async shader compiler to clear pending/completed work (used on shutdown), this will in turn clear up any resources that the worker items may have held onto
2025-11-21 01:17:45 -06:00
iwubcode
6e13a7d7e9
VideoCommon: fix MaterialAsset so that boolean parameters are written to memory as integers, matching the format internally expected by shaders
2025-11-20 23:51:34 -06:00
iwubcode
a4599a1add
VideoCommon: avoid assuming global state exists for 'EndUtilityDrawing', use last stored viewport/scissor rect instead
2025-11-20 00:35:01 -06:00
iwubcode
e31a61d17d
Data: add bloom graphics mod for Zelda Twilight Princess on Gamecube
2025-11-18 18:38:20 -06:00
iwubcode
2f20c12d82
VideoCommon: pass the EFB buffer scale into the FramebufferManager instead of pulling it from config, in the future this will allow us to have multiple framebuffers
2025-11-05 21:52:54 -06:00
iwubcode
ef87af2985
VideoCommon: fix wrong path to glslang include
2025-11-02 14:29:14 -06:00
iwubcode
6728007cb4
VideoCommon: rename ScissorResult 'm_result' to 'rectangles' to better reflect what the member is
2025-10-31 13:28:14 -05:00
iwubcode
ee7c476e24
VideoCommon: move global variables out of BPFunctions
2025-10-31 13:27:50 -05:00
iwubcode
96fe6a1575
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-10-26 22:47:23 -05:00
iwubcode
491e3390be
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-23 23:45:38 -05:00
iwubcode
9a37c8081d
Common: add transpose function to Matrix class
2025-09-17 11:14:09 -05:00
iwubcode
d403bc3985
Core: support inverting a 4x4 matrix
2025-09-07 11:41:09 -05:00
iwubcode
440999d778
VideoCommon: update material asset to support render state properties, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin)
2025-08-23 15:17:49 -05:00
iwubcode
14459bcc1b
VideoBackends / VideoCommon: rename member variables in RenderState to be consistent
2025-08-23 13:50:22 -05:00
iwubcode
f0098eee13
VideoCommon: further remove 'CustomPipeline' details, so we can fully remove it in the very near future
2025-08-22 19:53:17 -05:00
iwubcode
6ec8e0ed8a
VideoCommon: update shader asset to support both vertex and pixel shaders; rename to 'RasterSurfaceShader'
2025-08-22 19:48:22 -05:00
iwubcode
4489ea0ec2
VideoCommon: add TextureAndSamplerAsset, this asset contains both the raw texture data and data about how the texture should be sampled
2025-08-20 19:41:22 -05:00
iwubcode
0e73a01279
VideoBackends: allow custom pixel uniforms to be passed to the vertex shader as well
2025-08-17 18:55:40 -05:00
iwubcode
8f2d036561
Data: add gecko code for Mario Strikers Charged that allows disabling captain mega strikes
2025-08-17 18:54:23 -05:00
iwubcode
6ab83bdd05
VideoCommon: fix regression where scenes with expanded lines or points would cause issues if doing per-vertex transformations in the vertex shader
2025-06-09 19:08:21 -05:00
iwubcode
c3d3b81533
VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore
2025-06-06 23:03:02 -05:00
iwubcode
774a84a953
VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters
2025-06-06 23:03:02 -05:00
iwubcode
b3f50c969e
VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded
2025-06-06 23:03:02 -05:00
iwubcode and Jordan Woyak
3b83907b88
VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
...
Co-authored-by: Jordan Woyak <[email protected] >
2025-06-06 23:03:02 -05:00
iwubcode
d940d62cae
VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures)
2025-06-06 23:03:02 -05:00
iwubcode
7afa9e6c6f
VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures
2025-06-06 23:03:02 -05:00
iwubcode
12d178a8df
VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down
2025-06-06 23:03:02 -05:00
iwubcode
f910c1d934
Core: add CustomResourceManager to System
2025-06-06 23:03:02 -05:00
iwubcode and Jordan Woyak
70abcb2030
VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
...
Co-authored-by: Jordan Woyak <[email protected] >
2025-06-06 23:03:02 -05:00
iwubcode
d8ea31ca46
VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions
2025-06-06 23:03:02 -05:00
iwubcode
2ae43324cb
VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later
2025-06-06 23:03:02 -05:00
iwubcode
7d59c2743d
Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path
2025-06-06 23:03:02 -05:00
iwubcode
8113399b68
Externals: add watcher, a library used to watch a filesystem location for changes
2025-06-06 23:03:02 -05:00
iwubcode
bafe78203d
VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times
2025-06-06 23:03:02 -05:00
iwubcode
15f125ebee
VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail
2025-06-06 23:03:02 -05:00
iwubcode
316740daed
VideoCommon: add 'Unload' functionality to CustomAsset
2025-06-06 23:03:02 -05:00
iwubcode
9ec69b5925
VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id
2025-06-06 19:20:25 -05:00
iwubcode
d7de49ccf6
Core / VideoCommon: Remove original custom asset loader
2025-06-06 19:20:25 -05:00
iwubcode
ae26b38fc0
VideoCommon: fix pixel shader gen error about structure not being fully initialized
2025-06-05 01:37:45 -05:00
iwubcode
b23dddea4e
VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic
2025-05-24 01:27:58 -05:00
iwubcode
e80ed595ac
VideoCommon: move position/normal matrices to be gettable by function in VertexShaderGen
2025-05-03 16:51:34 -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
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
iwubcode
e18d98d4fc
Core: properly distinguish between ES title switches (Wii titles) and normal loading (GC, also called for Wii..); update config for ES title change, generate textures for both situations
2025-03-22 14:55:20 -05:00
iwubcode
d03f9032c1
Core / DolphinQt / InputCommon: reduce the number disk writes when using DynamicInputTextures
2025-03-22 14:53:02 -05: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
iwubcode and Shawn Hoffman
c1dea828ab
Common: use std::chrono for GetLocalTimeSinceJan1970 on Windows
...
Co-authored-by: Shawn Hoffman <[email protected] >
2025-03-16 00:59:45 -05:00
iwubcode and Shawn Hoffman
452cd1c261
Core: use more recent api in ComputeDefaultCountryCode on Windows
...
Co-authored-by: Shawn Hoffman <[email protected] >
2025-03-16 00:59:45 -05:00
iwubcode and Shawn Hoffman
373a1a5dc0
Update min win10 version from 1703/15063 to 1903/18362
...
Co-authored-by: Shawn Hoffman <[email protected] >
2025-03-16 00:59:45 -05:00
iwubcode
15372dc835
VideoCommon: move lighting shader logic to callable functions
2025-03-13 23:56:04 -05:00
iwubcode
6dedf11c96
VideoCommon: mark 'WriteTexCoordTransforms' as 'static'
2025-03-02 11:27:54 -06:00
iwubcode
1ce78dd9b4
VideoCommon: move texcoord calculations to accessible functions in VertexShaderGen
2025-02-14 22:44:49 -06:00
iwubcode
570fc1d5aa
Data: update Rune Factory Frontier with community gecko codes
2025-02-02 12:34:38 -06:00
iwubcode
75425ced05
Common: add 'clear' function to SmallVector
2025-01-20 15:13:56 -06: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
iwubcode
36ccbbc06e
VideoCommon: add ability to serialize a texture asset metadata to json
2024-06-29 14:50:40 -05:00
iwubcode
1c3402502b
VideoCommon: set individual texture asset filter/wrap values when loading from json
2024-06-29 14:50:40 -05:00
iwubcode
75a0a1ed67
VideoCommon: update texture asset to properly set near sampler state value
2024-06-29 14:50:40 -05:00
iwubcode
fa5a6547c6
VideoCommon: add texture type to texture config comparison
2024-06-08 14:28:11 -05:00
iwubcode
c2bc2ccd23
VideoCommon: pull texture sampler out of texture cache so that it can be used in other places in the future
2024-06-01 23:21:04 -05:00
iwubcode
11c37de695
VideoCommon: update custom pipeline to use a a texture's sampler if the texture is in use
2024-05-31 23:19:51 -05:00
iwubcode
50b95bbea9
InputCommon / VideoCommon: update to use new JsonFromFile function
2024-05-31 23:13:25 -05:00
iwubcode
e92f59e2d4
Common: add JsonUtil cpp which was missed initially
2024-05-31 23:08:39 -05:00
iwubcode
d494059164
Common: update json util function for converting to numeric value to use a static_cast. As discussed, a Saturating cast doesn't make sense when converting a double to a float
2024-05-31 23:08:05 -05:00