Commit Graph

235 Commits

Author SHA1 Message Date
wheremyfoodat
69c79a7f6c Ubershader: Add lighting shadergen override 2024-07-20 03:40:50 +03:00
Paris Oplopoios
af552edd9d Remove dependency of PICA regs in fragment config (#541)
Remove dependency of PICA regs in fragment config

Nyom

Nyom part 2

Nyom 3: The final nyom

Nyom 4: The nyomening

Nyom 5: The final Nyom for real
2024-07-20 02:37:49 +03:00
wheremyfoodat
eb7e02fbc2 Shadergen: Remove redundant whitespace generation 2024-07-19 18:20:21 +03:00
wheremyfoodat
9415cee59a Enable shadergen by default for now 2024-07-19 18:02:42 +03:00
offtkp
e4550b3e4f Fix pokedex3d on specialized shaders 2024-07-19 15:55:02 +03:00
wheremyfoodat
5c1e2912a3 Shadergen: Minimize shader compilation time by caching the default VS 2024-07-19 14:35:01 +03:00
wheremyfoodat
ac55c3e324 Shadergen: Fix small register decoding oopsie 2024-07-19 03:01:12 +03:00
offtkp
25098082c7 Use lutID instead of lutIndex 2024-07-19 02:45:09 +03:00
wheremyfoodat
90abf8a376 Fix signedness mess-ups in shaders 2024-07-19 01:31:04 +03:00
wheremyfoodat
53c76ae0d4 Shadergen: Fix spotlight 2024-07-18 23:57:43 +03:00
wheremyfoodat
bd38f9a8ab Shadergen: Add spotlight 2024-07-18 23:34:23 +03:00
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