diff options
author | Boris Brezillon <boris.brezillon@collabora.com> | 2022-06-09 15:58:05 +0200 |
---|---|---|
committer | Boris Brezillon <boris.brezillon@collabora.com> | 2022-06-09 08:20:54 -0700 |
commit | 185bae4c6022ad22d7cfe2b9b174f35873f39c16 (patch) | |
tree | e27c3a25015cc6feec35c7067ddf11d5acd82b22 | |
parent | ee1a0a0772d0aaf4f5124d451f6a087bc6910b58 (diff) |
dzn: Switch to ID3D12Device2
So we can use the CreatePipelineState method and unlock new features
like depth-bounds tests.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16948>
-rw-r--r-- | src/microsoft/vulkan/dzn_cmd_buffer.c | 10 | ||||
-rw-r--r-- | src/microsoft/vulkan/dzn_device.c | 8 | ||||
-rw-r--r-- | src/microsoft/vulkan/dzn_private.h | 8 | ||||
-rw-r--r-- | 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; |