Commit graph

118 commits

Author SHA1 Message Date
fleroviux
9b1ed2084f [GPU] Implement initial support for multi-texturing 2023-06-20 00:01:12 +02: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
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
fleroviux
1416456035 [GPU] DOT3_RGB(A) modes should remap the operands from [0, 1] to [-1, +1] range 2023-06-18 01:32:32 +02: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
fleroviux
3aeef23b2e Merge branch 'bottom-screen' of github.com:fleroviux/Panda3DS into pica-tev-emulation 2023-06-17 12:38:33 +02:00
fleroviux
c9642292aa [GPU] Do scale on the final texture combiner output, not the individual sources 2023-06-17 02:06:05 +02:00
fleroviux
b854367676 [GPU] Move TEV uniforms update into its own method 2023-06-17 01:58:30 +02:00
fleroviux
a368d77005 [GPU] respect GPUREG_TEXENVi_SCALE 2023-06-17 01:42:53 +02:00
fleroviux
aef808cdfc [GPU] Cleanup TEV shader code to be less redundant 2023-06-17 01:35:35 +02:00
fleroviux
c3acf2b393 [GPU] cleanup and optimize the TEV shader functions 2023-06-17 01:27:26 +02:00
wheremyfoodat
5b3266be34 Fix merge conflict 2023-06-17 02:22:19 +03:00
wheremyfoodat
7b859ad602 Merge branch 'master' into bottom-screen 2023-06-17 02:19:30 +03:00
fleroviux
76d6140797 [GPU] Fix order of operands to mix() in the interpolation combine mode. 2023-06-17 00:12:07 +02:00
fleroviux
bcf6401d4d [GPU] Output mangenta when an unimplemented TEV source is used 2023-06-16 23:39:05 +02:00
wheremyfoodat
936302da2a Raise clang-format column size, make std::span support in opengl.hpp version-dependent 2023-06-16 22:06:59 +03: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
fleroviux
2e85f30c10 [GPU] attempt to emulate the previous TEV color buffer 2023-06-16 01:34:11 +02:00
fleroviux
d153133070 [GPU] fix missing break statements in 'previous' combiner mode implementation 2023-06-16 00:52:00 +02:00
fleroviux
1aa4dea63e [GPU] Add the remaining two TEV units
Looks like I overlooked the fact there actually are fix texture combiners,
not just four. The last two texture combiners are easy to miss, because
there are other GPU registers between the first four combiners and the last two.
2023-06-16 00:41:48 +02:00
fleroviux
e7435e3fdf [GPU] implement TEV combiner chaining and the remaining combine modes 2023-06-16 00:33:42 +02:00
fleroviux
525890bff7 [GPU] Upload configuration for all texture combiners to the shader program
Upload the configuration register values for the remaining texture combiners to the
shader program's uniforms. This is in preparation for emulating those texture combiners next.
2023-06-15 23:27:33 +02:00
fleroviux
e66370598a Fix the formatting which I broke (sorry) 2023-06-15 23:01:16 +02:00
fleroviux
4322ebda2c [GPU] Start texture combiner implementation
This commit first implements experimental and incomplete
texture combiner support. Currently only the first texture combiner
is implemented. Many sources and combine modes are not implemented yet.
2023-06-15 22:45:13 +02:00
wheremyfoodat
87ac4d5a0f {GL renderer] Better screen stub 2023-06-14 21:47:17 +03:00
wheremyfoodat
8284c3cda4 Remove printf 2023-06-14 13:49:47 +03:00
wheremyfoodat
8e90b8a103 [GPU] Bottom screen stub 2023-06-13 22:47:01 +03:00
wheremyfoodat
2520b2cb46 [GPU] Disable blend when rendering output texture 2023-06-13 20:38:17 +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
b817c72a9c [OpenGL] 410 blaze it (MacOS does not have 420) 2023-05-16 00:15:57 +03:00
wheremyfoodat
d6a107afef More MacOS funni 2023-05-07 02:29:27 +03:00
wheremyfoodat
7c68e70ba4 MacOS OpenGL memes 2023-05-07 02:03:24 +03:00
wheremyfoodat
05cbdba965 Fix typo 2023-04-30 15:16:45 +03:00
wheremyfoodat
4f8fa164ff [PICA] Color mask 2023-04-28 01:18:08 +03:00
wheremyfoodat
5a8416f87e [GL renderer] Add constant blend colour 2023-04-10 21:18:35 +03:00
wheremyfoodat
4632a62da2 [PICA] Proper texture wrapping 2023-04-03 21:08:31 +03:00
wheremyfoodat
84db6052b3 [PICA] Implement RG8 textures 2023-04-03 18:12:03 +03:00
wheremyfoodat
e69e95af69 [FS] Implement SaveData sort of. 2023-03-12 03:19:46 +02:00
wheremyfoodat
0ea6eb5138 [PICA] Implement RGB8 textures 2023-03-06 23:37:05 +02:00
wheremyfoodat
8a15a42763 [PICA] Add texture format -> string function 2023-03-06 23:36:38 +02:00
wheremyfoodat
f0e2db19ea [PICA] Implement I4 textures 2023-03-06 21:52:36 +02:00
wheremyfoodat
820b8a37b6 [PICA] Implement A4 textures 2023-03-06 21:07:10 +02:00
wheremyfoodat
922424b8d0 Immediate mode vertex submission attempt 1 2023-03-06 01:43:39 +02:00
wheremyfoodat
dca560a8da [PICA] Set depth mask to GL_TRUE even if depth testing is off if depth write is enabled 2023-03-04 04:04:20 +02:00
wheremyfoodat
f25bc2dd89 [PICA] Attempt depth offset/scale and depthmap enable 2023-03-04 03:42:01 +02:00
wheremyfoodat
eaab13b264 [PICA] Depth buffering v1 2023-03-03 00:59:55 +02:00
wheremyfoodat
c02cf794fe [PICA] Add A8 textures 2023-03-02 23:19:03 +02:00
wheremyfoodat
0cd3f581d3 [PICA] Add ETC1 and ETC1A4 support 2023-03-01 01:42:46 +02:00
wheremyfoodat
421f9acd11 [PICA] Invert y axis on UVs 2023-02-28 22:53:39 +02:00