Commit Graph

59 Commits

Author SHA1 Message Date
Hayden K
61f9ff5122 merge upstream 2019-03-13 12:17:43 -04: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
Hayden K
edbff32340 - changes to allocation and mem mgmt
- Replace some mem* functions with store queues
- fix capacity of AlignedVector to 32 intervals
- turn profiler fully compile only
2019-03-12 23:47:54 -04:00
Hayden K
8cfa97632f Finalize changes to profiler 2019-03-12 18:12:38 -04:00
Hayden K
9793e1cfd9 Change profile to compile time, but still allow enable or disabled 2019-03-12 10:36:35 -04:00
Hayden K
ba211c3a50 General merge and repair
- Fix defines
- Fix POLYGON logic
- change static func names to macro
- Fix checkEnum
2019-03-10 21:02:24 -04: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
Luke Benstead
cdef5972f5 Fix bug when clipping triangle strips 2018-07-15 19:48:56 +01:00
Luke Benstead
81b52e7a18 Finish initial pass at a zclipping implementation 2018-07-14 21:54:43 +01:00
Luke Benstead
5387734e6c Implement z clipping for the single-vertex case 2018-07-10 19:48:25 +01:00
Luke Benstead
e90b5e424a Fix up triangle strip rendering 2018-07-09 19:00:50 +01:00