mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-22 16:54:27 +01:00
[d3d9] Fix image layout for transfer-only images
This commit is contained in:
parent
cde8661bc1
commit
c4421348cf
@ -499,8 +499,6 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
VkImageLayout D3D9CommonTexture::OptimizeLayout(VkImageUsageFlags Usage) const {
|
VkImageLayout D3D9CommonTexture::OptimizeLayout(VkImageUsageFlags Usage) const {
|
||||||
const VkImageUsageFlags usageFlags = Usage;
|
|
||||||
|
|
||||||
// Filter out unnecessary flags. Transfer operations
|
// Filter out unnecessary flags. Transfer operations
|
||||||
// are handled by the backend in a transparent manner.
|
// are handled by the backend in a transparent manner.
|
||||||
// Feedback loops are handled by hazard tracking.
|
// Feedback loops are handled by hazard tracking.
|
||||||
@ -524,8 +522,12 @@ namespace dxvk {
|
|||||||
if (Usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)
|
if (Usage == VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)
|
||||||
return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
|
return VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
|
||||||
|
|
||||||
|
// Fall back to GENERAL if the image is not shader-readable
|
||||||
|
if (!(Usage & VK_IMAGE_USAGE_SAMPLED_BIT))
|
||||||
|
return VK_IMAGE_LAYOUT_GENERAL;
|
||||||
|
|
||||||
// Otherwise, pick a layout that can be used for reading.
|
// Otherwise, pick a layout that can be used for reading.
|
||||||
return usageFlags & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
return Usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||||
? VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
|
? VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
|
||||||
: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user