Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gl_shader_decompiler: Support multi-destination for TEXS. | bunnei | 2018-06-01 | 1 | -2/+18 |
| | |||||
* | Merge pull request #489 from Subv/vertexid | bunnei | 2018-05-30 | 1 | -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. | Subv | 2018-05-30 | 1 | -1/+7 |
| | | |||||
* | | gl_shader_decompiler: F2F_R instruction: Implement abs. | bunnei | 2018-05-30 | 1 | -1/+7 |
| | | |||||
* | | gl_shader_decompiler: Partially implement F2F_R instruction. | bunnei | 2018-05-30 | 1 | -1/+6 |
|/ | |||||
* | Merge pull request #472 from bunnei/greater-equal | bunnei | 2018-05-27 | 1 | -4/+3 |
|\ | | | | | gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual. | ||||
| * | gl_shader_decompiler: Implement GetPredicateComparison GreaterEqual. | bunnei | 2018-05-26 | 1 | -4/+3 |
| | | |||||
* | | shader_bytecode: Implement other variants of FMNMX. | bunnei | 2018-05-26 | 1 | -1/+3 |
|/ | |||||
* | Shader: Implemented compound predicates in fset. | Subv | 2018-05-25 | 1 | -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. | Subv | 2018-05-25 | 1 | -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. | Subv | 2018-05-21 | 1 | -6/+21 |
| | |||||
* | Merge pull request #422 from bunnei/shader-mov | bunnei | 2018-04-30 | 1 | -0/+6 |
|\ | | | | | Shader instructions MOV_C, MOV_R, and several minor GPU things | ||||
| * | gl_shader_decompiler: Implement MOV_R. | bunnei | 2018-04-29 | 1 | -1/+2 |
| | | |||||
| * | gl_shader_decompiler: Implement MOV_C. | bunnei | 2018-04-29 | 1 | -0/+5 |
| | | |||||
* | | Shaders: Implemented predicate condition 3 (LessEqual) in the fset and fsetp instructions. | Subv | 2018-04-29 | 1 | -0/+7 |
|/ | |||||
* | gl_shader_decompiler: Partially implement I2I_R, and I2F_R. | bunnei | 2018-04-29 | 1 | -0/+26 |
| | |||||
* | gl_shader_decompiler: More cleanups, etc. with how we handle register types. | bunnei | 2018-04-29 | 1 | -44/+120 |
| | |||||
* | GLSLRegister: Simplify register declarations, etc. | bunnei | 2018-04-29 | 1 | -63/+31 |
| | |||||
* | gl_shader_decompiler: Implement MOV32_IMM instruction. | bunnei | 2018-04-29 | 1 | -0/+5 |
| | |||||
* | gl_shader_decompiler: Add GLSLRegisterManager class to track register state. | bunnei | 2018-04-27 | 1 | -154/+262 |
| | |||||
* | gl_shader_decompiler: Boilerplate for handling integer instructions. | bunnei | 2018-04-26 | 1 | -5/+102 |
| | |||||
* | gl_shader_decompiler: Move color output to EXIT instruction. | bunnei | 2018-04-26 | 1 | -6/+12 |
| | |||||
* | Shaders: Implemented the FSET instruction. | Subv | 2018-04-25 | 1 | -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. | Subv | 2018-04-25 | 1 | -1/+1 |
| | |||||
* | gl_shader_decompiler: Skip RRO instruction. | bunnei | 2018-04-21 | 1 | -0/+4 |
| | |||||
* | gl_shader_decompiler: Cleanup error logging. | bunnei | 2018-04-21 | 1 | -14/+6 |
| | |||||
* | shader_bytecode: Decode instructions based on bit strings. | bunnei | 2018-04-21 | 1 | -20/+29 |
| | |||||
* | ShaderGen: Implemented the KIL instruction, which is equivalent to 'discard'. | Subv | 2018-04-21 | 1 | -1/+7 |
| | |||||
* | ShaderGen: Implemented predicated instruction execution. | Subv | 2018-04-21 | 1 | -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. | Subv | 2018-04-21 | 1 | -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). | Subv | 2018-04-20 | 1 | -0/+2 |
| | |||||
* | ShaderGen: Ignore the 'sched' instruction when generating shaders. | Subv | 2018-04-20 | 1 | -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/shader | bunnei | 2018-04-20 | 1 | -12/+30 |
|\ | | | | | glsl_shader_decompiler: Minor API changes to ShaderWriter | ||||
| * | glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine() | Lioncash | 2018-04-20 | 1 | -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 ShaderWriter | Lioncash | 2018-04-20 | 1 | -6/+12 |
| | | | | | | | | Avoids constructing a std::string just to append a newline character | ||||
| * | glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine() | Lioncash | 2018-04-20 | 1 | -4/+11 |
| | | | | | | | | Avoids constructing a std::string just to append a character. | ||||
| * | glsl_shader_decompiler: Append indentation without constructing a separate std::string | Lioncash | 2018-04-20 | 1 | -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. | Subv | 2018-04-19 | 1 | -6/+16 |
| | | |||||
* | | ShaderGen: Fixed a case where the TEXS instruction would use the same registers for the input and the output. | Subv | 2018-04-19 | 1 | -2/+9 |
|/ | | | | It will now save the coords before writing the outputs in a subscope. | ||||
* | gl_shader_decompiler: Fix warnings with MarkAsUsed. | bunnei | 2018-04-17 | 1 | -1/+2 |
| | |||||
* | gl_shader_decompiler: Cleanup logging, updating to NGLOG_*. | bunnei | 2018-04-17 | 1 | -24/+22 |
| | |||||
* | gl_shader_decompiler: Implement several MUFU subops and abs_d. | bunnei | 2018-04-17 | 1 | -7/+21 |
| | |||||
* | gl_shader_decompiler: Fix swizzle in GetRegister. | bunnei | 2018-04-17 | 1 | -1/+1 |
| | |||||
* | gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions. | bunnei | 2018-04-17 | 1 | -12/+39 |
| | |||||
* | gl_shader_decompiler: Allow vertex position to be used in fragment shader. | bunnei | 2018-04-17 | 1 | -15/+13 |
| | |||||
* | gl_shader_decompiler: Implement IPA instruction. | bunnei | 2018-04-17 | 1 | -0/+11 |
| | |||||
* | gl_shader_decompiler: Add support for TEXS instruction. | bunnei | 2018-04-17 | 1 | -7/+29 |
| | |||||
* | gl_shader_decompiler: Use fragment output color for GPR 0-3. | bunnei | 2018-04-17 | 1 | -0/+5 |
| | |||||
* | gl_shader_decompiler: Partially implement MUFU. | bunnei | 2018-04-17 | 1 | -2/+11 |
| | |||||
* | GPU: Use the same buffer names in the generated GLSL and the buffer uploading code. | Subv | 2018-04-15 | 1 | -3/+2 |
| | |||||
* | shaders: Expose hints about used const buffers. | bunnei | 2018-04-15 | 1 | -8/+32 |
| | |||||
* | shaders: Address PR review feedback. | bunnei | 2018-04-14 | 1 | -6/+8 |
| | |||||
* | gl_shader_decompiler: Cleanup log statements. | bunnei | 2018-04-14 | 1 | -15/+15 |
| | |||||
* | shaders: Fix GCC and clang build issues. | bunnei | 2018-04-14 | 1 | -1/+1 |
| | |||||
* | gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup. | bunnei | 2018-04-14 | 1 | -20/+57 |
| | |||||
* | gl_shader_decompiler: Add shader stage hint. | bunnei | 2018-04-14 | 1 | -4/+7 |
| | |||||
* | gl_shader_decompiler: Basic impl. for very simple vertex shaders. | bunnei | 2018-04-14 | 1 | -8/+307 |
| | | | | - Tested with Puyo Puyo Tetris and Cave Story+ | ||||
* | gl_shader_decompiler: Add skeleton code from Citra for shader analysis. | bunnei | 2018-04-14 | 1 | -33/+134 |
| | |||||
* | renderer_opengl: Logging, etc. cleanup. | bunnei | 2018-03-27 | 1 | -1/+1 |
| | |||||
* | renderer_gl: Port over gl_shader_decompiler module from Citra. | bunnei | 2018-03-20 | 1 | -0/+58 |