[PATCH vkd3d 5/5] vkd3d: Add cubic null resource.

Conor McCarthy cmccarthy at codeweavers.com
Tue Dec 10 08:57:08 CST 2019


Signed-off-by: Conor McCarthy <cmccarthy at 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;
 
-- 
2.24.0




More information about the wine-devel mailing list