I meant the checks done by calculate_buffer_offset(). But I see those are only relevant to unaligned reservations, now that I look again.
Oh, sorry I thought you mean the overlap checks.
I think that the first test added to register-reserations.shader_test already covers this, when run for SM4:
It covers the "no overlap" error, but not the "all or nothing" error.
Good point, I added the following test:
```hlsl // Unlike packoffset(), it is not required to provide it for all elements in the $Globals buffer. float4 a; float4 b : register(c0);
float4 main() : sv_target { return float4(a.xw, b.yz); } ```
and because it failed, it made me realize that I have to allocate all the variables with register reservation first, for both the SM1 and SM4 patches (!). It may look ugly, but I could think of of a less ugly way :(.