Commit Graph

28 Commits

Author SHA1 Message Date
Luke Street b5d145fae3 Fix texture eviction & cleanup 2026-04-08 23:32:23 -06:00
Luke Street 7aa339f67b Merge branch 'main' into texture-fifo
# Conflicts:
#	lib/dolphin/gx/GXTexture.cpp
#	lib/gx/gx.cpp
#	lib/gx/gx.hpp
2026-04-08 20:08:55 -06:00
Pieter-Jan Briers 50fda393a1 GX optimizations (#107)
* handle_draw optimization

1. cache vtxSize
2. remove heap allocation from draw call merging index buffer
3. move things that aren't on the "draw call merging hot path" out to other functions, to reduce stack frame size of handle_draw (it was previously using __chkstk)

* Make ByteBuffer expand exponentially

Fix half a second of startup time being just that.

* Babysit the compiler's inlining decisions

* Merged draw call idxBuf now a global static

* GXFlush() doesn't write NOPs to FIFO

I'm sure this made sense on actual hardware

* Don't bind unused textures/samplers

* Remove C++ RAII types from build_bind_groups

Most of this function's code was fucking with WebGPU AddRef and ReleaseRef. Seriously.

* More refs in common.hpp

* Index buffer in handle_draw_unmerged now not dynamically allocated for small draws

* Fix gx_test_stubs.cpp

* Some cleanup & renaming

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-04-08 19:51:06 -06:00
Pieter-Jan Briers 212d01769d Tracy integration (#106)
* Sprinkle Tracy all over the project

* Move Tracy FetchContent to extern file, disable Tracy by default

* Use older CMake syntax for setting cache variables

* Fix test compile

* Rename ALIGN macro to AURORA_ALIGN

Needed because it conflicts with a macro in Apple's SDK headers on my macbook, and Tracy is now pulling in that header.
2026-04-08 19:19:58 -06:00
Luke Street 8118e99276 FIFOify texture binding 2026-04-07 23:48:07 -06:00
Pieter-Jan Briers f61c219ef2 Add functionality to lock GX framebuffer aspect ratio (#97)
* Add functionality to lock GX framebuffer aspect ratio

This leaves the imgui (so including OS) framebuffer alone.

AuroraWindowSize now has new fields for the native framebuffer, the aspect ratio controls modify the existing fields.

* Fix from merge

* fix gx_test_stubs.cpp
2026-04-06 21:05:55 -06:00
Irastris 500d81b22b Implement texture dumping & replacement (#91) 2026-04-06 21:04:01 -06:00
Roman Sandu 50163edfe7 OSAlloc impl + some header fixes (#96)
* Small refactors of headers for forest

* OSAlloc implementation
2026-04-05 11:40:38 -06:00
Luke Street 33ec54347d Add offscreen rendering support & GXSetTexCopyDst (#89)
* Add offscreen rendering support & GXSetTexCopyDst

* Try to fix alignment for MSVC
2026-04-02 23:01:14 -06:00
Luke Street 6b9f614d32 Texture refactor (#78)
- Removes special sampling logic from the GX shader in favor of performing conversions using separate draw calls and swizzling
- Simplifies texture bindings
- Much more accurate EFB copy handling (still incomplete but better)
  - Handle copy clears appropriately (color, alpha, depth) + GXSetDstAlpha copies
- Re-enables code for buffered texture uploads
- Adds `lastTextureUploadSize` to AuroraStats
- Use RG8 + swizzle for IA4/IA8
2026-04-01 00:49:28 -06:00
Luke Street 819c72914e Add le arg to GXSetArray 2026-03-31 01:04:04 -06:00
Luke Street 507fda8591 Implement GX_LINES and GX_LINESTRIP
Includes support for GXTexOffsets
2026-03-29 22:33:28 -06:00
Luke Street 29551d433a Fix tests 2026-03-29 13:02:19 -06:00
Luke Street 587e2e3cb6 Full GPU vertex parsing 2026-03-29 12:58:35 -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 b4b64fb9be Revamp aurora dependencies, use prebuilt packages
Dawn, SDL3 and nod are fetched as a prebuilt package when available
for the current platform. Otherwise, system libraries are attempted.
Finally, we fallback to building them from source.
2026-03-09 21:34:40 -06:00
Luke Street 23cf6af43a Add DVD implementation based on nod 2026-03-09 01:10:46 -06:00
Jasper St. Pierre f639f1fcea gx: Fix PNMTX array indexes, implement indexed load commands 2026-03-08 09:28:19 -07:00
Luke Street 50524cdcbc Set dirty state in GX_LOAD_AURORA_ARRAYBASE 2026-03-05 23:13:40 -07:00
Luke Street 856e40efb4 Reimplement draw call merging & refactor aurora::gx (#37) 2026-03-05 20:31:51 -07:00
Luke Street b5cc2d9f9b Actually decode TCG mtx values 2026-03-05 12:55:48 -07:00
Luke Street 6e96710482 Add pull_request event to CI; rename SetViewportCommand->Viewport 2026-03-05 10:17:03 -07:00
Roman Sandu 08e965bbe8 Added AURORA_NO_GX build option (#15) 2026-02-23 12:59:05 -07:00
Luke Street 8650b97b03 Update to latest Dawn & SDL3 2026-02-18 20:09:48 -07:00