Hi everyone!
So, I'm trying to create a Depth CubeMap, but get an error when trying to Create the DepthStencilView with a FirstArraySlice >= 1. When set to only FirstArraySlice = 0 everything works as expected (all depths get rendered to just one face of the cubemap... but any value bigger than that returns an E_INVALIDARG error.
Here's the code snipet with the settings I'm using:
D3D11_TEXTURE2D_DESC textDesc;
ZeroMemory(&textDesc, sizeof(D3D11_TEXTURE2D_DESC));
textDesc.Width = 1024;
textDesc.Height = 1024;
textDesc.MipLevels = 1;
textDesc.ArraySize = 6;
textDesc.Format = DXGI_FORMAT_R32_TYPELESS;
textDesc.SampleDesc.Count = 1;
textDesc.Usage = D3D11_USAGE_DEFAULT;
textDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_DEPTH_STENCIL;
textDesc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE;
m_pd3dDevice->CreateTexture2D(&textDesc, NULL, &m_pTexture);
// Everything OK so far...
D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc;
dsvDesc.Format = DXGI_FORMAT_D32_FLOAT;
dsvDesc.Flags = 0;
dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DARRAY;
dsvDesc.Texture2DArray.ArraySize = textDesc.ArraySize;
dsvDesc.Texture2DArray.MipSlice = 0;
for( UINT i = 0; i < textDesc.ArraySize; i++ ){
dsvDesc.Texture2DArray.FirstArraySlice = i;
m_pd3dDevice->CreateDepthStencilView(m_pTexture, &dsvDesc, &m_pDepthStencilView[i]);
}
// OK FirstArraySlice = 0
// ERROR FirstArraySlice >= 1
Am I missing something in here?
Thanks!