fleroviux
a30f9ccd33
[GPU] Treat color and alpha sources as two separate RGBA values
...
Previously we fetched the RGB channels of the color source and the alpha channel of the alpha source
and combined these into a single RGBA source value that the source operands are applied to.
This is incorrect. The correct behavior is to fetch the full RGBA color for both the color and alpha
sources and to apply the color operand to the color source and the alpha operand to the alpha source,
i.e. using the *alpha* source R-channel when the alpha operand is "One minus source red".
Only after that we combine both sources into a single RGBA color.
2023-06-20 20:20:33 +02:00
fleroviux
9b1ed2084f
[GPU] Implement initial support for multi-texturing
2023-06-20 00:01:12 +02: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
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
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
e69e95af69
[FS] Implement SaveData sort of.
2023-03-12 03:19:46 +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
421f9acd11
[PICA] Invert y axis on UVs
2023-02-28 22:53:39 +02:00
wheremyfoodat
d7c2c27e99
[PICA] Enable viewport
2023-02-28 22:53:11 +02:00
wheremyfoodat
3912fd4779
[PICA] Add blending, proper toggle between vertex colour & tex
2023-02-28 02:41:44 +02:00
wheremyfoodat
e80679fe77
Geometry pipeline v2
...
Co-Authored-By: Sky <skylersaleh@gmail.com>
2023-02-26 20:41:33 +02:00
wheremyfoodat
ccdab41c28
[PICA] More textures. Upstream should also build now
2023-02-01 01:53:51 +02:00
wheremyfoodat
3ce9dc1d7b
Surface cachin' again
2023-01-05 20:41:09 +02:00
wheremyfoodat
ecbb33b906
[GPU] Surface cache vol 1
2023-01-02 15:01:17 +02:00
wheremyfoodat
57ef4e25e7
Separate renderer and PICA completely
2023-01-01 22:06:54 +02:00
wheremyfoodat
9f792c2cf5
Add thread logger, split renderer from PICA
2023-01-01 21:04:34 +02:00