| Age | Commit message (Collapse) | Author |
|
Only the first element of the returned pair is ever used.
|
|
Some variables aren't used, so we can remove these.
Unfortunately, diagnostics are still reported on structured bindings
even when annotated with [[maybe_unused]], so we need to unpack the
elements that we want to use manually.
|
|
Same behavior, less code.
|
|
We can just specify the initializers.
|
|
CMakeLists: Specify -Wextra on linux builds
|
|
Removes a redundant variable that is already satisfied by the IsFull()
utility function.
|
|
Allows reporting more cases where logic errors may exist, such as
implicit fallthrough cases, etc.
We currently ignore unused parameters, since we currently have many
cases where this is intentional (virtual interfaces).
While we're at it, we can also tidy up any existing code that causes
warnings. This also uncovered a few bugs as well.
|
|
shader/memory: Implement RED.E.ADD and minor changes to ATOM
|
|
Adds another variant of FCMP.
|
|
shader/conversion: Implement I2I sign extension, saturation and selection
|
|
shader/texture: Remove type mismatches management from shader decoder
|
|
shader/video: Partially implement VMNMX
|
|
Implements the common usages for VMNMX. Inputs with a different size
than 32 bits are not supported and sign mismatches aren't supported
either.
VMNMX works as follows:
It grabs Ra and Rb and applies a maximum/minimum on them (this is
defined by .MX), having in mind the input sign. This result can then be
saturated. After the intermediate result is calculated, it applies
another operation on it using Rc. These operations are merges,
accumulations or another min/max pass.
This instruction allows to implement with a more flexible approach GCN's
min3 and max3 instructions (for instance).
|
|
Since commit e22816a5bb we handle type mismatches from the CPU.
We don't need to hack our shader decoder due to game bugs anymore.
Removed in this commit.
|
|
video_core/shader: Add some instruction and S2R encodings
|
|
shader: implement SULD.D bits32/64
|
|
|
|
Reimplements I2I adding sign extension, saturation (clamp source value
to the destination), selection and destination sizes that are not 32
bits wide.
It doesn't implement CC yet.
|
|
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
|
|
|
|
|
|
|
|
removed shader stage.
|
|
Implements a reduction operation. It's an atomic operation that doesn't
return a value.
This commit introduces another primitive because some shading languages
might have a primitive for reduction operations.
|
|
|
|
|
|
shader_decompiler: Remove FragCoord.w hack and change IPA implementation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Silences a warning about control paths not all returning a value.
|
|
Credits go to gdkchan and Ryujinx. The pull request used for this can
be found here: https://github.com/Ryujinx/Ryujinx/pull/1082
yuzu was already using the header for interpolation, but it was missing
the FragCoord.w multiplication described in the linked pull request.
This commit finally removes the FragCoord.w == 1.0f hack from the shader
decompiler.
While we are at it, this commit renames some enumerations to match
Nvidia's documentation (linked below) and fixes component declaration
order in the shader program header (z and w were swapped).
https://github.com/NVIDIA/open-gpu-doc/blob/master/Shader-Program-Header/Shader-Program-Header.html
|
|
shader/conversion: Fix F2F rounding operations with different sizes
|
|
shader/lea: Fix LEA implementation
|
|
|