Merge pull request #8700 from liamwhite/xc3-vk-crash

vk_texture_cache: return VK_NULL_HANDLE for views of null images
This commit is contained in:
bunnei 2022-08-06 13:11:34 -07:00 committed by GitHub
commit 0f2fc6335e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1618,6 +1618,9 @@ ImageView::ImageView(TextureCacheRuntime&, const VideoCommon::NullImageViewParam
ImageView::~ImageView() = default; ImageView::~ImageView() = default;
VkImageView ImageView::DepthView() { VkImageView ImageView::DepthView() {
if (!image_handle) {
return VK_NULL_HANDLE;
}
if (depth_view) { if (depth_view) {
return *depth_view; return *depth_view;
} }
@ -1627,6 +1630,9 @@ VkImageView ImageView::DepthView() {
} }
VkImageView ImageView::StencilView() { VkImageView ImageView::StencilView() {
if (!image_handle) {
return VK_NULL_HANDLE;
}
if (stencil_view) { if (stencil_view) {
return *stencil_view; return *stencil_view;
} }
@ -1636,6 +1642,9 @@ VkImageView ImageView::StencilView() {
} }
VkImageView ImageView::ColorView() { VkImageView ImageView::ColorView() {
if (!image_handle) {
return VK_NULL_HANDLE;
}
if (color_view) { if (color_view) {
return *color_view; return *color_view;
} }
@ -1645,6 +1654,9 @@ VkImageView ImageView::ColorView() {
VkImageView ImageView::StorageView(Shader::TextureType texture_type, VkImageView ImageView::StorageView(Shader::TextureType texture_type,
Shader::ImageFormat image_format) { Shader::ImageFormat image_format) {
if (!image_handle) {
return VK_NULL_HANDLE;
}
if (image_format == Shader::ImageFormat::Typeless) { if (image_format == Shader::ImageFormat::Typeless) {
return Handle(texture_type); return Handle(texture_type);
} }