diff --git a/rpcs3/Emu/RSX/VK/VKCompute.h b/rpcs3/Emu/RSX/VK/VKCompute.h index 2801519668..7f6046996c 100644 --- a/rpcs3/Emu/RSX/VK/VKCompute.h +++ b/rpcs3/Emu/RSX/VK/VKCompute.h @@ -591,7 +591,7 @@ namespace vk } }; - template + template struct cs_fconvert_task : cs_shuffle_base { u32 m_ssbo_length = 0; @@ -629,7 +629,7 @@ namespace vk " uint out_offset = params[0].z >> 2;\n" " uvec4 tmp;\n"; - work_kernel += + work_kernel = " if (index >= block_length)\n" " return;\n"; @@ -651,7 +651,7 @@ namespace vk } // Convert - work_kernel += " tmp.z = pack_e4m12_pack16(tmp);\n"; + work_kernel += " tmp.z = pack_e4m12_pack16(tmp.xy);\n"; if constexpr (_SwapDst) { @@ -681,7 +681,7 @@ namespace vk if constexpr (_SwapDst) { - work_kernel += " tmp.yz = bswap_u16(tmp.yz);\n"; + work_kernel += " tmp.yz = bswap_u32(tmp.yz);\n"; } work_kernel += diff --git a/rpcs3/Emu/RSX/VK/VKTexture.cpp b/rpcs3/Emu/RSX/VK/VKTexture.cpp index d68b89c584..cb8628854d 100644 --- a/rpcs3/Emu/RSX/VK/VKTexture.cpp +++ b/rpcs3/Emu/RSX/VK/VKTexture.cpp @@ -108,12 +108,12 @@ namespace vk // 3. Do conversion with byteswap [D32->D16F] if (!swap_bytes) [[likely]] { - auto job = vk::get_compute_task>(); + auto job = vk::get_compute_task>(); job->run(cmd, dst, z32_offset, packed32_length, data_offset); } else { - auto job = vk::get_compute_task>(); + auto job = vk::get_compute_task>(); job->run(cmd, dst, z32_offset, packed32_length, data_offset); } @@ -237,7 +237,7 @@ namespace vk VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT); // 2. Do conversion with byteswap [D16F->D32F] - auto job = vk::get_compute_task>(); + auto job = vk::get_compute_task>(); job->run(cmd, src, data_offset, packed16_length, z32_offset); // 4. Post-compute barrier