On Fri Apr 14 00:45:43 2023 +0000, Zebediah Figura wrote:
We probably want to `break` here too, lest we report multiple errors for the same overlap.
If be `break` we would not be reporting all the overlaps:
Consider 3 variables: ``` Texture2D a[2] : register(t0); Texture2D b[2] : register(t2); Texture2D c[4] : register(t0);
float4 main() : sv_target { return a[1].Load(int3(0, 0, 0)) + b[1].Load(int3(0, 0, 0)) + c[3].Load(int3(0, 0, 0)); } ``` `c` would be in charge of detecting overlaps, and if it breaks after reporting the overlap with `a`, the overlap with `c` wouldn't be reported.
But I modified the implementation a little to keep track of the last `reserved_object` reported so that the same collision is not reported more than once.