21 Commits

Author SHA1 Message Date
Luke Street 71d8462557 Introduce render worker & revamp RmlUi backend 2026-06-04 23:43:13 -06:00
Ahmad Abdallah 2c1e8ed840 Fix GX_NRM_NBT and GX_NRM_NBT3 vertex attribute handling (#181)
* Fix GX_NRM_NBT and GX_NRM_NBT3 vertex attribute handling

* Fix GX_NRM_NBT3 indexing, add GX_TG_BINRM/GX_TG_TANGENT support

* Add GX_TG_BUMP emboss bump mapping support
2026-06-03 20:52:26 -06:00
Luke Street 5a3c6d1b74 Fix incorrect uniform size 2026-06-03 02:17:02 -06:00
Luke Street 417f558669 Always write texcoord_scale (for now) 2026-06-03 00:56:12 -06:00
Thomas Ryan fb156d78ca Fix GX indirect tile window rendering (#218)
Co-authored-by: Thomas Ryan <contact@thomasryan.ca>
2026-06-02 10:04:31 -06:00
Luke Street ac72f79d1d Adjust sampler and LOD bias logic for texture replacements 2026-05-29 18:00:20 -06:00
Luke Street b524038d75 Fix returning width/height of 1 for empty tex objs 2026-04-21 17:12:13 -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 bf46df6ba7 Simplify bind groups & improve caching 2026-04-12 18:55:35 -06:00
Luke Street ac3611e518 Improve resolve_sampled_textures performance considerably & add more traces 2026-04-12 15:35:28 -06:00
Luke Street d15064a757 Use GXTexObj size as logical size for indtex 2026-04-09 18:32:52 -06:00
Luke Street b1bf531884 FIFOify texture binding (#109)
* FIFOify texture binding

* Use __cntlzw helper

* Some cleanup

* Fix texture eviction & cleanup
2026-04-09 00:14:00 -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 24a00238de Implement GX_POINTS 2026-03-31 00:43:08 -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 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
Jasper St. Pierre 37a2e1f245 gx: current_pn_mtx is hardcoded in shader now 2026-03-08 09:28:19 -07:00
Pieter-Jan Briers 6cddbd4be3 Implement texture matrices pointing to position matrices (#42)
* Implement texture matrices pointing to position matrices

Not really tested but TP doesn't seem to crash anymore so...

* Fix default matrix ID

* Oops forgot to account for ID in uniform size
2026-03-08 01:12:56 -07:00
Luke Street 856e40efb4 Reimplement draw call merging & refactor aurora::gx (#37) 2026-03-05 20:31:51 -07:00