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