From 8bdd9585f560af66264213e52faac24ec5c33e44 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 22 Oct 2020 15:07:58 +0100 Subject: [PATCH] Test D3D discards with NULL region or rects --- util/test/demos/d3d11/d3d11_discard_zoo.cpp | 5 +++++ util/test/demos/d3d12/d3d12_discard_zoo.cpp | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/util/test/demos/d3d11/d3d11_discard_zoo.cpp b/util/test/demos/d3d11/d3d11_discard_zoo.cpp index 2edf59f38..3e11f0768 100644 --- a/util/test/demos/d3d11/d3d11_discard_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_discard_zoo.cpp @@ -244,6 +244,11 @@ RD_TEST(D3D11_Discard_Zoo, D3D11GraphicsTest) MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 300, 300).Multisampled(4).Array(5).RTV()); DiscardView(MakeRTV(tex).FirstSlice(2).NumSlices(1)); + // test with DiscardView1 and NULL rect + TEX_TEST("DiscardAll Slice2", + MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 300, 300).Multisampled(4).Array(5).RTV()); + ctx1->DiscardView1((ID3D11RenderTargetViewPtr)MakeRTV(tex).FirstSlice(2).NumSlices(1), NULL, 0); + // test 1D/3D textures ctx1->DiscardResource(tex1d); ctx1->DiscardResource(tex3d); diff --git a/util/test/demos/d3d12/d3d12_discard_zoo.cpp b/util/test/demos/d3d12/d3d12_discard_zoo.cpp index e01b07215..2b3c5015f 100644 --- a/util/test/demos/d3d12/d3d12_discard_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_discard_zoo.cpp @@ -402,6 +402,18 @@ float4 main(v2f IN) : SV_Target0 TEX_TEST(L"DiscardAll", MakeTexture(DXGI_FORMAT_BC7_UNORM, 300, 300)); DiscardResource(cmd, tex); + // test with discarding a NULL region + TEX_TEST(L"DiscardAll", MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 300, 300)); + cmd->DiscardResource(tex, NULL); + // and with NULL rects + TEX_TEST(L"DiscardAll", MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 300, 300)); + { + D3D12_DISCARD_REGION reg = {}; + reg.FirstSubresource = 0; + reg.NumSubresources = 1; + cmd->DiscardResource(tex, ®); + } + // test with different mips/array sizes TEX_TEST(L"DiscardAll", MakeTexture(DXGI_FORMAT_R16G16B16A16_FLOAT, 300, 300).Mips(5)); DiscardResource(cmd, tex);