mirror of
https://github.com/Droid-Deck/Drivers.git
synced 2026-11-07 10:45:57 -10:00
nir/0001 (by K11MCH1): with offset_shift, NIR scales the array stride down before the multiply, so the 32-bit byte offset no longer wraps. vkd3d-proton's UE5 Nanite cluster culling stores hardware-raster clusters at uvec2 index 0x1fffffff - k + MaxVisibleClusters, which Turnip turned into an offset 4 GiB past the binding, and every store was dropped: Nanite surfaces went missing (Lords of the Fallen 2023). Adreno 840: a store test went from 0/64 to 64/64, and a replayed frame from 0/1100 to 1100/1100 cluster records. fdl/0001 (by airidosas252): A8XX buffer descriptors wrote the element count as WIDTH | HEIGHT, which wraps at 2^30 elements; use the 32-bit NUM_ELEMENTS field. 8-bit reads past 1 GiB and a 2 GiB binding (UE 5.5+ Nanite streaming pool) returned 0 before and are correct after. Both apply to Mesa main fd8ef2b for android and linux, and the Linux driver builds.