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
397d9d2915
More perf tweaks
2020-05-08 09:59:32 +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
c3ae9bef64
Fix up depth functions and update sh4_math
2020-04-05 21:12:52 +01: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
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
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
Luke Benstead
7e7d90b606
Inline some things
2020-02-29 13:25:30 +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
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
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
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
8f84cbb142
Various cleanups from @mrneo
2019-09-22 20:52:58 +01:00
Luke Benstead
e39632bcc4
Refactor matrix management and clipping
2019-09-14 20:51:47 +01:00
Luke Benstead
e7f2ad7dcc
Optimise multitexture submission
2019-09-09 09:36:06 +01:00
Luke Benstead
3af18cb514
Refactor the perspective divide to work with glDepthRange
2019-09-08 17:27:56 +01:00
Luke Benstead
4170655a88
If someone attempts to use lines, just log an error and render nothing (for now)
2019-09-06 09:34:55 +01:00
Luke Benstead
8e59b9adb5
Make sure we clamp floating point colours to avoid overflows
2019-09-04 17:59:57 +01:00
Luke Benstead
b82d28130d
Rewrite the lighting code
2019-08-01 20:21:13 +01:00
Luke Benstead
a8d420299c
Correctly throw GL_INVALID_VALUE for invalid sizes
2019-04-14 08:51:37 +01:00
Luke Benstead
6cfb4e437c
Handle GL_DOUBLE like GL_FLOAT everywhere
2019-04-14 07:17:27 +01:00
Luke Benstead
e876dcb14f
Massively optimise GL_POLYGON/GL_TRIANGLE_FAN
2019-03-29 11:26:19 +00:00
Luke Benstead
a75ced3fef
Speed up immediate mode submission
2019-03-29 11:26:19 +00:00
Luke Benstead
2e33dc0718
Add missing profiler_pop(). Fixes #36
2019-03-29 11:26:19 +00:00
Luke Benstead
41ee67cbf1
Code cleanup
2019-03-28 13:10:53 +00:00
Luke Benstead
e15a47b6fb
Use the list stored on the SubmissionTarget
2019-03-28 13:09:36 +00:00
Luke Benstead
3cd15de332
Add additional traces
2019-03-28 13:09:04 +00:00
Luke Benstead
8982444406
Consistently allow > 16384 verts
2019-03-28 13:07:53 +00:00
Luke Benstead
cd04784c33
Fix memory corruption
2019-03-28 13:05:13 +00:00
Luke Benstead
30f8564298
Fix glDrawElements
2019-03-27 09:39:06 +00:00
Luke Benstead
434f316526
Switch pointer comparisons for counters
2019-03-26 09:09:07 +00:00
Luke Benstead
d44a24d339
Add assertions
2019-03-25 19:43:03 +00:00
Luke Benstead
bdeb9cd45a
Restore clipping case that apparently can happen after all
2019-03-25 19:04:50 +00:00
Luke Benstead
493592ea30
Tweaks
2019-03-25 16:07:27 +00:00
Luke Benstead
f712f00602
Don't do anything if there are no vertices submitted
2019-03-25 16:06:41 +00:00
Luke Benstead
4355d0f224
Add additional profiler checkpoints
2019-03-25 16:06:28 +00:00
Luke Benstead
8fd90bd040
Switch back to normal swapping
2019-03-25 12:38:34 +00:00
Luke Benstead
0e71588e6c
Try to optimise the quad generation
2019-03-25 10:33:05 +00:00
Luke Benstead
671881eafd
Optimise GL_POLYGON rendering
2019-03-25 09:48:58 +00:00
Luke Benstead
291e82d18a
Rename ClipVertex -> Vertex
2019-03-25 09:44:59 +00:00
Luke Benstead
bd0ef4cba3
Demo multitexturing in zclip, default to GL_MODULATE on multitexture
2019-03-24 14:09:52 +00:00
Luke Benstead
5e6927d9a1
Huge refactor of the drawing code
2019-03-24 08:09:02 +00:00
Luke Benstead
3cb24c4fb4
Rename some functions
2019-03-14 13:16:55 +00:00
Luke Benstead
e9c8836181
Huge cleanup of glDrawElements handling
2019-03-14 13:15:56 +00:00
Luke Benstead
1ee16d8ee1
Slight optimisation
2019-03-13 17:38:42 +00:00
Luke Benstead
d9539da841
Optimisations
2019-03-13 15:35:42 +00:00
Luke Benstead
8101e43e90
Fix winding issue
2019-03-13 15:19:28 +00:00
Luke Benstead
5bf58ec1a8
Refactor array submission to be (hopefully) faster
2019-03-13 11:24:35 +00:00
Luke Benstead
25bd3aedc8
Increase the max polygon size to 32
2019-03-10 16:10:59 +00:00
Luke Benstead
b00b65af54
Fix issues with triangle fans / polygons
2019-03-10 12:24:27 +00:00
Luke Benstead
df3cdf0ebb
Fix drawing polygons. Fixes #35
2019-03-07 21:41:25 +00:00
Luke Benstead
d7342fa0c0
Automatically twiddle non-twiddled palette data
2019-03-07 21:21:30 +00:00
Luke Benstead
d89997a277
Simplify the element drawing
2019-03-04 20:41:33 +00:00
Luke Benstead
5f7fef2cf9
Prefix non-static private functions with '_gl'
2019-03-03 19:06:01 +00:00
Luke Benstead
926214bd82
Prefix some non-static private functions with '_gl'
2019-03-03 19:02:25 +00:00
Luke Benstead
df44c0ea73
More performance work and fix bugs introduced in last commit
2018-10-09 09:27:53 +01:00
Luke Benstead
18759422ea
Optimise non-indexed rendering paths
2018-10-08 22:03:50 +01:00
Luke Benstead
52e1be498e
Keep header pointer updated. Fixes #25 (hopefully...)
2018-09-19 17:11:56 +01:00
Luke Benstead
17c9699966
More clipping fixes
2018-09-08 20:53:28 +01:00
Luke Benstead
06b065dc7e
Return the correct count from clip
2018-09-06 20:08:55 +01:00
Luke Benstead
93af697092
Don't include the header in startOffset
2018-09-06 20:00:18 +01:00
Luke Benstead
d9fa69c288
Fix invalid memory access bug
2018-09-06 19:46:04 +01:00
Luke Benstead
b4539443f5
Allow toggling debug logging
2018-09-06 19:45:52 +01:00
Luke Benstead
af54c96ff4
Implement new culling algorithm, still some issues when GL_CULL_FACE is enabled
2018-09-06 19:19:00 +01:00
Luke Benstead
517d21b487
Begin implementing a new clipping algorithm
2018-09-03 21:48:42 +01:00
Luke Benstead
8b3bf5a579
Fix lighting wrapping
2018-08-27 21:35:07 +01:00
Luke Benstead
b29303fb6c
Implement glColorMaterial
2018-08-22 09:24:49 +01:00
Luke Benstead
21f8f9d855
Properly restore state after glEnd
2018-08-21 16:15:43 +01:00
Luke Benstead
9b0322ce8a
Properly restore enabled client state when using immediate mode
2018-08-21 16:08:06 +01:00
Luke Benstead
edae8a9166
Properly pop active client texture in immediate mode
2018-08-21 15:50:59 +01:00
Luke Benstead
25de48b3f6
Fix a bug where only one texture would bind
2018-08-21 15:50:41 +01:00
Luke Benstead
8b834ac3f1
Avoid an additional copy of every vertex. Fixes #22
2018-08-21 09:37:19 +01:00
Luke Benstead
bccd1aa788
Start refactoring the submission process
2018-08-20 21:19:12 +01:00
Luke Benstead
80c65d4aff
Remove conditional header sending, it's slightly slower
2018-08-20 20:34:11 +01:00
Luke Benstead
da97483eee
Switch to using 4-byte colours internally rather than floats
...
These are stored in BGRA format so they can be directly cast to a uint32_t to get the
correct format for the argb param in pvr_vertex_t (yay endianess)
This results in a performance improvement as it reduces the data requirements.
2018-08-20 09:28:30 +01:00
Luke Benstead
25e4518501
Performance optimisations
2018-08-19 21:10:42 +01:00
Luke Benstead
348e09b4aa
Further optimisations
2018-08-17 21:40:27 +01:00
Luke Benstead
ba66608a96
Add a basic profiler and optimise some code
2018-08-16 17:51:15 +01:00
Luke Benstead
021237f258
Fix a number of issues with texture loading
2018-08-14 09:49:31 +01:00
Luke Benstead
6942e597f4
Untested multitexture implementation
2018-08-04 21:00:26 +01:00
Luke Benstead
0bf023b8df
Fix a bug where headers weren't sent to a list
2018-08-02 19:56:50 +01:00
Luke Benstead
9371a8164f
Don't send headers unnecessarily
2018-08-01 20:41:59 +01:00
Luke Benstead
39ac10af00
Simplify colour handling
2018-08-01 12:00:56 +01:00
Luke Benstead
bebca59796
Allow toggling z clipping
2018-08-01 11:32:07 +01:00
Luke Benstead
31e666c77a
Implement support for GL_UNSIGNED_INT indices
2018-08-01 11:08:51 +01:00
Luke Benstead
47d3c0f478
Minor optimisations
2018-08-01 09:57:44 +01:00