質問

When I share a per-frame constant buffer in both vertex and pixel shader I call:

VSSetConstantBuffers(0,1,&frameBuffer);
PSSetContantBuffers(0,1,%frameBuffer);

And in both HLSL the cbuffer declaration:

cbuffer PerFrame: register(b0)
{
    float1 g_time;
    ...
}

In this particular case I use slot 0 for both shaders. My question is, are this slots independent from the shader stage or they are shared?

In other words, if in the VertexShader I assign cbuffers with slots 0,1,2,3 then in the PixelShader can I use slots 0,1,2,3 for binding different cbuffers or must be the same cbuffers than in VertexShader?

役に立ちましたか?

解決

They can be different constant buffers, hence the separate VSSetConstantBuffers and PSSetConstantBuffers (etc.) methods.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top