Luke Street
e27970ec8c
Full GPU vertex parsing
2026-03-18 23:58:00 -06:00
Jeffrey Crowell
818b750d71
avoid redundant storage uploads and extra alignment padding ( #55 )
...
was hitting this crash:
(lldb) bt
* thread #1 , queue = 'com.apple.main-thread', stop reason = signal SIGABRT
* frame #0 : 0x00000001927915b0 libsystem_kernel.dylib`__pthread_kill + 8
frame #1 : 0x00000001927cb888 libsystem_pthread.dylib`pthread_kill + 296
frame #2 : 0x00000001926d0850 libsystem_c.dylib`abort + 124
frame #3 : 0x00000001060400f8 libgame.dylib`aurora::ByteBuffer::resize(this=0x0000000106b97358, size=8488606, zeroed=false) at common.hpp:141:9
frame #4 : 0x0000000106047cb8 libgame.dylib`aurora::ByteBuffer::append(this=0x0000000106b97358, data=0x00000004323e0ae0, size=145566) at common.hpp:96:5
frame #5 : 0x0000000106038230 libgame.dylib`aurora::gfx::push(target=0x0000000106b97358, data="b0\xf2", length=145566, alignment=256) at common.cpp:725:12
frame #6 : 0x0000000106038340 libgame.dylib`aurora::gfx::push_storage(data="b0\xf2", length=145566) at common.cpp:750:10
frame #7 : 0x000000010606c144 libgame.dylib`aurora::gx::fifo::handle_draw(cmd=152 '\x98', data="\x98", pos=0x000000016d931eac, size=1184, bigEndian=true)
at command_processor.cpp:1668:26
frame #8 : 0x0000000106066434 libgame.dylib`aurora::gx::fifo::process(data="\x98", size=1184, bigEndian=true) at command_processor.cpp:628:7
frame #9 : 0x00000001060a00dc libgame.dylib`GXCallDisplayList(data=0x000000043247f980, nbytes=1184) at GXDispList.cpp:67:3
frame #10 : 0x0000000105f7d440 libgame.dylib`J3DShapeDraw::draw(this=0x0000000432839a28) const at J3DShapeDraw.cpp:79:5
frame #11 : 0x0000000105f7e97c libgame.dylib`J3DShape::drawFast(this=0x0000000432839960) const at J3DShape.cpp:337:32
frame #12 : 0x0000000105f793a0 libgame.dylib`J3DShapePacket::drawFast(this=0x00000004329be9e8) at J3DPacket.cpp:401:18
frame #13 : 0x0000000105f79280 libgame.dylib`J3DMatPacket::draw(this=0x00000004329bf448) at J3DPacket.cpp:236:17
frame #14 : 0x0000000105f98b3c libgame.dylib`J3DDrawBuffer::drawHead(this=0x000000042f513808) const at J3DDrawBuffer.cpp:232:21
frame #15 : 0x0000000105f98ce8 libgame.dylib`J3DDrawBuffer::draw(this=0x000000042f513808) const at J3DDrawBuffer.cpp:223:5
frame #16 : 0x000000010530cd50 libgame.dylib`dDlst_list_c::drawXluDrawList(this=0x0000000106bb99d0, pDrawBuf=0x000000042f513808) at d_drawlist.cpp:1835:15
frame #17 : 0x000000010528bc10 libgame.dylib`dDlst_list_c::drawXluListDarkBG(this=0x0000000106bb99d0) at d_drawlist.h:479:32
frame #18 : 0x0000000105289150 libgame.dylib`dComIfGd_drawXluListDarkBG() at d_com_inf_game.h:4729:33
frame #19 : 0x0000000105287dc0 libgame.dylib`mDoGph_Painter() at m_Do_graphic.cpp:1783:13
frame #20 : 0x00000001056325f0 libgame.dylib`cAPIGph_Painter() at c_API_graphic.cpp:10:5
frame #21 : 0x00000001052b6560 libgame.dylib`fpcM_Management(i_preExecuteFn=0x0000000000000000, i_postExecuteFn=(libgame.dylib`fapGm_After() at
f_ap_game.cpp:718)) at f_pc_manager.cpp:64:13
frame #22 : 0x00000001052a5fa8 libgame.dylib`fapGm_Execute() at f_ap_game.cpp:735:5
frame #23 : 0x0000000105236db0 libgame.dylib`main01() at m_Do_main.cpp:177:9
frame #24 : 0x0000000105237e2c libgame.dylib`game_main(argc=1, argv=0x000000016d9335a0) at m_Do_main.cpp:298:5
frame #25 : 0x00000001024cd518 dusk`main(argc=1, argv=0x000000016d9335a0) at main.cpp:12:12
frame #26 : 0x0000000192401d54 dyld`start + 7184
(lldb) f 4
frame #4 : 0x0000000106047cb8 libgame.dylib`aurora::ByteBuffer::append(this=0x0000000106b97358, data=0x00000004323e0ae0, size=145566) at common.hpp:96:5
93 [[nodiscard]] bool empty() const noexcept { return m_length == 0; }
94
95 void append(const void* data, size_t size) {
-> 96 resize(m_length + size, false);
^
97 memcpy(m_data + m_length, data, size);
98 m_length += size;
99 }
› (lldb) p/x m_capacity
(size_t) 0x0000000000800000
(lldb) p m_capacity
(size_t) 8388608
(lldb) p/x size
(size_t) 0x000000000081869e these were the size/capacity
essentially alignment padding was making the capacity overwhelmed.
2026-03-13 19:46:11 -07:00
Luke Street
731bf46b44
Fix pipeline_worker race condition
2026-03-12 00:37:09 -06:00
Luke Street
42f46ae99f
Implement indirect texturing (kinda works)
2026-03-12 00:05:19 -06:00
Pieter-Jan Briers
eb960f8148
Add debug group/marker GX/GD API ( #48 )
...
* Add debug group/marker GX/GD API
* This keeps happening
* Don't crash if debug group stack underflows
* Missed a debug check
* Stubs
* Last stub?
* We hate C++
* Oh right release exists
2026-03-10 18:38:35 -06:00
Luke Street
c070de107e
Pipeline worker thread safety & priority queue
2026-03-08 23:27:05 -06:00
Jasper St. Pierre
c3100ee4c1
aurora: pass viewport/scissor fix
2026-03-08 09:28:19 -07:00
Hyblocker
a83020342d
fix: correct pipeline cache path mismatch ( #40 )
2026-03-06 09:36:29 -08:00
Luke Street
856e40efb4
Reimplement draw call merging & refactor aurora::gx ( #37 )
2026-03-05 20:31:51 -07:00
Luke Street
6e96710482
Add pull_request event to CI; rename SetViewportCommand->Viewport
2026-03-05 10:17:03 -07:00
Dávid Balatoni
604232c4ff
Implement GXGetViewportv ( #33 )
2026-03-05 10:09:26 -07:00
Luke Street
60eba7dff9
Fog & TCS FIFO-ification
2026-02-18 13:41:42 -07:00
Luke Street
73b81f53aa
Partially fix vtx caching
2026-02-18 00:26:18 -07:00
Luke Street
5fa562dc06
🚀 Execute more FIFO conversion 🚀
2026-02-17 20:44:09 -07:00
Luke Street
357ecba0ae
Lighting channel fixes (COLOR1+)
2025-04-15 19:37:18 -06:00
Luke Street
a600b0b84c
Rewrite attribute buffer, matrix & stream handling
...
Now array attributes (GXSetArray) will be properly
fetched based on the vertex format. Buffers are
still assumed to be byte-swapped to little-endian.
Stream handling completely redone and many issues
resolved.
Eliminates matrix transposes. AURORA_NATIVE_MATRIX
is no longer necessary and removed.
2025-04-14 17:17:59 -06:00
Luke Street
1825a80953
Clamp scissor to framebuffer size
2025-04-07 20:12:31 -06:00
Luke Street
37ae1bf9b5
Replace usages of Log.report with helpers
2025-04-06 16:37:05 -06:00
Luke Street
7760ef8409
Restructure logging and add fallback logging
2025-04-06 16:32:50 -06:00
Luke Street
1016fbb36d
Fix bind group caching
2025-04-04 01:59:30 -06:00
Luke Street
b07d55f71d
Update fmtlib
2025-04-03 21:03:11 -06:00
Luke Street
ca3e4f5273
Update to latest upstream dawn
2025-04-03 00:12:22 -06:00
Luke Street
3edd2c0e58
Update dawn & SDL part 1
2023-05-27 11:44:36 -04:00
Luke Street
ea6e49e000
gfx: Limit # of synchronous pipelines per frame
...
Allows OpenGL(+ES) to run smoothly even when
building initial pipeline cache.
2022-08-29 17:05:34 -04:00
Luke Street
c060e1da6b
Reimplement GXCopyTex; simplify assertions
2022-08-09 02:05:33 -04:00