vkd3d-shader/hlsl: packoffset() support.
Support manually packing constant buffer elements through the packoffset(·) syntax.
Support not included yet for simultaneously having semantics, register(·), and packoffset(·), for abnormalities such as:
Texture2D tex;
cbuffer buff
{
float4 a : packoffset(c0);
sampler sam : packoffset(c0) : register(s1) : SEMANTIC;
}
float4 main() : sv_target
{
return tex.Sample(sam, float2(0, 0)) + a;
}
but this motivated the addition of the hlsl_ir_var.offset_reservation field instead of reusing hlsl_ir_var.reg_reservation.