flowchart TD
S["Godot compute shader:
read image A, then write image B
(both from the descriptor heap)"] --> P0
subgraph before["before patch 0040"]
P0["pass 0: read A emitted,
no write seen yet"] --> P1["pass 1: B written, so A
becomes read_write"]
P1 --> P2["pass 2: aliased descriptor
array renamed for A"]
P2 --> X["pass 3 would start:
Maximum compilation loops"]
end
S --> Q0
subgraph after["with patch 0040"]
Q0["pass 0: OpImageWrite found up front,
A is read_write at once"] --> Q1["access settled a pass earlier:
within the limit, MSL to Metal"]
end