Signed-off-by: Conor McCarthy cmccarthy@codeweavers.com --- 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;