struct sb_t | |
{ | |
float3 color; | |
bool test; | |
bool test2; | |
}; // stride = 20 | |
StructuredBuffer<sb_t> sbuf : register(c10); | |
StructuredBuffer<float> sbuf2; | |
float4 main(uint pos : FOO) : SV_Target0 | |
{ | |
sb_t mydata = sbuf.Load(pos); | |
uint size; | |
uint stride; | |
sbuf.GetDimensions(size, stride); | |
if (sbuf[pos].test) | |
return float4(sbuf[pos].color + sbuf2[pos], 0); | |
else | |
return mydata.color.x + size + stride; | |
} |