| Age | Commit message (Collapse) | Author |
|
VideoCommon: add TextureData structure with metadata
|
|
VideoCommon: add ability to load cube maps into custom texture data
|
|
|
|
Dentomologist/fifo_convert_memoryupdate_type_to_enum_class
Fifo: Convert MemoryUpdate::Type to enum class
|
|
custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice
|
|
|
|
|
|
VideoCommon: Fix GLSL uint handling in UberShaderPixel
|
|
Video: Fix issues with the window presentation
|
|
|
|
|
|
Don't call RunAsCPUThread in config callbacks
|
|
Move SmallVector to Common
|
|
pixel shader asset cache time back to being calculated during texture creation
|
|
sampler, and the type of texture information
|
|
|
|
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.
|
|
|
|
it to graphics actions
|
|
shaders
|
|
uniform to be able to support animation effects in custom shaders
|
|
|
|
pixel shaders by replacing the existing pipeline with a modified one
|
|
|
|
actions
|
|
shaders in graphics mods
|
|
in graphics mods
|
|
for a custom pixel shader
|
|
shadergen common as it will be used by both the special and uber shader variant of pixel shaders
|
|
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
|
|
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)
|
|
(top/left/bottom/right) of the window because the final output size wasn't calculated right (unless the aspect ratio was set to stretch)
|
|
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.
|
|
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).
|
|
Edited by Filoppi
|
|
Edited by Filoppi
|
|
|
|
VideoCommon: asset load time is now stored as a chrono system_clock time
|
|
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!)
|
|
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.
|
|
VideoCommon: Fix std::filesystem::path encoding conversion
|
|
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.
|
|
|
|
that times can be fabricated in a future feature (without creating a file to do so)
|
|
Move declaration of m_additional_color_attachments so its initialization
order matches that of the constructor.
|
|
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
|
|
VideoBackends: add support for cube maps for OGL, Vulkan, and D3D
|
|
label. This avoids an error thrown by imgui
|
|
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
|
|
VideoCommon: skip the texture dump if a custom texture is available, regardless if it is loaded or not
|