From: Conor McCarthy Subject: [PATCH vkd3d v2 5/5] vkd3d: Add cubic null resource. Message-Id: <20191212043834.4903-6-cmccarthy@codeweavers.com> Date: Thu, 12 Dec 2019 14:38:34 +1000 In-Reply-To: <20191212043834.4903-1-cmccarthy@codeweavers.com> References: <20191212043834.4903-1-cmccarthy@codeweavers.com> Signed-off-by: Conor McCarthy --- libs/vkd3d/resource.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d/resource.c b/libs/vkd3d/resource.c index cd181bc..62e8c44 100644 --- a/libs/vkd3d/resource.c +++ b/libs/vkd3d/resource.c @@ -2589,33 +2589,51 @@ static void vkd3d_create_null_srv(struct d3d12_desc *descriptor, case D3D12_SRV_DIMENSION_TEXTURE1D: vk_image = null_resources->vk_1d_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_1D; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE1DARRAY: vk_image = null_resources->vk_1d_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_1D_ARRAY; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE2D: vk_image = null_resources->vk_2d_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_2D; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE2DARRAY: vk_image = null_resources->vk_2d_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_2D_ARRAY; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE2DMS: vk_image = null_resources->vk_2dms_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_2D; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY: vk_image = null_resources->vk_2dms_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_2D_ARRAY; + vkd3d_desc.layer_count = 1; break; case D3D12_SRV_DIMENSION_TEXTURE3D: vk_image = null_resources->vk_3d_image; vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_3D; + vkd3d_desc.layer_count = 1; + break; + + case D3D12_SRV_DIMENSION_TEXTURECUBE: + vk_image = null_resources->vk_2d_image; + vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_CUBE; + vkd3d_desc.layer_count = 6; + break; + case D3D12_SRV_DIMENSION_TEXTURECUBEARRAY: + vk_image = null_resources->vk_2d_image; + vkd3d_desc.view_type = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY; + vkd3d_desc.layer_count = 6; break; default: @@ -2629,7 +2647,6 @@ static void vkd3d_create_null_srv(struct d3d12_desc *descriptor, vkd3d_desc.miplevel_idx = 0; vkd3d_desc.miplevel_count = 1; vkd3d_desc.layer_idx = 0; - vkd3d_desc.layer_count = 1; vkd3d_desc.components.r = VK_COMPONENT_SWIZZLE_ZERO; vkd3d_desc.components.g = VK_COMPONENT_SWIZZLE_ZERO; vkd3d_desc.components.b = VK_COMPONENT_SWIZZLE_ZERO; @@ -4134,7 +4151,7 @@ HRESULT vkd3d_init_null_resources(struct vkd3d_null_resources *null_resources, goto fail; /* 2D SRV */ - if (FAILED(hr = vkd3d_create_null_sr_texture(device, D3D12_RESOURCE_DIMENSION_TEXTURE2D, 1, false, + if (FAILED(hr = vkd3d_create_null_sr_texture(device, D3D12_RESOURCE_DIMENSION_TEXTURE2D, 6, false, &null_resources->vk_2d_image, &null_resources->vk_2d_image_memory))) goto fail; -- 2.24.0