diff --git a/src/dxvk/dxvk_image.h b/src/dxvk/dxvk_image.h index 8f82d65a..38052c76 100644 --- a/src/dxvk/dxvk_image.h +++ b/src/dxvk/dxvk_image.h @@ -312,7 +312,9 @@ namespace dxvk { * \returns The image view handle */ VkImageView handle(VkImageViewType viewType) const { - return m_views[viewType]; + return viewType != VK_IMAGE_VIEW_TYPE_MAX_ENUM + ? m_views[viewType] + : m_views[m_info.type]; } /** diff --git a/src/dxvk/dxvk_unbound.cpp b/src/dxvk/dxvk_unbound.cpp index 762c0ed0..95dea2f9 100644 --- a/src/dxvk/dxvk_unbound.cpp +++ b/src/dxvk/dxvk_unbound.cpp @@ -163,6 +163,8 @@ namespace dxvk { switch (type) { case VK_IMAGE_VIEW_TYPE_1D: return views->view1D.ptr(); case VK_IMAGE_VIEW_TYPE_1D_ARRAY: return views->view1DArr.ptr(); + // When implicit samplers are unbound -- we assume 2D in the shader. + case VK_IMAGE_VIEW_TYPE_MAX_ENUM: case VK_IMAGE_VIEW_TYPE_2D: return views->view2D.ptr(); case VK_IMAGE_VIEW_TYPE_2D_ARRAY: return views->view2DArr.ptr(); case VK_IMAGE_VIEW_TYPE_CUBE: return views->viewCube.ptr();