Commit Graph

461 Commits

Author SHA1 Message Date
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
Hayden Kowalchuk
1c792df5ae fix: texture.c
- add const where needed
- move defines to private.h
- add vq offsets to mipmaplocation
- backend support for mipmap bias
- inline fixups
- have texture.c spit more helpful info on crash
- allow mipmap uploads to actuall complete
- note unused
2020-03-05 15:09:19 -05:00
Hayden Kowalchuk
35bbab8eee feat: state.c add GL_POLYGON_OFFSET, add mipmap bias
- implement simple GL_POLYGON_OFFSET implementation
- add mipmap bias as per OpenGL spec
- CLAMP gave warnings comparing unsigned to < 0
2020-03-05 15:04:44 -05:00
Hayden Kowalchuk
ddf61363a1 feat: add trimmed moop math header 2020-03-05 14:58:06 -05:00
Hayden Kowalchuk
a285c42c5f feat: make profiler compile time define 2020-03-05 14:57:51 -05:00
Hayden Kowalchuk
5a89fbcd7d fix: private.h
- add convenience defines
- note struct ordering and padding
- add const
2020-03-05 14:57:30 -05:00
Hayden Kowalchuk
bf00aca843 chore: lighting.c remove unused, add moop math
- remove unused bool
- move math func to header
- reorder const
2020-03-05 14:56:16 -05:00
Hayden Kowalchuk
87874f0f1f chore: immediate.c unused note 2020-03-05 14:54:07 -05:00
Hayden Kowalchuk
c842b6de48 chore: matrix.c unused notation, memcpy changes
- moved to memcpy4
- removed unused arrays
- moved to proper glDepthRangef signature
- rewrote gluLookAt for current and future gcc
2020-03-05 14:53:48 -05:00
Hayden Kowalchuk
651351f087 fix: glu.c changed to float, reordered math 2020-03-05 14:50:14 -05:00
Hayden Kowalchuk
c9dc5f8f8b fix: framebuffer.c marking inline, unused notation 2020-03-05 14:49:23 -05:00
Hayden Kowalchuk
e587519e14 fix: draw.c inline changes, and unused notation
- remove redundant call to isLightingEnabled
- rewrote vec3f normalize call
- moved checking for fastpath until we need it
2020-03-05 14:48:37 -05:00
Hayden Kowalchuk
eb351f519a fix: config.h moved to #pragma once
- whitespace fixes
2020-03-05 14:45:05 -05:00
Hayden Kowalchuk
c0d4e26533 feat: clip.c changed to moop math
- fmac where it was intended
2020-03-05 14:44:41 -05:00
Luke Benstead
1d1a980f16 Fix memory leak (thanks @HaydenKow) 2020-03-02 19:20:42 +00:00
Luke Benstead
7e7d90b606 Inline some things 2020-02-29 13:25:30 +00:00
Luke Benstead
937ad56c26 Fix out of bounds read 2020-02-29 09:48:52 +00:00
Luke Benstead
43a8db9e9d Remove divisions 2020-02-29 09:48:51 +00:00
Luke Benstead
a3b1ca66c3 Remove divisions 2020-02-22 21:00:33 +00:00
Luke Benstead
1520226174 Fix directional lighting 2020-02-22 20:33:23 +00:00
Luke Benstead
7fecb7a3a5 Fix directional lights 2020-02-21 14:51:05 +00:00
Luke Benstead
497ba28b4c Replace pow function 2020-02-20 09:44:45 +00:00
Luke Benstead
59118cc07d Restore support for glColormaterial 2020-02-19 10:45:31 +00:00
Luke Benstead
a502f92ded More lighting improvements 2020-02-19 09:30:26 +00:00
Luke Benstead
24fe33358c Faster floor 2020-02-17 20:49:40 +00:00
Luke Benstead
4ebd112784 Attempt to fix specular 2020-02-17 20:29:12 +00:00
Luke Benstead
28f77969ea Avoid overflows 2020-02-17 19:09:21 +00:00
Luke Benstead
29cbdc75b7 Fix a copy-paste bug (thanks @freakdave) 2020-02-17 19:05:57 +00:00
Luke Benstead
ab5dc26e33 Only calculate specular if there is an exponent 2020-02-17 19:05:18 +00:00
Luke Benstead
93be3ab757 Use super-simple floor function 2020-02-17 19:02:45 +00:00
Luke Benstead
6516f0f6f5 Prevent overflowing colours 2020-02-17 10:38:30 +00:00
Luke Benstead
5183d7b2d4 Fix strict aliasing issues 2020-02-17 10:31:26 +00:00
Luke Benstead
ab69030b1e Fix lighting colours 2020-02-17 10:21:33 +00:00
Luke Benstead
35842ad300 Faster FPOw implementation 2020-02-17 10:12:15 +00:00
Luke Benstead
2178d2f6d7 Improve lighting performance
This is (another) first pass at improving the performance of the lighting code.
As part of this refactor *we have lost glColorMaterial*. I need to figure out a
nice way of implementing it without slowing the common code path.
2020-02-16 20:36:49 +00:00
Luke Benstead
dafc56c396 Add new file 2020-01-01 14:30:03 +00:00
Luke Benstead
eeb95193ac Fix overflow 2019-12-27 19:35:18 +00:00
Luke Benstead
b2a2e71795 Much faster lighting implementation 2019-12-27 10:36:30 +00:00
Luke Benstead
a280dac778 Performance improvements 2019-11-30 10:07:41 +00:00
Luke Benstead
62b53f0fb1 Simplify swapVertex 2019-11-30 10:07:23 +00:00
Luke Benstead
e61369674c Change where txr.alpha is set 2019-11-30 10:07:04 +00:00
Luke Benstead
e97dd466aa Fix depth test functions 2019-11-30 10:06:46 +00:00
Luke Benstead
cdfb805dd9 Implement a fast path for glDrawElements 2019-11-27 20:08:29 +00:00
Luke Benstead
140eec3d92 glNormalPointer should accept GL_INT_2_10_10_10_REV, not GL_UNSIGNED_INT_2_... 2019-11-27 09:10:10 +00:00
Luke Benstead
11cd54bc0b Add partial support for GL_ARB_vertex_type_2_10_10_10_rev and also GL_NORMALIZE 2019-11-18 17:39:09 +00:00
Luke Benstead
fd3e7cde6c Improve the light sample + tweaks 2019-11-14 21:12:27 +00:00
Luke Benstead
8654ff24a2 Add light sample and fix lighting bug 2019-11-14 10:04:15 +00:00
Luke Benstead
9f3adc099a Fix a bad reference 2019-11-12 17:28:39 +00:00
Hayden Kowalchuk
805c68e973 remove single minus sign 2019-10-04 10:29:54 -04:00
Luke Benstead
f59e9bf56e Implement GL_ARB_vertex_array_bgra 2019-09-30 21:59:11 +01:00
Luke Benstead
d7e424a766 Initial implementation of a fast-path (currently some corruption) 2019-09-30 09:14:43 +01:00
Luke Benstead
2c5b71b2b0 Implement mipmap generation for paletted textures 2019-09-26 09:17:07 +01:00
Luke Benstead
08ba39f6d1 Fix twiddled mipmap generation 2019-09-25 13:45:08 +01:00
Luke Benstead
2e1e28ce51 More mipmap generation fixes 2019-09-25 13:32:13 +01:00
Luke Benstead
36a3f7082f Implement mipmap generation for twiddled textures 2019-09-25 13:10:34 +01:00
Luke Benstead
e14db20a41 Fix a bunch of mipmap issues 2019-09-24 21:26:17 +01:00