android: radv: add libmesa_git_sha1 static dependency
[mesa.git] / src / amd / vulkan / radv_meta_copy.c
index f4de5528edf904a509a89953b9b852853856ab36..ddfb5c54673c8cdc08f4ae2d6fcd814b6c2e40c6 100644 (file)
@@ -195,10 +195,14 @@ meta_copy_buffer_to_image(struct radv_cmd_buffer *cmd_buffer,
 
 
                        /* Perform Blit */
-                       if (cs)
+                       if (cs ||
+                           (img_bsurf.image->vk_format == VK_FORMAT_R32G32B32_UINT ||
+                            img_bsurf.image->vk_format == VK_FORMAT_R32G32B32_SINT ||
+                            img_bsurf.image->vk_format == VK_FORMAT_R32G32B32_SFLOAT)) {
                                radv_meta_buffer_to_image_cs(cmd_buffer, &buf_bsurf, &img_bsurf, 1, &rect);
-                       else
+                       } else {
                                radv_meta_blit2d(cmd_buffer, NULL, &buf_bsurf, &img_bsurf, 1, &rect);
+                       }
 
                        /* Once we've done the blit, all of the actual information about
                         * the image is embedded in the command buffer so we can just
@@ -478,10 +482,14 @@ meta_copy_image(struct radv_cmd_buffer *cmd_buffer,
                        rect.src_y = src_offset_el.y;
 
                        /* Perform Blit */
-                       if (cs)
+                       if (cs ||
+                           (b_src.format == VK_FORMAT_R32G32B32_UINT ||
+                            b_src.format == VK_FORMAT_R32G32B32_SINT ||
+                            b_src.format == VK_FORMAT_R32G32B32_SFLOAT)) {
                                radv_meta_image_to_image_cs(cmd_buffer, &b_src, &b_dst, 1, &rect);
-                       else
+                       } else {
                                radv_meta_blit2d(cmd_buffer, &b_src, NULL, &b_dst, 1, &rect);
+                       }
 
                        b_src.layer++;
                        b_dst.layer++;