[PATCH vkd3d 1/6] tests: Add test case for UAV format compatibility.
From: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> --- tests/d3d12.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/d3d12.c b/tests/d3d12.c index 2e83d1671919..95eb90d89438 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -2509,9 +2509,9 @@ static void test_create_unordered_access_view(void) { D3D12_UNORDERED_ACCESS_VIEW_DESC uav_desc; D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle; + ID3D12Resource *buffer, *texture; unsigned int descriptor_size; ID3D12DescriptorHeap *heap; - ID3D12Resource *resource; ID3D12Device *device; ULONG refcount; @@ -2528,7 +2528,7 @@ static void test_create_unordered_access_view(void) heap = create_gpu_descriptor_heap(device, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, 16); - resource = create_default_buffer(device, 64 * sizeof(float), + buffer = create_default_buffer(device, 64 * sizeof(float), D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); cpu_handle = ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(heap); @@ -2539,15 +2539,26 @@ static void test_create_unordered_access_view(void) uav_desc.Buffer.StructureByteStride = 0; uav_desc.Buffer.CounterOffsetInBytes = 0; uav_desc.Buffer.Flags = D3D12_BUFFER_UAV_FLAG_NONE; - ID3D12Device_CreateUnorderedAccessView(device, resource, NULL, &uav_desc, cpu_handle); + ID3D12Device_CreateUnorderedAccessView(device, buffer, NULL, &uav_desc, cpu_handle); cpu_handle.ptr += descriptor_size; /* The following call fails. Buffer views cannot be created for compressed formats. */ uav_desc.Format = DXGI_FORMAT_BC1_UNORM; - ID3D12Device_CreateUnorderedAccessView(device, resource, NULL, &uav_desc, cpu_handle); + ID3D12Device_CreateUnorderedAccessView(device, buffer, NULL, &uav_desc, cpu_handle); - ID3D12Resource_Release(resource); + /* DXGI_FORMAT_R32_UINT view for DXGI_FORMAT_R8G8B8A8_TYPELESS resources. */ + texture = create_default_texture(device, 8, 8, DXGI_FORMAT_R8G8B8A8_TYPELESS, + D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_STATE_UNORDERED_ACCESS); + + uav_desc.Format = DXGI_FORMAT_R32_UINT; + uav_desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2D; + uav_desc.Texture2D.MipSlice = 0; + uav_desc.Texture2D.PlaneSlice = 0; + ID3D12Device_CreateUnorderedAccessView(device, texture, NULL, &uav_desc, cpu_handle); + + ID3D12Resource_Release(buffer); + ID3D12Resource_Release(texture); refcount = ID3D12DescriptorHeap_Release(heap); ok(!refcount, "ID3D12DescriptorHeap has %u references left.\n", (unsigned int)refcount); refcount = ID3D12Device_Release(device); -- 2.21.0
participants (2)
-
Henri Verbeet -
Józef Kucia