summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* gl_shader_decompiler: Implement LD_C instruction.bunnei2018-06-071-0/+27
|
* gl_shader_gen: Add uniform handling for indirect const buffer access.bunnei2018-06-071-0/+15
|
* gl_shader_decompiler: Refactor uniform handling to allow different decodings.bunnei2018-06-061-20/+19
|
* gl_shader_decompiler: Fix un/signed mismatch with SHL.bunnei2018-06-061-1/+1
|
* Merge pull request #516 from Subv/f2i_rbunnei2018-06-061-3/+44
|\ | | | | GPU: Implemented the F2I_R shader instruction.
| * GPU: Implemented the F2I_R shader instruction.Subv2018-06-051-3/+44
| |
* | Merge pull request #520 from bunnei/shader-shlbunnei2018-06-051-2/+31
|\ \ | | | | | | gl_shader_decompiler: Implement SHL instruction.
| * | gl_shader_decompiler: Fix typo with ISCADD instruction.bunnei2018-06-051-1/+1
| | |
| * | gl_shader_decompiler: Implement SHL instruction.bunnei2018-06-051-1/+30
| | |
* | | Merge pull request #518 from Subv/incomplete_shadersbunnei2018-06-051-5/+16
|\ \ \ | |/ / |/| | GPU: Implemented predicated exit instructions in the shader programs.
| * | GPU: Implement predicated exit instructions in the shader programs.Subv2018-06-051-4/+6
| | |
| * | GPU: Take into account predicated exits when performing shader control flow analysis.Subv2018-06-051-1/+10
| | |
* | | gl_shader_decompiler: Implement PredCondition::NotEqual.bunnei2018-06-051-3/+3
| | |
* | | GPU: Implement the ISCADD shader instructions.Subv2018-06-051-0/+24
| |/ |/|
* | Merge pull request #514 from Subv/lop32ibunnei2018-06-051-0/+43
|\ \ | | | | | | GPU: Implemented the LOP32I instruction.
| * | GPU: Implemented the LOP32I instruction.Subv2018-06-041-0/+43
| | |
* | | Merge pull request #510 from Subv/isetpbunnei2018-06-051-6/+53
|\ \ \ | | | | | | | | GPU: Implemented the ISETP_R and ISETP_C instructions
| * | | GPU: Use explicit types when retrieving the uniform values for fsetp/fset and isetp instead of the type of an invalid output register.Subv2018-06-041-9/+18
| | | |
| * | | GPU: Implemented the ISETP_R and ISETP_C shader instructions.Subv2018-06-041-0/+38
| |/ /
* | | Merge pull request #512 from Subv/fsetbunnei2018-06-051-3/+18
|\ \ \ | |_|/ |/| | 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/+6
| | |
| * | GPU: Corrected the I2F_R implementation.Subv2018-06-041-2/+12
| |/
* / GPU: Partially implemented the shader BRA instruction.Subv2018-06-041-1/+30
|/
* gl_shader_decompiler: Implement TEXS component mask.bunnei2018-06-031-7/+10
|
* Merge pull request #494 from bunnei/shader-texbunnei2018-06-031-2/+43
|\ | | | | gl_shader_decompiler: Implement TEX, fixes for TEXS.
| * gl_shader_decompiler: Implement TEX instruction.bunnei2018-06-011-1/+26
| |
| * gl_shader_decompiler: Support multi-destination for TEXS.bunnei2018-06-011-2/+18
| |
* | gl_shader_decompiler: Implement RRO as a register move.bunnei2018-06-031-6/+11
|/
* Merge pull request #489 from Subv/vertexidbunnei2018-05-301-1/+7
|\ | | | | 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-1/+7
| |
* | gl_shader_decompiler: F2F_R instruction: Implement abs.bunnei2018-05-301-1/+7
| |
* | gl_shader_decompiler: Partially implement F2F_R instruction.bunnei2018-05-301-1/+6
|/
* Merge pull request #472 from bunnei/greater-equalbunnei2018-05-271-4/+3
|\ | | | | gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual.
| * gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual.bunnei2018-05-261-4/+3
| |
* | shader_bytecode: Implement other variants of FMNMX.bunnei2018-05-261-1/+3
|/
* Shader: Implemented compound predicates in fset.Subv2018-05-251-28/+12
| | | | | | You can specify a predicate in the fset instruction: Result = ((Value1 Comp Value2) OP P0) ? 1.0 : 0.0;
* Shader: Implemented compound predicates in fsetp.Subv2018-05-251-19/+55
| | | | | | | You can specify three predicates in an fsetp instruction: P1 = (Value1 Comp Value2) OP P0; P2 = !(Value1 Comp Value2) OP P0;
* Shaders: Implemented the FMNMX shader instruction.Subv2018-05-211-6/+21
|
* Merge pull request #422 from bunnei/shader-movbunnei2018-04-301-0/+6
|\ | | | | Shader instructions MOV_C, MOV_R, and several minor GPU things
| * gl_shader_decompiler: Implement MOV_R.bunnei2018-04-291-1/+2
| |
| * gl_shader_decompiler: Implement MOV_C.bunnei2018-04-291-0/+5
| |
* | Shaders: Implemented predicate condition 3 (LessEqual) in the fset and fsetp instructions.Subv2018-04-291-0/+7
|/
* gl_shader_decompiler: Partially implement I2I_R, and I2F_R.bunnei2018-04-291-0/+26
|
* gl_shader_decompiler: More cleanups, etc. with how we handle register types.bunnei2018-04-291-44/+120
|
* GLSLRegister: Simplify register declarations, etc.bunnei2018-04-291-63/+31
|
* gl_shader_decompiler: Implement MOV32_IMM instruction.bunnei2018-04-291-0/+5
|
* gl_shader_decompiler: Add GLSLRegisterManager class to track register state.bunnei2018-04-271-154/+262
|
* gl_shader_decompiler: Boilerplate for handling integer instructions.bunnei2018-04-261-5/+102
|
* gl_shader_decompiler: Move color output to EXIT instruction.bunnei2018-04-261-6/+12
|
* Shaders: Implemented the FSET instruction.Subv2018-04-251-0/+53
| | | | This instruction is similar to the FSETP instruction, but it doesn't set a predicate, it sets the destination register to 1.0 if the condition holds, and 0 otherwise.
* Shaders: Added decodings for the FSET instructions.Subv2018-04-251-1/+1
|
* gl_shader_decompiler: Skip RRO instruction.bunnei2018-04-211-0/+4
|
* gl_shader_decompiler: Cleanup error logging.bunnei2018-04-211-14/+6
|
* shader_bytecode: Decode instructions based on bit strings.bunnei2018-04-211-20/+29
|
* ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'.Subv2018-04-211-1/+7
|
* ShaderGen: Implemented predicated instruction execution.Subv2018-04-211-0/+35
| | | | 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-0/+72
| | | | | | | | | | 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/+2
|
* ShaderGen: Ignore the 'sched' instruction when generating shaders.Subv2018-04-201-0/+16
| | | | The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).
* Merge pull request #356 from lioncash/shaderbunnei2018-04-201-12/+30
|\ | | | | glsl_shader_decompiler: Minor API changes to ShaderWriter
| * glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()Lioncash2018-04-201-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | This function doesn't need to take ownership of the string data being given to it, considering all we do is append the characters to the internal string instance. Instead, use a string view to simply reference the string data without any potential heap allocation. Now anything that is a raw const char* won't need to be converted to a std::string before appending.
| * glsl_shader_decompiler: Add AddNewLine() function to ShaderWriterLioncash2018-04-201-6/+12
| | | | | | | | Avoids constructing a std::string just to append a newline character
| * glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()Lioncash2018-04-201-4/+11
| | | | | | | | Avoids constructing a std::string just to append a character.
| * glsl_shader_decompiler: Append indentation without constructing a separate std::stringLioncash2018-04-201-1/+5
| | | | | | | | | | The interface of std::string already lets us append N copies of a character to an existing string.
* | ShaderGen: Implemented the fmul32i shader instruction.Subv2018-04-191-6/+16
| |
* | ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output.Subv2018-04-191-2/+9
|/ | | | It will now save the coords before writing the outputs in a subscope.
* gl_shader_decompiler: Fix warnings with MarkAsUsed.bunnei2018-04-171-1/+2
|
* gl_shader_decompiler: Cleanup logging, updating to NGLOG_*.bunnei2018-04-171-24/+22
|
* gl_shader_decompiler: Implement several MUFU subops and abs_d.bunnei2018-04-171-7/+21
|
* gl_shader_decompiler: Fix swizzle in GetRegister.bunnei2018-04-171-1/+1
|
* gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions.bunnei2018-04-171-12/+39
|
* gl_shader_decompiler: Allow vertex position to be used in fragment shader.bunnei2018-04-171-15/+13
|
* gl_shader_decompiler: Implement IPA instruction.bunnei2018-04-171-0/+11
|
* gl_shader_decompiler: Add support for TEXS instruction.bunnei2018-04-171-7/+29
|
* gl_shader_decompiler: Use fragment output color for GPR 0-3.bunnei2018-04-171-0/+5
|
* gl_shader_decompiler: Partially implement MUFU.bunnei2018-04-171-2/+11
|
* GPU: Use the same buffer names in the generated GLSL and the buffer uploading code.Subv2018-04-151-3/+2
|
* shaders: Expose hints about used const buffers.bunnei2018-04-151-8/+32
|
* shaders: Address PR review feedback.bunnei2018-04-141-6/+8
|
* gl_shader_decompiler: Cleanup log statements.bunnei2018-04-141-15/+15
|
* shaders: Fix GCC and clang build issues.bunnei2018-04-141-1/+1
|
* gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup.bunnei2018-04-141-20/+57
|
* gl_shader_decompiler: Add shader stage hint.bunnei2018-04-141-4/+7
|
* gl_shader_decompiler: Basic impl. for very simple vertex shaders.bunnei2018-04-141-8/+307
| | | | - Tested with Puyo Puyo Tetris and Cave Story+
* gl_shader_decompiler: Add skeleton code from Citra for shader analysis.bunnei2018-04-141-33/+134
|
* renderer_opengl: Logging, etc. cleanup.bunnei2018-03-271-1/+1
|
* renderer_gl: Port over gl_shader_decompiler module from Citra.bunnei2018-03-201-0/+58