Commit graph

215 commits

Author SHA1 Message Date
wheremyfoodat
aad7bb817e Add setting for ubershaders 2024-07-17 02:25:38 +03:00
wheremyfoodat
219a560cbe Merge branch 'master' into specialized-shaders-2 2024-07-17 00:10:09 +03:00
wheremyfoodat
967d9398ce
Fix arm64 build 2024-07-16 22:28:20 +03:00
wheremyfoodat
0ecdf00e64 Add accurate shader multiplication option 2024-07-16 22:14:01 +03:00
wheremyfoodat
441aa2346c Shadergen: Add clipping 2024-07-16 02:20:37 +03:00
wheremyfoodat
c02b382262 Perform alpha test with integers instead of floats 2024-07-16 00:58:52 +03:00
wheremyfoodat
db80131213 Shadergen: Previous buffer should be able to be set even for passthrough TEV stages 2024-07-15 18:27:22 +03:00
wheremyfoodat
b8a186d5cd Shadergen: Fix add-multiply 2024-07-15 16:34:33 +03:00
wheremyfoodat
a2649ffb76 Simplify TEV code 2024-07-15 15:38:15 +03:00
wheremyfoodat
c535ae43ee Shader recompiler: Fix dot3 RGBA 2024-07-15 14:34:59 +03:00
wheremyfoodat
11c9279329 Properly flush shader cache 2024-07-15 14:30:21 +03:00
wheremyfoodat
fe53214c86 Shader recompiler: Finish alpha test and stub lighting 2024-07-15 04:51:08 +03:00
wheremyfoodat
0878474e01 Shader recompiler: Add depth mapping 2024-07-15 04:30:04 +03:00
wheremyfoodat
c8eb1c1128 Shader recompiler: Add UBO 2024-07-15 04:10:55 +03:00
wheremyfoodat
fe4bbea2ef Merge branch 'master' into specialized-shaders-2 2024-07-15 02:53:32 +03:00
wheremyfoodat
133082c232 x64 shader rec: Add support for PICA non-IEEE multiplication 2024-07-15 02:12:04 +03:00
wheremyfoodat
ea59933b18 Simplify alpha test code 2024-07-15 00:46:15 +03:00
wheremyfoodat
c73758959b Merge branch 'master' into specialized-shaders-2 2024-07-14 23:57:12 +03:00
wheremyfoodat
0e4079f304 a64 shader recompiler: Add DPH/DPHI 2024-07-03 16:23:43 +03:00
wheremyfoodat
842943fa4c GLSL shader gen: Add alpha test (...half of it I guess) 2024-05-13 00:51:40 +03:00
wheremyfoodat
798c651a17 Merge branch 'specialized-shaderz' into specialized-shaders-2 2024-05-12 23:20:12 +03:00
wheremyfoodat
f004aa6021 Implement GPUREG_VSH_OUTMAP_MASK 2024-04-29 23:02:33 +03:00
Wunk
5284109fd4
Implement shader-interpreter relative MOVA addressing (#471)
* Add shader uniform-read unit test

* Add unit test f24 vector formatter

* Add Address Register Offset shader unit test

* Implement float-uniform out-of-bound return value

In the case that the resulting float-uniform index is greater than the 96 slots that it has, a result of `{1,1,1,1}` is to be returned.

* Implement shader relative addressing

Fails on the negative unit tests at the moment but passes all of the
others.

* Fix `MOVA` source register indexing
2024-03-22 18:48:03 +02:00
Wunkolo
40e2774b7f Implement arm64 LG2/EX2 2024-03-19 21:26:13 -07:00
Wunkolo
2b34ef4a89 Implement PICA200 compliant arm64 MUL
Adds `emitSafeMUL` to implement a PICA200 compliant multiplication that
handles the special `0 * inf = 0` case.
2024-03-14 12:30:42 -07:00
Wunk
c89fe05b8a
Fix shader-interpreter non-IEEE outputs (#459)
* Re-enable non-IEEE shader test

* Fix shader-interpreter RCP/RSQ output

Handle the `-0.0` special-case

* Fix shader-interpreter MIN/MAX output

Takes advantage of min/max's properties regarding non-finites to return
NaN depending on its input position:
```
max(NaN, 2.f) -> NaN
max(2.f, NaN) -> 2
min(NaN, 2.f) -> NaN
min(2.f, NaN) -> 2
```

* Fix shader-interpreter FLR indexing bug

`3 - 1` should be `3 - i`
2024-03-12 08:34:02 +02:00
wheremyfoodat
25d8e5807f
Fix dynarmic submodule (#446)
* Remove dynarmic submodule

* Add dynarmic mirror

* Update oaknut

* Update shader JIT to work with latest oaknut

* Maybe fix oaknut finally

* hlep

* More arm64 shader derps

* Fixing more shader JIT brokenness

* aaaaaaaaaaaa

* Update shader_rec_emitter_arm64.hpp

* Update shader_rec_emitter_arm64.cpp
2024-03-07 19:47:21 +02:00
wheremyfoodat
5ba773a393 Add GLES detection to fragment shader recompiler 2024-03-03 21:04:12 +02:00
wheremyfoodat
67fe3214fe Add shader cache 2024-03-02 20:41:23 +02:00
wheremyfoodat
ddc14cea09 Fix shader compilation errors 2024-02-29 00:56:24 +02:00
wheremyfoodat
10654ce1ca GLSL generator: Add textures and alpha operations 2024-02-04 18:54:29 +02:00
wheremyfoodat
0be8c45e37 Fragment shader gen: Properly track TEV outputs 2024-02-02 01:51:37 +02:00
wheremyfoodat
7e77af0de8 GLSL Fragment Generator: Working color operations 2024-02-02 01:34:33 +02:00
wheremyfoodat
45ae6bd3a8 Getting TEV operations working 2024-02-02 01:16:45 +02:00
wheremyfoodat
ef2467bc60 TEV definitions for shader generator 2024-01-18 02:59:29 +02:00
wheremyfoodat
6f3c7d358b Add GLSL shader gen files 2024-01-18 00:27:17 +02:00
wheremyfoodat
6d78750824
Merge pull request #362 from wheremyfoodat/arm64-jot
WIP arm64 shader recompiler
2024-01-12 19:03:40 +02:00
wheremyfoodat
aaef3b66f9
Moar arm64 shader ops 2024-01-09 23:50:57 +02:00
wheremyfoodat
6c2e0be07d [arm64 shader JIT] Booting OoT now 2024-01-04 23:25:46 +02:00
wheremyfoodat
745da35324 Fix cmp in x64 shader JIT 2024-01-04 03:19:31 +02:00
wheremyfoodat
fe01df588b Get some demos running on a64 shader JIT 2024-01-03 22:00:16 +02:00
wheremyfoodat
c0621d0760 WIP arm64 shader recompiler 2024-01-03 00:39:36 +02:00
wheremyfoodat
1f8194dfa3 ShaderJIT: Make BREAK(C) emit a warning instead of crashing until implemented 2023-09-16 18:07:07 +03:00
wheremyfoodat
ccdf8f7722 Shader Interpreter: implement SGE 2023-08-12 23:46:42 +03:00
wheremyfoodat
85c586b3d0 [Shader JIT] Add DPHI 2023-08-12 23:36:56 +03:00
wheremyfoodat
0f973a4ae4 Fix immediate mode vertex submission 2023-08-12 17:52:50 +03:00
wheremyfoodat
9695b57bf5 [PICA] Rework how external registers work, format 2023-08-04 00:42:11 +03:00
wheremyfoodat
f84935142a Merge remote-tracking branch 'upstream/master' into moar-gpu 2023-08-03 20:26:12 +03:00
GPUCode
58383ee431 Address review comments 2023-08-03 16:42:01 +03:00
GPUCode
f75a23b5a9 code: Better screen support 2023-08-02 22:26:08 +03:00