| Age | Commit message (Collapse) | Author |
|
shader_cache: Permit a Null Shader in case of a bad host_ptr.
|
|
shader_ir: Implement AOFFI for TEX and TLD4
|
|
gl_state: Rework to enable individual applies
|
|
gl_shader_disk_cache: Use Zstandard for compression
|
|
|
|
gl_shader_decompiler: Return early when an operation is invalid
|
|
gl_shader_decompiler: Rename GenerateTemporal() to GenerateTemporary()
|
|
gl_shader_decompiler: Fix TXQ types
|
|
Temporal generally indicates a relation to time, but this is just
creating a temporary, so this isn't really an accurate name for what the
function is actually doing.
|
|
TXQ returns integer types. Shaders usually do:
R0 = TXQ(); // => int
R0 = static_cast<float>(R0);
If we don't treat it as an integer, it will cast a binary float value as
float - resulting in a corrupted number.
|
|
Quite a few unused includes have built up over time, particularly on
core/memory.h. Removing these includes means the source files including
those files will no longer need to be rebuilt if they're changed, making
compilation slightly faster in this scenario.
|
|
Better LZ4 compression utilization for the disk based shader cache and the yuzu build system
|
|
gl_shader_manager: Remove reliance on a global accessor within MaxwellUniformData::SetFromRegs()
|
|
|
|
|
|
|
|
video_core: Amend constructor initializer list order where applicable
|
|
video_core/{gl_rasterizer, gpu_thread}: Remove unused class variables where applicable
|
|
|
|
|
|
|
|
|
|
compression level 12 for less compression time
|
|
|
|
precompiled shader disk chache files
|
|
to common/data_compression
|
|
This isn't used at all in the OpenGL shader cache, so we can remove it's
include here, meaning one less file needs to be recompiled if any
changes ever occur within that header.
core/memory.h is also not used within this file at all, so we can remove
it as well.
|
|
Avoids introducing Maxwell3D into the namespace for everything that
includes the header.
|
|
MaxwellUniformData::SetFromRegs()
We can just pass in the Maxwell3D instance instead of going through the
system class to get at it.
This also lets us simplify the interface a little bit. Since we pass in
the Maxwell3D context now, we only really need to pass the shader stage
index value in.
|
|
Previously only one line of the whole comment was in proper Doxygen
formatting.
|
|
This member variable is no longer being used, so it can be removed,
removing a dependency on EmuWindow from the rasterizer's interface"
|
|
Specifies the members in the same order that initialization would take
place in.
This also silences -Wreorder warnings.
|
|
Ensures that the signatures will always match with the base class.
Also silences a few compilation warnings.
|
|
gpu: Rewrite MemoryManager based on the VMManager implementation.
|
|
- Fixes graphical issues from transitions in Super Mario Odyssey.
|
|
surface.
- Fixes a crash in Puyo Puyo Tetris.
|
|
|
|
|
|
|
|
video_core: Refactor to use MemoryManager interface for all memory access.
|
|
|
|
# Conflicts:
# src/video_core/engines/kepler_memory.cpp
# src/video_core/engines/maxwell_3d.cpp
# src/video_core/morton.cpp
# src/video_core/morton.h
# src/video_core/renderer_opengl/gl_global_cache.cpp
# src/video_core/renderer_opengl/gl_global_cache.h
# src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
|
|
|
|
video_core/morton: Miscellaneous changes
|
|
gl_rasterizer: Use system instance passed from argument
|
|
renderer_opengl/gl_global_cache: Add missing override specifiers
|
|
|
|
|
|
gl_rasterizer: Encapsulate sampler queries into methods
|
|
insert_or_assign
The previous code had some minor issues with it, really not a big deal,
but amending it is basically 'free', so I figured, "why not?".
With the standard container maps, when:
map[key] = thing;
is done, this can cause potentially undesirable behavior in certain
scenarios. In particular, if there's no value associated with the key,
then the map constructs a default initialized instance of the value
type.
In this case, since it's a std::shared_ptr (as a type alias) that is
the value type, this will construct a std::shared_pointer, and then
assign over it (with objects that are quite large, or actively heap
allocate this can be extremely undesirable).
We also make the function take the region by value, as we can avoid a
copy (and by extension with std::shared_ptr, a copy causes an atomic
reference count increment), in certain scenarios when ownership isn't a
concern (i.e. when ReserveGlobalRegion is called with an rvalue
reference, then no copy at all occurs). So, it's more-or-less a "free"
gain without many downsides.
|