Question

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?

Was it helpful?

Solution

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top