summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
AgeCommit message (Collapse)Author
2023-09-04Merge pull request #12136 from iwubcode/texture_metadata_structJMC47
VideoCommon: add TextureData structure with metadata
2023-09-03Merge pull request #12102 from iwubcode/cubemap_custom_textureJMC47
VideoCommon: add ability to load cube maps into custom texture data
2023-09-03VideoCommon: Deinit Graphics Mod Manager implicitlySketch
2023-09-03Merge pull request #12148 from ↵Admiral H. Curtiss
Dentomologist/fifo_convert_memoryupdate_type_to_enum_class Fifo: Convert MemoryUpdate::Type to enum class
2023-09-02VideoCommon: add loading cube maps from DDS files and loading it into our ↵iwubcode
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-02Fifo: Convert MemoryUpdate::Type to enum classDentomologist
2023-09-01TextureCacheBase: Add m_ prefix to member variablesDentomologist
2023-08-29Merge pull request #12145 from JosJuice/ubershaderpixel-uintAdmiral H. Curtiss
VideoCommon: Fix GLSL uint handling in UberShaderPixel
2023-08-28Merge pull request #12000 from Filoppi/window_res_fixAdmiral H. Curtiss
Video: Fix issues with the window presentation
2023-08-28VideoCommon: Fix GLSL uint handling in UberShaderPixelJosJuice
2023-08-26VideoCommon: add additional texture sampler types to ShaderAssetiwubcode
2023-08-26Merge pull request #12117 from JosJuice/config-callback-cpuAdmiral H. Curtiss
Don't call RunAsCPUThread in config callbacks
2023-08-26Merge pull request #12126 from JosJuice/small-vectorAdmiral H. Curtiss
Move SmallVector to Common
2023-08-24VideoCommon: additional error checking for CustomPipelineAction and move the ↵iwubcode
pixel shader asset cache time back to being calculated during texture creation
2023-08-24VideoCommon: add TextureData structure that contains the raw texture data, a ↵iwubcode
sampler, and the type of texture information
2023-08-22VideoCommon: Fix custom shader constants on GLESJosJuice
2023-08-22Move SmallVector to CommonJosJuice
We had one implementation of this type of data structure in Arm64Emitter and one in VideoCommon. This moves the Arm64Emitter implementation to its own file and adds begin and end functions to it, so that VideoCommon can use it. You may notice that the license header for the new file is CC0. I wrote the Arm64Emitter implementation of SmallVector, so this should be no problem.
2023-08-22VideoCommon/GraphicsModAsset: Error out if config key is not a string.iwubcode
2023-08-20VideoCommon: add support to graphics mod manager to load in assets and pass ↵iwubcode
it to graphics actions
2023-08-20VideoCommon: when graphics settings change, trigger a reload of all custom ↵iwubcode
shaders
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 pipeline actioniwubcode
2023-08-20VideoCommon: add custom shader cache to VertexManagerBase, supporting custom ↵iwubcode
pixel shaders by replacing the existing pipeline with a modified one
2023-08-20VideoCommon: add custom shader cacheiwubcode
2023-08-20VideoCommon: add data needed to support custom pixel shaders to graphics mod ↵iwubcode
actions
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-08-20VideoCommon: add helper functions to handle generating custom lighting code ↵iwubcode
for a custom pixel shader
2023-08-20VideoCommon: add custom pixel shader definition and custom shader header to ↵iwubcode
shadergen common as it will be used by both the special and uber shader variant of pixel shaders
2023-08-18Video: The `Auto` internal resolution scaling wasn't working correctly if ↵Filoppi
the window weird aspect ratios (e.g. 32:9), beacuse it would account for the the portion of the image that will show black bars into the calcuations to find the best matching resolution
2023-08-18Video: The `Auto-Adjust Window Size` setting was calculating the window size ↵Filoppi
based on the resolution of the window in the previous frame if we used the "stretch" aspect ratio setting, so it's result would be self influence in a loop and behave unreliably (e.g. when changing resolution between Auto/Native/2x the automatic window scaling would behave randomly)
2023-08-18Video: There was always a black line around one of the 4 edges ↵Filoppi
(top/left/bottom/right) of the window because the final output size wasn't calculated right (unless the aspect ratio was set to stretch)
2023-08-18Video: The `% 4` that was done on the rendering resolution was only meant to ↵Filoppi
be done when recording videos (due to encoding limitations) but one case was missed (this had no consequences really, as it was just in the code that automatically resizes the window). The hardcoded `4` has been replaced with `VIDEO_ENCODER_LMC` for clarity.
2023-08-18Video: fix post process shaders with parameters failing to build on OpenGLFiloppi
This was because the shader uniforms between the pixel and vertex shaders were willingly left different, to avoid filling the vertex shader with unnecessary params. Turns out all backends are fine with this except OGL. The new behaviour is now much more consistent and well explained, the "default" shaders are the ones that always run, and the non default ones are the user selected ones (if any).
2023-08-18Video: Improved Tooltips & Bicubic (#5)Sam Belliveau
Edited by Filoppi
2023-08-18Video: Added Box ResamplingSam Belliveau
Edited by Filoppi
2023-08-18Video: implement output resampling (upscaling/downscaling) methodsFiloppi
2023-08-18Merge pull request #12103 from iwubcode/asset_load_system_timeAdmiral H. Curtiss
VideoCommon: asset load time is now stored as a chrono system_clock time
2023-08-17Use structs for config callback IDsJosJuice
This way you can't mix up regular config callback IDs and CPU thread config callback IDs. (It would be rather bad if you did!)
2023-08-17Don't call RunAsCPUThread in config callbacksJosJuice
In theory, our config system supports calling Set from any thread. But because we have config callbacks that call RunAsCPUThread, it's a lot more restricted in practice. Calling Set from any thread other than the host thread or the CPU thread is formally thread unsafe, and calling Set on the host thread while the CPU thread is showing a panic alert causes a deadlock. This is especially a problem because 04072f0 made the "Ignore for this session" button in panic alerts call Set. Because so many of our config callbacks want their code to run on the CPU thread, I thought it would make sense to have a centralized way to move execution to the CPU thread for config callbacks. To solve the deadlock problem, this new way is non-blocking. This means that threads other than the CPU thread might continue executing before the CPU thread is informed of the new config, but I don't think there's any problem with that. Intends to fix https://bugs.dolphin-emu.org/issues/13108.
2023-08-16Merge pull request #12112 from JosJuice/hires-texture-encodingAdmiral H. Curtiss
VideoCommon: Fix std::filesystem::path encoding conversion
2023-08-16VideoCommon: Fix std::filesystem::path encoding conversionJosJuice
In std::string, you can store strings using any encoding, but in Dolphin we have decided to use UTF-8. The problem is that if you convert between std::string and std::filesystem::path using the built-in methods, the standard library will make up its own assumption of what encoding you're using in the std::string. On most OSes this is UTF-8, but on Windows it's whatever the user's code page is. What I believe is the C++ standard authors' intended solution to this is to use std::u8string instead of std::string, but that's a big hassle to move over to, because there's no convenient way to convert between std::string and std::u8string. Instead, in Dolphin, we have added helper functions that convert between std::string and std::filesystem::path in the manner we want. You *always* have to use these when converting between std::string and std::filesystem::path, otherwise we get these kinds of encoding problems that we've been having with custom textures. Fixes https://bugs.dolphin-emu.org/issues/13328.
2023-08-15Remove out-dated hack of AMD driver issue WRT dual-source blending output index.takayhan-AMD
2023-08-15VideoCommon: asset load time is now stored as a chrono system_clock time, so ↵iwubcode
that times can be fabricated in a future feature (without creating a file to do so)
2023-08-12AbstractFramebuffer: Fix Android reorder-ctor warningDentomologist
Move declaration of m_additional_color_attachments so its initialization order matches that of the constructor.
2023-08-11VideoCommon: fix regression with texture load order where the custom texture ↵iwubcode
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-10Merge pull request #12061 from iwubcode/cubemap_backends_onlyJMC47
VideoBackends: add support for cube maps for OGL, Vulkan, and D3D
2023-07-29VideoCommon: update NetplayChatUI's chat message input to use a hidden ↵iwubcode
label. This avoids an error thrown by imgui
2023-07-27VideoCommon: update imgui to 1.89.7 (and implot to 0.15); fix issues with ↵iwubcode
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-23Merge pull request #12055 from iwubcode/skip_dump_asyncAdmiral H. Curtiss
VideoCommon: skip the texture dump if a custom texture is available, regardless if it is loaded or not