如果在使用HLSL或其他高级着色器语言将数据发送到GPU时,如果有一个单独的缓冲区,我对代码设计和性能方面感兴趣.
这是特定着色器需要具有大量可变数据的地方,这些数据在运行时期间会发生变化,因此需要通过缓冲区传递信息.
我举一个非常基本的例子:
cbuffer SomeLargeBuffer : register(cb0)
{
float3 data;
float someData;
float4 largeArray[2500];
float moreData;
...
...
...
...
...
}
Run Code Online (Sandbox Code Playgroud)
或者拥有
cbuffer SamllerBuffer: register(cb0)
{
float3 data;
float someRelatedData;
}
cbuffer SecondSmallerBuffer : register(cb1)
{
float4 largeArray[2500];
float moreData;
}
cbuffer ThirdBuffer: register(cb2)
{
...
...
...
}
Run Code Online (Sandbox Code Playgroud)