summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
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
These are internally stored as u64 values, so using u32 here causes truncation warnings. Instead, we can just use u64 and preserve the bit width.
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
This seems to be an optimization performed by nouveau.
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
These variables are already defined within an outer scope.
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
- Fixed all warnings, for renderer_opengl items, which were indicating a possible incorrect behavior from integral promotion rules and types larger than those in which arithmetic is typically performed. - Added const for variables where possible and meaningful. - Added constexpr where possible.
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
Using the getter function intended for external code here makes an unnecessary copy of the already-accessible used_shaders vector.
2018-09-01Removed saturate assertDavid Marcec1-1/+0
Unneeded as we already implement it
2018-09-01Removed saturate assertDavid Marcec1-1/+0
Saturate already implemented
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
IpaMode is changed to IpaInterpMode IpaMode is suppose to be 2 bits not 3 Added IpaSampleMode Added Saturate Renamed modes based on https://github.com/mesa3d/mesa/blob/d27c7918916cdc8092959124955f887592e37d72/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp#L2530
2018-08-31Added predicate comparison GreaterEqualWithNanHexagon121-3/+3
2018-08-31gl_shader_decompiler: Implement POPC (#1203)Laku1-0/+9
* Implement POPC * implement invert
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
Namespaces all OpenGL code under the OpenGL namespace. Prevents polluting the global namespace and allows clear distinction between other renderers' code in the future.
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
- This reverts commit 3ef4b3d4b445960576f10d1ba6521580d03e3da8. - This commit had broken a lot of games. We really should do a full implementation of this in one change.
2018-08-21Shaders: Implement depth writing in fragment shaders.Subv1-1/+6
We'll write <last color output reg + 2> to gl_FragDepth.
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
The X and Y coordinates should be in gpr8 and gpr8+1, respectively. This fixes the cutscene rendering in Sonic Mania.
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
We were only writing to the first render target before. Note that this is only the GLSL side of the implementation, supporting multiple render targets requires more changes in the OpenGL renderer. Dual Source blending is not implemented and stuff that uses it might not work at all.
2018-08-20Shaders/TEXS: Fixed the component mask in the TEXS instruction.Subv1-18/+18
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.Subv1-0/+51
It is unknown how TLD4S determines the sampler type, more research is needed.
2018-08-19Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.Subv1-23/+83
Different sampler types have their parameters in different registers.
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
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.
2018-08-18Shaders: Implemented a stack for the SSY/SYNC instructions.Subv1-3/+36
The SSY instruction pushes an address into the stack, and the SYNC instruction pops it. The current stack depth is 20, we should figure out if this is enough or not.
2018-08-18Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.Subv1-16/+34
We should definitely audit our shader generator for more errors like this.
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
We keep track of the current instance and update an uniform in the shaders to let them know which instance they are. Instanced vertex arrays are not yet implemented.
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
SSY sets the target label to jump to when the SYNC instruction is executed.
2018-08-09gl_shader_decompiler: Reserve element memory beforehand in BuildRegisterList()Lioncash1-0/+2
Avoids potentially perfoming multiple reallocations when we know the total amount of memory we need beforehand.
2018-08-09gl_shader_decompiler: Declare predicates on use.bunnei1-4/+5
- Used by Super Mario Odyssey (when going in game).
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
- Accuracy is lost in translation to string, e.g. with NaN. - Needed for Super Mario Odyssey.
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
This variable was being incremented, but we were never actually using it.
2018-07-24gl_shader_decompiler: Correct return value of WriteTexsInstruction()Lioncash1-2/+2
This should be returning void, not a std::string
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
We don't need to toss away the Subroutine instance after the find() call and reconstruct another instance with the same data right after it. Particularly give Subroutine contains a std::set.
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
Compresses a few namespace specifiers to be more compact.
2018-07-20gl_shader_decompiler: Eliminate variable and declaration shadowingLioncash1-6/+4
Ensures that no identifiers are being hidden, which also reduces compiler warnings.
2018-07-20gl_shader_decompiler: Remove unnecessary const from return valuesLioncash1-2/+2
This adds nothing from a behavioral point of view, and can inhibit the move constructor/RVO
2018-07-13gl_shader_gen: Implement dual vertex shader mode.bunnei1-32/+39
- When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage.
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
It's similar to the FMNMX instruction but it works on integers.
2018-07-04GPU: Implemented the F2F 'round' rounding mode.Subv1-0/+3
It's implemented via the GLSL 'roundEven()' function.
2018-07-04GPU: Stub the shader SYNC and DEPBAR instructions.Subv1-0/+7
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.
2018-07-04GPU: Implemented the PSETP shader instruction.Subv1-0/+30
It's similar to the isetp and fsetp instructions but it works on predicates instead.
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
Like the MOV32I and FMUL32I instructions. This fixes a potential crash when using these instructions.
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
This corrects the invalid position values in some games when doing attribute-less rendering.
2018-06-10Rasterizer: Use UBOs instead of SSBOs for uploading const buffers.Subv1-6/+16
This should help a bit with GPU performance once we're GPU-bound.
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
This instruction tells the GPU where the flow reconverges in a non-uniform control flow scenario, we can ignore this when generating GLSL code.
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
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.
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
You can specify a predicate in the fset instruction: Result = ((Value1 Comp Value2) OP P0) ? 1.0 : 0.0;
2018-05-25Shader: Implemented compound predicates in fsetp.Subv1-19/+55
You can specify three predicates in an fsetp instruction: P1 = (Value1 Comp Value2) OP P0; P2 = !(Value1 Comp Value2) OP P0;
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
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.
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
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.
2018-04-21ShaderGen: Implemented the fsetp instruction.Subv1-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.
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
The 'sched' instruction has a very convoluted encoding, but fortunately it seems to only appear on a fixed interval (once every 4 instructions).
2018-04-20glsl_shader_decompiler: Use std::string_view instead of std::string for AddLine()Lioncash1-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.
2018-04-20glsl_shader_decompiler: Add AddNewLine() function to ShaderWriterLioncash1-6/+12
Avoids constructing a std::string just to append a newline character
2018-04-20glsl_shader_decompiler: Add char overload for ShaderWriter's AddLine()Lioncash1-4/+11
Avoids constructing a std::string just to append a character.
2018-04-20glsl_shader_decompiler: Append indentation without constructing a separate std::stringLioncash1-1/+5
The interface of std::string already lets us append N copies of a character to an existing string.
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
It will now save the coords before writing the outputs in a subscope.
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
- Tested with Puyo Puyo Tetris and Cave Story+
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