Commit Graph

31 Commits

Author SHA1 Message Date
bunnei
c8e949b6d0 gl_shader_decompiler: Implement RRO as a register move. 2018-06-03 11:14:31 -04:00
bunnei
bf40318a01 Merge pull request #489 from Subv/vertexid
Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader.
2018-05-30 14:10:48 -04:00
Subv
057add0539 Shaders: Implemented reading the gl_InstanceID and gl_VertexID variables in the vertex shader. 2018-05-30 10:58:03 -05:00
bunnei
f8963f0e33 gl_shader_decompiler: Partially implement F2F_R instruction. 2018-05-29 23:10:44 -04:00
bunnei
b8edc83d63 shader_bytecode: Implement other variants of FMNMX. 2018-05-25 23:18:50 -04:00
bunnei
b3aeb018f1 Merge pull request #458 from Subv/fmnmx
Shaders: Implemented the FMNMX shader instruction.
2018-05-20 23:44:07 -04:00
Subv
0a95ba5168 Shaders: Implemented the FMNMX shader instruction. 2018-05-20 17:53:06 -05:00
Subv
1e8988657f ShadersDecompiler: Added decoding for the PSETP instruction. 2018-05-19 11:41:14 -05:00
bunnei
94b70110f4 shader_bytecode: Add decoding for FMNMX instruction. 2018-04-29 16:05:17 -04:00
bunnei
663bcd6f65 gl_shader_decompiler: Partially implement I2I_R, and I2F_R. 2018-04-28 20:03:19 -04:00
bunnei
5d5d6df168 shader_bytecode: Add decodings for i2i instructions. 2018-04-28 20:03:18 -04:00
bunnei
1568151052 gl_shader_decompiler: Implement MOV32_IMM instruction. 2018-04-28 20:03:18 -04:00
bunnei
a35c1c299a gl_shader_decompiler: Boilerplate for handling integer instructions. 2018-04-26 14:38:42 -04:00
Subv
bf9fb418e1 Shaders: Added bit decodings for the I2I instruction. 2018-04-25 12:52:55 -05:00
Subv
c816585e63 Shaders: Added decodings for the FSET instructions. 2018-04-24 22:42:54 -05:00
bunnei
4d1202d003 shader_bytecode: Add several more instruction decodings. 2018-04-20 22:30:56 -04:00
bunnei
7d110841b6 shader_bytecode: Decode instructions based on bit strings. 2018-04-20 22:30:56 -04:00
Subv
9595cbdc48 ShaderGen: Implemented predicated instruction execution.
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-20 21:09:33 -05:00
Subv
fc6e87d603 ShaderGen: Implemented the fsetp instruction.
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-20 21:09:33 -05:00
Subv
200db98f8d ShaderGen: Register id 255 is special and is hardcoded to return 0 (SR_ZERO). 2018-04-20 14:57:40 -05:00
Subv
5fd7bd112d ShaderGen: Implemented the fmul32i shader instruction. 2018-04-19 13:46:32 -05:00
bunnei
71e5b616a4 shader_bytecode: Make ctor's constexpr and explicit. 2018-04-17 21:27:07 -04:00
bunnei
e172c8c5b8 gl_shader_decompiler: Implement FMUL/FADD/FFMA immediate instructions. 2018-04-17 16:36:42 -04:00
bunnei
48286118ba gl_shader_decompiler: Add support for TEXS instruction. 2018-04-17 16:36:38 -04:00
bunnei
35fda1332f shaders: Add NumTextureSamplers const, remove unused #pragma. 2018-04-14 18:50:06 -04:00
bunnei
b71da11477 shaders: Address PR review feedback. 2018-04-14 16:01:41 -04:00
bunnei
c64d6d465d shaders: Fix GCC and clang build issues. 2018-04-14 16:01:40 -04:00
bunnei
32df837dd2 gl_shader_decompiler: Implement negate, abs, etc. and lots of cleanup. 2018-04-14 16:01:40 -04:00
bunnei
4a07b44660 shader_bytecode: Add FSETP and KIL to GetInfo. 2018-04-14 16:01:40 -04:00
bunnei
1a3fbd0814 shader_bytecode: Add SubOp decoding. 2018-04-14 16:01:40 -04:00
bunnei
d81e6a523d shader_bytecode: Add initial module for shader decoding. 2018-04-13 23:48:19 -04:00