mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 11:00:11 +01:00
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>
This commit is contained in:
parent
ee1a0a0772
commit
185bae4c60
4 changed files with 16 additions and 16 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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)) ||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue