Commit Graph
162 Commits
Author SHA1 Message Date
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
Wunkolo a636a0d1da Replace ENABLE_OPENGL with PANDA3DS_ENABLE_OPENGL 2023-07-11 11:28:06 -07:00
Wunkolo 9e32b6d4bf Remove OpenGL-specific vector-types
Removes dependency on the OpenGL header and rendering backen for its
`OpenGL::Vector` type in favor of a more standard array.
2023-07-11 11:27:35 -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 15ede3bd6e [Shader JIT] Temporary EXP2/LOG2 implementations in x87 2023-07-09 01:29:51 +03:00
wheremyfoodatandGitHub 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
wheremyfoodat f7ad66c708 [PICA] Add some clipping definitions 2023-07-04 19:51:07 +03:00
wheremyfoodat e854d4ba63 Formatting 2023-07-04 18:15:27 +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 7d56af26af [Shader interpreter] Add LG2/EX2 2023-07-01 02:17:19 +03:00
wheremyfoodat 005db316cf More shader instruction definitions 2023-07-01 01:17:04 +03:00
wheremyfoodat 726897231c [Shader JIT] Fix swizzle when loading from indexed reg 2023-07-01 00:49:34 +03:00
wheremyfoodat 5fecb6023a [Shader JIT] Fix MAD (again) 2023-06-30 23:59:34 +03:00
wheremyfoodat 3199f8ae67 [Shader JIT] Stub EMIT/SETEMIT 2023-06-30 14:39:25 +03:00
wheremyfoodat 3476d336ca [Shader JIT] Implement SLT/SLTI/MADI 2023-06-30 14:17:35 +03:00
wheremyfoodat 8a13b8c878 [Shader JIT] Compile MAD to FMA when possible 2023-06-30 02:02:56 +03:00
wheremyfoodat cd04ed3770 [ShaderJIT] Fix storeRegister kinda hackily 2023-06-30 01:42:36 +03:00
wheremyfoodat 121653b806 [ShaderJIT] Add logging utility for diffing 2023-06-29 22:02:17 +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 b027cda648 [Shader JIT[ Remove shadow stack stuff, remove pushing/popping context pointer 2023-06-28 22:31:51 +03:00
wheremyfoodat 28e9d87573 [Shader JIT] Start migrating to new, better ABI 2023-06-28 22:22:09 +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 519fb35c5f Less UB 2023-06-16 14:22:29 +03:00
wheremyfoodat 79c3cf2661 [Shader JIT] Less UB 2023-06-15 19:30:51 +03:00