Commit Graph
203 Commits
Author SHA1 Message Date
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
WunkandGitHub 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
WunkandGitHub 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
wheremyfoodatandGitHub 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
wheremyfoodatandGitHub 6d78750824 Merge pull request #362 from wheremyfoodat/arm64-jot
WIP arm64 shader recompiler
2024-01-12 19:03:40 +02:00
wheremyfoodatandGitHub 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
wheremyfoodatandGitHub 786c3e8a5c Merge pull request #98 from Wunkolo/modular-gl
Allow conditional OpenGL rendering backend
2023-07-16 03:48:07 +03:00
f43c252e55 Switch LOG2/EX2 from x87 to SSE (adjusted from Citra)
Co-Authored-By: merry <8682882+merryhime@users.noreply.github.com>
Co-Authored-By: Wunk <wunkolo@gmail.com>
2023-07-16 01:34:59 +03:00
wheremyfoodat 7b6cd90d36 Cleanup for #98 2023-07-15 04:56:43 +03:00