Commit Graph

538 Commits

Author SHA1 Message Date
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