Commit Graph
100 Commits
Author SHA1 Message Date
iwubcode b251194a7e VideoCommon: wait for the GPU to be finished doing any work before invalidating pipelines when graphic config changes 2023-10-10 18:17:24 -05:00
iwubcode 0e8f8ea930 VideoCommon: instead of using 'CustomTextureData' directly, use 'TextureData' for texture assets, this allows us to provide additional metadata for textures. Such as a sampler or type information (to distinguish cube maps) 2023-10-10 09:58:14 -05:00
iwubcodeandTellowKrinkle 713454b7d7 Metal: update binding mapping for SPRV due to change for custom shader uniforms in other backends (Metal is still not supported)
Co-authored-by: TellowKrinkle <[email protected]>
2023-10-06 02:17:43 -05:00
iwubcode a099f4f41b VideoCommon: given the changes to pipeline interaction, update the global version variable to reflect those changes and force pipelines to be rebuilt 2023-10-06 02:17:43 -05:00
iwubcodeandTellowKrinkle 751356af47 VideoCommon: avoid Vulkan validation errors when custom shader ubo isn't set up
Co-authored-by: TellowKrinkle <[email protected]>
2023-10-06 02:17:43 -05:00
iwubcode b6d321bfb1 VideoBackends / VideoCommon: add new uniform buffer object for custom shader materials (slot 3, geometry shader buffer moves to slot 4 if available) 2023-10-06 02:17:42 -05:00
iwubcode 92accc3ef7 VideoCommon: add custom pixel shader constants as a buffer of data to be passed to all backends 2023-10-05 21:20:16 -05:00
iwubcode 589834f562 VideoCommon: add cubemap as a sampler target for shaders, add cubemap as a valid texture asset 2023-09-05 21:11:19 -05:00
iwubcode 62fee2f3b6 VideoCommon: add loading cube maps from DDS files and loading it into our custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice 2023-09-02 20:20:09 -05:00
iwubcode f982c556b5 VideoCommon: add additional texture sampler types to ShaderAsset 2023-08-26 12:12:37 -05:00
iwubcode 9223540bf4 VideoCommon: additional error checking for CustomPipelineAction and move the pixel shader asset cache time back to being calculated during texture creation 2023-08-24 00:47:48 -05:00
iwubcode 7c52a52440 VideoCommon: add TextureData structure that contains the raw texture data, a sampler, and the type of texture information 2023-08-24 00:35:31 -05:00
iwubcode 55fba7c0ed VideoCommon/GraphicsModAsset: Error out if config key is not a string. 2023-08-22 02:40:08 +02:00
iwubcode 5506121685 VideoCommon: add support to graphics mod manager to load in assets and pass it to graphics actions 2023-08-20 18:53:27 -05:00
iwubcode 6ea0d17802 VideoCommon: when graphics settings change, trigger a reload of all custom shaders 2023-08-20 18:53:27 -05:00
iwubcode 931a8aa413 VideoCommon: add milliseconds elapsed time value to pixel shaders as a uniform to be able to support animation effects in custom shaders 2023-08-20 18:53:27 -05:00
iwubcode 675544ec2b docs: Add custom pipeline documentation 2023-08-20 18:53:27 -05:00
iwubcode c7191382be VideoCommon: add custom pipeline action 2023-08-20 18:53:27 -05:00
iwubcode d320366954 VideoCommon: add custom shader cache to VertexManagerBase, supporting custom pixel shaders by replacing the existing pipeline with a modified one 2023-08-20 18:53:27 -05:00
iwubcode bedbf2b8c6 VideoCommon: add custom shader cache 2023-08-20 18:53:27 -05:00
iwubcode dbaf24ef09 VideoCommon: add data needed to support custom pixel shaders to graphics mod actions 2023-08-20 18:53:27 -05:00
iwubcode 4283d76718 VideoCommon: uber pixel shader gen changes needed to support custom pixel shaders in graphics mods 2023-08-20 18:53:27 -05:00
iwubcode e704385fce VideoCommon: pixel shader gen changes needed to support custom pixel shaders in graphics mods 2023-08-20 18:53:27 -05:00
iwubcode c3a370839a VideoCommon: add helper functions to handle generating custom lighting code for a custom pixel shader 2023-08-20 18:53:27 -05:00
iwubcode 0da5cf60a8 VideoCommon: add custom pixel shader definition and custom shader header to shadergen common as it will be used by both the special and uber shader variant of pixel shaders 2023-08-20 18:53:27 -05:00
iwubcode eeb73460ab VideoCommon: asset load time is now stored as a chrono system_clock time, so that times can be fabricated in a future feature (without creating a file to do so) 2023-08-15 22:02:28 -05:00
iwubcode 89e2fc1dd3 VideoBackends: update SRVDescriptorTable size in DX12 to use pixel sampler constant 2023-08-13 17:23:26 -05:00
iwubcode 246b7c5bdb VideoCommon: fix regression with texture load order where the custom texture code was always updating the asset map for each texture with each entry, making it so the last value actually would be loaded instead of the first 2023-08-11 00:36:41 -05:00
iwubcode dca7c67105 VideoCommon: update NetplayChatUI's chat message input to use a hidden label. This avoids an error thrown by imgui 2023-07-29 00:27:07 -05:00
iwubcode c2b495586d Externals: add misc/cpp/imgui_stdlib to imgui build in order to use std::string in InputText 2023-07-27 12:08:07 -05:00
iwubcode 350e51951b VideoCommon: update imgui to 1.89.7 (and implot to 0.15); fix issues with upgrade; keep the demo code in case someone wants to reference it but don't compile it by enabling 'IMGUI_DISABLE_DEMO_WINDOWS' in config 2023-07-27 11:47:34 -05:00
iwubcode e54b7ac356 Core: save core timing parameters into variables updated during refresh 2023-07-23 14:03:21 -05:00
iwubcode fd74244339 VideoCommon: add custom texture message to provide a dirty means of debugging whether custom textures are installed correctly 2023-07-21 20:13:27 -05:00
iwubcode e892b7f1ac VideoBackends: add support for cube maps for OGL, Vulkan, and D3D 2023-07-21 19:09:40 -05:00
iwubcode f7e78742cf VideoCommon: skip the texture dump if the texture is using a custom texture, regardless of whether or not it is loaded yet 2023-07-19 23:44:41 -05:00
iwubcode 79f202ea5c VideoCommon: fix some compiler warnings for CustomAsset. FreeBSD compiler complained about a defaulted move constructor due to the mutex being implicitly deleted. Additionally, the const owning library deleted the copy constructor. 2023-07-16 19:45:55 -05:00
iwubcode 5740be15f9 VideoCommon: initialize load info variables 2023-07-16 12:56:03 -05:00
iwubcode 77511e8e7c VideoCommon: add material asset. A material is similar to other graphics engines where it provides data to be used in conjunction with a shader asset to generate a runtime AbstractShader 2023-07-09 12:21:34 -05:00
iwubcode a2ad3ca6f7 VideoCommon: don't do pointer copies during graphics mod callback iteration 2023-07-02 13:58:07 -05:00
iwubcode 0539bb4a3e VideoCommon: call into graphics mods create texture callback, providing additional asset dependencies that trigger the texture to be reloaded 2023-07-02 13:45:09 -05:00
iwubcode a93e6e7397 VideoCommon: add support for allowing a TextureCache entry to be associated with multiple assets 2023-07-02 12:50:07 -05:00
iwubcode 6ea49c6746 VideoCommon: add a pixel shader asset 2023-06-30 01:32:53 -05:00
iwubcode 3627398cf5 VideoBackends: support multiple compute images for some backends (D3D, OGL, Vulkan) 2023-06-28 17:15:31 -05:00
iwubcode 1d767c3a5b VideoCommon: add graphics mod callback interface for when a texture is created 2023-06-20 19:26:53 -05:00
iwubcode 2dc24a9148 VideoCommon: move cached texture asset to 'CustomAsset' common code 2023-06-20 18:59:55 -05:00
iwubcode ba74902bca VideoBackends: fix d3d12 validation layer error introduced by multi-output texture breaking logic ops support 2023-06-17 01:48:59 -05:00
iwubcode 3e27fc7c0b VideoCommon: don't treat incorrect aspect ratio or sizes that aren't a multiple of native textures as an error 2023-06-12 21:19:29 -05:00
iwubcode afa498fa2f VideoCommon: update DirectFilesystemAssetLibrary to not throw exceptions when a file no longer exists 2023-06-08 22:20:52 -05:00
iwubcode 429b2eca8a VideoCommon: add logging for loading texture assets 2023-06-08 19:48:45 -05:00
iwubcode e831d7b6bb InputCommon / VideoCommon: remove dynamic input reloading the texture cache, this is no longer needed, assets reload automatically! 2023-06-07 18:30:10 -05:00
iwubcode ca8d6748d6 VideoCommon: introduce linked assets in TCacheEntry, allowing for assets to be reloaded 2023-06-07 18:30:10 -05:00
iwubcode f1f1ecc9d1 Core / VideoCommon: update HiresTexture to use CustomAssetLoader 2023-06-05 16:33:19 -05:00
iwubcode 5738646e3e Core: add CustomAssetLoader to System 2023-06-05 16:33:19 -05:00
iwubcode 9d7ab47738 VideoCommon: add additional locks around asset access and usage to ensure thread safety 2023-06-05 16:19:46 -05:00
iwubcode 8c3dc5b0d6 VideoCommon: update pipeline version for RenderState change 2023-06-03 14:52:31 -05:00
iwubcode 834f8f7b5c VideoBackends: add support to allow rendering to multiple output textures 2023-06-03 14:52:31 -05:00
iwubcode 9b9dc6dc5d VideoCommon: fix minor issue in C++ template 2023-06-03 12:47:12 -05:00
iwubcode 47c40d51df VideoCommon: when loading a PNG with no custom texture data levels already, create a level, this avoids a potential segfault 2023-06-03 12:19:30 -05:00
iwubcode 58d383b30b VideoCommon: prevent potential data issue when reloading Asset data that could happen due to the asset loading thread reloading data while another thread is working with it 2023-06-03 00:13:06 -05:00
iwubcode c93940c6ee VideoCommon: add multithreaded asset loader and define a texture asset 2023-06-02 17:31:31 -05:00
iwubcode 07307edd49 VideoCommon: add an asset library that loads directly from the filesystem 2023-06-02 14:49:22 -05:00
iwubcode e028d2ead0 VideoCommon: move custom texture data to assets 2023-06-02 14:07:42 -05:00
iwubcode b2c5a5485a VideoCommon: add custom asset implementation and asset library that can load an asset 2023-06-01 19:57:57 -05:00
iwubcode 0afb8c247f VideoCommon: check whether action was successfully created before adding targets for a graphics mod 2023-05-30 09:32:59 -05:00
iwubcode bbf3efb17d VideoCommon: fix bug in GraphicsModManager where a separate action was being created for each target 2023-05-29 23:08:35 -05:00
iwubcode e101f7f6ae VideoCommon: refactor GetTexture into a separate function for creation, separating the custom texture data path from the game's texture data path 2023-04-08 02:54:00 -05:00
iwubcode 42cb3f3904 VideoCommon: remove HiResTexture DDS loading, update hirestexture logic to use custom texture data 2023-03-01 12:11:04 -06:00
iwubcode 3e35255983 VideoCommon: add class to load custom texture data 2023-03-01 11:58:37 -06:00
iwubcode 5d571b068f VideoBackends: rework d3d11 to specify samplers/bound textures using a bitset with a constant size, instead of hardcoding each individual enumeration value 2023-02-24 11:32:48 -06:00
iwubcode 20dc4401c5 VideoCommon: pass a graphics mod base path to the graphics mod, so it can lookup other relative files if necessary 2023-02-11 00:21:40 -06:00
iwubcode af313f8419 VideoCommon: add constant value to set the allowed maximum number of pixel samplers 2023-02-10 00:46:11 -06:00
iwubcode d0c6b6c9ed VideoCommon: store the configuration used to create the AbstractPipeline on the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration 2023-02-09 02:13:53 -06:00
iwubcode 7bea39b39e VideoBackends: add a way to load data into a specific level AND layer, default to layer 0 2023-01-27 18:46:53 -06:00
iwubcode 271c60781b VideoBackends: update Vulkan's 'CopyRectangleFromTexture' to copy one layer, copying more than one layer doesn't make sense given that we provide both the source/destination layer 2023-01-27 18:41:52 -06:00
iwubcode 31bf9d0019 Core: add option to apply memory patch to not store the existing value (used during locking) 2022-12-23 12:31:33 -06:00
iwubcode 190cf5af30 DolphinQt: add multiselection to WatchWidget 2022-12-23 12:31:33 -06:00
iwubcode c8a6ff6309 DolphinQt: add a 'add to watch' context menu item that allows you to add a memory location found in a cheat search to be added to the watch list 2022-12-23 12:31:33 -06:00
iwubcode 7d7fcdddd3 DolphinQt: add lock state to WatchWidget 2022-12-23 12:31:33 -06:00
iwubcode 8f3e8e4ca3 Core: add locked state to watches 2022-12-23 11:59:23 -06:00
iwubcode 41c9d706cb DolphinQt: cleanup WatchWidget 2022-12-23 11:59:23 -06:00
iwubcode 3081a781fd Core: when scheduling an invalidate cpu cache, no need to schedule if we're already on the cpu thread 2022-12-23 11:59:23 -06:00
iwubcode 2f2f906bf5 Core: add ability to add memory patches to the patch engine that will be executed each frame 2022-12-23 03:13:03 -06:00
iwubcode 1f87bcd202 Core: add ability to apply memory patches during a frame update in the PatchEngine 2022-12-23 03:13:03 -06:00
iwubcode 4743d74985 Core: add helper function to apply a memory patch and mark the 'PPCPatches' as final 2022-12-23 03:13:03 -06:00
iwubcode 259f2972a0 GameINI: Force safe texture cache on Marvel Super Hero Squad: The Infinity Gauntlet 2022-12-04 11:31:01 -06:00
iwubcode ea3e133200 VideoCommon: call texture load graphics mod hook when Dolphin loads a texture 2022-10-28 19:24:43 -05:00
iwubcode 0e1ffe009a VideoBackends: fix d3d12 subresource calculation 2022-10-28 19:07:08 -05:00
iwubcode bc360584a3 VideoCommon: add structures to graphics mods to allow for future adding or removing parameters with less code overhead 2022-10-09 00:00:01 -05:00
iwubcode 637dca680c VideoCommon: update ubershader pixel to not enforce d3d when writing color output that has been defined as uints 2022-08-06 16:08:58 -05:00
iwubcode 05135b4f43 VideoCommon: fix uint shader compiler error in specialized shaders. This error is in renderers that use uint for their color output (for logic ops). Remove D3D check for uint output since other backends could use uint output as well. 2022-08-06 16:08:58 -05:00
iwubcode 0b5f7d2c5f VideoCommon: fix graphics target not properly setting 'draw_started' texture names for efb/xfb 2022-08-06 12:01:33 -05:00
iwubcode 958354e285 Data: add Super Mario Galaxy bloom definition graphics mod 2022-07-06 21:51:39 -05:00
iwubcode 3227244372 Data: Add Rune Factory Frontier bloom definition 2022-07-02 15:14:21 -05:00
iwubcode 1970a27b57 Data: add Wii Play and Skyward Sword bloom definitions 2022-07-02 11:49:21 -05:00
iwubcode eda3fd8bf1 Data: add Monster Hunter Tri full game and rename folder to reflect that. It has the same bloom ids as the demo disc. 2022-07-02 11:49:21 -05:00
iwubcode ba007a0244 Data: rename Battalion Wars 2, Mario Strikers Charged, The House of the Dead: Overkill, and The Last Story to properly reflect their game name / spelling 2022-07-02 11:49:21 -05:00
iwubcode d0540f19ac Data: add built in mods for bloom and HUD 2022-07-02 11:49:21 -05:00
iwubcode 66f5085800 DolphinQt: add word wrap to graphics mods description 2022-07-01 19:31:19 -05:00
iwubcode 8dd4e916a7 DolphinQt: save changes to disk before refreshing mod list 2022-07-01 19:31:19 -05:00
iwubcode 4788a05c76 VideoCommon: fix projection graphics mod affecting more than the intended draw call 2022-06-29 20:04:59 -05:00