Commit graph

76 commits

Author SHA1 Message Date
offtkp
4176a19256 Fog in ubershader 2024-07-21 17:38:07 +03:00
wheremyfoodat
69c79a7f6c Ubershader: Add lighting shadergen override 2024-07-20 03:40:50 +03:00
wheremyfoodat
aad7bb817e Add setting for ubershaders 2024-07-17 02:25:38 +03:00
wheremyfoodat
0ecdf00e64 Add accurate shader multiplication option 2024-07-16 22:14:01 +03:00
wheremyfoodat
f004aa6021 Implement GPUREG_VSH_OUTMAP_MASK 2024-04-29 23:02:33 +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
GPUCode
f75a23b5a9 code: Better screen support 2023-08-02 22:26:08 +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
7b6cd90d36 Cleanup for #98 2023-07-15 04:56:43 +03:00
Wunkolo
a636a0d1da Replace ENABLE_OPENGL with PANDA3DS_ENABLE_OPENGL 2023-07-11 11:28:06 -07:00
Wunkolo
2a1683ba62 Introduce "Renderer" abstraction layer
Adds a `renderer` class for which a rendering backend must implement and
will conditionally use OpenGL in the case that `ENABLE_GL` is enabled.
2023-07-11 11:27:35 -07:00
wheremyfoodat
075409130b
Fix typo 2023-07-08 22:06:53 +03:00
wheremyfoodat
817b3de945 [GPU] Implement vertex padding 2023-07-08 20:23:43 +03:00
wheremyfoodat
1037f93f61 Hook shader JIT to config file 2023-07-08 16:23:20 +03:00
wheremyfoodat
53db56ad9d [GPU] Set lightingLUTDirty to true on reset because paranoia 2023-07-05 21:48:30 +03:00
wheremyfoodat
a3d8f777b4 PicaVertex -> PICA::Vertex 2023-07-04 23:40:47 +03:00
wheremyfoodat
b403e9a66e Start work on GL state manager object 2023-07-04 23:27:38 +03:00
Sky
12dbaeaeb0 [GL] Initial Implementation of Lighting LUTs 2023-07-02 16:14:11 -07:00
wheremyfoodat
1ac3a474da Fix formatting & cmake 2023-07-01 22:35:07 +03:00
Sky
ca89909c00 Refactored Vertex Pipeline to always use Pica Formatted Vertex 2023-07-01 11:39:25 -07:00
wheremyfoodat
66d71f817c Fix triangle fans 2023-07-01 16:39:33 +03:00
wheremyfoodat
ba6779cfa1 Temporarily disable shader JIT by default 2023-07-01 03:43:44 +03:00
wheremyfoodat
3603ee1e13 [ShaderJIT] Move prepare call to top of DrawArrays 2023-06-29 18:50:10 +03:00
wheremyfoodat
2ffb3a58bf Merge branch 'GamingProcessingUnit' into dynapica 2023-06-29 01:14:40 +03:00
wheremyfoodat
3ec446b0a2 [GPU] Implement vertex cache 2023-06-29 00:56:01 +03:00
wheremyfoodat
02d07f29d7 Merge remote-tracking branch 'origin/GamingProcessingUnit' into dynapica 2023-06-27 18:53:59 +03:00
fleroviux
4cb7e3625b Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-20 22:47:47 +02:00
fleroviux
9b1ed2084f [GPU] Implement initial support for multi-texturing 2023-06-20 00:01:12 +02:00
wheremyfoodat
6b5ec74aa4 [OutputVertex] Avoid unnamed struct 2023-06-18 23:59:41 +03:00
wheremyfoodat
952e2d6d22 More accurate VAO implementation 2023-06-18 23:20:28 +03:00
Wunkolo
838d3f27f9 Migrate PICA-types into PICA namespace
Rather than prefixing these types with `PICA`, a namespace is used instead.
2023-06-17 18:23:47 -07:00
Wunkolo
78a3f9fa23 Add PICA texel-format and topology types
Slowly stepping the codebase towards having renderer-agnostic types and keeping the translation of PICA-types to OpenGL/VK/DX/Software/etc to the renderer-backend.
2023-06-17 12:26:41 -07:00
Wunkolo
553d23974a Use std::span to pass vertex data
Starts utilizing
[std::span](https://en.cppreference.com/w/cpp/container/span) to
indicate a non-owning view of a contiguous array of elements rather than
`T* data, usize count`.
2023-06-16 07:28:35 -07:00
wheremyfoodat
ff3c162ebc Merge branch 'master' into dynapica 2023-06-11 14:44:24 +03:00
wheremyfoodat
315ab1fa16 Merge branch 'master' into dynapica 2023-06-11 14:43:03 +03:00
wheremyfoodat
ccd7ef3a23 [DSP] Add other pipes for Picross 3D 2023-06-11 14:11:50 +03:00
wheremyfoodat
cba1ce8fb8 Implement 8-bit VRAM writes 2023-06-11 13:14:35 +03:00
wheremyfoodat
bf125bf2cf Merge branch 'master' into dynapica 2023-06-10 12:55:43 +03:00
Wunkolo
2c94d0d683 Add Helpers:{getBits,getBit}
`constexpr` functions for extractint bitfields that lends itself a bit
better to emitting instructions like `bextr` on x86 or `ubfx` on arm64.
And may subjectively make things a bit more readable.
"Extract `5` bits" rather than `& 0x1F`.
2023-06-10 00:48:06 -07:00
wheremyfoodat
77cba3110d [Shader JIT] Add prologue & some more compilation stuffs 2023-06-08 22:22:28 +03:00
wheremyfoodat
4064abfdeb [Shader JIT] Add caching 2023-06-07 20:33:37 +03:00
wheremyfoodat
364443d66f Moar 2023-06-07 18:22:07 +03:00
wheremyfoodat
4bef096f04 [FS] Add directory stuff, clean up 2023-03-29 00:23:55 +03:00
wheremyfoodat
5d6bf24a9d [Kernel] Add memory mirroring function & throw warning on mprotect 2023-03-21 02:32:47 +02:00