cbuffer buf1 { float4 v1; }; // extraneous ; tbuffer buf2 { float4 v2; }; // extraneous ; cbuffer cbufName { float4 v3 : packoffset(c0); int i3 : packoffset(c1.y); } tbuffer tbufName : register(t8) { float4 v4 : packoffset(c1); int i4 : packoffset(c3); float f1 : packoffset(c3.w); float f3 : packoffset(c4.x); float f4 : packoffset(c4.y); float f5 : packoffset(c4.z); float f6 : packoffset(c); float f7 : packoffset(c8); float3x4 m1 : packoffset(c7); row_major float3x4 m2 : packoffset(c11); column_major float3x4 m3 : packoffset(c15); float3x4 m4 : packoffset(c19); } float foo() // float looks like identifier, but can't be part of tbuffer { return 1.0; } struct id { float4 a; }; cbuffer cbufName2 { float4 v24; } id PixelShaderFunction(float4 input : SV_POSITION) : SV_TARGET0 // id looks like id for cbuffer name, but can't be { id ret; ret.a = v24 + (input + v1 + v2 + v3 + v4) * foo(); return ret; }