Commit Graph

166 Commits

Author SHA1 Message Date
ReinUsesLisp
7f13104c17 shader: Support out of bound local memory reads and immediate writes
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).

Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
2021-07-22 21:51:41 -04:00
ameerj
fc7bed21b5 shader: Implement ISETP.X 2021-07-22 21:51:40 -04:00
lat9nq
49946cf780 shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable

And some other errors
2021-07-22 21:51:40 -04:00
ameerj
b9069c7891 shader: Account for 33-bit IADD3 scenario 2021-07-22 21:51:40 -04:00
ReinUsesLisp
b21bf79bd2 shader: Only apply shift on register mode for IADD3 2021-07-22 21:51:39 -04:00
ameerj
a7536825df shader_recompiler: Fix IADD3 input partitioning 2021-07-22 21:51:39 -04:00
ReinUsesLisp
61cd7dd301 shader: Add logging 2021-07-22 21:51:35 -04:00
ReinUsesLisp
487057b8d2 shader: Comment why the array component is not read in TMML 2021-07-22 21:51:35 -04:00
ameerj
3c125d4134 tmml: Remove index component from coords vec
The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
ec9a78885e shader: Add 2D and 3D variants to SUATOM and SURED
Used by Claybook.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
4f8b68fb04 shader: Avoid CPU side undefined behavior on I2F 2021-07-22 21:51:34 -04:00
ReinUsesLisp
05d41fa9b7 shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.

Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
5d170de0b5 shader: Implement ISCADD32I 2021-07-22 21:51:34 -04:00
ReinUsesLisp
d093522fac shader: Fix ImageWrite indexing 2021-07-22 21:51:34 -04:00
ReinUsesLisp
b659212dbd shader: Fix TMML queries 2021-07-22 21:51:34 -04:00
ReinUsesLisp
b7764c3a79 shader: Handle host exceptions 2021-07-22 21:51:34 -04:00
ReinUsesLisp
ec6fc5fe78 glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
2021-07-22 21:51:31 -04:00
ReinUsesLisp
d54d7de40e glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3b6a632237 shader: Add floating-point rounding to I2F 2021-07-22 21:51:31 -04:00
ameerj
09dc23f971 shader: ISET.X implementation 2021-07-22 21:51:30 -04:00
FernandoS27
153a77efee shader: Stub SR_AFFINITY 2021-07-22 21:51:30 -04:00
ameerj
7ecc6de56a shader: Implement Int32 SUATOM/SURED 2021-07-22 21:51:30 -04:00
ReinUsesLisp
d621e96d0d shader: Initial OpenGL implementation 2021-07-22 21:51:30 -04:00
ameerj
fb14820c86 shader: Fix IADD3.CC 2021-07-22 21:51:29 -04:00
ReinUsesLisp
d2b54c6e42 shader: Fix VMNMX selector B 2021-07-22 21:51:29 -04:00
ameerj
7a9dc78398 shader: Refactor atomic_operations_global_memory 2021-07-22 21:51:28 -04:00
ameerj
427951d6fe shader: add missing include guard in half_floating_point_helper.h 2021-07-22 21:51:28 -04:00
ReinUsesLisp
469f8bb857 shader: Simplify code for local memory 2021-07-22 21:51:28 -04:00
FernandoS27
2999028976 shader: Address feedback 2021-07-22 21:51:28 -04:00
FernandoS27
881b33da3b shader: Implement F2F (Imm) 2021-07-22 21:51:28 -04:00
FernandoS27
21a878237b shader: Implement IADD3.CC/.X 2021-07-22 21:51:28 -04:00
FernandoS27
f18a6dd1bd shader: Implement SR_Y_DIRECTION 2021-07-22 21:51:28 -04:00
ReinUsesLisp
0a0818c025 shader: Fix memory barriers 2021-07-22 21:51:28 -04:00
ameerj
be431f5ed0 shader: Implement BFE and BFI CC
Fix two bugs in BFI.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
80940b1706 shader: Implement SampleMask 2021-07-22 21:51:28 -04:00
ReinUsesLisp
95815a3883 shader: Implement PIXLD.MY_INDEX 2021-07-22 21:51:28 -04:00
ReinUsesLisp
183855e396 shader: Implement tessellation shaders, polygon mode and invocation id 2021-07-22 21:51:27 -04:00
ReinUsesLisp
09165ae189 shader: Document and relax cache control on surface instructions 2021-07-22 21:51:27 -04:00
ReinUsesLisp
f263760c5a shader: Implement geometry shaders 2021-07-22 21:51:27 -04:00
ReinUsesLisp
a6cef71cc0 shader: Implement OUT 2021-07-22 21:51:27 -04:00
lat9nq
dd3432d357 internal_stage_buffer_entry_read: Remove pragma optimize off 2021-07-22 21:51:27 -04:00
ReinUsesLisp
4b0172f6de shader: Stub SR_INVOCATION_INFO 2021-07-22 21:51:27 -04:00
ReinUsesLisp
f712084147 shader: Stub ISBERD 2021-07-22 21:51:27 -04:00
ReinUsesLisp
2516829e4c shader: Fix CC in I2I 2021-07-22 21:51:27 -04:00
ReinUsesLisp
415c7e46ed shader: Simplify FLO and throw on CC 2021-07-22 21:51:27 -04:00
ReinUsesLisp
2ed80f6b1e shader: Implement LOP CC 2021-07-22 21:51:27 -04:00
ReinUsesLisp
5c61e860e4 shader: Implement SR_THREAD_KILL 2021-07-22 21:51:27 -04:00
ReinUsesLisp
c9337a4ae4 shader: Apply sign bit in FCMP (imm) 2021-07-22 21:51:27 -04:00
ameerj
3db2b3effa shader: Implement ATOM/S and RED 2021-07-22 21:51:27 -04:00
FernandoS27
1be6705408 shader: Implement CC for ISET, FSET, PSET, CSET, and DSET
Throw when other instructions are missing CC.
2021-07-22 21:51:27 -04:00