bunnei
5127e54674
Merge pull request #2441 from ReinUsesLisp/al2p
...
shader: Implement AL2P and ALD.PHYS
2019-05-19 14:02:58 -04:00
Lioncash
5ffa4c6a82
shader/shader_ir: Remove unnecessary inline specifiers
...
constexpr internally links by default, so the inline specifier is
unnecessary.
2019-05-19 08:23:15 -04:00
Lioncash
b1c14e2810
shader/shader_ir: Simplify constructors for OperationNode
...
Many of these constructors don't even need to be templated. The only
ones that need to be templated are the ones that actually make use of
the parameter pack.
Even then, since std::vector accepts an initializer list, we can supply
the parameter pack directly to it instead of creating our own copy of
the list, then copying it again into the std::vector.
2019-05-19 08:23:14 -04:00
Lioncash
62c55e0086
shader/shader_ir: Remove unnecessary template parameter packs from Operation() overloads where applicable
...
These overloads don't actually make use of the parameter pack, so they
can be turned into regular non-template function overloads.
2019-05-19 08:23:14 -04:00
Lioncash
603d9a632a
shader/shader_ir: Mark tracking functions as const member functions
...
These don't actually modify instance state, so they can be marked as
const member functions
2019-05-19 08:23:09 -04:00
Lioncash
c410a37168
shader/shader_ir: Place implementations of constructor and destructor in cpp file
...
Given the class contains quite a lot of non-trivial types, place the
constructor and destructor within the cpp file to avoid inlining
construction and destruction code everywhere the class is used.
2019-05-19 04:02:02 -04:00
ReinUsesLisp
d6193e2e36
shader: Add physical attributes commentaries
2019-05-02 21:46:25 -03:00
ReinUsesLisp
7680b96e1a
gl_shader_decompiler: Implement GLSL physical attributes
2019-05-02 21:46:25 -03:00
ReinUsesLisp
f96020b2ae
shader_ir/memory: Implement physical input attributes
2019-05-02 21:46:25 -03:00
ReinUsesLisp
f6194ce3fe
shader: Remove unused AbufNode Ipa mode
2019-05-02 21:46:25 -03:00
ReinUsesLisp
d786245490
shader_ir/memory: Emit AL2P IR
2019-05-02 21:46:25 -03:00
ReinUsesLisp
5ea871b373
shader_ir: Move Sampler index entry in operand< to sort declarations
2019-04-26 01:13:05 -03:00
ReinUsesLisp
cd9e8ee0eb
shader_ir: Add missing entry to Sampler operand< comparison
2019-04-26 01:11:24 -03:00
bunnei
6c1418fc8a
Merge pull request #2409 from ReinUsesLisp/half-floats
...
shader_ir/decode: Miscellaneous fixes to half-float decompilation
2019-04-19 21:31:52 -04:00
bunnei
c1c43bde80
Merge pull request #2348 from FernandoS27/guest-bindless
...
Implement Bindless Textures on Shader Decompiler and GL backend
2019-04-17 20:59:49 -04:00
ReinUsesLisp
6ea1afc2bc
shader_ir/decode: Fix half float pre-operations and remove MetaHalfArithmetic
...
Operations done before the main half float operation (like HAdd) were
managing a packed value instead of the unpacked one. Adding an unpacked
operation allows us to drop the per-operand MetaHalfArithmetic entry,
simplifying the code overall.
2019-04-15 21:16:10 -03:00
ReinUsesLisp
6d47914b88
shader_ir/decode: Implement half float saturation
2019-04-15 21:16:10 -03:00
ReinUsesLisp
a87fe3ea63
renderer_opengl: Implement half float NaN comparisons
2019-04-15 21:13:26 -03:00
ReinUsesLisp
79e7fb6d6f
shader_ir: Implement STG, keep track of global memory usage and flush
2019-04-14 00:25:32 -03:00
Fernando Sahmkow
f5792ffeab
Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.
2019-04-08 11:36:11 -04:00
Fernando Sahmkow
5ce4140257
Refactor GetTextureCode and GetTexCode to use an optional instead of optional parameters
2019-04-08 11:35:18 -04:00
Fernando Sahmkow
e6d2e59f07
Implement Bindless Handling on SetupTexture
2019-04-08 11:23:46 -04:00
Fernando Sahmkow
dea7db19cf
Unify both sampler types.
2019-04-08 11:23:45 -04:00
Fernando Sahmkow
ee9b2e3cdc
Implement Bindless Samplers and TEX_B in the IR.
2019-04-08 11:23:42 -04:00
ReinUsesLisp
0e13686917
shader_ir/decode: Implement AOFFI for TEX and TLD4
2019-03-30 02:53:29 -03:00
ReinUsesLisp
e37debc7be
shader_ir: Implement immediate register tracking
2019-03-30 02:53:16 -03:00
ReinUsesLisp
3b01587ca4
shader/decode: Remove extras from MetaTexture
2019-02-26 00:11:30 -03:00
ReinUsesLisp
8a7efd22ec
shader/decode: Split memory and texture instructions decoding
2019-02-26 00:11:30 -03:00
ReinUsesLisp
9fe3f3a100
shader_ir: Remove F4 prefix to texture operations
...
This was originally included because texture operations returned a vec4.
These operations now return a single float and the F4 prefix doesn't
mean anything.
2019-02-07 17:36:46 -03:00
ReinUsesLisp
31305cad93
shader_ir: Clean texture management code
...
Previous code relied on GLSL parameter order (something that's always
ill-formed on an IR design). This approach passes spatial coordiantes
through operation nodes and array and depth compare values in the the
texture metadata. It still contains an "extra" vector containing generic
nodes for bias and component index (for example) which is still a bit
ill-formed but it should be better than the previous approach.
2019-02-07 00:46:13 -03:00
bunnei
6f3f5f5d99
Merge pull request #2083 from ReinUsesLisp/shader-ir-cbuf-tracking
...
shader/track: Add a more permissive global memory tracking
2019-02-06 21:56:14 -05:00
ReinUsesLisp
d83818d30a
gl_shader_disk_cache: Save GLSL and entries into the precompiled file
2019-02-06 22:23:39 -03:00
ReinUsesLisp
92c948999b
shader_ir: Rename BasicBlock to NodeBlock
...
It's not always used as a basic block. Rename it for consistency.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
e3c0f29a4d
shader_ir: Pass decoded nodes as a whole instead of per basic blocks
...
Some games call LDG at the top of a basic block, making the tracking
heuristic to fail. This commit lets the heuristic the decoded nodes as a
whole instead of per basic blocks.
This may lead to some false positives but allows it the heuristic to
track cases it previously couldn't.
2019-02-03 17:21:20 -03:00
ReinUsesLisp
12fbe5dcf8
shader_ir: Unify constant buffer offset values
...
Constant buffer values on the shader IR were using different offsets if
the access direct or indirect. cbuf34 has a non-multiplied offset while
cbuf36 does. On shader decoding this commit multiplies it by four on
cbuf34 queries.
2019-01-30 02:45:50 -03:00
ReinUsesLisp
d516c50fe2
shader_decode: Implement LDG and basic cbuf tracking
2019-01-30 00:00:15 -03:00
Lioncash
4addab6160
shader/shader_ir: Amend three comment typos
...
Given we're in the area, these are three trivial typos that can be
corrected.
2019-01-28 07:52:04 -05:00
Lioncash
a7de39a6ba
shader/shader_ir: Amend constructor initializer ordering for AbufNode
...
Orders the class members in the same order that they would actually be
initialized in. Gets rid of two compiler warnings.
2019-01-28 07:50:34 -05:00
ReinUsesLisp
1be12d5819
shader_ir: Pass to decoder functions basic block's code
2019-01-15 17:54:53 -03:00
ReinUsesLisp
719c83a4c2
shader_decode: Improve zero flag implementation
2019-01-15 17:54:53 -03:00
ReinUsesLisp
c75f5c634a
shader_ir: Remove composite primitives and use temporals instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
92610e9705
shader_decode: Use proper primitive names
2019-01-15 17:54:53 -03:00
ReinUsesLisp
44fce20a01
shader_decode: Use BitfieldExtract instead of shift + and
2019-01-15 17:54:53 -03:00
ReinUsesLisp
26d519c0f6
shader_ir: Remove Ipa primitive
2019-01-15 17:54:53 -03:00
ReinUsesLisp
8df3fb8b1e
shader_ir: Remove RZ and use Register::ZeroIndex instead
2019-01-15 17:54:53 -03:00
ReinUsesLisp
35724f3435
shader_decode: Implement TEXS.F16
2019-01-15 17:54:53 -03:00
ReinUsesLisp
0b1a2a74b6
video_core: Implement IR based geometry shaders
2019-01-15 17:54:53 -03:00
ReinUsesLisp
095b8f822b
shader_decode: Implement VMAD and VSETP
2019-01-15 17:54:53 -03:00
ReinUsesLisp
a71ce91f9b
shader_decode: Implement HSET2
2019-01-15 17:54:53 -03:00
ReinUsesLisp
5896358e4a
shader_decode: Rework HSETP2
2019-01-15 17:54:53 -03:00