[indent=2]<same here as in vertex shaders>
So in words, shaders distinguish between constant buffers and resources (i.e. constant buffers are not resources). I base that assumption on the fact that HLSL lets you explicitly declare which register a constant buffer is in but not a sampler. Also on the fact that [font=courier new,courier,monospace]ID3D11DeviceContext::PSSetConstantBuffers()[/font] and [font=courier new,courier,monospace]ID3D11DeviceContext::PSSetShaderResources()[/font] are separate methods and I've seen examples assigning a constant buffer to constant buffer slot 0 and a texture to resource slot 0.
And I assume shader registers (S0 ... S127) are the same thing [font=courier new,courier,monospace]ID3D11DeviceContext::PSSetConstantBuffers()[/font] assigns. What happens when I load a pre-SM4.0 shader? Is a constant buffer implicitly created for the parameters it declares? Or can registers hold either a constant buffer or a variable (though I can't find any way to access registers or variables directly in the D3D11 API). Edited by Cygon