Mesa (main): dzn: Switch to ID3D12Device2

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 9 16:19:30 UTC 2022


Module: Mesa
Branch: main
Commit: 185bae4c6022ad22d7cfe2b9b174f35873f39c16
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=185bae4c6022ad22d7cfe2b9b174f35873f39c16

Author: Boris Brezillon <boris.brezillon at collabora.com>
Date:   Thu Jun  9 15:58:05 2022 +0200

dzn: Switch to ID3D12Device2

So we can use the CreatePipelineState method and unlock new features
like depth-bounds tests.

Reviewed-by: Jesse Natalie <jenatali at microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16948>

---

 src/microsoft/vulkan/dzn_cmd_buffer.c | 10 +++++-----
 src/microsoft/vulkan/dzn_device.c     |  8 ++++----
 src/microsoft/vulkan/dzn_private.h    |  8 ++++----
 src/microsoft/vulkan/dzn_util.c       |  6 +++---
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c
index cd77b2414c7..473c755b9d0 100644
--- a/src/microsoft/vulkan/dzn_cmd_buffer.c
+++ b/src/microsoft/vulkan/dzn_cmd_buffer.c
@@ -1436,7 +1436,7 @@ dzn_cmd_buffer_copy_buf2img_region(struct dzn_cmd_buffer *cmdbuf,
    VK_FROM_HANDLE(dzn_buffer, src_buffer, info->srcBuffer);
    VK_FROM_HANDLE(dzn_image, dst_image, info->dstImage);
 
-   ID3D12Device1 *dev = device->dev;
+   ID3D12Device2 *dev = device->dev;
    ID3D12GraphicsCommandList1 *cmdlist = cmdbuf->cmdlist;
 
    const VkBufferImageCopy2 *region = &info->pRegions[r];
@@ -1511,7 +1511,7 @@ dzn_cmd_buffer_copy_img2buf_region(struct dzn_cmd_buffer *cmdbuf,
    VK_FROM_HANDLE(dzn_image, src_image, info->srcImage);
    VK_FROM_HANDLE(dzn_buffer, dst_buffer, info->dstBuffer);
 
-   ID3D12Device1 *dev = device->dev;
+   ID3D12Device2 *dev = device->dev;
    ID3D12GraphicsCommandList1 *cmdlist = cmdbuf->cmdlist;
 
    const VkBufferImageCopy2 *region = &info->pRegions[r];
@@ -1586,7 +1586,7 @@ dzn_cmd_buffer_copy_img_chunk(struct dzn_cmd_buffer *cmdbuf,
    VK_FROM_HANDLE(dzn_image, src, info->srcImage);
    VK_FROM_HANDLE(dzn_image, dst, info->dstImage);
 
-   ID3D12Device1 *dev = device->dev;
+   ID3D12Device2 *dev = device->dev;
    ID3D12GraphicsCommandList1 *cmdlist = cmdbuf->cmdlist;
 
    const VkImageCopy2 *region = &info->pRegions[r];
@@ -2046,7 +2046,7 @@ dzn_cmd_buffer_resolve_region(struct dzn_cmd_buffer *cmdbuf,
    VK_FROM_HANDLE(dzn_image, src, info->srcImage);
    VK_FROM_HANDLE(dzn_image, dst, info->dstImage);
 
-   ID3D12Device1 *dev = device->dev;
+   ID3D12Device2 *dev = device->dev;
    const VkImageResolve2 *region = &info->pRegions[r];
 
    dzn_foreach_aspect(aspect, region->srcSubresource.aspectMask) {
@@ -2969,7 +2969,7 @@ dzn_CmdCopyImage2(VkCommandBuffer commandBuffer,
    };
 
    if (requires_temp_res) {
-      ID3D12Device1 *dev = device->dev;
+      ID3D12Device2 *dev = device->dev;
       VkImageAspectFlags aspect = 0;
       uint64_t max_size = 0;
 
diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c
index 457e91b6fbe..23e30a59757 100644
--- a/src/microsoft/vulkan/dzn_device.c
+++ b/src/microsoft/vulkan/dzn_device.c
@@ -497,7 +497,7 @@ dzn_physical_device_get_max_array_layers()
    return dzn_physical_device_get_max_extent(false);
 }
 
-static ID3D12Device1 *
+static ID3D12Device2 *
 dzn_physical_device_get_d3d12_dev(struct dzn_physical_device *pdev)
 {
    struct dzn_instance *instance = container_of(pdev->vk.instance, struct dzn_instance, vk);
@@ -532,7 +532,7 @@ dzn_physical_device_get_format_support(struct dzn_physical_device *pdev,
      .Format = dzn_image_get_dxgi_format(format, usage, aspects),
    };
 
-   ID3D12Device1 *dev = dzn_physical_device_get_d3d12_dev(pdev);
+   ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
    HRESULT hres =
       ID3D12Device1_CheckFeatureSupport(dev, D3D12_FEATURE_FORMAT_SUPPORT,
                                         &dfmt_info, sizeof(dfmt_info));
@@ -589,7 +589,7 @@ dzn_physical_device_get_format_properties(struct dzn_physical_device *pdev,
       return;
    }
 
-   ID3D12Device1 *dev = dzn_physical_device_get_d3d12_dev(pdev);
+   ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
 
    *base_props = (VkFormatProperties) {
       .linearTilingFeatures = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT | VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
@@ -733,7 +733,7 @@ dzn_physical_device_get_image_format_properties(struct dzn_physical_device *pdev
       return VK_ERROR_FORMAT_NOT_SUPPORTED;
 
    bool is_bgra4 = info->format == VK_FORMAT_B4G4R4A4_UNORM_PACK16;
-   ID3D12Device1 *dev = dzn_physical_device_get_d3d12_dev(pdev);
+   ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
 
    if ((info->type == VK_IMAGE_TYPE_1D && !(dfmt_info.Support1 & D3D12_FORMAT_SUPPORT1_TEXTURE1D)) ||
        (info->type == VK_IMAGE_TYPE_2D && !(dfmt_info.Support1 & D3D12_FORMAT_SUPPORT1_TEXTURE2D)) ||
diff --git a/src/microsoft/vulkan/dzn_private.h b/src/microsoft/vulkan/dzn_private.h
index 78af26d90cb..3542d15052c 100644
--- a/src/microsoft/vulkan/dzn_private.h
+++ b/src/microsoft/vulkan/dzn_private.h
@@ -186,7 +186,7 @@ struct dzn_physical_device {
    struct wsi_device wsi_device;
 
    mtx_t dev_lock;
-   ID3D12Device1 *dev;
+   ID3D12Device2 *dev;
    D3D_FEATURE_LEVEL feature_level;
    D3D12_FEATURE_DATA_ARCHITECTURE1 architecture;
    D3D12_FEATURE_DATA_D3D12_OPTIONS options;
@@ -219,7 +219,7 @@ d3d12_enable_debug_layer(void);
 void
 d3d12_enable_gpu_validation(void);
 
-ID3D12Device1 *
+ID3D12Device2 *
 d3d12_create_device(IDXGIAdapter1 *adapter, bool experimental_features);
 
 struct dzn_queue {
@@ -235,7 +235,7 @@ struct dzn_device {
    struct vk_device_extension_table enabled_extensions;
    struct vk_device_dispatch_table cmd_dispatch;
 
-   ID3D12Device1 *dev;
+   ID3D12Device2 *dev;
 
    struct dzn_meta_indirect_draw indirect_draws[DZN_NUM_INDIRECT_DRAW_TYPES];
    struct dzn_meta_triangle_fan_rewrite_index triangle_fan[DZN_NUM_INDEX_TYPE];
@@ -341,7 +341,7 @@ struct dzn_buffer_desc {
 #define MAX_DESCS_PER_CBV_SRV_UAV_HEAP 1000000u
 
 struct dzn_descriptor_heap {
-   ID3D12Device1 *dev;
+   ID3D12Device2 *dev;
    ID3D12DescriptorHeap *heap;
    D3D12_DESCRIPTOR_HEAP_TYPE type;
    SIZE_T cpu_base;
diff --git a/src/microsoft/vulkan/dzn_util.c b/src/microsoft/vulkan/dzn_util.c
index 7f15496a123..43af42048f7 100644
--- a/src/microsoft/vulkan/dzn_util.c
+++ b/src/microsoft/vulkan/dzn_util.c
@@ -333,7 +333,7 @@ d3d12_enable_gpu_validation(void)
    }
 }
 
-ID3D12Device1 *
+ID3D12Device2 *
 d3d12_create_device(IDXGIAdapter1 *adapter, bool experimental_features)
 {
    typedef HRESULT(WINAPI *PFN_D3D12CREATEDEVICE)(IDXGIAdapter1 *, D3D_FEATURE_LEVEL, REFIID, void **);
@@ -364,9 +364,9 @@ d3d12_create_device(IDXGIAdapter1 *adapter, bool experimental_features)
       return NULL;
    }
 
-   ID3D12Device1 *dev;
+   ID3D12Device2 *dev;
    if (SUCCEEDED(D3D12CreateDevice(adapter, D3D_FEATURE_LEVEL_11_0,
-                 &IID_ID3D12Device1,
+                 &IID_ID3D12Device2,
                  (void **)&dev)))
       return dev;
 



More information about the mesa-commit mailing list