Commit graph

224 commits

Author SHA1 Message Date
wheremyfoodat
2f50038db9 Shadergen: Lighting almost 100% working 2024-07-18 22:56:05 +03:00
wheremyfoodat
b4ae32960c Moar lighting 2024-07-18 20:10:20 +03:00
wheremyfoodat
00037d8a5e Shadergen: Start implementing lighting 2024-07-18 19:27:12 +03:00
wheremyfoodat
e1268f57b5 Shadergen: Fix attribute declarations 2024-07-18 04:23:00 +03:00
wheremyfoodat
7e480e35ec Shadergen: Upload light uniforms 2024-07-18 03:37:11 +03:00
wheremyfoodat
ccf9693877 Shadergen: More lighting work 2024-07-18 02:57:41 +03:00
wheremyfoodat
ed00ddc805 Improve lighting register definitions 2024-07-18 00:55:57 +03:00
wheremyfoodat
0fc95ae8ef Shadergen: Remove trailing newlines 2024-07-17 21:54:56 +03:00
wheremyfoodat
cb0e69847c Hotfix UBO binding 2024-07-17 21:17:54 +03:00
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