bunnei
8ce90a4f0b
Merge pull request #1783 from ReinUsesLisp/clip-distances
...
gl_shader_decompiler: Implement clip distances
2018-11-25 22:35:30 -05:00
ReinUsesLisp
924e834b8f
gl_shader_decompiler: Implement S2R's Y_DIRECTION
2018-11-25 04:37:29 -03:00
FernandoS27
8c797464a2
Fix Texture Overlapping
2018-11-24 17:26:42 -04:00
FernandoS27
33afff1870
Implemented BRA CC conditional and FSET CC Setting
2018-11-24 13:25:54 -04:00
bunnei
b6b78203cc
Merge pull request #1769 from ReinUsesLisp/cc
...
gl_shader_decompiler: Rename cc to condition code and name internal flags
2018-11-23 23:31:04 -05:00
FernandoS27
7668ef51d6
Fix TEXS Instruction encodings
2018-11-23 22:46:50 -04:00
FernandoS27
9c2127d5eb
Fix one encoding in TEX Instruction
2018-11-23 22:46:49 -04:00
FernandoS27
487d805899
Corrected inputs indexing in TEX instruction
2018-11-23 22:46:48 -04:00
bunnei
69b3f98d3a
Merge pull request #1744 from degasus/shader_cache
...
shader_cache: Only lock covered instructions.
2018-11-23 21:09:36 -05:00
Hexagon12
3135dbc29c
Added predicate comparison LessEqualWithNan ( #1736 )
...
* Added predicate comparison LessEqualWithNan
* oops
* Clang fix
2018-11-23 08:51:32 -08:00
bunnei
c4b5319446
Merge pull request #1756 from ReinUsesLisp/fix-textures
...
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-23 08:49:37 -08:00
bunnei
d77af9f8fd
Merge pull request #1766 from FernandoS27/fix-txq
...
Properly Implemented TXQ Instruction
2018-11-23 08:48:57 -08:00
ReinUsesLisp
b3853403b7
gl_shader_decompiler: Implement clip distances
2018-11-23 02:14:43 -03:00
ReinUsesLisp
c9ac23683b
gl_shader_decompiler: Add a message for unimplemented cc generation
2018-11-22 16:12:27 -03:00
ReinUsesLisp
74eb16521f
gl_shader_decompiler: Rename internal flag strings
2018-11-21 22:31:42 -03:00
ReinUsesLisp
8a5e6fce07
gl_shader_decompiler: Rename control codes to condition codes
2018-11-21 22:31:16 -03:00
ReinUsesLisp
864cbbaf4c
gl_shader_decompiler: Fix register overwriting on texture calls
2018-11-21 21:21:19 -03:00
bunnei
61586e8794
Merge pull request #1752 from ReinUsesLisp/unimpl-decompiler
...
gl_shader_decompiler: Use UNIMPLEMENTED when applicable
2018-11-21 14:13:28 -08:00
FernandoS27
4a6a9b6622
Properly Implemented TXQ Instruction
2018-11-21 18:12:36 -04:00
ReinUsesLisp
642dfeda2a
gl_shader_decompiler: Implement BFI_IMM_R
2018-11-21 16:12:30 -03:00
ReinUsesLisp
d92afc7493
gl_shader_decompiler: Implement R2P_IMM
2018-11-21 04:56:00 -03:00
ReinUsesLisp
423a3ed2c8
gl_shader_decompiler: Remove UNREACHABLE when setting RZ
2018-11-20 22:23:10 -03:00
ReinUsesLisp
bb893188eb
gl_shader_decompiler: Use UNIMPLEMENTED instead of LOG+UNREACHABLE when applicable
2018-11-20 22:00:13 -03:00
Markus Wick
cfbae58b2b
shader_cache: Only lock covered instructions.
2018-11-20 21:58:31 +01:00
bunnei
eaee73f95d
Merge pull request #1669 from ReinUsesLisp/fixup-gs
...
gl_shader_decompiler: Guard out of bound geometry shader input reads
2018-11-11 08:28:20 -08:00
ReinUsesLisp
8d4bb10d44
gl_shader_decompiler: Guard out of bound geometry shader input reads
...
Geometry shaders follow a pattern that results in out of bound reads.
This pattern is:
- VSETP to predicate
- Use that predicate to conditionally set a register a big number
- Use the register to access geometry shaders
At the time of writing this commit I don't know what's the intent of
this number. Some drivers argue about these out of bound reads. To avoid
this issue, input reads are guarded limiting reads to the highest
posible vertex input of the current topology (e.g. points to 1 and
triangles to 3).
2018-11-10 03:10:50 -03:00
FernandoS27
d347623d6f
Correct issue where texturelod could not be applied to 2darrayshadow
2018-11-07 21:48:45 -04:00
FernandoS27
ad2f47b579
Implement 3 coordinate array in TEXS instruction
2018-11-07 17:04:30 -04:00
bunnei
9afcbba8e4
Merge pull request #1527 from FernandoS27/assert-flow
...
Assert Control Flow Instructions using Control Codes
2018-11-01 00:34:56 -04:00
bunnei
86e70cf302
Merge pull request #1528 from FernandoS27/assert-control-codes
...
Assert Control Codes Generation on Shader Instructions
2018-10-31 22:34:18 -04:00
FernandoS27
5bb80ab009
Assert Control Codes Generation
2018-10-30 13:37:55 -04:00
Frederic L
7a5eda5914
global: Use std::optional instead of boost::optional ( #1578 )
...
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
2018-10-30 00:03:25 -04:00
FernandoS27
3aa8b644a9
Assert Control Flow Instructions using Control Codes
2018-10-28 19:16:41 -04:00
FernandoS27
e5ca097e32
Refactor precise usage and add FMNMX, MUFU, FMUL32 and FADD332
2018-10-28 11:38:40 -04:00
FernandoS27
d8d557df86
Improved Shader accuracy on Vertex and Geometry Shaders with FFMA, FMUL and FADD
2018-10-27 20:09:26 -04:00
FernandoS27
ca142f35c0
Implemented LD_L and ST_L
2018-10-24 17:51:53 -04:00
FernandoS27
abefe29398
Implement Shader Local Memory
2018-10-24 17:50:43 -04:00
FernandoS27
ed8ca608a0
Implement PointSize
2018-10-23 15:08:00 -04:00
bunnei
5716496239
Merge pull request #1519 from ReinUsesLisp/vsetp
...
gl_shader_decompiler: Implement VSETP
2018-10-23 10:22:37 -04:00
bunnei
75d807788c
Merge pull request #1470 from FernandoS27/alpha_testing
...
Implemented Alpha Test using Shader Emulation
2018-10-23 10:21:30 -04:00
ReinUsesLisp
7d6dca0d0a
gl_shader_decompiler: Implement VSETP
2018-10-23 01:07:20 -03:00
ReinUsesLisp
5dfb43531c
gl_shader_decompiler: Abstract VMAD into a video subset
2018-10-23 01:07:20 -03:00
bunnei
848a49112a
Merge pull request #1512 from ReinUsesLisp/brk
...
gl_shader_decompiler: Implement PBK and BRK
2018-10-23 00:01:38 -04:00
bunnei
496d155d7b
Merge pull request #1550 from FernandoS27/fmul32
...
Added Saturation to FMUL32I
2018-10-22 23:58:09 -04:00
bunnei
4cccfb4190
Merge pull request #1537 from lioncash/shader
...
gl_shader_decompiler: Minor changes
2018-10-22 22:49:49 -04:00
FernandoS27
259da93567
Added Saturation to FMUL32I
2018-10-22 20:22:15 -04:00
FernandoS27
8e1239fbc5
Assert that multiple render targets are not set while alpha testing
2018-10-22 15:35:45 -04:00
FernandoS27
59a004f915
Use standard UBO and fix/stylize the code
2018-10-22 15:07:33 -04:00
FernandoS27
bcb5b924fd
Remove SyncAlphaTest and clang format
2018-10-22 15:07:31 -04:00
FernandoS27
7b39107e3a
Added Alpha Func
2018-10-22 15:07:30 -04:00
FernandoS27
aa620c14af
Implemented Alpha Testing
2018-10-22 15:07:30 -04:00
FernandoS27
5c5b4e8e7d
Fixed FSETP and FSET
2018-10-22 11:31:17 -04:00
Lioncash
8a86c8d48b
gl_shader_decompiler: Allow std::move to function in SetPredicate
...
If the variable being moved is const, then std::move will always perform
a copy (since it can't actually move the data).
2018-10-20 14:25:15 -04:00
Lioncash
381baf783d
gl_shader_decompiler: Get rid of variable shadowing warnings
...
A variable with the same name was previously declared in an outer scope.
2018-10-20 14:22:37 -04:00
Lioncash
61ef8af1e2
gl_shader_decompiler: Fix a few comment typos
2018-10-20 14:19:28 -04:00
ReinUsesLisp
3ec795d95e
gl_shader_decompiler: Move position varying declaration back to gl_shader_gen
...
The intention of declaring them in gl_shader_decompiler was to be able
to use blocks to implement geometry shaders. But that wasn't needed in
the end and it caused issues when both vertex stages were being used,
resulting in a redeclaration of "position".
2018-10-20 02:19:30 -03:00
bunnei
b1f8bff7db
Merge pull request #1501 from ReinUsesLisp/half-float
...
gl_shader_decompiler: Implement H* instructions
2018-10-19 23:47:19 -04:00
bunnei
6acd8d166a
Merge pull request #1505 from FernandoS27/tex-3d
...
Implemented 3D Textures
2018-10-18 11:50:42 -04:00
ReinUsesLisp
41fb25349a
gl_shader_decompiler: Implement PBK and BRK
2018-10-17 21:30:45 -03:00
bunnei
77e2d68df7
Merge pull request #1489 from FernandoS27/fix-tlds
...
shader_decompiler: Fix TLDS
2018-10-17 18:58:38 -04:00
FernandoS27
fd9e2d0073
Implement 3D Textures
2018-10-17 18:52:08 -04:00
bunnei
86dcf2942b
Merge pull request #1496 from FernandoS27/tex-array
...
Implement Arrays on Tex Instruction
2018-10-17 18:30:44 -04:00
ReinUsesLisp
b461342a84
gl_shader_decompiler: Fixup style inconsistencies
2018-10-15 15:35:26 -03:00
ReinUsesLisp
6312eec5ef
gl_shader_decompiler: Implement HSET2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
4fc8ad67bf
gl_shader_decompiler: Implement HSETP2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
3d65aa4caf
gl_shader_decompiler: Implement HFMA2 instructions
2018-10-15 02:55:51 -03:00
ReinUsesLisp
d93cdc2750
gl_shader_decompiler: Implement HADD2_IMM and HMUL2_IMM
2018-10-15 02:07:16 -03:00
ReinUsesLisp
d46e2a6e7a
gl_shader_decompiler: Implement non-immediate HADD2 and HMUL2 instructions
2018-10-15 02:04:31 -03:00
ReinUsesLisp
08d751d882
gl_shader_decompiler: Setup base for half float unpacking and setting
2018-10-15 01:58:30 -03:00
FernandoS27
1d6559fbd3
Implement Arrays on Tex Instruction
2018-10-14 13:31:02 -04:00
FernandoS27
d880b77698
Fix TLDS
2018-10-13 22:14:25 -04:00
ReinUsesLisp
17290a4416
gl_shader_decompiler: Implement VMAD
2018-10-11 04:15:10 -03:00
bunnei
ee1b204749
Merge pull request #1425 from ReinUsesLisp/geometry-shaders
...
gl_shader_decompiler: Implement geometry shaders
2018-10-10 11:51:29 -04:00
Lioncash
6e27c5d4d1
gl_shader_decompiler: Remove unused variables in TMML's implementation
...
Given "y" isn't always used, but "x" is, we can rearrange this to avoid
unused variable warnings by changing the names of op_a and op_b
2018-10-09 15:44:37 -04:00
ReinUsesLisp
7c2d6ef210
gl_shader_decompiler: Move position varying location from 15 to 0 and apply an offset
2018-10-07 17:36:00 -03:00
ReinUsesLisp
ee4d538850
gl_shader_decompiler: Implement geometry shaders
2018-10-07 17:36:00 -03:00
FernandoS27
752faff2bc
Implemented Depth Compare and Shadow Samplers
2018-10-06 11:27:54 -04:00
FernandoS27
f664437ae8
Implemented Texture Processing Modes in TEXS and TLDS
2018-10-03 08:41:12 -04:00
bunnei
bc679c9b8c
Merge pull request #1330 from raven02/tlds
...
TLDS: Add 1D sampler
2018-09-30 21:53:38 -04:00
bunnei
15cc729ebd
gl_shader_decompiler: TEXS: Implement TextureType::TextureCube.
2018-09-30 14:31:58 -04:00
raven02
b92b4bbeaf
Fix trailing whitespace
2018-09-30 23:51:10 +08:00
raven02
c8f9bbbf85
Merge branch 'master' into tlds
2018-09-19 19:53:11 +08:00
bunnei
bd88d4108f
Merge pull request #1342 from lioncash/trunc
...
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
2018-09-18 22:11:48 -04:00
bunnei
0284cbe7ec
Merge pull request #1279 from FernandoS27/csetp
...
shader_decompiler: Implemented (Partialy) Control Codes and CSETP
2018-09-18 22:10:48 -04:00
bunnei
6415f81bb8
Merge pull request #1299 from FernandoS27/texture-sanatize
...
shader_decompiler: Asserts for Texture Instructions
2018-09-18 22:10:09 -04:00
FernandoS27
567a5524b9
Implemented Internal Flags
2018-09-17 20:50:54 -04:00
Lioncash
9a8dbba1e5
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
...
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-17 19:25:55 -04:00
bunnei
fafc80d72e
Merge pull request #1290 from FernandoS27/shader-header
...
Implemented (Partialy) Shader Header
2018-09-17 18:53:14 -04:00
FernandoS27
e4bb759c4b
Implemented I2I.CC on the NEU control code, used by SMO
2018-09-17 17:42:46 -04:00
FernandoS27
e2ac8fb36d
Implemented CSETP
2018-09-17 17:42:44 -04:00
FernandoS27
aac77bbd18
Implemented Control Codes
2018-09-17 17:42:43 -04:00
FernandoS27
31e52113b3
Added asserts for texture misc modes to texture instructions
2018-09-17 12:56:36 -04:00
bunnei
27fe8159c5
Merge pull request #1316 from lioncash/shadow
...
gl_shader_decompiler: Get rid of variable shadowing within LEA instructions
2018-09-17 12:27:35 -04:00
raven02
b91f7d5d67
Add 1D sampler for TLDS - TexelFetch (Mario Rabbids)
2018-09-17 23:25:18 +08:00
bunnei
076add4ccd
Merge pull request #1326 from FearlessTobi/port-4182
...
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-17 09:51:47 -04:00
Subv
c878a819d7
Shaders: Implemented multiple-word loads and stores to and from attribute memory.
...
This seems to be an optimization performed by nouveau.
2018-09-15 11:21:21 -05:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
Lioncash
ae128f0375
gl_shader_decompiler: Get rid of variable shadowing within LEA instructions
...
These variables are already defined within an outer scope.
2018-09-13 21:53:23 -04:00
bunnei
cc50857460
Merge pull request #1263 from FernandoS27/tex-mode
...
shader_decompiler: Implemented (Partially) Texture Processing Modes
2018-09-12 16:03:34 -04:00
FernandoS27
a99d9db32f
Implemented Texture Processing Modes
2018-09-12 12:28:22 -04:00
FernandoS27
5c676dc884
Implemented LEA and PSET
2018-09-11 12:50:52 -04:00
FernandoS27
2b48cfd44b
Replace old FragmentHeader for the new Header
2018-09-11 12:48:19 -04:00
FernandoS27
e926757c8f
Implemented (Partialy) Shader Header
2018-09-11 12:34:27 -04:00
David Marcec
4c3bd33be2
Fixed renderdoc input/output textures not working due to render targets
2018-09-11 13:31:20 +10:00
bunnei
e58855c7a4
Merge pull request #1268 from FernandoS27/tmml
...
shader_decompiler: Implemented TMML
2018-09-09 21:39:39 -04:00
FernandoS27
00131e752d
Implemented TMML
2018-09-09 20:46:31 -04:00
bunnei
fcf81147e7
Merge pull request #1280 from zero334/improvements
...
video_core: fixed arithmetic overflow warnings & improved code style
2018-09-09 19:51:46 -04:00
FernandoS27
073a21ac0b
Implemented TXQ dimension query type, used by SMO.
2018-09-09 11:59:01 -04:00
Patrick Elsässer
64e45b04e0
video_core: fixed arithmetic overflow warnings & improved code style
...
- 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-09 17:51:43 +02:00
bunnei
0731383124
gl_shader_decompiler: Partially implement several non-2D texture types (Subv).
2018-09-08 02:53:38 -04:00
bunnei
948f6c0738
gl_shader_decompiler: Implement saturate mode for IPA.
2018-09-06 17:40:03 -04:00
FernandoS27
e63b229f4a
Implemented IPA Properly
2018-09-05 20:15:47 -04:00
Lioncash
18a89931a9
gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
...
Using the getter function intended for external code here makes an
unnecessary copy of the already-accessible used_shaders vector.
2018-09-02 13:10:11 -04:00
bunnei
89be49d2f3
Merge pull request #1215 from ogniK5377/texs-nodep-assert
...
Added assert for TEXS nodep
2018-09-02 10:48:27 -04:00
bunnei
177c45e97d
Merge pull request #1214 from ogniK5377/ipa-assert
...
Added better asserts to IPA, Renamed IPA modes to match mesa
2018-09-02 10:44:43 -04:00
bunnei
9c206fe94d
Merge pull request #1216 from ogniK5377/ffma-assert
...
Added FFMA asserts and missing fields
2018-09-02 10:44:13 -04:00
David Marcec
60754b4728
Removed saturate assert
...
Unneeded as we already implement it
2018-09-01 19:33:32 +10:00
David Marcec
2edab4e840
Removed saturate assert
...
Saturate already implemented
2018-09-01 19:29:20 +10:00
David Marcec
2bc6abb9a1
Changed tab5980_0 default from 0 -> 1
2018-09-01 19:15:03 +10:00
David Marcec
6f8ed9508d
Added FMUL asserts
2018-09-01 19:05:10 +10:00
David Marcec
b89fc407d7
Added FFMA asserts
2018-09-01 18:45:14 +10:00
David Marcec
948bc87a59
Added assert for TEXS nodep
2018-09-01 17:00:01 +10:00
David Marcec
ad3dca7e62
Added better asserts to IPA, Renamed IPA modes to match mesa
...
IpaMode is changed to IpaInterpMode
IpaMode is suppose to be 2 bits not 3
Added IpaSampleMode
Added Saturate
Renamed modes based on
d27c791891/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp (L2530)
2018-09-01 16:34:27 +10:00
Hexagon12
d626bc8c62
Added predicate comparison GreaterEqualWithNan
2018-08-31 10:40:18 +03:00
Laku
915ab81ec2
gl_shader_decompiler: Implement POPC ( #1203 )
...
* Implement POPC
* implement invert
2018-08-30 21:32:58 -04:00
bunnei
d6accf96ff
Merge pull request #1200 from bunnei/improve-ipa
...
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-30 10:31:26 -04:00
tech4me
a6dd577d02
Shaders: Implemented IADD3
2018-08-29 13:44:41 -04:00
bunnei
b1ccd88434
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
2018-08-29 00:37:29 -04:00
bunnei
232b0d9d2a
Merge pull request #1156 from Lakumakkara/lop3
...
gl_shader_decompiler: Implement LOP3
2018-08-23 02:16:49 -04:00
Laku
b2ca8089ce
more fixes
2018-08-23 00:01:40 +03:00
Laku
e70a3c5a5d
fixes
2018-08-22 21:33:32 +03:00
Lioncash
dd35b4b18a
renderer_opengl: Namespace OpenGL code
...
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-22 06:14:47 -04:00
Laku
4877e6c2f6
remove debug logging
2018-08-22 11:45:28 +03:00
Laku
8e8326595f
implement lop3
2018-08-22 10:09:44 +03:00
bunnei
d63b1d21f1
Revert "Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions."
...
- This reverts commit 3ef4b3d4b4
.
- This commit had broken a lot of games. We really should do a full implementation of this in one change.
2018-08-21 20:07:40 -04:00
Subv
e3bddf8137
Shaders: Implement depth writing in fragment shaders.
...
We'll write <last color output reg + 2> to gl_FragDepth.
2018-08-20 21:57:56 -05:00
bunnei
e33452f7e8
Merge pull request #1131 from bunnei/impl-tex3d-texcube
...
gl_shader_decompiler: Implement TextureCube/Texture3D for TEX/TEXS.
2018-08-20 22:15:18 -04:00
bunnei
5aaee2ff8d
Merge pull request #1106 from Subv/multiple_rendertargets
...
Shaders: Write all the enabled color outputs when a fragment shader exits.
2018-08-20 21:56:06 -04:00
bunnei
16db8b9d9f
gl_shader_decompiler: Implement Texture3D for TEXS.
2018-08-20 21:53:18 -04:00
bunnei
948002635f
gl_shader_decompiler: Implement TextureCube for TEX.
2018-08-20 21:53:00 -04:00
Subv
eac3cf301c
Shaders: Fixed the coords in TEX with Texture2D.
...
The X and Y coordinates should be in gpr8 and gpr8+1, respectively.
This fixes the cutscene rendering in Sonic Mania.
2018-08-20 20:45:46 -05:00
Subv
fc5b489b0f
Shaders: Log and crash when using an unimplemented texture type in a texture sampling instruction.
2018-08-20 20:44:56 -05:00
Subv
7784ce1854
Shaders: Write all the enabled color outputs when a fragment shader exits.
...
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-20 17:31:25 -05:00
bunnei
296e57fa0e
Merge pull request #1115 from Subv/texs_mask
...
Shaders/TEXS: Write to the correct output register when swizzling.
2018-08-20 14:31:33 -04:00
bunnei
b20ed93884
Merge pull request #1112 from Subv/sampler_types
...
Shaders: Use the correct shader type when sampling textures.
2018-08-20 14:30:45 -04:00
Subv
6cf719a4ab
Shaders/TEXS: Fixed the component mask in the TEXS instruction.
...
Previously we could end up with a TEXS that didn't write any outputs, this was wrong.
2018-08-19 17:09:40 -05:00
bunnei
51ddb130c5
Merge pull request #1089 from Subv/neg_bits
...
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
2018-08-19 17:01:48 -04:00
bunnei
9b17486be6
Merge pull request #1105 from Subv/convert_neg
...
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
2018-08-19 17:01:20 -04:00
bunnei
85da529f15
Merge pull request #1101 from Subv/ssy_stack
...
Shaders: Implemented a stack for the SSY/SYNC instructions.
2018-08-19 13:58:45 -04:00
Subv
7fb406c3fc
Shader: Implemented the TLD4 and TLD4S opcodes using GLSL's textureGather.
...
It is unknown how TLD4S determines the sampler type, more research is needed.
2018-08-19 12:57:58 -05:00
Subv
3ef4b3d4b4
Shader: Use the right sampler type in the TEX, TEXS and TLDS instructions.
...
Different sampler types have their parameters in different registers.
2018-08-19 12:57:54 -05:00
bunnei
9baf5de90c
Merge pull request #1108 from Subv/front_facing
...
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 13:21:14 -04:00
Subv
731701a2d2
Shaders: Implemented the gl_FrontFacing input attribute (attr 63).
2018-08-19 00:14:34 -05:00
Subv
9b1c49a9cf
Shader: Remove an unneeded assert, the negate bit is implemented for conversion instructions.
2018-08-18 14:48:05 -05:00
Subv
8335b2f115
Shader: Implemented the predicate and mode arguments of LOP.
...
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-18 14:36:37 -05:00
Subv
ff358d97e8
Shaders: Implemented a stack for the SSY/SYNC instructions.
...
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-18 10:48:12 -05:00
Subv
2e95ba2e9c
Shaders: Corrected the 'abs' and 'neg' bit usage in the float arithmetic instructions.
...
We should definitely audit our shader generator for more errors like this.
2018-08-18 10:22:42 -05:00
David Marcec
63dff47e22
Added predcondition GreaterThanWithNan
2018-08-18 17:49:59 +10:00
bunnei
727136a9c9
Merge pull request #1019 from Subv/vertex_divisor
...
Rasterizer: Manually implemented instanced rendering.
2018-08-17 00:07:06 -04:00
Subv
91140f6c0a
Shader/Conversion: Implemented the negate bit in F2F and I2I instructions.
2018-08-15 09:27:43 -05:00
Subv
38592a3b5e
Shader/I2F: Implemented the negate I2F_C instruction variant.
2018-08-15 09:25:02 -05:00
Subv
40ecdda19e
Shader/F2I: Implemented the negate bit in the I2F instruction
2018-08-15 09:18:55 -05:00
Subv
5ef447cc0e
Shader/F2I: Implemented the F2I_C instruction variant.
2018-08-15 09:16:35 -05:00
Subv
11c221cc62
Shader/F2I: Implemented the negate bit in the F2I instruction.
2018-08-15 09:15:55 -05:00
Subv
c5284efd4f
Rasterizer: Implemented instanced rendering.
...
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-14 22:25:07 -05:00
bunnei
5e66a24423
gl_shader_decompiler: Several fixes for indirect constant buffer loads.
2018-08-14 20:47:50 -04:00
bunnei
534abf9d97
gl_shader_decompiler: Implement XMAD instruction.
2018-08-12 18:30:24 -04:00
bunnei
639ebb39f6
gl_shader_decompiler: Fix SetOutputAttributeToRegister empty check.
2018-08-12 02:22:42 -04:00
bunnei
c68aa65226
gl_shader_decompiler: Fix GLSL compiler error with KIL instruction.
2018-08-12 00:06:48 -04:00
bunnei
403dfd68fc
Merge pull request #1010 from bunnei/unk-vert-attrib-shader
...
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:56:28 -04:00
bunnei
0b668d5ff3
gl_shader_decompiler: Improve handling of unknown input/output attributes.
2018-08-11 19:26:45 -04:00
Subv
c1ad973881
GPU/Shader: Don't predicate instructions that don't have a predicate field (SSY).
2018-08-11 16:00:14 -05:00
Subv
305a05f820
GPU/Shaders: Implemented SSY and SYNC as a way to modify control flow during shader execution.
...
SSY sets the target label to jump to when the SYNC instruction is executed.
2018-08-11 15:55:11 -05:00
Lioncash
6ef027b958
gl_shader_decompiler: Reserve element memory beforehand in BuildRegisterList()
...
Avoids potentially perfoming multiple reallocations when we know the
total amount of memory we need beforehand.
2018-08-09 17:29:11 -04:00
bunnei
4283019aa0
gl_shader_decompiler: Declare predicates on use.
...
- Used by Super Mario Odyssey (when going in game).
2018-08-08 23:26:31 -04:00
bunnei
25ba4d1b68
Merge pull request #982 from bunnei/stub-unk-63
...
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 22:28:18 -04:00
bunnei
7f0d0a93f7
gl_shader_decompiler: Stub input attribute Unknown_63.
2018-08-08 02:35:59 -04:00
bunnei
e542356d0c
gl_shader_decompiler: Let OpenGL interpret floats.
...
- Accuracy is lost in translation to string, e.g. with NaN.
- Needed for Super Mario Odyssey.
2018-08-08 01:45:23 -04:00
bunnei
fd715e54a1
gl_shader_decompiler: Fix TEXS mask and dest.
2018-08-05 01:47:09 -04:00
Lioncash
b45e5c2399
gl_shader_decompiler: Remove unused variable in GenerateDeclarations()
...
This variable was being incremented, but we were never actually using
it.
2018-08-03 12:18:31 -04:00
bunnei
92304181d5
Merge pull request #792 from lioncash/retval
...
gl_shader_decompiler: Correct return value of WriteTexsInstruction()
2018-07-23 20:06:48 -07:00
bunnei
47ac369180
Merge pull request #790 from bunnei/shader-print-instr
...
gl_shader_decompiler: Print instruction value in shader comments.
2018-07-23 19:48:47 -07:00
bunnei
c2b4ff5d48
Merge pull request #788 from bunnei/shader-check-zero
...
gl_shader_decompiler: Check if SetRegister result is ZeroIndex.
2018-07-23 19:44:05 -07:00
Lioncash
33e2033af5
gl_shader_decompiler: Correct return value of WriteTexsInstruction()
...
This should be returning void, not a std::string
2018-07-23 22:31:58 -04:00
bunnei
9505283989
gl_shader_decompiler: Implement shader instruction TLDS.
2018-07-23 22:02:51 -04:00
bunnei
c4322ce87e
gl_shader_decompiler: Print instruction value in shader comments.
2018-07-23 21:11:05 -04:00
bunnei
81aa02424b
gl_shader_decompiler: Check if SetRegister result is ZeroIndex.
2018-07-23 21:08:40 -04:00
Lioncash
3b88ce3dcb
gl_shader_decompiler: Simplify GetCommonDeclarations()
2018-07-23 17:11:18 -04:00
Lioncash
0797657bc0
gl_shader_decompiler: Remove redundant Subroutine construction in AddSubroutine()
...
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-22 03:30:35 -04:00
bunnei
af4bde8cd1
Merge pull request #767 from bunnei/shader-cleanup
...
gl_shader_decompiler: Remove unused state tracking and minor cleanup.
2018-07-22 00:03:17 -07:00
bunnei
f5a2944ab6
gl_shader_decompiler: Remove unused state tracking and minor cleanup.
2018-07-22 01:00:44 -04:00
bunnei
c43eaa94f3
gl_shader_decompiler: Implement SEL instruction.
2018-07-22 00:37:12 -04:00
Lioncash
bb960c8cb4
video_core: Use nested namespaces where applicable
...
Compresses a few namespace specifiers to be more compact.
2018-07-20 18:23:54 -04:00
bunnei
204d707ce7
Merge pull request #731 from lioncash/shadow
...
gl_shader_decompiler: Eliminate variable and declaration shadowing
2018-07-20 09:13:36 -07:00
Lioncash
f26866ff6a
gl_shader_decompiler: Eliminate variable and declaration shadowing
...
Ensures that no identifiers are being hidden, which also reduces
compiler warnings.
2018-07-19 20:32:49 -04:00
Lioncash
c2121cb059
gl_shader_decompiler: Remove unnecessary const from return values
...
This adds nothing from a behavioral point of view, and can inhibit the
move constructor/RVO
2018-07-19 20:11:04 -04:00
bunnei
c4015cd93a
gl_shader_gen: Implement dual vertex shader mode.
...
- When VertexA shader stage is enabled, we combine with VertexB program to make a single Vertex Shader stage.
2018-07-12 22:25:36 -04:00
bunnei
64b5e5d5d9
Merge pull request #655 from bunnei/pred-lt-nan
...
gl_shader_decompiler: Implement PredCondition::LessThanWithNan.
2018-07-12 18:59:15 -07:00
bunnei
49c0c081c4
gl_shader_decompiler: Implement PredCondition::LessThanWithNan.
2018-07-12 20:04:35 -04:00
bunnei
4757ffdcce
gl_shader_decompiler: Use FlowCondition field in EXIT instruction.
2018-07-12 20:00:37 -04:00