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