Commit Graph

579 Commits

Author SHA1 Message Date
Unknown Shadow
d737961e88 Merge branch 'master' into 'FasterImmediate'
# Conflicts:
#   GL/immediate.c
2024-08-11 11:11:25 +00:00
UnknownShadow200
92ec1db643 Only update attribute pointers at end instead of per vertex 2024-08-11 19:39:27 +10:00
Falco Girgis
0f3be24cec Merge branch 'master' of https://gitlab.com/simulant/GLdc into pvr_direct 2024-08-11 01:21:06 -05:00
Luke Benstead
ba76d67154 Merge branch 'ViewportTransform' into 'master'
Refactor viewport transform

See merge request simulant/GLdc!120
2024-08-04 20:18:41 +00:00
UnknownShadow200
d4fc57cab2 Fix not working properly, defer matrix calculation until needed 2024-08-03 16:40:23 +10:00
UnknownShadow200
2f26574a44 Combine projection transform and viewport transform together 2024-08-03 15:52:56 +10:00
Falco Girgis
812ed4a1ee Fixing PC build. 2024-07-31 23:29:09 -05:00
Falco Girgis
b920855b57 Micro optimizations and clean-up. 2024-07-31 23:08:37 -05:00
Falco Girgis
873372995a More cleanup. 2024-07-31 22:59:43 -05:00
Falco Girgis
49f2f0917b Nehe20 Build Fix + Warnings cleanup for GCC14.1.0.
Newest toolchain is bitchier, so I wanted to go ahead and clear up all
of the warnings from building GLdc and the various examples...

1) Set CMake CXX standard to 14 instead of 11, since CXXFLAGS were
  enforcing that language standard anyway.
2) Fixed a bunch of strict aliasing violations in immediate.c: glVertex3f.
3) Removed or commented out lots of unused variables.
4) Fixed some "suggested inner braces on initializer" crap.
5) Fixed a bunch of signed vs unsigned pointer assignments.
6) Fixed several printf() warnings from using %d with int32_t (needs to
   be %ld for long int).
7) Fixed build issue with Nehe20 from not including kos.h for the
   KOS_ROMDISK macro.
8) Fixed some signed vs unsigned comparison mismatches in C++ template
   instantiations within clipping tests.
