Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gl_shader_decompiler: Implement BFE_IMM instruction. | bunnei | 2018-06-07 | 1 | -4/+29 |
| | |||||
* | gl_shader_decompiler: F2F: Implement rounding modes. | bunnei | 2018-06-07 | 1 | -7/+23 |
| | |||||
* | Merge pull request #537 from bunnei/misc-shader | bunnei | 2018-06-07 | 1 | -8/+4 |
|\ | | | | | gl_shader_decompiler: Additional decodings, remove unused stuff from TEX | ||||
| * | gl_shader_decompiler: Remove some attribute stuff that has nothing to do with TEX/TEXS. | bunnei | 2018-06-07 | 1 | -8/+4 |
| | | |||||
* | | gl_shader_decompiler: Implement ISETP_IMM instruction. | bunnei | 2018-06-07 | 1 | -8/+9 |
|/ | |||||
* | Merge pull request #534 from Subv/multitexturing | bunnei | 2018-06-07 | 1 | -7/+38 |
|\ | | | | | GPU: Implement sampling multiple textures in the generated glsl shaders. | ||||
| * | GPU: Implement sampling multiple textures in the generated glsl shaders. | Subv | 2018-06-06 | 1 | -7/+38 |
| | | | | | | | | | | | | All tested games that use a single texture show no regression. Only Texture2D textures are supported right now, each shader gets its own "tex_fs/vs/gs" sampler array to maintain independent textures between shader stages, the textures themselves are reused if possible. | ||||
* | | gl_shader_decompiler: Implement LD_C instruction. | bunnei | 2018-06-07 | 1 | -0/+27 |
| | | |||||
* | | gl_shader_gen: Add uniform handling for indirect const buffer access. | bunnei | 2018-06-07 | 1 | -0/+15 |
| | | |||||
* | | gl_shader_decompiler: Refactor uniform handling to allow different decodings. | bunnei | 2018-06-06 | 1 | -20/+19 |
|/ | |||||
* | gl_shader_decompiler: Fix un/signed mismatch with SHL. | bunnei | 2018-06-06 | 1 | -1/+1 |
| | |||||
* | Merge pull request #516 from Subv/f2i_r | bunnei | 2018-06-06 | 1 | -3/+44 |
|\ | | | | | GPU: Implemented the F2I_R shader instruction. | ||||
| * | GPU: Implemented the F2I_R shader instruction. | Subv | 2018-06-05 | 1 | -3/+44 |
| | | |||||
* | | Merge pull request #520 from bunnei/shader-shl | bunnei | 2018-06-05 | 1 | -2/+31 |
|\ \ | | | | | | | gl_shader_decompiler: Implement SHL instruction. | ||||
| * | | gl_shader_decompiler: Fix typo with ISCADD instruction. | bunnei | 2018-06-05 | 1 | -1/+1 |
| | | | |||||
| * | | gl_shader_decompiler: Implement SHL instruction. | bunnei | 2018-06-05 | 1 | -1/+30 |
| | | | |||||
* | | | Merge pull request #518 from Subv/incomplete_shaders | bunnei | 2018-06-05 | 1 | -5/+16 |
|\ \ \ | |/ / |/| | | GPU: Implemented predicated exit instructions in the shader programs. | ||||
| * | | GPU: Implement predicated exit instructions in the shader programs. | Subv | 2018-06-05 | 1 | -4/+6 |
| | | | |||||
| * | | GPU: Take into account predicated exits when performing shader control flow analysis. | Subv | 2018-06-05 | 1 | -1/+10 |
| | | | |||||
* | | | gl_shader_decompiler: Implement PredCondition::NotEqual. | bunnei | 2018-06-05 | 1 | -3/+3 |
| | | | |||||
* | | | GPU: Implement the ISCADD shader instructions. | Subv | 2018-06-05 | 1 | -0/+24 |
| |/ |/| | |||||
* | | Merge pull request #514 from Subv/lop32i | bunnei | 2018-06-05 | 1 | -0/+43 |
|\ \ | | | | | | | GPU: Implemented the LOP32I instruction. | ||||
| * | | GPU: Implemented the LOP32I instruction. | Subv | 2018-06-04 | 1 | -0/+43 |
| | | | |||||
* | | | Merge pull request #510 from Subv/isetp | bunnei | 2018-06-05 | 1 | -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. | Subv | 2018-06-04 | 1 | -9/+18 |
| | | | | |||||
| * | | | GPU: Implemented the ISETP_R and ISETP_C shader instructions. | Subv | 2018-06-04 | 1 | -0/+38 |
| |/ / | |||||
* | | | Merge pull request #512 from Subv/fset | bunnei | 2018-06-05 | 1 | -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. | Subv | 2018-06-04 | 1 | -1/+6 |
| | | | |||||
| * | | GPU: Corrected the I2F_R implementation. | Subv | 2018-06-04 | 1 | -2/+12 |
| |/ | |||||
* / | GPU: Partially implemented the shader BRA instruction. | Subv | 2018-06-04 | 1 | -1/+30 |
|/ | |||||
* | gl_shader_decompiler: Implement TEXS component mask. | bunnei | 2018-06-03 | 1 | -7/+10 |
| | |||||
* | Merge pull request #494 from bunnei/shader-tex | bunnei | 2018-06-03 | 1 | -2/+43 |
|\ | | | | | gl_shader_decompiler: Implement TEX, fixes for TEXS. | ||||
| * | gl_shader_decompiler: Implement TEX instruction. | bunnei | 2018-06-01 | 1 | -1/+26 |
| | | |||||
| * | gl_shader_decompiler: Support multi-destination for TEXS. | bunnei | 2018-06-01 | 1 | -2/+18 |
| | | |||||
* | | gl_shader_decompiler: Implement RRO as a register move. | bunnei | 2018-06-03 | 1 | -6/+11 |
|/ | |||||
* | 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 |