aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/decode
AgeCommit message (Collapse)Author
2020-04-16decode/shift: Remove unused variable within Shift()Lioncash
Removes a redundant variable that is already satisfied by the IsFull() utility function.
2020-04-15Merge pull request #3612 from ReinUsesLisp/redFernando Sahmkow
shader/memory: Implement RED.E.ADD and minor changes to ATOM
2020-04-14shader/arithmetic: Add FCMP_CR variantReinUsesLisp
Adds another variant of FCMP.
2020-04-13Merge pull request #3619 from ReinUsesLisp/i2iMat M
shader/conversion: Implement I2I sign extension, saturation and selection
2020-04-13Merge pull request #3633 from ReinUsesLisp/clean-texdecMat M
shader/texture: Remove type mismatches management from shader decoder
2020-04-12Merge pull request #3578 from ReinUsesLisp/vmnmxFernando Sahmkow
shader/video: Partially implement VMNMX
2020-04-12shader/video: Partially implement VMNMXReinUsesLisp
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).
2020-04-10shader/texture: Remove type mismatches management from shader decoderReinUsesLisp
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.
2020-04-09Merge pull request #3601 from ReinUsesLisp/some-shader-encodingsbunnei
video_core/shader: Add some instruction and S2R encodings
2020-04-07Merge pull request #3489 from namkazt/patch-2Rodrigo Locatti
shader: implement SULD.D bits32/64
2020-04-07address nit.Nguyen Dac Nam
2020-04-07shader/conversion: Implement I2I sign extension, saturation and selectionReinUsesLisp
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.
2020-04-07Apply suggestions from code reviewNguyen Dac Nam
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2020-04-06shader_decode: SULD.D using std::pair instead of out parameternamkazy
2020-04-06shader_decode: SULD.D avoid duplicate code block.namkazy
2020-04-06shader_decode: SULD.D fix conversion error.namkazy
2020-04-06shader_decode: SULD.D implement bits64 and reverse shader ir init method to ↵namkazy
removed shader stage.
2020-04-06shader/memory: Implement RED.E.ADDReinUsesLisp
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.
2020-04-06shader/memory: Add "using std::move"ReinUsesLisp
2020-04-06shader/memory: Minor fixes in ATOMReinUsesLisp
2020-04-05Merge pull request #3592 from ReinUsesLisp/ipaFernando Sahmkow
shader_decompiler: Remove FragCoord.w hack and change IPA implementation
2020-04-05silent warning (conversion error)namkazy
2020-04-05shader_decode: SULD.D -> SINT actually same as UNORM.namkazy
2020-04-05shader_decode: SULD.D fix decode SNORM componentnamkazy
2020-04-05clang-formatnamkazy
2020-04-05shader_decode: get sampler descriptor from registry.namkazy
2020-04-05tweaking.namkazy
2020-04-05cleanup unuse paramsnamkazy
2020-04-05cleanup debug code.namkazy
2020-04-05reimplement get component type, uncomment mistaken codenamkazy
2020-04-05remove disable optimizenamkazy
2020-04-05[wip] reimplement SULD.Dnamkazy
2020-04-05clang-fixNguyen Dac Nam
2020-04-05shader: image - import PredConditionNguyen Dac Nam
2020-04-05shader: SULD.D bits32 implement more complexer method.Nguyen Dac Nam
2020-04-05shader: SULD.D import StoreTypeNguyen Dac Nam
2020-04-05shader: implement SULD.D bits32Nguyen Dac Nam
2020-04-04shader/other: Add error message for some S2R registersReinUsesLisp
2020-04-04shader_bytecode: Rename MOV_SYS to S2RReinUsesLisp
2020-04-02shader/memory: Silence no return value warningReinUsesLisp
Silences a warning about control paths not all returning a value.
2020-04-01shader_decompiler: Remove FragCoord.w hack and change IPA implementationReinUsesLisp
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
2020-03-31Merge pull request #3561 from ReinUsesLisp/f2f-conversionFernando Sahmkow
shader/conversion: Fix F2F rounding operations with different sizes
2020-03-31Merge pull request #3577 from ReinUsesLisp/leaFernando Sahmkow
shader/lea: Fix LEA implementation
2020-03-31clang-formatNguyen Dac Nam
2020-03-31shader_decode: fix by suggestionNguyen Dac Nam
2020-03-30clang-formatnamkazy
2020-03-30shader_decode: ATOM/ATOMS: add function to avoid code repetitionnamkazy
2020-03-30shader_decode: implement ATOM operation for S32 and U32Nguyen Dac Nam
2020-03-30clang-formatnamkazy
2020-03-30shader_decode: implement ATOMS instr partial.Nguyen Dac Nam