Commit Graph

34 Commits

Author SHA1 Message Date
Luke Street 555a5bc9f5 Use immediates for buffer offsets 2026-04-22 21:36:30 -06:00
Luke Street 63cc5da669 Reduce bind group cache retention & clear on resize 2026-04-21 01:06:16 -06:00
Luke Street 5d420c9f73 Arbitrary mipmap detection & texture cleanup (#131) 2026-04-20 20:33:14 -06:00
Luke Street c05e7aace1 Viewport scaling rework & IR configuration (#127)
This is a breaking change: `GXSetViewport`, `GXSetScissor`, `GXSetTexCopySrc`, `GXSetTexCopyDst` now accept logical coords relative to the `VIConfigure` EFB size.

`GXSetViewportRender` and `GXSetScissorRender` are used to override the scaled viewport/scissor from the logical coords.
2026-04-18 14:10:32 -06:00
Luke Street 1533a48c7d Reworked pipeline cache with sqlite (#108)
* Reworked pipeline cache with sqlite

* Include <ranges> in common.cpp (sigh)

* Restore tracy thread names
2026-04-08 20:03:25 -06:00
Pieter-Jan Briers bec90f1b68 Set up dawn cache (#98)
* Set up dawn cache

Massively speeds up pipeline compilation on the second go around, especially for D3D12.

Currently, uses SQLite for the cache. SQLite is committed in as the "amalgam" blob, but I'm open for better ways to fetch it.

* Compress cache contents with zstd

More significantly for Vulkan, less so for D3D12.

* Store cache keys as XXH128 instead

This reduces the size of the D3D12 cache by a ridiculous amount

* Stop using exceptions for error handling

* FetchContent for sqlite; cleanup & make zstd optional

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-04-08 13:46:51 -06:00
Luke Street 79507b88b9 Add vsync configuration 2026-04-06 23:04:43 -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
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 750c21ee9a Cache different render tex sizes per pointer 2026-03-30 21:34:59 -06:00
Luke Street 5ff8232fd7 Delete CMPR->DXT1 conversion; always use RGBA8
CMPR and DXT1 differ in alpha-blending behavior;
we should always decode to RGBA8 instead of using the
TextureCompressionBC feature path.
2026-03-29 15:07:24 -06:00
Luke Street 42f46ae99f Implement indirect texturing (kinda works) 2026-03-12 00:05:19 -06:00
Jasper St. Pierre 894afb4513 gfx fix 2026-03-05 09:44:33 -08:00
Luke Street 7e98a8e140 Add Android surface support 2026-02-19 23:53:38 -07:00
Phillip Stephens f88a7e76fa Be smarter about uniform and storage buffer alignments, fixes an oddity with AMD GPUs 2026-02-18 21:31:16 -08:00
Luke Street 8650b97b03 Update to latest Dawn & SDL3 2026-02-18 20:09:48 -07:00
Luke Street c4d91f18a1 Split out display_list/shader_info 2025-04-18 21:52:38 -06:00
Phillip Stephens 788c65592f Minor fixes with indexed draw calls 2025-04-14 23:07:50 -07: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 37ae1bf9b5 Replace usages of Log.report with helpers 2025-04-06 16:37:05 -06:00
Phillip Stephens 905561b211 Set texture dimension limit 2025-04-04 16:32:26 -07:00
Luke Street 5c7ee8b04a Link static dawn on Windows 2025-04-04 17:31:03 -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