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
wheremyfoodat
f73138c5de
[Shader JIT] Implement SGE(I)
2023-08-02 19:30:35 +03:00
wheremyfoodat
5aa2e3c1d2
[Shader JIT] Add DPH
2023-08-02 00:23:05 +03:00
Wunkolo
d2241a25bc
Stub Vulkan backend support
...
A lot of the architecture of the emulator here does not allow for vulkan
to initialize easily since it involves a bit of data to be exchanged
between SDL and Vulkan. This commit just adds the foundational linkage
and library code for vulkan support.
2023-07-22 13:16:23 -07:00
wheremyfoodat
ae4a4dfc29
Hook up sw rendering backend
2023-07-22 20:47:19 +03:00
wheremyfoodat
31d1c6ff3f
Bonk people who select Vulkan as the renderer
2023-07-18 22:33:59 +03:00
Wunkolo
0b60cf6901
Migrate RenderType string functions to static Renderer functions
...
Also fix some IWYU build errors
2023-07-18 10:02:07 -07:00
Wunkolo
528ed510c2
Add string-based renderer backend configuration
...
Rather than using integer-indices, just use plaintext case-insensitive
names and leave the actual enum indexes as an implementation detail.
2023-07-17 18:02:01 -07:00
Wunkolo
ceff20f57f
Add configurable Renderer backend
...
There are still some initialization errors to work through, such as
config not being initialized properly by the time GPU tries to utilize
it too. Also some life-time issues. But manually forcing it to use the
Null backnd successfully works and allows games to be "played"
headlessly.
2023-07-17 10:13:34 -07:00
wheremyfoodat
826f0ac039
Fix up comments and readme
2023-07-16 19:23:42 +03:00
wheremyfoodat
786c3e8a5c
Merge pull request #98 from Wunkolo/modular-gl
...
Allow conditional OpenGL rendering backend
2023-07-16 03:48:07 +03:00