From 4520b1ca8fc6cf089da354df8ab7f6e058eefa4e Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Thu, 28 Jun 2018 16:47:54 +0200 Subject: [PATCH] [d3d11] Fix usage and access flags for multisampled images Meta-resolve operations will use the image in a fragment shader. --- src/d3d11/d3d11_texture.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/d3d11/d3d11_texture.cpp b/src/d3d11/d3d11_texture.cpp index 883b08bd..0c5cc50d 100644 --- a/src/d3d11/d3d11_texture.cpp +++ b/src/d3d11/d3d11_texture.cpp @@ -28,7 +28,7 @@ namespace dxvk { | VK_ACCESS_TRANSFER_WRITE_BIT; imageInfo.tiling = VK_IMAGE_TILING_OPTIMAL; imageInfo.layout = VK_IMAGE_LAYOUT_GENERAL; - + DecodeSampleCount(m_desc.SampleDesc.Count, &imageInfo.sampleCount); // Typeless formats need the MUTABLE_FORMAT_BIT to be set @@ -72,6 +72,13 @@ namespace dxvk { | VK_ACCESS_SHADER_WRITE_BIT; } + // Access pattern for meta-resolve operations + if (imageInfo.sampleCount != VK_SAMPLE_COUNT_1_BIT) { + imageInfo.usage |= VK_IMAGE_USAGE_SAMPLED_BIT; + imageInfo.stages |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + imageInfo.access |= VK_ACCESS_SHADER_READ_BIT; + } + if (m_desc.MiscFlags & D3D11_RESOURCE_MISC_TEXTURECUBE) imageInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;