intel: use memory copy for intelCmdCloneImageData()
This may still be wrong, but at least it looks better. We will know better
when we support multisample images and fast clears.
diff --git a/icd/intel/cmd_meta.c b/icd/intel/cmd_meta.c
index 009033c..f59e64f 100644
--- a/icd/intel/cmd_meta.c
+++ b/icd/intel/cmd_meta.c
@@ -690,24 +690,17 @@
XGL_IMAGE destImage,
XGL_IMAGE_STATE destImageState)
{
- const struct intel_img *src = intel_img(srcImage);
- XGL_IMAGE_COPY region;
- XGL_UINT lv;
+ struct intel_cmd *cmd = intel_cmd(cmdBuffer);
+ struct intel_img *src = intel_img(srcImage);
+ struct intel_img *dst = intel_img(destImage);
+ XGL_MEMORY_COPY region;
memset(®ion, 0, sizeof(region));
- region.srcSubresource.aspect = XGL_IMAGE_ASPECT_COLOR;
- region.destSubresource.aspect = XGL_IMAGE_ASPECT_COLOR;
+ region.copySize = src->obj.mem->size;
- for (lv = 0; lv < src->mip_levels; lv++) {
- region.srcSubresource.mipLevel = lv;
- region.destSubresource.mipLevel = lv;
-
- region.extent.width = u_minify(src->layout.width0, lv);
- region.extent.height = u_minify(src->layout.height0, lv);
- region.extent.depth = src->array_size;
-
- intelCmdCopyImage(cmdBuffer, srcImage, destImage, 1, ®ion);
- }
+ cmd_batch_flush(cmd, GEN6_PIPE_CONTROL_RENDER_CACHE_FLUSH);
+ intelCmdCopyMemory(cmdBuffer, (XGL_GPU_MEMORY) src->obj.mem,
+ (XGL_GPU_MEMORY) dst->obj.mem, 1, ®ion);
}
XGL_VOID XGLAPI intelCmdUpdateMemory(