mirror of
https://github.com/spoopyghosty0/frameport.git
synced 2026-10-27 11:02:35 +01:00
Turnip renders each GMEM bin at the density the map has at the bin's centre, on a grid anchored in map space, so the full-density area is the bins whose centre falls in Valve's sharp texels: up to half a bin off the texels' centre the centring layer aimed at (In Death 2768x2768: 192x224 bins, -80,+32 px in both eyes). native/foveation/tu_bins.h recomputes Turnip's bin size per foveated pass as Mesa does (tu_render_pass_gmem_config, tu_tiling_config_update_tile_layout, the LRZ FDM limit; AVOID_CCU layout; Adreno 750 only, Mesa 26.3 window); the layer tracks render-target images/views, models render passes and dynamic rendering, and centres those bins on each eye. Unmodelled cases keep the texel centre. Adapter settings fdm_bin_w/fdm_bin_h override the size (FrameBridge -> fp_fdm_set_bin). No frame.adapter revision bump: games get it on rebuild. Headless (darkening test, snapshot=15, Fixed), block centre vs optical centre: In Death L -76,+31 / R -83,+35 px -> L +4,-1 / R -3,+3; AC Nexus (2592x2256, computed 192x224) L +1,+5 / R +2,0; fdm_bin_w=288/fdm_bin_h=256 shifted the block by the predicted -96,+48.