зеркало из https://github.com/AvaloniaUI/angle.git
D3D11: Fix Array texture depth-stencil attachments.
We were missing support for these layer depth-stencil attachments. This fixes running a WebGL test for this feature. BUG=angleproject:1260 BUG=angleproject:1315 Change-Id: Ida7d44ba1fe65d5da95d2db721e497bfa685db77 Reviewed-on: https://chromium-review.googlesource.com/327402 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Родитель
f434906cbe
Коммит
d834e3dc0d
|
@ -3236,7 +3236,36 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::ImageIndex &index,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UNREACHABLE();
|
ASSERT(mTextureFormatSet.dsvFormat != DXGI_FORMAT_UNKNOWN);
|
||||||
|
|
||||||
|
D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc;
|
||||||
|
dsvDesc.Format = mTextureFormatSet.dsvFormat;
|
||||||
|
dsvDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DARRAY;
|
||||||
|
dsvDesc.Texture2DArray.MipSlice = mTopLevel + mipLevel;
|
||||||
|
dsvDesc.Texture2DArray.FirstArraySlice = layer;
|
||||||
|
dsvDesc.Texture2DArray.ArraySize = 1;
|
||||||
|
dsvDesc.Flags = 0;
|
||||||
|
|
||||||
|
ID3D11DepthStencilView *dsv;
|
||||||
|
result = device->CreateDepthStencilView(texture, &dsvDesc, &dsv);
|
||||||
|
|
||||||
|
ASSERT(result == E_OUTOFMEMORY || SUCCEEDED(result));
|
||||||
|
if (FAILED(result))
|
||||||
|
{
|
||||||
|
SafeRelease(srv);
|
||||||
|
return gl::Error(GL_OUT_OF_MEMORY,
|
||||||
|
"Failed to create TexStorage2DArray DSV. Result: 0x%X.", result);
|
||||||
|
}
|
||||||
|
|
||||||
|
d3d11::SetDebugName(dsv, "TexStorage2DArray.RenderTargetDSV");
|
||||||
|
|
||||||
|
mRenderTargets[key] =
|
||||||
|
new TextureRenderTarget11(dsv, texture, srv, mInternalFormat,
|
||||||
|
getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0);
|
||||||
|
|
||||||
|
// RenderTarget will take ownership of these resources
|
||||||
|
SafeRelease(dsv);
|
||||||
|
SafeRelease(srv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче