mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-11-01 11:58:19 +00:00
Fix build
This commit is contained in:
@@ -1048,6 +1048,11 @@ VkImageView TextureCacheRuntime::GetOrCreateResolveShadow(VkImage msaa_image, Vk
|
|||||||
shadow.up_to_date = true;
|
shadow.up_to_date = true;
|
||||||
return *shadow.view;
|
return *shadow.view;
|
||||||
}
|
}
|
||||||
|
const VkImageUsageFlags shadow_usage =
|
||||||
|
static_cast<VkImageUsageFlags>(is_depth_stencil
|
||||||
|
? VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
||||||
|
: VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) |
|
||||||
|
VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
|
||||||
shadow.image = memory_allocator.CreateImage(VkImageCreateInfo{
|
shadow.image = memory_allocator.CreateImage(VkImageCreateInfo{
|
||||||
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
|
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
|
||||||
.pNext = nullptr,
|
.pNext = nullptr,
|
||||||
@@ -1059,9 +1064,7 @@ VkImageView TextureCacheRuntime::GetOrCreateResolveShadow(VkImage msaa_image, Vk
|
|||||||
.arrayLayers = layers,
|
.arrayLayers = layers,
|
||||||
.samples = VK_SAMPLE_COUNT_1_BIT,
|
.samples = VK_SAMPLE_COUNT_1_BIT,
|
||||||
.tiling = VK_IMAGE_TILING_OPTIMAL,
|
.tiling = VK_IMAGE_TILING_OPTIMAL,
|
||||||
.usage = (is_depth_stencil ? VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
|
.usage = shadow_usage,
|
||||||
: VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) |
|
|
||||||
VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
|
|
||||||
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
|
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
|
||||||
.queueFamilyIndexCount = 0,
|
.queueFamilyIndexCount = 0,
|
||||||
.pQueueFamilyIndices = nullptr,
|
.pQueueFamilyIndices = nullptr,
|
||||||
@@ -1088,16 +1091,20 @@ VkImageView TextureCacheRuntime::GetOrCreateResolveShadow(VkImage msaa_image, Vk
|
|||||||
shadow.layers = layers;
|
shadow.layers = layers;
|
||||||
shadow.up_to_date = true;
|
shadow.up_to_date = true;
|
||||||
if (device.IsKhrDynamicRenderingSupported()) {
|
if (device.IsKhrDynamicRenderingSupported()) {
|
||||||
|
const VkAccessFlags dst_access =
|
||||||
|
is_depth_stencil ? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
|
||||||
|
: VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
|
||||||
|
const VkPipelineStageFlags dst_stage =
|
||||||
|
is_depth_stencil ? VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
|
||||||
|
: VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||||
scheduler.RecordWithUploadBuffer(
|
scheduler.RecordWithUploadBuffer(
|
||||||
[image = *shadow.image, layers, aspect, is_depth_stencil](
|
[image = *shadow.image, layers, aspect, dst_access, dst_stage](
|
||||||
vk::CommandBuffer, vk::CommandBuffer upload_cmdbuf) {
|
vk::CommandBuffer, vk::CommandBuffer upload_cmdbuf) {
|
||||||
const VkImageMemoryBarrier barrier{
|
const VkImageMemoryBarrier barrier{
|
||||||
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
|
.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
|
||||||
.pNext = nullptr,
|
.pNext = nullptr,
|
||||||
.srcAccessMask = 0,
|
.srcAccessMask = 0,
|
||||||
.dstAccessMask = is_depth_stencil
|
.dstAccessMask = dst_access,
|
||||||
? VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT
|
|
||||||
: VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
|
|
||||||
.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED,
|
.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED,
|
||||||
.newLayout = VK_IMAGE_LAYOUT_GENERAL,
|
.newLayout = VK_IMAGE_LAYOUT_GENERAL,
|
||||||
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
|
||||||
@@ -1111,11 +1118,8 @@ VkImageView TextureCacheRuntime::GetOrCreateResolveShadow(VkImage msaa_image, Vk
|
|||||||
.layerCount = layers,
|
.layerCount = layers,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
upload_cmdbuf.PipelineBarrier(
|
upload_cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, dst_stage, 0,
|
||||||
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
barrier);
|
||||||
is_depth_stencil ? VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT
|
|
||||||
: VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
|
|
||||||
0, barrier);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return *shadow.view;
|
return *shadow.view;
|
||||||
|
|||||||
Reference in New Issue
Block a user