9)
2024-07-31 20:35:34 -05:00
Falco Girgis
a68c4bf6ac Merge branch GLdc:master into master 2024-07-31 19:10:27 +00:00
Luke Benstead
60773e9db8 Fix alpha values 2024-07-21 10:28:13 +00:00
UnknownShadow200
6722e14b93 Simplify RGBA interpolation by avoiding a multiply and division by 255 2024-06-07 21:36:59 +10:00
Bkacjios
f06c72ff14 Should be GL_BGRA 2024-04-27 11:05:40 -04:00
Bkacjios
0facbd16b2 Add conversion from argb1555 to argb4444 2024-04-27 09:53:03 -04:00
Falco Girgis
5fd6e51028 Readded prefetching. 2024-04-10 01:09:29 -05:00
Falco Girgis
54e46822bd Merge remote-tracking branch 'origin/master' into HEAD 2024-04-10 00:40:37 -05:00
Luke Benstead
572fa01b03 Fix edge case 2024-04-06 21:13:17 +01:00
Luke Benstead
6a6d229e4c Fix bug with multiple strips 2024-04-04 06:30:37 +01:00
Luke Benstead
77f4b59aea Fix off-by-one 2024-04-03 22:30:41 +01:00
Luke Benstead
5299badf58 Only submit trailing vertices if the previous triangle was visible 2024-04-03 22:09:35 +01:00
Luke Benstead
f8d1fa3439 Fix some issues with clipping 2024-04-03 21:19:36 +01:00
Luke Benstead
a8f3d86705 Start cleaning up the zclip code 2024-04-02 22:28:36 +01:00
Luke Benstead
d4f6a9636b Fix more freezes and clipping issues 2024-03-19 20:14:01 +00:00
Luke Benstead
d6ac295d18 Fix more potential freezes 2024-03-19 08:14:38 +00:00
Luke Benstead
b353151dca Fix freeze due to bad clipping 2024-03-18 20:56:15 +00:00
Luke Benstead
cf4a557489 Fix CLIP_DEBUG 2024-03-18 20:18:58 +00:00
Luke Benstead
c85aed2d28 Set the opb counter 2024-03-11 19:11:35 +00:00
darcagn
eef1548914 Update matrix.c 2024-02-18 23:34:59 +00:00
darc
d92a5b1b07 Fix GL/matrix.c to work properly on -m4-single 2024-02-17 02:45:37 -06:00
T_chan
bd17c995ea Naomi: don't call flashrom_get_region, as KOS Naomi does not include flashrom functions 2024-02-03 11:42:39 +00:00
T_chan
58f5f52eac avoid reading the flashrom if we know we are in VGA mode 2024-02-02 20:08:04 +00:00
Falco Girgis
04c2fcceae Getting rid of prefetching. 2024-01-31 14:59:58 -06:00
Falco Girgis
d4a83ff235 Fixed a double promotion, put back prefetching. 2024-01-31 14:46:49 -06:00
Falco Girgis
8d1ce547f5 Screwed up prefetch macro. 2024-01-31 02:51:51 -06:00
Falco Girgis
313341f93d Trying without prefetching. 2024-01-31 02:50:01 -06:00
Falco Girgis
4033e9c23a Submitted wrong size to sq_fast_cpy() 2024-01-31 01:59:46 -06:00
Falco Girgis
3420f0d0c6 Adjusting vertex buffers. 2024-01-31 01:56:01 -06:00
Falco Girgis
e8a60bc94a Fixing build issues 2024-01-30 20:43:30 -06:00
Falco Girgis
0be2911e0b Trying to batch shit better. 2024-01-30 20:41:34 -06:00
Falco Girgis
9586eefee9 Next attempt. 2024-01-30 19:55:05 -06:00
Falco Girgis
c25a5cddcb Next attempt. 2024-01-30 19:52:56 -06:00
Falco Girgis
b9cdfb2e35 next try 2024-01-30 19:45:17 -06:00
Falco Girgis
32ecb843a2 next try. 2024-01-30 19:44:40 -06:00
Falco Girgis
709942e69d test. 2024-01-30 19:40:40 -06:00
Luke Benstead
9f3f638a46 Add missing conversion, fixes #77 2024-01-16 22:05:43 +00:00
darc
c314a0ec3a Fix GLdc failing to build on GCC 9.x 2023-12-18 18:53:37 -06:00
Luke Benstead
2b3c083de3 Fix issue with texture twiddling and RGB565 untwiddled textures 2023-11-29 11:25:32 +00:00
Spencer Elliott
79172452f2 Convert GL_SHORT to proper float on conversion 2023-09-26 18:51:29 +00:00
Spencer Elliott
202f546848 Fixed alignment for matrix passed into UploadMatrix4x4 in gluLookAt 2023-09-20 10:18:55 -05:00
Luke Benstead
d054dde785 Fix paletted texture glitch 2023-09-12 21:11:05 +01:00
Luke Benstead
00b4468928 Remove unused function 2023-09-11 20:42:09 +01:00
Luke Benstead
43d64a4957 Fix twiddling issues 2023-09-11 17:27:04 +01:00
Luke Benstead
61e5a7a2a6 More twiddling work 2023-09-10 19:41:25 +01:00
Luke Benstead
3308a57e59 Implement defragmenting the memory 2023-09-08 17:49:46 +01:00
Luke Benstead
db9e1cd424 Fall back to unaligned if there's no more aligned spaced 2023-09-08 09:13:33 +01:00
Luke Benstead
6eb079228e Fix infinite loop 2023-09-06 21:01:37 +01:00
Luke Benstead
7ce01ad93f Fix up paletted textures 2023-09-06 08:01:01 +01:00
Luke Benstead
12bd6f474f Fix issues with the allocator 2023-09-06 07:59:40 +01:00
Luke Benstead
e5a4f4f716 Continue fixing up paletted texture issues 2023-09-03 21:12:11 +01:00
Luke Benstead
4d39e19ed5 Start repairing paletted textures 2023-09-02 21:10:42 +01:00
Luke Benstead
9cedc81850 Fix broken merge 2023-09-01 20:29:24 +01:00
Luke Benstead
5e7b33797d Perf improvements and fixes 2023-09-01 20:25:27 +01:00
Luke Benstead
b19b9d498a Clean up the allocator code 2023-09-01 20:25:21 +01:00
Luke Benstead
36de063756 Allow configuring automatic texture twiddling in glKosInitEx
Defaults to enabled.
2023-09-01 20:23:55 +01:00
Luke Benstead
cfbaea4a46 Don't calculate things twice 2023-09-01 08:52:01 +01:00
Luke Benstead
4b47f6878f Remove yalloc 2023-09-01 08:34:48 +01:00
Luke Benstead
3248499d5a Switch to the new allocator 2023-08-31 21:21:14 +01:00
Luke Benstead
f49a98ab54 Fix allocate and free 2023-08-31 20:49:34 +01:00
Luke Benstead
f278777c0e WIP: Start implementing new allocator 2023-08-31 08:47:00 +01:00
Luke Benstead
77531ca347 Drastically refactor glTexImage2D 2023-08-26 20:34:11 +01:00
Luke Benstead
a05e1b01fa Make glGenerateMipmap the function, and EXT the alias 2023-07-26 20:33:12 +01:00
Luke Benstead
3dcbbdbde6 Add logging 2023-06-09 20:35:00 +01:00
Luke Benstead
92ee4f616d Set mode to PAL@50 if it's a European console without VGA 2023-06-06 21:05:52 +01:00
Luke Benstead
e7574bca1d Fix issues with GL_QUADS 2023-05-31 18:27:17 +01:00
Luke Benstead
026bdeff09 Fix infuriating memory corruption bug 2023-05-20 07:47:39 +01:00
Luke Benstead
f6713bc778 Speed up the software renderer 2023-05-20 07:45:45 +01:00
Luke Benstead
5865d57384 Wait for the store queues to finish when we've uploaded everything 2023-05-20 07:45:16 +01:00
Luke Benstead
1e3896e699 Clean up 2023-05-20 07:44:55 +01:00
Luke Benstead
d81472ef57 Liberally assert stuff 2023-05-17 20:39:58 +01:00
Luke Benstead
462eb40d7a Fix bugs in texture deletion 2023-05-17 20:39:49 +01:00
Luke Benstead
c4c0bf4239 Fix an off-by-one error 2023-05-17 20:39:27 +01:00
Luke Benstead
9037d157d5 Clean up 2023-05-17 20:38:21 +01:00
Luke Benstead
52a0215ed8 Make sure we initialize texture 0. We don't actually use it yet
(binding zero disables texturing) but I believe the spec says that
texture 0 is the "default texture" and is an actual texture object.
2023-05-17 20:36:59 +01:00
Luke Benstead
a5891056db Many bug fixes and optimisations 2023-05-16 13:31:44 +01:00
Luke Benstead
9cffe14ad6 Clean up aligned vector 2023-05-12 20:51:36 +01:00
Luke Benstead
e683b8becb Optimisations 2023-05-11 20:00:13 +01:00
Luke Benstead
452cda5a3b Fix backface culling 2023-04-28 19:49:01 +01:00
Luke Benstead
0f65eab86a Much faster clipping 2023-04-26 20:50:43 +01:00
Luke Benstead
1a678d2c8d Undo some bad changes 2023-04-23 21:00:01 +01:00
Luke Benstead
0923b5c601 Further optimisations 2023-04-23 20:16:15 +01:00
Luke Benstead
2ec7055547 Optimisations 2023-04-23 07:44:09 +01:00
Luke Benstead
9cc52a01fe Better clipping 2023-04-22 20:47:45 +01:00
Luke Benstead
095ebf2790 Fix final bug 2023-04-22 11:37:42 +01:00
Luke Benstead
baa275b41b Fix a bunch of issues with clipping (almost working) 2023-04-21 20:38:21 +01:00
Luke Benstead
72c375f87c Fix some things 2023-04-21 11:39:37 +01:00
Luke Benstead
e54494e995 More clipping work 2023-04-20 20:45:59 +01:00
Luke Benstead
c5ce81a38d WIP: Restructure clipping to be much MUCH faster in the visible case
This currently only works with triangles, anything more and it crashes
due to me not queuing subsequent vertices in the strip correctly
2023-04-19 20:57:44 +01:00
Luke Benstead
307d371c55 Various store queue shinanigans 2023-04-11 20:46:31 +01:00
Luke Benstead
4ad58bea89 Optimise glLoadMatrixf 2023-04-11 20:46:12 +01:00