Commit graph

121 commits

Author SHA1 Message Date
GPUCode
a019d98af9 texture: Use spans 2023-07-20 15:43:24 +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
wheremyfoodat
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
c53080b444 Fix HTTPServer gpu-renderer interfacing
Fixing some compilation issues that occur when enabling the HTTP server
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
Wunkolo
37b75f0928 Fix C4267/C4244 warnings
Address warnings involving lossy conversions from larger integer-types into smaller integer-types
2023-07-10 12:33:37 -07:00
wheremyfoodat
ba1c3a8ec5 Moar HTTP 2023-07-10 11:30:09 +03:00
wheremyfoodat
15ede3bd6e [Shader JIT] Temporary EXP2/LOG2 implementations in x87 2023-07-09 01:29:51 +03:00
wheremyfoodat
1037f93f61 Hook shader JIT to config file 2023-07-08 16:23:20 +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
17d57bd933 Specify vertex assembler JIT is currently unimplemented 2023-07-01 03:45:56 +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
e6f616cd59 Fix merge 2023-06-30 23:34:25 +03:00
wheremyfoodat
8b703dd147 Merge branch 'master' into dynapica 2023-06-30 16:01:49 +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
121653b806 [ShaderJIT] Add logging utility for diffing 2023-06-29 22:02:17 +03:00
wheremyfoodat
84fd0affa8 [GL renderer] Fix up float * vec4 mul 2023-06-29 21:37:31 +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
Wunkolo
9746dd5eb2 Add TexEnv PICA register offsets 2023-06-20 14:55:12 -07:00
fleroviux
7ebbfbf1ef [GPU] Remove magic constants in TEV and texture binding code as much as possible 2023-06-20 23:43:43 +02:00
fleroviux
4cb7e3625b Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-20 22:47:47 +02:00
wheremyfoodat
952e2d6d22 More accurate VAO implementation 2023-06-18 23:20:28 +03:00
Wunkolo
6ee3f73335 Bisect TextureFmt and ColorFmt
Makes framebuffer-formats unrepresentable from texture formats while
allowing them to alias each other. Add utility functions as well that
just re-use the `TextureFmt` ones.
2023-06-18 08:22:14 -07:00
Wunkolo
134e16d8ea Replace Texture::Formats with PICA::ColorFmt
This enum was a duplicate of the PICA one. Now the PICA one is more
complete. Migrate `textureFormatToString` to be next to the enums
definition.
2023-06-18 00:10:04 -07:00
Wunkolo
5f07f77c94 Move hasStencil to regs.hpp 2023-06-17 23:27:19 -07: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
0199918cd2 Add missing header for regs.hpp
This enum was using the `u32` type without including `helpers.hpp`, causing weird intermediate compiler errors when making incremental builds.
2023-06-16 05:48:33 -07:00
wheremyfoodat
b34d009520 Add comments explaining the hashing algorithms 2023-06-14 16:51:38 +03:00
wheremyfoodat
f0f7327b90 [PICA] Switch to xxh3 by default 2023-06-14 15:39:29 +03:00
wheremyfoodat
f82b27ddba Add xxhash 2023-06-14 14:46:11 +03:00
wheremyfoodat
137b652840 [Shader JIT] Attempt to add CALLC/JMPC/JMPU/LOOP 2023-06-11 23:43:47 +03:00
wheremyfoodat
48b2af6a17 [Shader JIT] Mix in AVX-128 in some places, fix cmp 2023-06-11 01:49:08 +03:00
wheremyfoodat
4655ae0842 [Shader JIT] Fix JIT-less build 2023-06-10 22:08:15 +03:00
wheremyfoodat
b04ad7215b Clean up some getBits code 2023-06-10 13:22:34 +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
2cb249927e [ShaderJIT] FIx crashes, moar instructions 2023-06-10 01:28:28 +03:00