Files
godot/drivers
Stuart Carnie 541f62617f Metal: Fix dynamic uniform buffer offset corruption when rebinding sets
When the same uniform set is bound multiple times within a render pass
(e.g., OPAQUE pass then ALPHA pass with different instance buffers),
the dynamic offset bits were being OR'd together, corrupting the packed
frame indices.

For example, if OPAQUE binds set 1 with frame_idx=1 (0x10) and ALPHA
binds set 1 with frame_idx=2 (0x20), the OR produces 0x30 instead of
the correct 0x20, causing the shader to read from the wrong buffer
offset.

This fix clears the relevant bits for each set being bound before
OR'ing the new values, ensuring only the latest frame indices are used.

Fixes rendering artifacts in the mobile renderer which uses two dynamic
uniforms (uniform buffer + storage buffer) in set 1, unlike the clustered
renderer which only has one.
2026-01-09 16:34:24 +11:00
..
2025-12-14 01:05:36 +02:00
2025-10-07 08:11:29 -05:00
2025-12-21 11:23:49 +11:00
2025-12-13 00:04:56 +01:00