xgl: Add IMAGE_LAYOUT to Cmd*Image* calls
This is part 2 of bug #12904.
(2) Blit operations need to know what layout images are in. How do they figure that out?
- Added new parameter(s) specifying the image layout(s) to the following functions:
xglCmdCopyImage
xglCmdCopyBufferToImage
xglCmdCopyImageToBuffer
xglCmdClearColorImage
xglCmdClearColorImageRaw
xglCmdClearDepthStencilImage
xglCmdResolveImage
diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index 4083b02..652f15e 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -505,7 +505,7 @@
copy_region.destOffset.z = 0;
copy_region.extent = fromImage.extent();
- xglCmdCopyImage(cmd_buf, fromImage.obj(), obj(), 1, ©_region);
+ xglCmdCopyImage(cmd_buf, fromImage.obj(), fromImage.layout(), obj(), layout(), 1, ©_region);
XGL_IMAGE_MEMORY_BARRIER image_memory_barrier = {};
image_memory_barrier.sType = XGL_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
@@ -1199,7 +1199,9 @@
xglCmdPipelineBarrier( obj(), &pipeline_barrier);
m_renderTargets[i]->layout(memory_barrier.newLayout);
- xglCmdClearColorImage( obj(), m_renderTargets[i]->image(), clear_color, 1, &srRange );
+ xglCmdClearColorImage(obj(),
+ m_renderTargets[i]->image(), XGL_IMAGE_LAYOUT_CLEAR_OPTIMAL,
+ clear_color, 1, &srRange );
}
if (depthStencilImage)
@@ -1221,7 +1223,8 @@
xglCmdPipelineBarrier( obj(), &pipeline_barrier);
depthStencilBinding->layout = memory_barrier.newLayout;
- xglCmdClearDepthStencil(obj(), depthStencilImage,
+ xglCmdClearDepthStencil(obj(),
+ depthStencilImage, XGL_IMAGE_LAYOUT_CLEAR_OPTIMAL,
depth_clear_color, stencil_clear_color,
1, &dsRange);