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
Luke Benstead
8e60b18f29
Merge branch 'add-new-cubes-sample' into 'master'
...
Add new cubes sample
See merge request simulant/GLdc!103
2023-04-08 20:32:18 +00:00
David Reichelt
a4b778063a
Make sure ZNEAR_CLIPPING_ENABLED is defined in software renderer
2023-04-08 20:00:33 +00:00
Luke Benstead
6ee9a823c1
Don't update lights unnecessarily
2023-03-23 20:01:41 +00:00
Luke Benstead
0c5f941098
Optimise nearz clipping
2023-03-17 20:40:55 +00:00
Luke Benstead
300f2a611e
Optimise state management
2023-03-17 20:40:45 +00:00
Luke Benstead
e5c6fefcd9
Optimisations
2023-03-16 21:24:12 +00:00
Luke Benstead
8789d6557e
Huge refactor of internal state
2023-03-07 21:27:48 +00:00
Luke Benstead
8beb295c6b
Refactor state management
2023-03-07 10:19:09 +00:00
Luke Benstead
a9f3e3a744
Fix alignments
2023-03-06 13:44:17 +00:00
Luke Benstead
f0a3465486
Use Moops memcpy
2023-03-05 21:16:12 +00:00
Luke Benstead
b08bbebf12
Mipmap fix
2023-03-05 20:26:15 +00:00
Luke Benstead
8fff6ee1aa
Treat GL_CLAMP_TO_EDGE the same as GL_CLAMP
2022-12-09 20:17:46 +00:00
Luke Benstead
ac86504549
Clean up
2022-12-03 20:01:43 +00:00
Luke Benstead
d78c6275bb
Increase tri-strip length
2022-12-03 14:00:24 +00:00
Luke Benstead
69a2310a3c
Default to small culling to avoid artifacts
2022-12-03 13:46:08 +00:00
Luke Benstead
5296f5c79c
Optimise perspective divide assuming W is always positive
2022-11-05 20:28:24 +00:00
Luke Benstead
b6593acc83
Switches instead of if ladders
2022-11-04 19:24:12 +00:00
Luke Benstead
8ca70a2920
Initialize submission target on boot to save runtime cost
2022-11-04 19:23:50 +00:00
Luke Benstead
4d8c507706
Fix a bug where glXPointer functions would do unnecessary work
2022-11-04 19:23:06 +00:00
Luke Benstead
a248f3a50c
Faster inversion
2022-11-03 20:24:38 +00:00
Luke Benstead
6be3e6185d
Faster inversion
2022-09-14 19:20:24 +01:00
Luke Benstead
3caaf798e7
Undo double transform
2022-08-25 21:25:52 +01:00
Luke Benstead
0b62ac8673
Clean ups and optimisations
2022-08-25 21:24:08 +01:00
Luke Benstead
4edf8ce04d
Use the direct texture path for vbuffer uploads
2022-08-25 20:01:54 +01:00
Luke Benstead
c793e1f35d
Don't submit empty lists
2022-08-24 20:31:55 +01:00
Luke Benstead
9d9a502e96
Remove old clipping
2022-06-13 20:16:46 +01:00
Luke Benstead
3d69003c5f
Allow disabling near-z
2022-06-13 20:16:37 +01:00
Luke Benstead
99ae70a72b
Make the software implementation use the same clipping code
2022-06-13 20:06:04 +01:00
Luke Benstead
6fb15ee4c7
Fix some winding issues
2022-06-13 20:05:54 +01:00
Luke Benstead
16f6100afa
Fix issues and optimise
2022-06-12 19:53:26 +01:00
Luke Benstead
4827fd4c5b
Fix various clipping glitches
2022-06-11 21:27:09 +01:00
Luke Benstead
53c54997c3
Fix a number of issues!
2022-06-10 20:27:21 +01:00
Luke Benstead
dbb94d0cb9
Move clipping into list submission
2022-06-09 13:07:51 +01:00
Luke Benstead
193f0bdc49
Cleanup
2022-05-21 20:16:50 +01:00
Luke Benstead
9a50917062
Fix rgba vs argb inversion
2022-05-21 20:16:34 +01:00
Luke Benstead
fe7f9cbed0
Fix crash when generating mipmaps on 4bpp textures
2022-05-07 12:57:45 +01:00
Luke Benstead
d0e6b56414
Restore validation of the internalFormat (even though it's unused)
2022-05-04 21:00:15 +01:00
Luke Benstead
dc69a81da1
Remove unused code. Various clean ups
2022-05-04 20:53:18 +01:00
Luke Benstead
411d4f0e4f
Add a missing space
2022-05-04 20:45:21 +01:00
Luke Benstead
dd7bb47ffb
Merge remote-tracking branch 'ozzyouzo/master' into paletted-textures
2022-05-04 20:39:39 +01:00
OzzyOuzo
c48bbfe07c
Fixed glMultMatrixf(...)
...
Added _glResetSharedPalettes
2022-05-03 16:12:27 +03:00
Luke Benstead
4e8ff2f8e4
Fix texture issues
2022-04-26 20:34:14 +01:00
T_chan
53eb2e2a51
Add gluBuild2DMipmaps()
2022-02-01 07:25:54 +00:00
T_chan
621982d14e
Add glGetTexImage stub for portability
2022-01-31 08:29:00 +00:00
Luke Benstead
4ad2841809
Merge branch 'Add_glTexCoord1f_functions' into 'master'
...
Add glTexCoord1f() and glTexCoord1fv()
See merge request simulant/GLdc!80
2022-01-19 08:05:59 +00:00
T_chan
9b6c2bbb21
Add glTexCoord1f() and glTexCoord1fv()
2022-01-18 21:40:31 +00:00
Luke Benstead
f9af9af567
Merge branch 'Add_glPolygonMode_Stub' into 'master'
...
add glPolygonMode() stub
See merge request simulant/GLdc!79
2022-01-18 21:38:31 +00:00
Luke Benstead
8d51579870
Merge branch 'Add_Stencil_Functions_Stubs' into 'master'
...
Add stubs for Stencil functions glStencilFunc() and glStencilOp()
See merge request simulant/GLdc!78
2022-01-18 21:37:56 +00:00
T_chan
50aee8a92c
add glPolygonMode() stub
2022-01-18 21:28:07 +00:00
T_chan
66d87fb845
Add stubs for Stencil functions glStencilFunc() and glStencilOp()
2022-01-18 20:29:27 +00:00
Luke Benstead
11860ba6e1
Merge branch 'add_glGetTexParameterfv_stub' into 'master'
...
Add glGetTexParameterfv() stub to increase compatibility
See merge request simulant/GLdc!76
2022-01-18 19:25:39 +00:00
Luke Benstead
3b320bf874
Merge branch 'add_glTexParameterf' into 'master'
...
expose and correct glTexParameterf()
See merge request simulant/GLdc!75
2022-01-18 19:25:20 +00:00
T_chan
d594eff3a6
Add glGetTexParameterfv() stub to increase compatibility
2022-01-18 17:38:14 +00:00
T_chan
0d60b318da
expose and correct glTexParameterf()
2022-01-18 17:23:30 +00:00
T_chan
d9a2ed7892
Add glColor4ubv() to increase compatibility of GLdc
2022-01-18 17:06:26 +00:00
OzzyOuzo
1a456cb1a7
16bit palette color format support, extended 64 shared palette slots (4bpp), GL_OES_compressed_paletted_texture support
...
GL_ERROR generated when texture size > 1024
2021-12-03 09:32:53 +02:00
OzzyOuzo
8caee68df5
added _glFreePaletteSlots(..)
2021-11-30 19:23:49 +02:00
OzzyOuzo
148962254a
4bpp texture palette support, modified paletted_pcx sampled (USE_16C_PALETTE)
2021-11-18 12:04:46 +02:00
Luke Benstead
b710a619d5
Fix issues with bilinear mipmapping
2021-10-25 19:04:58 +01:00
Luke Benstead
e225f54386
Fix bug when glVertexPointer etc. is called without client state enabled
2021-10-02 20:01:44 +01:00
Luke Benstead
5df2190536
Fix various bugs with non-fastpath rendering
2021-10-02 14:43:23 +01:00
Luke Benstead
7d82649a62
Be sure to restore the fast path flag in glEnd
2021-10-01 21:02:13 +01:00
Luke Benstead
e26fae6d2e
Remove debug logging
2021-09-18 14:37:28 +01:00
Luke Benstead
dd16530a1f
Fix an assertion in debug, and building on PC
2021-09-18 14:36:47 +01:00
Luke Benstead
cf996b9e80
Add tri and quad fast paths
2021-09-14 19:36:42 +01:00
Luke Benstead
7992c89758
Fix perf hit
2021-09-14 09:20:00 +01:00
Luke Benstead
9c2907e41d
Small optimisation
2021-09-13 19:57:46 +01:00
Luke Benstead
4ee9c3ee64
More optimisations
2021-09-13 19:35:53 +01:00
Luke Benstead
adce2c7538
Perf tweaks
2021-09-13 12:57:52 +01:00
Luke Benstead
52ff506397
Only recalc the fast path when pointers change
2021-09-13 10:40:25 +01:00
Luke Benstead
66d09e7d77
Error cleanup and immediate mode perf improvements
2021-09-13 10:29:04 +01:00
Luke Benstead
4adc49cd40
Optimisations
2021-09-12 15:04:52 +01:00
Luke Benstead
cb96769074
Fix incorrect usage of memset
2021-09-04 13:36:59 +01:00
Luke Benstead
3332dfa74a
Handle running out of PVR memory correctly
2021-09-04 12:14:31 +01:00
Luke Benstead
fc947c49f8
Performance improvements
2021-05-25 20:40:43 +01:00
Luke Benstead
f736332eb8
Always make sure we send opaque polys with one/zero blending
2021-05-23 20:58:29 +01:00
Luke Benstead
a79c1dd753
Set the right depth mode when autosort is on
2021-05-23 13:19:54 +01:00
Luke Benstead
cde0abd18d
Force the correct depth and blend modes with PT polys
2021-05-23 13:15:07 +01:00
Luke Benstead
0789ea99b3
Disable fast mode by default
2021-05-23 13:06:11 +01:00
Luke Benstead
f0383f8e1c
Remove broken check
2021-05-16 20:33:49 +01:00
Luke Benstead
5ea4313d59
Fix software renderer
2021-05-14 21:58:54 +01:00
Luke Benstead
06529d4fe7
Perf tweaks
2021-05-08 14:38:55 +01:00
Luke Benstead
cb9d699576
Use invW as the Z axis (abandon standards compliance for speed)
2021-05-01 14:32:16 +01:00
Luke Benstead
e67f1fb8f9
Don't transform the vertex again incorrectly. Optimise
2021-04-30 07:58:57 +01:00
Luke Benstead
d05c5b8353
Remove incorrect warning
2021-04-30 07:52:12 +01:00
Luke Benstead
fcbb6418d2
Perf improvements
2021-04-26 16:16:25 +01:00
Luke Benstead
5fc77887d0
Remove unnecessary branches
2021-04-25 15:27:04 +01:00
Luke Benstead
16243acd7b
More immediate mode optimisation
2021-04-25 14:21:09 +01:00
Luke Benstead
1b6f543fab
Slight optimisation
2021-04-25 13:33:24 +01:00
Luke Benstead
40678836e0
Refactor viewport handling
2021-04-25 13:05:56 +01:00
Luke Benstead
1f42838992
Fix incorrect glColorPointer stride
2021-04-23 09:09:25 +01:00
Luke Benstead
28c14fdb0e
Add fast path for glDrawElements
2021-04-22 17:48:15 +01:00
Luke Benstead
df2d7a210c
New Fast Path
2021-04-21 16:23:43 +00:00
Luke Benstead
ea25251944
Optimisations
2021-04-20 16:08:58 +01:00
Luke Benstead
faf24ac61d
Small optimisations
2021-04-20 09:07:14 +01:00
Luke Benstead
38c7967ae2
Clean up some things
2021-04-19 21:23:23 +01:00
Luke Benstead
165318ea76
Use MATH_fmac
2021-04-19 21:12:46 +01:00
Luke Benstead
1a849c8b1c
Minor optimisation
2021-04-19 21:08:09 +01:00
Luke Benstead
a3c4aaac8f
Don't set a zero zclip value
2021-04-19 20:51:22 +01:00
Luke Benstead
b480c0a01f
Fix optimisations
2021-04-19 20:21:46 +01:00
Luke Benstead
eb35d607b9
Immediate mode performance optimisation
2021-04-19 10:53:08 +01:00
Luke Benstead
778e9c4e64
Optimise CompilePolyHeader
2021-04-18 21:50:41 +01:00
Luke Benstead
ce9f3677f6
Immediate mode optimisation
2021-04-18 21:33:23 +01:00
Luke Benstead
7bcbb86e80
Align to 32 byte
2021-04-18 13:57:28 +01:00
Luke Benstead
9ca68de427
Force 32-byte allocations
2021-04-18 13:57:00 +01:00
Luke Benstead
1172086378
Add debug logging and assertions to make sure we use sq_cpy aligned
2021-04-15 21:31:48 +01:00
Luke Benstead
f03f0e8f04
Implement glScissor correctly
2021-04-14 21:38:33 +01:00
Luke Benstead
30d76eada9
Fix texture issues
2021-04-13 21:28:59 +01:00
Luke Benstead
8fe7a8afdf
Add missing header
2021-04-10 12:58:23 +01:00
Luke Benstead
fe616028bb
X86
2021-04-09 15:24:47 +00:00
Luke Benstead
8408a36629
Implement GL_ATI_meminfo
2021-02-20 15:10:35 +00:00
Luke Benstead
9ed6c0209e
Defrag and retry if allocating texture memory fails
2021-02-20 15:04:40 +00:00
Luke Benstead
f9b7cd7985
Add a custom extension to query and defragment texture memory
2021-02-19 21:28:31 +00:00
Luke Benstead
425a0c2af1
Switch to yalloc
2021-02-19 07:08:58 +00:00
Luke Benstead
ddf23974bd
Apply tweaks to handle larger addresses (thanks @HaydenKow)
2021-02-18 20:55:03 +00:00
Luke Benstead
8a02ee55cc
Add upstream yalloc allocator
2021-02-18 20:46:25 +00:00
Andress Barajas
a37ae364f0
Flip Y
2020-10-06 22:44:09 -07:00
Andress Barajas
ee8df14426
Fix origin bot-left of glViewport
2020-10-06 20:07:11 -07:00
Andress Barajas
700b0c6389
Do NULL check before access
2020-10-03 16:36:54 -07:00
Andress Barajas
e7d2042916
Fixed glRotate
2020-10-02 19:31:22 -07:00
Luke Benstead
44155632c1
Add version template
2020-09-28 12:52:53 +00:00
Luke Benstead
e2d0ae25a0
Delete version.h
2020-09-28 12:52:33 +00:00
Luke Benstead
e54db74914
Add version template
2020-09-28 12:52:23 +00:00
Luke Benstead
7d4207eddb
Fix errors with final Z coordinate
2020-05-24 09:55:13 +01:00
Luke Benstead
d932811be4
Small optimisation
2020-05-22 07:32:02 +01:00
Luke Benstead
9bfb0c6eea
Fix bug from last commit, don't apply lights at all if none are enabled
2020-05-22 07:20:08 +01:00
Luke Benstead
0a92240c64
More lighting optimisations
2020-05-21 20:14:43 +01:00
Luke Benstead
af82f7632f
Fix default texture modulation
2020-05-19 21:27:34 +01:00
Luke Benstead
d6a22582f9
Small cleanup
2020-05-16 09:30:25 +01:00
Luke Benstead
29658ef3de
Revert to more traditional GL depth values to fix ortho
2020-05-15 20:43:55 +01:00
Luke Benstead
01cb46a99e
Small tweak to lighting code
2020-05-13 21:04:24 +01:00
Luke Benstead
aa7320ab63
Use shifted invZ for Z to keep precision
2020-05-13 20:59:40 +01:00
Luke Benstead
2b9d8520bc
Lighting perf improvements
2020-05-11 20:34:09 +01:00
Luke Benstead
d01b9fa85a
Shift the range of final depth values so the minimum is 0.2 (KOS bgpoly depth)
2020-05-10 20:53:16 +01:00
Luke Benstead
c66f34cc62
Set Alpha flags when ALPHA_TEST is enabled
2020-05-10 13:49:45 +01:00
Luke Benstead
8e854ddef7
Fix overbright lighting
2020-05-09 06:33:28 +01:00
Luke Benstead
aa20bb20b2
Performance tweaks
2020-05-08 19:42:31 +01:00
Luke Benstead
1289a06279
Undo fmac which worked out slower
2020-05-08 13:53:56 +01:00
Luke Benstead
ab6725c5e3
Restore MAX_LIGHTS to 8
2020-05-08 10:00:03 +01:00
Luke Benstead
397d9d2915
More perf tweaks
2020-05-08 09:59:32 +01:00
Luke Benstead
8974051e38
Don't use memcpy when copying colours
2020-05-08 09:49:01 +01:00
Luke Benstead
cca09a298e
Move enabled state onto the LightSource
2020-05-08 07:19:56 +01:00
Luke Benstead
814f228db9
Lighting optimisations
2020-05-07 20:58:24 +01:00
Luke Benstead
0a14db39a8
Improve the performance of _readVertexData1i3f
2020-05-06 20:15:28 +01:00
Luke Benstead
b3ded78897
Fix glDrawElements
2020-05-06 15:23:37 +01:00
Luke Benstead
177ad28219
More simplification
2020-05-06 08:42:09 +01:00
Luke Benstead
2c67560289
Refactor all the user-data reading code
2020-05-05 21:52:37 +01:00
Luke Benstead
40661e6823
Fix orthographic depth values (?)
2020-05-04 21:24:27 +01:00
Luke Benstead
5407e9643e
Hacky fix for ortho projections
2020-04-07 20:44:29 +01:00
Luke Benstead
8add817086
Fix depth issues
2020-04-06 20:50:26 +01:00
Luke Benstead
f3b1848879
Merge branch 'master' of https://gitlab.com/simulant/GLdc
2020-04-05 21:13:07 +01:00
Luke Benstead
c3ae9bef64
Fix up depth functions and update sh4_math
2020-04-05 21:12:52 +01:00
Ben Baron
0beaba5aeb
Fixed Makefile GL/version.h (echo -e to printf)
...
The `echo -e` command is non-standard, and ends up printing a -e at the top of the version.h file. Switching it to `printf` works correctly and is the "correct" command to work in all shells.
I also removed the GL/version.h file from the git cache, as it's in .gitignore but seems to have been accidentally checked in.
2020-04-05 13:47:32 -05:00
Luke Benstead
cf90d10cb9
Fix clipping 2020
2020-04-03 19:12:42 +00:00
Luke Benstead
4292304df1
Implement glClearDepth
2020-03-24 13:58:44 +00:00
Luke Benstead
5c980d2183
Fix depth funcs (for now)
2020-03-23 15:22:29 +00:00
Luke Benstead
e21b7a0b9c
Fix clipping
2020-03-23 13:44:24 +00:00
Luke Benstead
906423db08
Make sure we don't go beyond the bounds of PVR
2020-03-22 21:09:18 +00:00
Luke Benstead
a1eda16a26
Update SH4_math.h and stop storing the near plane
2020-03-21 21:21:46 +00:00
Luke Benstead
f2a39a4229
Implement true clipping on the near plane
2020-03-20 21:15:05 +00:00
Luke Benstead
03bc758be7
Allow enabling fsaa via the GLdcConfig struct
2020-03-18 20:47:12 +00:00
Luke Benstead
921ef0c6a1
Fix clip distance
2020-03-17 20:32:14 +00:00
Hayden Kowalchuk
f92030c0cb
feat: error.c have PrintError reset error cond
...
- allows to continue finding errors instead of spamming the same error
2020-03-05 15:14:26 -05:00