Commit Graph

173 Commits

Author SHA1 Message Date
3b6a632237 shader: Add floating-point rounding to I2F 2021-07-22 21:51:31 -04:00
09dc23f971 shader: ISET.X implementation 2021-07-22 21:51:30 -04:00
ee61ec2c39 shader: Optimize NVN Fallthrough 2021-07-22 21:51:30 -04:00
153a77efee shader: Stub SR_AFFINITY 2021-07-22 21:51:30 -04:00
7ecc6de56a shader: Implement Int32 SUATOM/SURED 2021-07-22 21:51:30 -04:00
d621e96d0d shader: Initial OpenGL implementation 2021-07-22 21:51:30 -04:00
c49d56c931 shader: Address feedback 2021-07-22 21:51:29 -04:00
b541f5e5e3 shader: Implement VertexA stage 2021-07-22 21:51:29 -04:00
da936d6ad8 shader: Implement delegation of Exit to dispatcher on CFG 2021-07-22 21:51:29 -04:00
fb14820c86 shader: Fix IADD3.CC 2021-07-22 21:51:29 -04:00
d2b54c6e42 shader: Fix VMNMX selector B 2021-07-22 21:51:29 -04:00
fe25f42403 shader: Remove identity removal pass for better build times 2021-07-22 21:51:29 -04:00
7a9dc78398 shader: Refactor atomic_operations_global_memory 2021-07-22 21:51:28 -04:00
427951d6fe shader: add missing include guard in half_floating_point_helper.h 2021-07-22 21:51:28 -04:00
c8f9772d65 shader: Fix gcc warnings 2021-07-22 21:51:28 -04:00
cc0fcd1b8d shader: Improve goto removal algorithm complexity
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
2021-07-22 21:51:28 -04:00
050e81500c shader: Move microinstruction header to the value header 2021-07-22 21:51:28 -04:00
e4d1122082 shader: Move siblings check to a separate function and comment them out 2021-07-22 21:51:28 -04:00
469f8bb857 shader: Simplify code for local memory 2021-07-22 21:51:28 -04:00
7018e524f5 shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
2021-07-22 21:51:28 -04:00
2999028976 shader: Address feedback 2021-07-22 21:51:28 -04:00
881b33da3b shader: Implement F2F (Imm) 2021-07-22 21:51:28 -04:00
21a878237b shader: Implement IADD3.CC/.X 2021-07-22 21:51:28 -04:00
f18a6dd1bd shader: Implement SR_Y_DIRECTION 2021-07-22 21:51:28 -04:00
0a0818c025 shader: Fix memory barriers 2021-07-22 21:51:28 -04:00
be431f5ed0 shader: Implement BFE and BFI CC
Fix two bugs in BFI.
2021-07-22 21:51:28 -04:00
80940b1706 shader: Implement SampleMask 2021-07-22 21:51:28 -04:00
95815a3883 shader: Implement PIXLD.MY_INDEX 2021-07-22 21:51:28 -04:00
183855e396 shader: Implement tessellation shaders, polygon mode and invocation id 2021-07-22 21:51:27 -04:00
09165ae189 shader: Document and relax cache control on surface instructions 2021-07-22 21:51:27 -04:00
f263760c5a shader: Implement geometry shaders 2021-07-22 21:51:27 -04:00
a6cef71cc0 shader: Implement OUT 2021-07-22 21:51:27 -04:00
dd3432d357 internal_stage_buffer_entry_read: Remove pragma optimize off 2021-07-22 21:51:27 -04:00
4b0172f6de shader: Stub SR_INVOCATION_INFO 2021-07-22 21:51:27 -04:00
f712084147 shader: Stub ISBERD 2021-07-22 21:51:27 -04:00
2516829e4c shader: Fix CC in I2I 2021-07-22 21:51:27 -04:00
415c7e46ed shader: Simplify FLO and throw on CC 2021-07-22 21:51:27 -04:00
dfd5341d71 shader: Mark blocks with no end branch as unreachable 2021-07-22 21:51:27 -04:00
2ed80f6b1e shader: Implement LOP CC 2021-07-22 21:51:27 -04:00
5c61e860e4 shader: Implement SR_THREAD_KILL 2021-07-22 21:51:27 -04:00
c9337a4ae4 shader: Apply sign bit in FCMP (imm) 2021-07-22 21:51:27 -04:00
3db2b3effa shader: Implement ATOM/S and RED 2021-07-22 21:51:27 -04:00
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
8cea39b5a6 shader: Remove outdated comment in F2I 2021-07-22 21:51:27 -04:00
7cb2ab3585 shader: Implement SULD and SUST 2021-07-22 21:51:26 -04:00
094da34456 shader: Fix Windows build issues 2021-07-22 21:51:26 -04:00
5bfcafa0a2 shader: Address feedback + clang format 2021-07-22 21:51:26 -04:00
0bb85f6a75 shader_recompiler,video_core: Cleanup some GCC and Clang errors
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.

Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler

shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth

thread_worker: Include condition_variable

Don't use list initializers in control flow

Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22 21:51:26 -04:00
5cd3d00167 shader: Fix FCMP immediate variant 2021-07-22 21:51:26 -04:00
233e39bb7b shader: Fix dangling labels 2021-07-22 21:51:26 -04:00