Lioncash
6dfd67b016
shader/shader_ir: Make Comment() take a std::string by value
...
This allows for forming comment nodes without making unnecessary copies
of the std::string instance.
e.g. previously:
Comment(fmt::format("Base address is c[0x{:x}][0x{:x}]",
cbuf->GetIndex(), cbuf_offset));
Would result in a copy of the string being created, as CommentNode()
takes a std::string by value (a const ref passed to a value parameter
results in a copy).
Now, only one instance of the string is ever moved around. (fmt::format
returns a std::string, and since it's returned from a function by value,
this is a prvalue (which can be treated like an rvalue), so it's moved
into Comment's string parameter), we then move it into the CommentNode
constructor, which then moves the string into its member variable).
2019-05-23 03:01:55 -03:00
Lioncash
9d3cbef5ce
shader/decode/*: Add missing newline to files lacking them
...
Keeps the shader code file endings consistent.
2019-05-23 02:55:52 -03:00
Lioncash
bf42020f25
shader/decode/*: Eliminate indirect inclusions
...
Amends cases where we were using things that were indirectly being
satisfied through other headers. This way, if those headers change and
eliminate dependencies on other headers in the future, we don't have
cascading compilation errors.
2019-05-23 02:55:52 -03:00
Lioncash
d9b4b49538
shader/decode/memory: Remove left in debug pragma
2019-05-22 17:08:50 -04:00
ReinUsesLisp
68af52d525
shader/memory: Implement ST (generic memory)
2019-05-20 22:41:53 -03:00
ReinUsesLisp
71ded7da4e
shader/memory: Implement LD (generic memory)
2019-05-20 22:38:59 -03:00
ReinUsesLisp
8a83af0af0
shader: Implement S2R Tid{XYZ} and CtaId{XYZ}
2019-05-20 16:36:49 -03:00
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
Lioncash
18d2c00687
video_core/shader/decode/texture: Remove unused variable from GetTld4Code()
2019-05-09 18:49:56 -04:00
Lioncash
7af5216680
shader/decode/texture: Remove unused variable
...
This isn't used anywhere, so we can get rid of it.
2019-05-04 02:10:38 -04:00
ReinUsesLisp
5bf7324068
shader_ir/other: Implement IPA.IDX
2019-05-02 21:46:37 -03:00
ReinUsesLisp
6ed96fd359
shader_ir/memory: Assert on non-32 bits ALD.PHYS
2019-05-02 21:46:25 -03: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
bunnei
c9a6cf792f
Merge pull request #2435 from ReinUsesLisp/misc-vc
...
shader_ir: Miscellaneous fixes
2019-04-28 22:29:43 -04:00
bunnei
673cfd89c1
Merge pull request #2322 from ReinUsesLisp/wswitch
...
video_core: Silent -Wswitch warnings
2019-04-28 22:24:58 -04:00
bunnei
89bada4ac4
Merge pull request #2423 from FernandoS27/half-correct
...
Corrections on Half Float operations: HADD2 HMUL2 and HFMA2
2019-04-28 22:24:22 -04: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
ReinUsesLisp
6198b04557
shader_ir/texture: Fix sampler const buffer key shift
2019-04-26 01:09:29 -03:00
Fernando Sahmkow
b17f7da309
Corrections Half Float operations on const buffers and implement saturation.
2019-04-20 21:11:33 -04:00
bunnei
7fc67a06bb
Merge pull request #2407 from FernandoS27/f2f
...
Do some corrections in conversion shader instructions.
2019-04-20 00:42:34 -04: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
ReinUsesLisp
7a56d07632
video_core: Silent -Wswitch warnings
2019-04-18 15:54:39 -03: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
bunnei
d4b42f6bc6
Merge pull request #2315 from ReinUsesLisp/severity-decompiler
...
shader_ir/decode: Reduce the severity of common assertions
2019-04-16 22:21:19 -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
9c4449696a
shader_ir/decode: Reduce severity of unimplemented half-float FTZ
2019-04-15 21:16:09 -03:00
ReinUsesLisp
a87fe3ea63
renderer_opengl: Implement half float NaN comparisons
2019-04-15 21:13:26 -03:00
ReinUsesLisp
b6a805df3b
shader_ir: Avoid using static on heap-allocated objects
...
Using static here might be faster at runtime, but it adds a heap
allocation called before main.
2019-04-15 21:12:43 -03:00
Fernando Sahmkow
73f925a949
Do some corrections in conversion shader instructions.
...
Corrects encodings for I2F, F2F, I2I and F2I
Implements Immediate variants of all four conversion types.
Add assertions to unimplemented stuffs.
2019-04-15 19:16:27 -04: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
34b15b69df
Correct XMAD mode, psl and high_b on different encodings.
2019-04-08 13:01:17 -04:00
Fernando Sahmkow
061d68acaa
Adapt Bindless to work with AOFFI
2019-04-08 12:07:56 -04:00
Fernando Sahmkow
f5792ffeab
Move ConstBufferAccessor to Maxwell3d, correct mistakes and clang format.
2019-04-08 11:36:11 -04:00
Fernando Sahmkow
4b2d117d52
Fix TMML
2019-04-08 11:35:22 -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
2f456841b0
Implement TXQ_B
2019-04-08 11:29:52 -04:00
Fernando Sahmkow
3672ecc5c4
Implement TMML_B
2019-04-08 11:29:49 -04:00
Fernando Sahmkow
8bb9877b70
Corrections to TEX_B
2019-04-08 11:28:44 -04:00
Fernando Sahmkow
e6d2e59f07
Implement Bindless Handling on SetupTexture
2019-04-08 11:23:46 -04:00