diff --git a/src/video_core/host_shaders/format_reinterpreter/vulkan_d24s8_to_rgba8_ms.comp b/src/video_core/host_shaders/format_reinterpreter/vulkan_d24s8_to_rgba8_ms.comp index 3dca7c91e..62297a202 100644 --- a/src/video_core/host_shaders/format_reinterpreter/vulkan_d24s8_to_rgba8_ms.comp +++ b/src/video_core/host_shaders/format_reinterpreter/vulkan_d24s8_to_rgba8_ms.comp @@ -17,10 +17,10 @@ layout(push_constant, std140) uniform ComputeInfo { }; void main() { - int sample_count = textureSamples(depth); - ivec2 src_coord = src_offset + ivec2(gl_GlobalInvocationID.xy); ivec2 dst_coord = dst_offset + ivec2(gl_GlobalInvocationID.xy); + + int sample_count = textureSamples(depth); for(int sample_index = 0; sample_index < sample_count; ++sample_index) { highp uint depth_val = uint(texelFetch(depth, src_coord, sample_index).x * (exp2(32.0) - 1.0)); diff --git a/src/video_core/renderer_vulkan/vk_blit_helper.cpp b/src/video_core/renderer_vulkan/vk_blit_helper.cpp index dc758c13f..0d530ac95 100644 --- a/src/video_core/renderer_vulkan/vk_blit_helper.cpp +++ b/src/video_core/renderer_vulkan/vk_blit_helper.cpp @@ -421,12 +421,12 @@ bool BlitHelper::ConvertDS24S8ToRGBA8(Surface& source, Surface& dest, update_queue.AddImageSampler(descriptor_set, 1, 0, source.ImageView(ViewType::Stencil, src_type), VK_NULL_HANDLE, vk::ImageLayout::eDepthStencilReadOnlyOptimal); - update_queue.AddStorageImage(descriptor_set, 2, dest.ImageView()); + update_queue.AddStorageImage(descriptor_set, 2, dest.ImageView(ViewType::Sample, src_type)); renderpass_cache.EndRendering(); - scheduler.Record([this, pipeline, descriptor_set, copy, src_image = source.Image(), - dst_image = dest.Image()](vk::CommandBuffer cmdbuf) { + scheduler.Record([this, pipeline, descriptor_set, copy, src_image = source.Image(src_type), + dst_image = dest.Image(src_type)](vk::CommandBuffer cmdbuf) { const std::array pre_barriers = { vk::ImageMemoryBarrier{ .srcAccessMask = vk::AccessFlagBits::eDepthStencilAttachmentWrite,