Commit Graph
243 Commits
Author SHA1 Message Date
ReinUsesLispandameerj fb166b5ff4 shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLispandameerj 4397053d5c shader: Remove IAbs64 2021-07-22 21:51:39 -04:00
ameerj a7536825df shader_recompiler: Fix IADD3 input partitioning 2021-07-22 21:51:39 -04:00
ReinUsesLispandameerj 808ef97a08 shader: Move loop safety tests to code emission 2021-07-22 21:51:39 -04:00
ReinUsesLispandameerj 1d182fc0f5 shader: Calibrate loop safety threshold 2021-07-22 21:51:38 -04:00
ReinUsesLispandameerj 1091995f8e shader: Simplify MergeDualVertexPrograms 2021-07-22 21:51:38 -04:00
ReinUsesLispandameerj 374eeda1a3 shader: Properly manage attributes not written from previous stages 2021-07-22 21:51:38 -04:00
ReinUsesLispandameerj cbbca26d18 shader: Add support for native 16-bit floats 2021-07-22 21:51:38 -04:00
ReinUsesLispandameerj 376aa94819 shader: Rename maxwell/program.h to translate_program.h 2021-07-22 21:51:38 -04:00
ReinUsesLispandameerj 7ac55c2a75 shader: Fix loop safety to SSA pass 2021-07-22 21:51:35 -04:00
ReinUsesLispandameerj 61cd7dd301 shader: Add logging 2021-07-22 21:51:35 -04:00
lat9nqandameerj 373f75d944 shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
ReinUsesLispandameerj 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
FernandoS27andameerj 562af30181 shader: Fix VertexA Shaders. 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj ec9a78885e shader: Add 2D and 3D variants to SUATOM and SURED
Used by Claybook.
2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj 4f8b68fb04 shader: Avoid CPU side undefined behavior on I2F 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj 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
ReinUsesLispandameerj 5d170de0b5 shader: Implement ISCADD32I 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj 329dea217d shader: Always initialize up reference in structure control flow
Fixes ubsan issue.
2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj d093522fac shader: Fix ImageWrite indexing 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj b659212dbd shader: Fix TMML queries 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj b7764c3a79 shader: Handle host exceptions 2021-07-22 21:51:34 -04:00
ReinUsesLispandameerj 8f3043c3cf Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
2021-07-22 21:51:33 -04:00
ReinUsesLispandameerj 586c785366 glasm: Skip phi moves on undefined instructions 2021-07-22 21:51:33 -04:00
ReinUsesLispandameerj a49532c8eb video_core,shader: Clang-format fixes 2021-07-22 21:51:33 -04:00
ReinUsesLispandameerj 9bb3e008c9 shader: Read branch conditions from an instruction
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLispandameerj 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
lat9nqandameerj f7a2340205 shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
2021-07-22 21:51:31 -04:00
ReinUsesLispandameerj 776ab3ea12 shader: Use a non-trivial dummy to construct ASL node union 2021-07-22 21:51:31 -04:00
ReinUsesLispandameerj bf5e48ffe4 glasm: Initial implementation of phi nodes on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLispandameerj 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
ReinUsesLispandameerj 3b6a632237 shader: Add floating-point rounding to I2F 2021-07-22 21:51:31 -04:00
ReinUsesLispandameerj 6fd190d1ae glasm: Implement basic GLASM instructions 2021-07-22 21:51:30 -04:00
ReinUsesLispandameerj b10cf64c48 glasm: Add GLASM backend infrastructure 2021-07-22 21:51:30 -04:00
ameerj 09dc23f971 shader: ISET.X implementation 2021-07-22 21:51:30 -04:00
FernandoS27andameerj ee61ec2c39 shader: Optimize NVN Fallthrough 2021-07-22 21:51:30 -04:00
FernandoS27andameerj 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
ReinUsesLispandameerj d621e96d0d shader: Initial OpenGL implementation 2021-07-22 21:51:30 -04:00
FernandoS27andameerj c49d56c931 shader: Address feedback 2021-07-22 21:51:29 -04:00
FernandoS27andameerj b541f5e5e3 shader: Implement VertexA stage 2021-07-22 21:51:29 -04:00
FernandoS27andameerj da936d6ad8 shader: Implement delegation of Exit to dispatcher on CFG 2021-07-22 21:51:29 -04:00
ameerj fb14820c86 shader: Fix IADD3.CC 2021-07-22 21:51:29 -04:00
ReinUsesLispandameerj d2b54c6e42 shader: Fix VMNMX selector B 2021-07-22 21:51:29 -04:00
ReinUsesLispandameerj fe25f42403 shader: Remove identity removal pass for better build times 2021-07-22 21:51:29 -04:00
ReinUsesLispandameerj aece958c2b shader: Add missing UndoUse case for GetSparseFromOp 2021-07-22 21:51:29 -04:00
ReinUsesLispandameerj 21e3382830 shader: Simplify code in opcodes.h to fix Intellisense
Avoid using std::array to fix Intellisense not properly compiling this
code and disabling itself on all files that include it.

While we are at it, change the code to use u8 instead of size_t for the
number of instructions in an opcode.
2021-07-22 21:51:29 -04:00
ReinUsesLispandameerj d10cf55353 shader: Implement indexed textures 2021-07-22 21:51:28 -04:00
ameerj 7a9dc78398 shader: Refactor atomic_operations_global_memory 2021-07-22 21:51:28 -04:00