Commit Graph

43 Commits

Author SHA1 Message Date
Luke Street 8f1ea3e126 Disable CPU graphics adapters by default 2026-05-24 12:55:38 -06:00
Luke Street f8e9b14fb0 Fix wgpu::DeviceDescriptor initialization 2026-05-23 15:49:53 -06:00
Irastris 312514bd77 Implement Area sampling for scaling the internal resolution (#197)
* Implement Area sampler for scaling the internal resolution

* Move resampling to before RmlUi instead of inside it
Allows non-Bilinear resampling to work regardless of RmlUi being init
2026-05-17 20:57:23 -04:00
Pieter-Jan Briers 59240bf387 Guard create_render_texture (#184)
Getting a *lot* of crashes in Sentry that seem to be this function allocating invalid render textures? So let's add a guard so we maybe can catch it in the act.
2026-05-14 15:41:08 -06:00
Pieter-Jan Briers a41a0fb310 Don't crash loading unsupported texture replacements (#182)
So people stop getting crashes from BC textures on Android and iOS.
2026-05-14 15:40:45 -06:00
Luke Street ac165cf1a6 Hold SDL's Android activity lock around surface-critical areas 2026-05-09 15:02:38 -06:00
Luke Street 1eeff98783 Android/iOS backgrounding fixes; pause on focus lost 2026-05-08 16:55:12 -06:00
Luke Street 552be91d68 Fix SDL_Renderer scaling & surface format selection 2026-05-06 16:35:54 -06:00
Luke Street 4cd8d2f009 Refactor viewport fit handling; use game viewport for RmlUi 2026-05-05 23:13:31 -06:00
CraftyBoss eceac96bcb RmlUi integration (#142)
* begin work on integration

* draw null tex when tex handle is null, switch to immediates for geometry translation

* fix window resizing and texture loads, switch to dynamic ubo

* remove immediate usage

* Add initial rmlui public API

* Use proper dimensions; fix texture resolution

* Remove unnecessary SetDimensions

* Cleanup & add clip mask support

* Implement blur and shadow filters

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-04-27 23:43:30 -06:00
Luke Street 9363a7470c Fix VSync disable on Metal 2026-04-23 16:40:18 -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
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