HLSL原始类型大小问题

时间:2015-10-11 14:44:55

标签: types size hlsl

我的印象是float2x4类型会占用32个字节,但是当我声明下面的float2x4 varname [100]时,它会占用64 * 100个字节,而不是预期的32 * 100个字节。怎么会?也许我没有看到与float2x4填充相关的内容。

1 个答案:

答案 0 :(得分:1)

float2x4要求4个float2s。由于每个“寄存器”是16字节宽(1 float4),因此它使用64字节的空间来存储4个float2。 4个float4中的每一个中的Z和W都是未使用的,并且充当填充。

相比之下,float4x2要求2个float4s,因此非常适合两个float4寄存器(32个字节)。