Skip to content

Commit 4520b1c

Browse files
committed
[d3d11] Fix usage and access flags for multisampled images
Meta-resolve operations will use the image in a fragment shader.
1 parent db2b6e1 commit 4520b1c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/d3d11/d3d11_texture.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ namespace dxvk {
2828
| VK_ACCESS_TRANSFER_WRITE_BIT;
2929
imageInfo.tiling = VK_IMAGE_TILING_OPTIMAL;
3030
imageInfo.layout = VK_IMAGE_LAYOUT_GENERAL;
31-
31+
3232
DecodeSampleCount(m_desc.SampleDesc.Count, &imageInfo.sampleCount);
3333

3434
// Typeless formats need the MUTABLE_FORMAT_BIT to be set
@@ -72,6 +72,13 @@ namespace dxvk {
7272
| VK_ACCESS_SHADER_WRITE_BIT;
7373
}
7474

75+
// Access pattern for meta-resolve operations
76+
if (imageInfo.sampleCount != VK_SAMPLE_COUNT_1_BIT) {
77+
imageInfo.usage |= VK_IMAGE_USAGE_SAMPLED_BIT;
78+
imageInfo.stages |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
79+
imageInfo.access |= VK_ACCESS_SHADER_READ_BIT;
80+
}
81+
7582
if (m_desc.MiscFlags & D3D11_RESOURCE_MISC_TEXTURECUBE)
7683
imageInfo.flags |= VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT;
7784

0 commit comments

Comments
 (0)