Commit Graph

56 Commits

Author SHA1 Message Date
bunnei
aa48b81e47 gl_shader_decompiler: Implement SHR instruction. 2018-06-09 00:01:17 -04:00
bunnei
8fdc7d4024 gl_shader_decompiler: Implement BFE_IMM instruction. 2018-06-07 00:58:12 -04:00
bunnei
7e2e8854df gl_shader_decompiler: F2F: Implement rounding modes. 2018-06-06 22:21:29 -04:00
bunnei
9a8e478830 shader_bytecode: Add instruction decodings for BFE, IMNMX, and XMAD. 2018-06-06 19:47:34 -04:00
bunnei
2f7cebf31d gl_shader_decompiler: Implement LD_C instruction. 2018-06-06 18:09:06 -04:00
bunnei
8b527bf026 gl_shader_decompiler: Refactor uniform handling to allow different decodings. 2018-06-06 17:57:15 -04:00
bunnei
1238c69eb2 Merge pull request #516 from Subv/f2i_r
GPU: Implemented the F2I_R shader instruction.
2018-06-05 22:01:29 -04:00
bunnei
7c6aaf0628 Merge pull request #521 from Subv/bra
GPU: Corrected the branch targets for the shader bra instruction.
2018-06-05 10:09:35 -04:00
Subv
1019df7ef7 GPU: Corrected the branch targets for the shader bra instruction. 2018-06-04 22:56:28 -05:00
Subv
863cfbbb85 GPU: Implemented the F2I_R shader instruction. 2018-06-04 22:06:50 -05:00
bunnei
28c0f1f0db gl_shader_decompiler: Implement SHL instruction. 2018-06-04 22:36:49 -04:00
Subv
4039d6e457 GPU: Implement the ISCADD shader instructions. 2018-06-04 20:17:41 -05:00
Subv
a98ea3fd5f GPU: Added decodings for the ISCADD instructions. 2018-06-04 20:17:39 -05:00
bunnei
016641bcf7 Merge pull request #514 from Subv/lop32i
GPU: Implemented the LOP32I instruction.
2018-06-04 20:48:15 -04:00
bunnei
8b87164536 Merge pull request #510 from Subv/isetp
GPU: Implemented the ISETP_R and ISETP_C instructions
2018-06-04 20:47:11 -04:00
bunnei
4aead7537a Merge pull request #512 from Subv/fset
GPU: Corrected the FSET and I2F instructions.
2018-06-04 19:04:20 -04:00
Subv
335acb8279 GPU: Use the bf bit in FSET to determine whether to write 0xFFFFFFFF or 1.0f. 2018-06-04 16:41:28 -05:00
Subv
2407c9fead GPU: Implemented the LOP32I instruction. 2018-06-04 13:56:31 -05:00
Subv
80a5aea785 GPU: Implemented the ISETP_R and ISETP_C shader instructions. 2018-06-04 11:12:03 -05:00
Subv
593ea0384c GPU: Partially implemented the shader BRA instruction. 2018-06-03 22:26:36 -05:00
Subv
ed1d266eba GPU: Added decoding for the BRA instruction. 2018-06-03 22:14:00 -05:00
bunnei
4a653f2dbe gl_shader_decompiler: Implement TEXS component mask. 2018-06-03 12:08:17 -04:00
bunnei
49778df6c3 Merge pull request #494 from bunnei/shader-tex
gl_shader_decompiler: Implement TEX, fixes for TEXS.
2018-06-03 12:05:38 -04:00
bunnei
c8e949b6d0 gl_shader_decompiler: Implement RRO as a register move. 2018-06-03 11:14:31 -04:00
bunnei
e297b41323 gl_shader_decompiler: Implement TEX instruction. 2018-05-31 23:36:45 -04:00
bunnei
17dae7d8a5 gl_shader_decompiler: Support multi-destination for TEXS. 2018-05-31 22:57:32 -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