From 1b6d7ab80ba6cd0ba8832e253764089745168fba Mon Sep 17 00:00:00 2001 From: Sil Vilerino Date: Fri, 8 Mar 2024 07:30:04 -0500 Subject: [PATCH] d3d12: Add GetDesc wrapper for ID3D12Heap Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10779 Fixes: 55e377e9652 ("d3d12: Add partial media, compute, graphics support with CORE and GENERIC feature levels") Part-of: --- src/gallium/drivers/d3d12/d3d12_common.h | 12 ++++++++++++ src/gallium/drivers/d3d12/d3d12_resource.cpp | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/d3d12/d3d12_common.h b/src/gallium/drivers/d3d12/d3d12_common.h index 4fa900d1585..867c0a23f74 100644 --- a/src/gallium/drivers/d3d12/d3d12_common.h +++ b/src/gallium/drivers/d3d12/d3d12_common.h @@ -63,6 +63,11 @@ GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap *heap) { return heap->GetGPUDescriptorHandleForHeapStart(); } +D3D12_HEAP_DESC +inline GetDesc(ID3D12Heap* heap) +{ + return heap->GetDesc(); +} inline D3D12_RESOURCE_DESC GetDesc(ID3D12Resource *res) { @@ -98,6 +103,13 @@ GetGPUDescriptorHandleForHeapStart(ID3D12DescriptorHeap *heap) heap->GetGPUDescriptorHandleForHeapStart(&ret); return ret; } +D3D12_HEAP_DESC +inline GetDesc(ID3D12Heap* heap) +{ + D3D12_HEAP_DESC ret; + heap->GetDesc(&ret); + return ret; +} inline D3D12_RESOURCE_DESC GetDesc(ID3D12Resource *res) { diff --git a/src/gallium/drivers/d3d12/d3d12_resource.cpp b/src/gallium/drivers/d3d12/d3d12_resource.cpp index f912a719ad8..693f3b2e160 100644 --- a/src/gallium/drivers/d3d12/d3d12_resource.cpp +++ b/src/gallium/drivers/d3d12/d3d12_resource.cpp @@ -304,7 +304,7 @@ init_texture(struct d3d12_screen *screen, D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO capData; capData.Dimension = desc.Dimension; capData.Format = desc.Format; - capData.DestHeapProperties = heap->GetDesc().Properties; + capData.DestHeapProperties = GetDesc(heap).Properties; capData.Supported = false; if (FAILED(screen->dev->CheckFeatureSupport(D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO, &capData, sizeof(capData))) || !capData.Supported) { debug_printf("D3D12: d3d12_resource_create_or_place cannot place a resource since D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO is not supported\n");