[d3d11] Fix usage and access flags for multisampled images

Meta-resolve operations will use the image in a fragment shader.
This commit is contained in:
Philip Rebohle 2018-06-28 16:47:54 +02:00
parent db2b6e1219
commit 4520b1ca8f
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
1 changed files with 8 additions and 1 deletions

View File

@ -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;