summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/shader_bytecode.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1200 from bunnei/improve-ipabunnei2018-08-301-0/+6
|\ | | | | gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
| * gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.bunnei2018-08-291-0/+6
| |
* | Shaders: Implemented IADD3tech4me2018-08-291-1/+23
|/
* fix SEL_IMM bitstringLaku2018-08-241-1/+1
|
* Shaders: Added decodings for IADD3 instructionstech4me2018-08-231-0/+6
|
* implement lop3Laku2018-08-221-0/+19
|
* shader_bytecode: Parenthesize conditional expression within GetTextureType()Lioncash2018-08-211-1/+1
| | | | Resolves a -Wlogical-op-parentheses warning.
* shader_bytecode: Replace some UNIMPLEMENTED logs.bunnei2018-08-211-2/+6
|
* Merge pull request #1112 from Subv/sampler_typesbunnei2018-08-201-4/+72
|\ | | | | Shaders: Use the correct shader type when sampling textures.
| * Shader: Added bitfields for the texture type of the various sampling instructions.Subv2018-08-191-1/+65
| |
| * Shaders: Added decodings for TLD4 and TLD4SSubv2018-08-191-3/+7
| |
* | Merge pull request #1089 from Subv/neg_bitsbunnei2018-08-191-0/+4
|\ \ | | | | | | Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
| * | Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.Subv2018-08-181-0/+4
| | | | | | | | | | | | We should definitely audit our shader generator for more errors like this.
* | | Shaders/TEXS: Fixed the component mask in the TEXS instruction.Subv2018-08-191-6/+11
| |/ |/| | | | | Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
* | Merge pull request #1109 from Subv/ldg_decodebunnei2018-08-191-0/+4
|\ \ | | | | | | Shaders: Added decodings for the LDG and STG instructions.
| * | Shaders: Added decodings for the LDG and STG instructions.Subv2018-08-191-0/+4
| | |
* | | Merge pull request #1108 from Subv/front_facingbunnei2018-08-191-0/+3
|\ \ \ | | | | | | | | Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
| * | | Shaders: Implemented the gl_FrontFacing input attribute (attr 63).Subv2018-08-191-0/+3
| |/ /
* / / Shader: Implemented the predicate and mode arguments of LOP.Subv2018-08-181-1/+6
|/ / | | | | | | | | | | The mode can be used to set the predicate to true depending on the result of the logic operation. In some cases, this means discarding the result (writing it to register 0xFF (Zero)). This is used by Super Mario Odyssey.
* / Added predcondition GreaterThanWithNanDavid Marcec2018-08-181-0/+1
|/
* gl_shader_decompiler: Implement XMAD instruction.bunnei2018-08-131-4/+25
|
* Merge pull request #1010 from bunnei/unk-vert-attrib-shaderbunnei2018-08-121-2/+1
|\ | | | | gl_shader_decompiler: Improve handling of unknown input/output attributes.
| * gl_shader_decompiler: Improve handling of unknown input/output attributes.bunnei2018-08-121-2/+1
| |
* | Merge pull request #1018 from Subv/ssy_syncbunnei2018-08-121-0/+7
|\ \ | |/ |/| GPU/Shader: Implemented SSY and SYNC as a set_target/jump pair.
| * GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY).Subv2018-08-111-0/+7
| |
* | video_core: Use variable template variants of type_traits interfaces where applicableLioncash2018-08-101-2/+1
|/
* Merge pull request #982 from bunnei/stub-unk-63bunnei2018-08-091-0/+2
|\ | | | | gl_shader_decompiler: Stub input attribute Unknown_63.
| * gl_shader_decompiler: Stub input attribute Unknown_63.bunnei2018-08-081-0/+2
| |
* | gl_shader_decompiler: Let OpenGL interpret floats.bunnei2018-08-081-9/+4
|/ | | | | - Accuracy is lost in translation to string, e.g. with NaN. - Needed for Super Mario Odyssey.
* shader_bytecode: Implement other TEXS masks.bunnei2018-07-221-5/+9
|
* gl_shader_decompiler: Implement SEL instruction.bunnei2018-07-221-0/+11
|
* video_core: Use nested namespaces where applicableLioncash2018-07-211-8/+4
| | | | Compresses a few namespace specifiers to be more compact.
* Merge pull request #655 from bunnei/pred-lt-nanbunnei2018-07-131-0/+1
|\ | | | | gl_shader_decompiler: Implement PredCondition::LessThanWithNan.
| * gl_shader_decompiler: Implement PredCondition::LessThanWithNan.bunnei2018-07-131-0/+1
| |
* | gl_shader_decompiler: Use FlowCondition field in EXIT instruction.bunnei2018-07-131-0/+9
|/
* Merge pull request #652 from Subv/fadd32iSebastian Valle2018-07-131-0/+9
|\ | | | | GPU: Implement the FADD32I shader instruction.
| * GPU: Implement the FADD32I shader instruction.Subv2018-07-121-0/+9
| |
* | Merge pull request #651 from Subv/ffma_decodebunnei2018-07-121-1/+1
|\ \ | | | | | | GPU: Corrected the decoding of FFMA for immediate operands.
| * | GPU: Corrected the decoding of FFMA for immediate operands.Subv2018-07-121-1/+1
| |/
* | Merge pull request #625 from Subv/imnmxbunnei2018-07-081-3/+17
|\ \ | |/ |/| GPU: Implemented the IMNMX shader instruction.
| * GPU: Implemented the IMNMX shader instruction.Subv2018-07-041-3/+17
| | | | | | | | It's similar to the FMNMX instruction but it works on integers.
* | Merge pull request #626 from Subv/shader_syncbunnei2018-07-051-0/+5
|\ \ | | | | | | GPU: Stub the shader SYNC and DEPBAR instructions.
| * | GPU: Stub the shader SYNC and DEPBAR instructions.Subv2018-07-041-0/+5
| |/ | | | | | | It is unknown at this moment if we actually need to do something with these instructions or if the GLSL compiler takes care of that for us.
* | Merge pull request #622 from Subv/unused_texbunnei2018-07-051-1/+1
|\ \ | | | | | | GPU: Ignore unused textures and corrected the TEX shader instruction decoding.
| * | GPU: Corrected the decoding for the TEX shader instruction.Subv2018-07-041-1/+1
| |/
* / GPU: Implemented the PSETP shader instruction.Subv2018-07-041-0/+13
|/ | | | It's similar to the isetp and fsetp instructions but it works on predicates instead.
* GPU: Implemented MUFU suboperation 8, sqrt.Subv2018-07-031-0/+1
|
* Merge pull request #602 from Subv/mufu_subopbunnei2018-07-011-2/+1
|\ | | | | GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation.
| * GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation.Subv2018-06-301-2/+1
| |
* | gl_shader_decompiler: Implement predicate NotEqualWithNan.bunnei2018-06-301-0/+1
|/
* Build: Fixed some MSVC warnings in various parts of the code.Subv2018-06-201-2/+2
|
* GPU: Don't mark uniform buffers and registers as used for instructions which don't have them.Subv2018-06-191-2/+3
| | | | | Like the MOV32I and FMUL32I instructions. This fixes a potential crash when using these instructions.
* gl_shader_decompiler: Implement LOP instructions.bunnei2018-06-171-0/+14
|
* gl_shader_decompiler: Refactor LOP32I instruction a bit in support of LOP.bunnei2018-06-171-3/+2
|
* gl_shader_decompiler: Implement integer size conversions for I2I/I2F/F2I.bunnei2018-06-161-1/+2
|
* Merge pull request #558 from Subv/iadd32ibunnei2018-06-121-2/+10
|\ | | | | GPU: Implemented the iadd32i shader instruction.
| * GPU: Implemented the iadd32i shader instruction.Subv2018-06-121-2/+10
| |
* | gl_shader_decompiler: Implement saturate for float instructions.bunnei2018-06-121-2/+1
|/
* GPU: Implement the iset family of shader instructions.Subv2018-06-091-0/+9
|
* GPU: Added decodings for the ISET family of instructions.Subv2018-06-091-0/+7
|
* Merge pull request #550 from Subv/ssybunnei2018-06-091-0/+2
|\ | | | | GPU: Stub the SSY shader instruction.
| * GPU: Stub the SSY shader instruction.Subv2018-06-091-0/+2
| | | | | | | | This instruction tells the GPU where the flow reconverges in a non-uniform control flow scenario, we can ignore this when generating GLSL code.
* | Merge pull request #551 from bunnei/shrbunnei2018-06-091-0/+4
|\ \ | | | | | | gl_shader_decompiler: Implement SHR instruction.
| * | gl_shader_decompiler: Implement SHR instruction.bunnei2018-06-091-0/+4
| |/
* | gl_shader_decompiler: Implement IADD instruction.bunnei2018-06-091-5/+11
| |
* | gl_shader_decompiler: Add missing asserts for saturate_a instructions.bunnei2018-06-091-1/+1
|/
* gl_shader_decompiler: Implement BFE_IMM instruction.bunnei2018-06-071-3/+15
|
* gl_shader_decompiler: F2F: Implement rounding modes.bunnei2018-06-071-3/+12
|
* shader_bytecode: Add instruction decodings for BFE, IMNMX, and XMAD.bunnei2018-06-071-0/+20
|
* gl_shader_decompiler: Implement LD_C instruction.bunnei2018-06-071-0/+16
|
* gl_shader_decompiler: Refactor uniform handling to allow different decodings.bunnei2018-06-061-6/+10
|
* Merge pull request #516 from Subv/f2i_rbunnei2018-06-061-4/+20
|\ | | | | GPU: Implemented the F2I_R shader instruction.
| * GPU: Implemented the F2I_R shader instruction.Subv2018-06-051-4/+20
| |
* | Merge pull request #521 from Subv/brabunnei2018-06-051-4/+5
|\ \ | | | | | | GPU: Corrected the branch targets for the shader bra instruction.
| * | GPU: Corrected the branch targets for the shader bra instruction.Subv2018-06-051-4/+5
| | |
* | | gl_shader_decompiler: Implement SHL instruction.bunnei2018-06-051-13/+17
|/ /
* | GPU: Implement the ISCADD shader instructions.Subv2018-06-051-0/+16
| |
* | GPU: Added decodings for the ISCADD instructions.Subv2018-06-051-0/+7
|/
* Merge pull request #514 from Subv/lop32ibunnei2018-06-051-1/+15
|\ | | | | GPU: Implemented the LOP32I instruction.
| * GPU: Implemented the LOP32I instruction.Subv2018-06-041-1/+15
| |
* | Merge pull request #510 from Subv/isetpbunnei2018-06-051-0/+10
|\ \ | | | | | | GPU: Implemented the ISETP_R and ISETP_C instructions
| * | GPU: Implemented the ISETP_R and ISETP_C shader instructions.Subv2018-06-041-0/+10
| |/
* | Merge pull request #512 from Subv/fsetbunnei2018-06-051-1/+1
|\ \ | | | | | | GPU: Corrected the FSET and I2F instructions.
| * | GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f.Subv2018-06-041-1/+1
| |/
* | GPU: Partially implemented the shader BRA instruction.Subv2018-06-041-0/+13
| |
* | GPU: Added decoding for the BRA instruction.Subv2018-06-041-0/+2
|/
* gl_shader_decompiler: Implement TEXS component mask.bunnei2018-06-031-2/+16
|
* Merge pull request #494 from bunnei/shader-texbunnei2018-06-031-0/+15
|\ | | | | gl_shader_decompiler: Implement TEX, fixes for TEXS.
| * gl_shader_decompiler: Implement TEX instruction.bunnei2018-06-011-0/+10
| |
| * gl_shader_decompiler: Support multi-destination for TEXS.bunnei2018-06-011-0/+5
| |
* | gl_shader_decompiler: Implement RRO as a register move.bunnei2018-06-031-3/+7
|/
* Merge pull request #489 from Subv/vertexidbunnei2018-05-301-0/+4
|\ | | | | Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.
| * Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.Subv2018-05-301-0/+4
| |
* | gl_shader_decompiler: Partially implement F2F_R instruction.bunnei2018-05-301-3/+3
|/
* shader_bytecode: Implement other variants of FMNMX.bunnei2018-05-261-3/+7
|
* Merge pull request #458 from Subv/fmnmxbunnei2018-05-211-0/+5
|\ | | | | Shaders: Implemented the FMNMX shader instruction.
| * Shaders: Implemented the FMNMX shader instruction.Subv2018-05-211-0/+5
| |
* | ShadersDecompiler: Added decoding for the PSETP instruction.Subv2018-05-191-0/+3
|/
* shader_bytecode: Add decoding for FMNMX instruction.bunnei2018-04-291-0/+2
|
* gl_shader_decompiler: Partially implement I2I_R, and I2F_R.bunnei2018-04-291-8/+8
|
* shader_bytecode: Add decodings for i2i instructions.bunnei2018-04-291-3/+20
|
* gl_shader_decompiler: Implement MOV32_IMM instruction.bunnei2018-04-291-2/+2
|
* gl_shader_decompiler: Boilerplate for handling integer instructions.bunnei2018-04-261-1/+9
|
* Shaders: Added bit decodings for the I2I instruction.Subv2018-04-251-0/+6
|
* Shaders: Added decodings for the FSET instructions.Subv2018-04-251-8/+29
|
* shader_bytecode: Add several more instruction decodings.bunnei2018-04-211-5/+52
|
* shader_bytecode: Decode instructions based on bit strings.bunnei2018-04-211-185/+172
|
* ShaderGen: Implemented predicated instruction execution.Subv2018-04-211-1/+5
| | | | Each predicated instruction will be wrapped in an `if (predicate) { instruction_body; }` in the GLSL, where `predicate` is one of the predicate boolean variables previously set by fsetp.
* ShaderGen: Implemented the fsetp instruction.Subv2018-04-211-3/+40
| | | | | | | | | | Predicate variables are now added to the generated shader code in the form of 'pX' where X is the predicate id. These predicate variables are initialized to false on shader startup and are set via the fsetp instructions. TODO: * Not all the comparison types are implemented. * Only the single-predicate version is implemented.
* ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).Subv2018-04-201-0/+3
|
* ShaderGen: Implemented the fmul32i shader instruction.Subv2018-04-191-3/+14
|
* shader_bytecode: Make ctor's constexpr and explicit.bunnei2018-04-181-7/+7
|
* gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions.bunnei2018-04-171-0/+14
|
* gl_shader_decompiler: Add support for TEXS instruction.bunnei2018-04-171-5/+14
|
* shaders: Add NumTextureSamplers const, remove unused #pragma.bunnei2018-04-151-2/+0
|
* shaders: Address PR review feedback.bunnei2018-04-141-1/+1
|
* shaders: Fix GCC and clang build issues.bunnei2018-04-141-3/+3
|
* gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup.bunnei2018-04-141-20/+39
|
* shader_bytecode: Add FSETP and KIL to GetInfo.bunnei2018-04-141-0/+3
|
* shader_bytecode: Add SubOp decoding.bunnei2018-04-141-0/+10
|
* shader_bytecode: Add initial module for shader decoding.bunnei2018-04-141-0/+297