fleroviux
b7616cc9ec
[GPU] Cleanup the TEV GLSL code a bit"
2023-06-20 21:44:55 +02:00
fleroviux
9b5a24329f
[GPU] Simplify TEV source fetching by using an array to store the current source values
2023-06-20 21:31:52 +02:00
fleroviux
9386ce319b
[GPU] Make the fragment shader GLSL a bit more readable.
2023-06-20 21:06:34 +02:00
fleroviux
13a53a9e9d
[GPU] Disable the alpha combiner when the color combiner is in "Dot3 RGBA" configuration
2023-06-20 20:46:01 +02:00
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
170fe9a4b2
Merge branch 'GamingProcessingUnit' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-19 19:54:03 +02:00
wheremyfoodat
6b5ec74aa4
[OutputVertex] Avoid unnamed struct
2023-06-18 23:59:41 +03:00
fleroviux
927bf9fe32
Merge branch 'GamingProcessingUnit' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-18 22:27:24 +02:00
wheremyfoodat
952e2d6d22
More accurate VAO implementation
2023-06-18 23:20:28 +03:00
wheremyfoodat
e5b09fefc8
Merge pull request #40 from wheremyfoodat/bottom-screen
...
Stub screens in a bit less of a sad way
2023-06-18 17:35:37 +03: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
78827886fe
Merge branch 'master' of github.com:fleroviux/Panda3DS into pica-tev-emulation
2023-06-17 12:39:48 +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
wheremyfoodat
0bd77856e5
Merge pull request #42 from marysaka/misc/glad
...
misc: Switch from gl3w to glad
2023-06-17 12:53:33 +03:00
Mary
f3010f0909
misc: Switch from gl3w to glad
...
Also add more checks on window and context creation.
2023-06-17 11:26:18 +02:00
wheremyfoodat
6c29e3e0be
Merge pull request #41 from marysaka/fix/linux-cstdint-helper
...
fix: fix build on Linux with gcc
2023-06-17 11:45:59 +03:00
Mary
a799da1ec5
fix: fix build on Linux with gcc
...
Tested on Fedora 38, helpers.hpp was missing an import.
2023-06-17 10:11:35 +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
wheremyfoodat
245f0d2d18
Merge branch 'master' into bottom-screen
2023-06-17 02:11:14 +03:00
wheremyfoodat
1aab10bec7
Merge pull request #35 from Wunkolo/span-cpu-state
...
Use `std::span` for CPU register-state
2023-06-17 01:39:33 +03:00
wheremyfoodat
dafa919e1b
Merge pull request #33 from Wunkolo/span-vertex
...
Use `std::span` to pass vertex data
2023-06-17 01:38:40 +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
2f3bc5d38e
[CPU] fprs() should return std::span<u32, 32> (Fixes memory corruption bug in threads.cpp)
2023-06-16 22:20:59 +03: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
Wunkolo
fde93381a5
Use std::span
for CPU register-state
...
Following the trend of #33 : `std::span` provides some useful utility
functions like `size_bytes()` and `as_bytes()` and serves as a better
non-owning "chunk of data"-type over just passing around an
`std::array&`.
2023-06-16 07:24:37 -07:00
wheremyfoodat
c6f5d19983
Merge pull request #34 from Wunkolo/pica-regs-helpers
...
Add missing header for regs.hpp
2023-06-16 16:05:07 +03: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
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
f8e89f4db1
Merge pull request #31 from wheremyfoodat/discord-for-real
...
Add a Discord link that actually links to the discord
2023-06-15 19:42:57 +03:00
wheremyfoodat
d4e2e78556
Fix Discord link
2023-06-15 19:42:20 +03:00
wheremyfoodat
cd77acdd28
Merge pull request #29 from Wunkolo/clang-format
...
Add `.clang-format`
2023-06-15 12:00:38 +03:00
wheremyfoodat
9095bf4445
Update .clang-format
2023-06-15 11:44:49 +03:00
Wunkolo
dd0831361d
Add .clang-format
...
Use the command `clang-format -i tests/**/*.c src/**/*.cpp include/**/*.hpp`
to process all of the project's files.
Using the one from [pcsx-redux](https://github.com/grumpycoders/pcsx-redux/blob/main/src/.clang-format )
as a basis and then made additional edits to be the _least_ disruptive
to the pre-existing formatting patterns.
2023-06-15 00:37:49 -07:00
wheremyfoodat
2e4ae1328a
Add Discord badge for real
2023-06-15 04:02:44 +03:00
wheremyfoodat
b378287f79
Merge pull request #28 from wheremyfoodat/discord-badge
...
Add Discord link
2023-06-15 03:56:23 +03:00