fix(ios): pin voxel render target scale & fix shadows - #48
Conversation
|
King of spain!! |
|
Confirming this fixes iOS shadow rendering on hardware. Device: iPhone 15 Pro Max, iOS 27.0 Before (stock 1.5.1): shadow rendering badly broken — large hard-edged dark regions with straight diagonal boundaries covering a big fraction of the frame, both outdoors and inside buildings, and independent of the day/night pin. Indoors it presented as a lit parallelogram sitting inside near-total darkness. After (this PR applied to 1.5.1): gone. Overworld and interiors render correctly. Method: applied this PR's diff to the 1.5.1 release zip ( One note that may help others landing here: engine PR bryanthaboi/gen1recomp#582 merged 2026-08-01 14:41 UTC, and the v0.1.56 IPA was published 2026-08-02 01:23 UTC. So current released iOS builds carry the Metal backend change without this mod-side adaptation — that skew window is what makes stock 1.5.1 break on iOS today. Understood that this gates the sun pass off on iOS rather than making it work under Metal, so iOS loses cast shadows for now. Given the current state is unusable, that reads as a clear net improvement — but happy to test a follow-up that tries to restore them if one appears. |
|
Follow-up from testing this on device — flagging a regression I think this PR introduces, since it is easy to miss.
The consequence is silent: the The comment directly above the allocation is also now inaccurate: -- the depth canvas is sized with its colour, so a window resize
-- reallocates the pair together and they can never disagree
slotHeld = { canvas = c, w = w, h = h, depth = newDepth(w, h) }They can now disagree — not on dimensions, but on dpiscale. Pinning |
|
Still not the right approach @castdrian @bryanthaboi! Fixing in #75 |
depends on bryanthaboi/gen1recomp#582
but changing ios to use metal as gpu backend fucked a lot with the shader stuff and changed the way canvases behave