summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp (unfollow)
Commit message (Expand)AuthorFilesLines
2018-10-28Refactor precise usage and add FMNMX, MUFU, FMUL32 and FADD332FernandoS271-68/+34
2018-10-28Improved Shader accuracy on Vertex and Geometry Shaders with FFMA, FMUL and FADDFernandoS271-3/+52
2018-10-24Implemented LD_L and ST_LFernandoS271-12/+76
2018-10-24Implement Shader Local MemoryFernandoS271-0/+37
2018-10-23Implement PointSizeFernandoS271-2/+27
2018-10-23gl_shader_decompiler: Implement VSETPReinUsesLisp1-0/+24
2018-10-23gl_shader_decompiler: Abstract VMAD into a video subsetReinUsesLisp1-72/+69
2018-10-23Added Saturation to FMUL32IFernandoS271-3/+4
2018-10-22Assert that multiple render targets are not set while alpha testingFernandoS271-3/+2
2018-10-22Use standard UBO and fix/stylize the codeFernandoS271-41/+5
2018-10-22Remove SyncAlphaTest and clang formatFernandoS271-2/+3
2018-10-22Added Alpha FuncFernandoS271-2/+34
2018-10-22Implemented Alpha TestingFernandoS271-2/+26
2018-10-22Fixed FSETP and FSETFernandoS271-28/+12
2018-10-20gl_shader_decompiler: Allow std::move to function in SetPredicateLioncash1-1/+1
2018-10-20gl_shader_decompiler: Get rid of variable shadowing warningsLioncash1-2/+2
2018-10-20gl_shader_decompiler: Fix a few comment typosLioncash1-3/+4
2018-10-20gl_shader_decompiler: Move position varying declaration back to gl_shader_genReinUsesLisp1-13/+0
2018-10-18gl_shader_decompiler: Implement PBK and BRKReinUsesLisp1-19/+36
2018-10-18Implement 3D TexturesFernandoS271-0/+1
2018-10-15gl_shader_decompiler: Fixup style inconsistenciesReinUsesLisp1-5/+3
2018-10-15gl_shader_decompiler: Implement HSET2_RReinUsesLisp1-0/+44
2018-10-15gl_shader_decompiler: Implement HSETP2_RReinUsesLisp1-0/+45
2018-10-15gl_shader_decompiler: Implement HFMA2 instructionsReinUsesLisp1-0/+53
2018-10-15gl_shader_decompiler: Implement HADD2_IMM and HMUL2_IMMReinUsesLisp1-0/+43
2018-10-15gl_shader_decompiler: Implement non-immediate HADD2 and HMUL2 instructionsReinUsesLisp1-0/+50
2018-10-15gl_shader_decompiler: Setup base for half float unpacking and settingReinUsesLisp1-0/+78
2018-10-14Implement Arrays on Tex InstructionFernandoS271-14/+55
2018-10-14Fix TLDSFernandoS271-1/+5
2018-10-11gl_shader_decompiler: Implement VMADReinUsesLisp1-0/+82
2018-10-09gl_shader_decompiler: Remove unused variables in TMML's implementationLioncash1-7/+3
2018-10-07gl_shader_decompiler: Move position varying location from 15 to 0 and apply an offsetReinUsesLisp1-6/+10
2018-10-07gl_shader_decompiler: Implement geometry shadersReinUsesLisp1-57/+229
2018-10-06Implemented Depth Compare and Shadow SamplersFernandoS271-61/+156
2018-10-03Implemented Texture Processing Modes in TEXS and TLDSFernandoS271-5/+42
2018-09-30gl_shader_decompiler: TEXS: Implement TextureType::TextureCube.bunnei1-0/+8
2018-09-30Fix trailing whitespaceraven021-1/+4
2018-09-18Implemented Internal FlagsFernandoS271-13/+35
2018-09-18gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A codeLioncash1-4/+4
2018-09-17Implemented I2I.CC on the NEU control code, used by SMOFernandoS271-13/+17
2018-09-17Implemented CSETPFernandoS271-14/+38
2018-09-17Implemented Control CodesFernandoS271-0/+15
2018-09-17Added asserts for texture misc modes to texture instructionsFernandoS271-2/+45
2018-09-17Add 1D sampler for TLDS - TexelFetch (Mario Rabbids)raven021-7/+12
2018-09-15Shaders: Implemented multiple-word loads and stores to and from attribute memory.Subv1-6/+49
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi1-14/+14
2018-09-14gl_shader_decompiler: Get rid of variable shadowing within LEA instructionsLioncash1-2/+0
2018-09-12Implemented Texture Processing ModesFernandoS271-1/+33
2018-09-11Implemented LEA and PSETFernandoS271-0/+91
2018-09-11Replace old FragmentHeader for the new HeaderFernandoS271-22/+3
2018-09-11Implemented (Partialy) Shader HeaderFernandoS271-2/+4
2018-09-11Fixed renderdoc input/output textures not working due to render targetsDavid Marcec1-1/+1
2018-09-10Implemented TMMLFernandoS271-0/+48
2018-09-09Implemented TXQ dimension query type, used by SMO.FernandoS271-0/+20
2018-09-09video_core: fixed arithmetic overflow warnings & improved code stylePatrick Elsässer1-73/+82
2018-09-08gl_shader_decompiler: Partially implement several non-2D texture types (Subv).bunnei1-26/+99
2018-09-06gl_shader_decompiler: Implement saturate mode for IPA.bunnei1-1/+5
2018-09-06Implemented IPA ProperlyFernandoS271-47/+86
2018-09-02gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()Lioncash1-1/+1
2018-09-01Removed saturate assertDavid Marcec1-1/+0
2018-09-01Removed saturate assertDavid Marcec1-1/+0
2018-09-01Changed tab5980_0 default from 0 -> 1David Marcec1-2/+2
2018-09-01Added FMUL assertsDavid Marcec1-0/+10
2018-09-01Added FFMA assertsDavid Marcec1-0/+7
2018-09-01Added assert for TEXS nodepDavid Marcec1-0/+2
2018-09-01Added better asserts to IPA, Renamed IPA modes to match mesaDavid Marcec1-4/+8
2018-08-31Added predicate comparison GreaterEqualWithNanHexagon121-3/+3
2018-08-31gl_shader_decompiler: Implement POPC (#1203)Laku1-0/+9
2018-08-29Shaders: Implemented IADD3tech4me1-0/+61
2018-08-29gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.bunnei1-1/+33
2018-08-22more fixesLaku1-6/+7
2018-08-22fixesLaku1-6/+12
2018-08-22renderer_opengl: Namespace OpenGL codeLioncash1-2/+2
2018-08-22remove debug loggingLaku1-2/+0
2018-08-22implement lop3Laku1-0/+36
2018-08-22Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions."bunnei1-109/+25
2018-08-21Shaders: Implement depth writing in fragment shaders.Subv1-1/+6
2018-08-21gl_shader_decompiler: Implement Texture3D for TEXS.bunnei1-0/+7
2018-08-21gl_shader_decompiler: Implement TextureCube for TEX.bunnei1-0/+8
2018-08-21Shaders: Fixed the coords in TEX with Texture2D.Subv1-1/+1
2018-08-21Shaders: Log and crash when using an unimplemented texture type in a texture sampling instruction.Subv1-5/+14
2018-08-21Shaders: Write all the enabled color outputs when a fragment shader exits.Subv1-5/+44
2018-08-20Shaders/TEXS: Fixed the component mask in the TEXS instruction.Subv1-18/+18
2018-08-19Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.Subv1-0/+51
2018-08-19Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Subv1-23/+83
2018-08-19Shaders: Implemented the gl_FrontFacing input attribute (attr 63).Subv1-0/+4
2018-08-18Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.Subv1-2/+0
2018-08-18Shader: Implemented the predicate and mode arguments of LOP.Subv1-10/+33
2018-08-18Shaders: Implemented a stack for the SSY/SYNC instructions.Subv1-3/+36
2018-08-18Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.Subv1-16/+34
2018-08-18Added predcondition GreaterThanWithNanDavid Marcec1-5/+7
2018-08-15Shader/Conversion: Implemented the negate bit in F2F and I2I instructions.Subv1-4/+12
2018-08-15Shader/I2F: Implemented the negate I2F_C instruction variant.Subv1-7/+23
2018-08-15Shader/F2I: Implemented the negate bit in the I2F instructionSubv1-0/+4
2018-08-15Shader/F2I: Implemented the F2I_C instruction variant.Subv1-2/+10
2018-08-15Shader/F2I: Implemented the negate bit in the F2I instruction.Subv1-0/+4
2018-08-15Rasterizer: Implemented instanced rendering.Subv1-1/+1
2018-08-15gl_shader_decompiler: Several fixes for indirect constant buffer loads.bunnei1-13/+22
2018-08-13gl_shader_decompiler: Implement XMAD instruction.bunnei1-0/+95
2018-08-12gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.bunnei1-2/+2
2018-08-12gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.bunnei1-0/+8
2018-08-12gl_shader_decompiler: Improve handling of unknown input/output attributes.bunnei1-8/+10
2018-08-11GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY).Subv1-2/+6
2018-08-11GPU/Shaders: Implemented SSY and SYNC as a way to modify control flow during shader execution.Subv1-6/+25
2018-08-09gl_shader_decompiler: Reserve element memory beforehand in BuildRegisterList()Lioncash1-0/+2
2018-08-09gl_shader_decompiler: Declare predicates on use.bunnei1-4/+5
2018-08-08gl_shader_decompiler: Stub input attribute Unknown_63.bunnei1-0/+7
2018-08-08gl_shader_decompiler: Let OpenGL interpret floats.bunnei1-2/+2
2018-08-05gl_shader_decompiler: Fix TEXS mask and dest.bunnei1-2/+5
2018-08-03gl_shader_decompiler: Remove unused variable in GenerateDeclarations()Lioncash1-2/+0
2018-07-24gl_shader_decompiler: Correct return value of WriteTexsInstruction()Lioncash1-2/+2
2018-07-24gl_shader_decompiler: Implement shader instruction TLDS.bunnei1-29/+43
2018-07-24gl_shader_decompiler: Print instruction value in shader comments.bunnei1-1/+2
2018-07-24gl_shader_decompiler: Check if SetRegister result is ZeroIndex.bunnei1-0/+6
2018-07-23gl_shader_decompiler: Simplify GetCommonDeclarations()Lioncash1-5/+5
2018-07-22gl_shader_decompiler: Remove redundant Subroutine construction in AddSubroutine()Lioncash1-4/+8
2018-07-22gl_shader_decompiler: Remove unused state tracking and minor cleanup.bunnei1-78/+15
2018-07-22gl_shader_decompiler: Implement SEL instruction.bunnei1-0/+9
2018-07-21video_core: Use nested namespaces where applicableLioncash1-4/+2
2018-07-20gl_shader_decompiler: Eliminate variable and declaration shadowingLioncash1-6/+4
2018-07-20gl_shader_decompiler: Remove unnecessary const from return valuesLioncash1-2/+2
2018-07-13gl_shader_gen: Implement dual vertex shader mode.bunnei1-32/+39
2018-07-13gl_shader_decompiler: Implement PredCondition::LessThanWithNan.bunnei1-5/+6
2018-07-13gl_shader_decompiler: Use FlowCondition field in EXIT instruction.bunnei1-8/+25
2018-07-12GPU: Implement the FADD32I shader instruction.Subv1-0/+23
2018-07-04GPU: Implemented the IMNMX shader instruction.Subv1-0/+14
2018-07-04GPU: Implemented the F2F 'round' rounding mode.Subv1-0/+3
2018-07-04GPU: Stub the shader SYNC and DEPBAR instructions.Subv1-0/+7
2018-07-04GPU: Implemented the PSETP shader instruction.Subv1-0/+30
2018-07-03Update clang formatJames Rowe1-6/+6
2018-07-03Rename logging macro back to LOG_*James Rowe1-20/+20
2018-07-03GPU: Implemented MUFU suboperation 8, sqrt.Subv1-0/+4
2018-06-30GPU: Corrected the size of the MUFU subop field, and removed incorrect "min" operation.Subv1-4/+0
2018-06-30gl_shader_decompiler: Implement predicate NotEqualWithNan.bunnei1-17/+23
2018-06-27gl_shader_decompiler: Add a return path for unknown instructions.bunnei1-0/+1
2018-06-20Build: Fixed some MSVC warnings in various parts of the code.Subv1-1/+1
2018-06-19GPU: Perform negation after absolute value in the float shader instructions.Subv1-7/+14
2018-06-19GPU: Don't mark uniform buffers and registers as used for instructions which don't have them.Subv1-12/+15
2018-06-17gl_shader_decompiler: Implement LOP instructions.bunnei1-6/+28
2018-06-17gl_shader_decompiler: Refactor LOP32I instruction a bit in support of LOP.bunnei1-54/+40
2018-06-16gl_shader_decompiler: Implement integer size conversions for I2I/I2F/F2I.bunnei1-13/+41
2018-06-16gl_shader_decompiler: Implement LOP32I LogicOperation PassB.bunnei1-6/+12
2018-06-12GPU: Implemented the iadd32i shader instruction.Subv1-0/+21
2018-06-12gl_shader_decompiler: Implement saturate for float instructions.bunnei1-37/+31
2018-06-10GPU: Convert the gl_InstanceId and gl_VertexID variables to floats when reading from them.Subv1-1/+1
2018-06-10Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.Subv1-6/+16
2018-06-09GPU: Implement the iset family of shader instructions.Subv1-2/+37
2018-06-09gl_shader_decompiler: Implement SHR instruction.bunnei1-0/+13
2018-06-09GPU: Stub the SSY shader instruction.Subv1-0/+5
2018-06-09gl_shader_decompiler: Implement IADD instruction.bunnei1-6/+26
2018-06-09gl_shader_decompiler: Add missing asserts for saturate_a instructions.bunnei1-7/+17
2018-06-07gl_shader_decompiler: Implement BFE_IMM instruction.bunnei1-4/+29
2018-06-07gl_shader_decompiler: F2F: Implement rounding modes.bunnei1-7/+23
2018-06-07gl_shader_decompiler: Remove some attribute stuff that has nothing to do with TEX/TEXS.bunnei1-8/+4
2018-06-07gl_shader_decompiler: Implement ISETP_IMM instruction.bunnei1-8/+9
2018-06-07gl_shader_decompiler: Implement LD_C instruction.bunnei1-0/+27
2018-06-07gl_shader_gen: Add uniform handling for indirect const buffer access.bunnei1-0/+15
2018-06-06gl_shader_decompiler: Refactor uniform handling to allow different decodings.bunnei1-20/+19
2018-06-06GPU: Implement sampling multiple textures in the generated glsl shaders.Subv1-7/+38
2018-06-06gl_shader_decompiler: Fix un/signed mismatch with SHL.bunnei1-1/+1
2018-06-05GPU: Implemented the F2I_R shader instruction.Subv1-3/+44
2018-06-05gl_shader_decompiler: Fix typo with ISCADD instruction.bunnei1-1/+1
2018-06-05gl_shader_decompiler: Implement SHL instruction.bunnei1-1/+30
2018-06-05gl_shader_decompiler: Implement PredCondition::NotEqual.bunnei1-3/+3
2018-06-05GPU: Implement the ISCADD shader instructions.Subv1-0/+24
2018-06-05GPU: Implement predicated exit instructions in the shader programs.Subv1-4/+6
2018-06-05GPU: Take into account predicated exits when performing shader control flow analysis.Subv1-1/+10
2018-06-04GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f.Subv1-1/+6
2018-06-04GPU: Corrected the I2F_R implementation.Subv1-2/+12
2018-06-04GPU: Implemented the LOP32I instruction.Subv1-0/+43
2018-06-04GPU: Use explicit types when retrieving the uniform values for fsetp/fset and isetp instead of the type of an invalid output register.Subv1-9/+18
2018-06-04GPU: Implemented the ISETP_R and ISETP_C shader instructions.Subv1-0/+38
2018-06-04GPU: Partially implemented the shader BRA instruction.Subv1-1/+30
2018-06-03gl_shader_decompiler: Implement TEXS component mask.bunnei1-7/+10
2018-06-03gl_shader_decompiler: Implement RRO as a register move.bunnei1-6/+11
2018-06-01gl_shader_decompiler: Implement TEX instruction.bunnei1-1/+26
2018-06-01gl_shader_decompiler: Support multi-destination for TEXS.bunnei1-2/+18
2018-05-30Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.Subv1-1/+7
2018-05-30gl_shader_decompiler: F2F_R instruction: Implement abs.bunnei1-1/+7
2018-05-30gl_shader_decompiler: Partially implement F2F_R instruction.bunnei1-1/+6
2018-05-26gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual.bunnei1-4/+3
2018-05-26shader_bytecode: Implement other variants of FMNMX.bunnei1-1/+3
2018-05-25Shader: Implemented compound predicates in fset.Subv1-28/+12
2018-05-25Shader: Implemented compound predicates in fsetp.Subv1-19/+55
2018-05-21Shaders: Implemented the FMNMX shader instruction.Subv1-6/+21
2018-04-29gl_shader_decompiler: Implement MOV_R.bunnei1-1/+2
2018-04-29Shaders: Implemented predicate condition 3 (LessEqual) in the fset and fsetp instructions.Subv1-0/+7
2018-04-29gl_shader_decompiler: Implement MOV_C.bunnei1-0/+5
2018-04-29gl_shader_decompiler: Partially implement I2I_R, and I2F_R.bunnei1-0/+26
2018-04-29gl_shader_decompiler: More cleanups, etc. with how we handle register types.bunnei1-44/+120
2018-04-29GLSLRegister: Simplify register declarations, etc.bunnei1-63/+31
2018-04-29gl_shader_decompiler: Implement MOV32_IMM instruction.bunnei1-0/+5
2018-04-27gl_shader_decompiler: Add GLSLRegisterManager class to track register state.bunnei1-154/+262
2018-04-26gl_shader_decompiler: Boilerplate for handling integer instructions.bunnei1-5/+102
2018-04-26gl_shader_decompiler: Move color output to EXIT instruction.bunnei1-6/+12
2018-04-25Shaders: Implemented the FSET instruction.Subv1-0/+53
2018-04-25Shaders: Added decodings for the FSET instructions.Subv1-1/+1
2018-04-21gl_shader_decompiler: Skip RRO instruction.bunnei1-0/+4
2018-04-21gl_shader_decompiler: Cleanup error logging.bunnei1-14/+6
2018-04-21shader_bytecode: Decode instructions based on bit strings.bunnei1-20/+29
2018-04-21ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.Subv1-1/+7
2018-04-21ShaderGen: Implemented predicated instruction execution.Subv1-0/+35
2018-04-21ShaderGen: Implemented the fsetp instruction.Subv1-0/+72
2018-04-20ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO).Subv1-0/+2
2018-04-20ShaderGen: Ignore the 'sched' instruction when generating shaders.Subv1-0/+16
2018-04-20glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()Lioncash1-1/+2
2018-04-20glsl_shader_decompiler: Add AddNewLine() function to ShaderWriterLioncash1-6/+12
2018-04-20glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()Lioncash1-4/+11
2018-04-20glsl_shader_decompiler: Append indentation without constructing a separate std::stringLioncash1-1/+5
2018-04-19ShaderGen: Implemented the fmul32i shader instruction.Subv1-6/+16
2018-04-19ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.Subv1-2/+9
2018-04-17gl_shader_decompiler: Fix warnings with MarkAsUsed.bunnei1-1/+2
2018-04-17gl_shader_decompiler: Cleanup logging, updating to NGLOG_*.bunnei1-24/+22
2018-04-17gl_shader_decompiler: Implement several MUFU subops and abs_d.bunnei1-7/+21
2018-04-17gl_shader_decompiler: Fix swizzle in GetRegister.bunnei1-1/+1
2018-04-17gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions.bunnei1-12/+39
2018-04-17gl_shader_decompiler: Allow vertex position to be used in fragment shader.bunnei1-15/+13
2018-04-17gl_shader_decompiler: Implement IPA instruction.bunnei1-0/+11
2018-04-17gl_shader_decompiler: Add support for TEXS instruction.bunnei1-7/+29
2018-04-17gl_shader_decompiler: Use fragment output color for GPR 0-3.bunnei1-0/+5
2018-04-17gl_shader_decompiler: Partially implement MUFU.bunnei1-2/+11
2018-04-15GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv1-3/+2
2018-04-15shaders: Expose hints about used const buffers.bunnei1-8/+32
2018-04-14shaders: Address PR review feedback.bunnei1-6/+8
2018-04-14gl_shader_decompiler: Cleanup log statements.bunnei1-15/+15
2018-04-14shaders: Fix GCC and clang build issues.bunnei1-1/+1
2018-04-14gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup.bunnei1-20/+57
2018-04-14gl_shader_decompiler: Add shader stage hint.bunnei1-4/+7
2018-04-14gl_shader_decompiler: Basic impl. for very simple vertex shaders.bunnei1-8/+307
2018-04-14gl_shader_decompiler: Add skeleton code from Citra for shader analysis.bunnei1-33/+134
2018-03-27renderer_opengl: Logging, etc. cleanup.bunnei1-1/+1
2018-03-20renderer_gl: Port over gl_shader_decompiler module from Citra.bunnei1-0/+58