dzn: Upgrade baseline from ID3D12Device2 to 4

This is pretty old already and we'll want to use CreateCommandList1

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19537>
This commit is contained in:
Jesse Natalie 2022-08-26 09:46:33 -07:00 committed by Marge Bot
parent a3dbc9ac25
commit f3b631f1dc
8 changed files with 29 additions and 29 deletions

View file

@ -35,29 +35,29 @@
#define DZN_ABI_HELPER_H
static inline D3D12_HEAP_PROPERTIES
dzn_ID3D12Device2_GetCustomHeapProperties(ID3D12Device2 *dev, UINT node_mask, D3D12_HEAP_TYPE type)
dzn_ID3D12Device4_GetCustomHeapProperties(ID3D12Device4 *dev, UINT node_mask, D3D12_HEAP_TYPE type)
{
D3D12_HEAP_PROPERTIES ret;
#ifdef _WIN32
ID3D12Device2_GetCustomHeapProperties(dev, &ret, node_mask, type);
ID3D12Device4_GetCustomHeapProperties(dev, &ret, node_mask, type);
#elif D3D12_SDK_VERSION >= 606
ret = ID3D12Device2_GetCustomHeapProperties(dev, node_mask, type);
ret = ID3D12Device4_GetCustomHeapProperties(dev, node_mask, type);
#else
ret = ((D3D12_HEAP_PROPERTIES (STDMETHODCALLTYPE *)(ID3D12Device2 *, UINT, D3D12_HEAP_TYPE))dev->lpVtbl->GetCustomHeapProperties)(dev, node_mask, type);
ret = ((D3D12_HEAP_PROPERTIES (STDMETHODCALLTYPE *)(ID3D12Device4 *, UINT, D3D12_HEAP_TYPE))dev->lpVtbl->GetCustomHeapProperties)(dev, node_mask, type);
#endif
return ret;
}
static inline D3D12_RESOURCE_ALLOCATION_INFO
dzn_ID3D12Device2_GetResourceAllocationInfo(ID3D12Device2 *dev, UINT visible_mask, UINT num_resource_descs, const D3D12_RESOURCE_DESC *resource_descs)
dzn_ID3D12Device4_GetResourceAllocationInfo(ID3D12Device4 *dev, UINT visible_mask, UINT num_resource_descs, const D3D12_RESOURCE_DESC *resource_descs)
{
D3D12_RESOURCE_ALLOCATION_INFO ret;
#ifdef _WIN32
ID3D12Device2_GetResourceAllocationInfo(dev, &ret, visible_mask, num_resource_descs, resource_descs);
ID3D12Device4_GetResourceAllocationInfo(dev, &ret, visible_mask, num_resource_descs, resource_descs);
#elif D3D12_SDK_VERSION >= 606
ret = ID3D12Device2_GetResourceAllocationInfo(dev, visible_mask, num_resource_descs, resource_descs);
ret = ID3D12Device4_GetResourceAllocationInfo(dev, visible_mask, num_resource_descs, resource_descs);
#else
ret = ((D3D12_RESOURCE_ALLOCATION_INFO (STDMETHODCALLTYPE *)(ID3D12Device2 *, UINT, UINT, const D3D12_RESOURCE_DESC *))
ret = ((D3D12_RESOURCE_ALLOCATION_INFO (STDMETHODCALLTYPE *)(ID3D12Device4 *, UINT, UINT, const D3D12_RESOURCE_DESC *))
dev->lpVtbl->GetResourceAllocationInfo)(dev, visible_mask, num_resource_descs, resource_descs);
#endif
return ret;

View file

@ -1047,7 +1047,7 @@ dzn_cmd_buffer_alloc_internal_buf(struct dzn_cmd_buffer *cmdbuf,
/* Align size on 64k (the default alignment) */
size = ALIGN_POT(size, 64 * 1024);
D3D12_HEAP_PROPERTIES hprops = dzn_ID3D12Device2_GetCustomHeapProperties(device->dev, 0, heap_type);
D3D12_HEAP_PROPERTIES hprops = dzn_ID3D12Device4_GetCustomHeapProperties(device->dev, 0, heap_type);
D3D12_RESOURCE_DESC rdesc = {
.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER,
.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT,
@ -1725,7 +1725,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);
ID3D12Device2 *dev = device->dev;
ID3D12Device4 *dev = device->dev;
ID3D12GraphicsCommandList1 *cmdlist = cmdbuf->cmdlist;
VkImageCopy2 region = info->pRegions[r];
@ -3087,7 +3087,7 @@ dzn_CmdCopyImage2(VkCommandBuffer commandBuffer,
};
if (requires_temp_res) {
ID3D12Device2 *dev = device->dev;
ID3D12Device4 *dev = device->dev;
VkImageAspectFlags aspect = 0;
uint64_t max_size = 0;

View file

@ -683,7 +683,7 @@ dzn_physical_device_get_max_array_layers()
return dzn_physical_device_get_max_extent(false);
}
static ID3D12Device2 *
static ID3D12Device4 *
dzn_physical_device_get_d3d12_dev(struct dzn_physical_device *pdev)
{
struct dzn_instance *instance = container_of(pdev->vk.instance, struct dzn_instance, vk);
@ -735,7 +735,7 @@ dzn_physical_device_get_format_support(struct dzn_physical_device *pdev,
.Format = dzn_image_get_dxgi_format(format, usage, aspects),
};
ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
ID3D12Device4 *dev = dzn_physical_device_get_d3d12_dev(pdev);
ASSERTED HRESULT hres =
ID3D12Device1_CheckFeatureSupport(dev, D3D12_FEATURE_FORMAT_SUPPORT,
&dfmt_info, sizeof(dfmt_info));
@ -933,7 +933,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;
ID3D12Device2 *dev = dzn_physical_device_get_d3d12_dev(pdev);
ID3D12Device4 *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)) ||
@ -2050,7 +2050,7 @@ static VkResult
dzn_device_query_init(struct dzn_device *device)
{
/* FIXME: create the resource in the default heap */
D3D12_HEAP_PROPERTIES hprops = dzn_ID3D12Device2_GetCustomHeapProperties(device->dev, 0, D3D12_HEAP_TYPE_UPLOAD);
D3D12_HEAP_PROPERTIES hprops = dzn_ID3D12Device4_GetCustomHeapProperties(device->dev, 0, D3D12_HEAP_TYPE_UPLOAD);
D3D12_RESOURCE_DESC rdesc = {
.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER,
.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT,

View file

@ -811,7 +811,7 @@ dzn_GetImageMemoryRequirements2(VkDevice _device,
}
}
D3D12_RESOURCE_ALLOCATION_INFO info = dzn_ID3D12Device2_GetResourceAllocationInfo(device->dev, 0, 1, &image->desc);
D3D12_RESOURCE_ALLOCATION_INFO info = dzn_ID3D12Device4_GetResourceAllocationInfo(device->dev, 0, 1, &image->desc);
pMemoryRequirements->memoryRequirements = (VkMemoryRequirements) {
.size = info.SizeInBytes,

View file

@ -1752,7 +1752,7 @@ dzn_graphics_pipeline_create(struct dzn_device *device,
goto out;
if (!pipeline->variants) {
hres = ID3D12Device2_CreatePipelineState(device->dev, stream_desc,
hres = ID3D12Device4_CreatePipelineState(device->dev, stream_desc,
&IID_ID3D12PipelineState,
(void **)&pipeline->base.state);
if (FAILED(hres)) {
@ -1869,7 +1869,7 @@ dzn_graphics_pipeline_get_state(struct dzn_graphics_pipeline *pipeline,
}
}
ASSERTED HRESULT hres = ID3D12Device2_CreatePipelineState(device->dev, &stream_desc,
ASSERTED HRESULT hres = ID3D12Device4_CreatePipelineState(device->dev, &stream_desc,
&IID_ID3D12PipelineState,
(void**)(&variant->state));
assert(!FAILED(hres));
@ -2195,7 +2195,7 @@ dzn_compute_pipeline_create(struct dzn_device *device,
if (ret != VK_SUCCESS)
goto out;
if (FAILED(ID3D12Device2_CreatePipelineState(device->dev, &stream_desc,
if (FAILED(ID3D12Device4_CreatePipelineState(device->dev, &stream_desc,
&IID_ID3D12PipelineState,
(void **)&pipeline->base.state)))
ret = vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);

View file

@ -200,7 +200,7 @@ struct dzn_physical_device {
struct wsi_device wsi_device;
mtx_t dev_lock;
ID3D12Device2 *dev;
ID3D12Device4 *dev;
ID3D12Device10 *dev10;
D3D_FEATURE_LEVEL feature_level;
D3D_SHADER_MODEL shader_model;
@ -238,7 +238,7 @@ d3d12_enable_debug_layer(struct util_dl_library *d3d12_mod, ID3D12DeviceFactory
void
d3d12_enable_gpu_validation(struct util_dl_library *d3d12_mod, ID3D12DeviceFactory *factory);
ID3D12Device2 *
ID3D12Device4 *
d3d12_create_device(struct util_dl_library *d3d12_mod, IUnknown *adapter, ID3D12DeviceFactory *factory, bool experimental_features);
struct dzn_queue {
@ -254,7 +254,7 @@ struct dzn_device {
struct vk_device_extension_table enabled_extensions;
struct vk_device_dispatch_table cmd_dispatch;
ID3D12Device2 *dev;
ID3D12Device4 *dev;
ID3D12Device10 *dev10;
ID3D12DeviceConfiguration *dev_config;
@ -363,7 +363,7 @@ struct dzn_buffer_desc {
#define MAX_DESCS_PER_CBV_SRV_UAV_HEAP 1000000u
struct dzn_descriptor_heap {
ID3D12Device2 *dev;
ID3D12Device4 *dev;
ID3D12DescriptorHeap *heap;
D3D12_DESCRIPTOR_HEAP_TYPE type;
SIZE_T cpu_base;

View file

@ -133,7 +133,7 @@ dzn_query_pool_create(struct dzn_device *device,
}
D3D12_HEAP_PROPERTIES hprops =
dzn_ID3D12Device2_GetCustomHeapProperties(device->dev, 0, D3D12_HEAP_TYPE_DEFAULT);
dzn_ID3D12Device4_GetCustomHeapProperties(device->dev, 0, D3D12_HEAP_TYPE_DEFAULT);
D3D12_RESOURCE_DESC rdesc = {
.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER,
.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT,
@ -159,7 +159,7 @@ dzn_query_pool_create(struct dzn_device *device,
return vk_error(device, VK_ERROR_OUT_OF_DEVICE_MEMORY);
}
hprops = dzn_ID3D12Device2_GetCustomHeapProperties(device->dev, 0,
hprops = dzn_ID3D12Device4_GetCustomHeapProperties(device->dev, 0,
D3D12_HEAP_TYPE_READBACK);
rdesc.Width = info->queryCount * (qpool->query_size + sizeof(uint64_t));
hres = ID3D12Device1_CreateCommittedResource(device->dev, &hprops,

View file

@ -350,7 +350,7 @@ d3d12_enable_gpu_validation(struct util_dl_library *d3d12_mod, ID3D12DeviceFacto
}
}
ID3D12Device2 *
ID3D12Device4 *
d3d12_create_device(struct util_dl_library *d3d12_mod, IUnknown *adapter, ID3D12DeviceFactory *factory, bool experimental_features)
{
#ifdef _WIN32
@ -373,12 +373,12 @@ d3d12_create_device(struct util_dl_library *d3d12_mod, IUnknown *adapter, ID3D12
}
}
ID3D12Device2 *dev;
ID3D12Device4 *dev;
if (factory) {
ID3D12DeviceFactory_SetFlags(factory, D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE |
D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE);
if (FAILED(ID3D12DeviceFactory_CreateDevice(factory, adapter, D3D_FEATURE_LEVEL_11_0,
&IID_ID3D12Device2,
&IID_ID3D12Device4,
(void **)&dev))) {
mesa_loge("ID3D12DeviceFactory::CreateDevice failed\n");
return NULL;
@ -394,7 +394,7 @@ d3d12_create_device(struct util_dl_library *d3d12_mod, IUnknown *adapter, ID3D12
}
if (FAILED(D3D12CreateDevice(adapter, D3D_FEATURE_LEVEL_11_0,
&IID_ID3D12Device2,
&IID_ID3D12Device4,
(void **)&dev))) {
mesa_loge("D3D12CreateDevice failed\n");
return NULL;