meta: Initial support for packing parameters
authorJason Ekstrand <jason.ekstrand@intel.com>
Thu, 17 Sep 2015 21:24:50 +0000 (14:24 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 18 Sep 2015 01:21:05 +0000 (18:21 -0700)
Probably incomplete but it should do for now

src/vulkan/anv_meta.c

index 4f70e573008994eacb73039b863ddad180548480..b850305913a8dac5161a47651a8c0c685fa09b1c 100644 (file)
@@ -1219,10 +1219,12 @@ make_image_for_buffer(VkDevice vk_device, VkBuffer vk_buffer, VkFormat format,
 {
    ANV_FROM_HANDLE(anv_buffer, buffer, vk_buffer);
 
-   if (copy->bufferRowLength != 0)
-      anv_finishme("bufferRowLength not supported in CopyBufferToImage");
-   if (copy->bufferImageHeight != 0)
-      anv_finishme("bufferImageHeight not supported in CopyBufferToImage");
+   VkExtent3D extent = copy->imageExtent;
+   if (copy->bufferRowLength)
+      extent.width = copy->bufferRowLength;
+   if (copy->bufferImageHeight)
+      extent.height = copy->bufferImageHeight;
+   extent.depth = 1;
 
    VkImage vk_image;
    VkResult result = anv_CreateImage(vk_device,
@@ -1230,11 +1232,7 @@ make_image_for_buffer(VkDevice vk_device, VkBuffer vk_buffer, VkFormat format,
          .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
          .imageType = VK_IMAGE_TYPE_2D,
          .format = format,
-         .extent = {
-            .width = copy->imageExtent.width,
-            .height = copy->imageExtent.height,
-            .depth = 1,
-         },
+         .extent = extent,
          .mipLevels = 1,
          .arraySize = 1,
          .samples = 1,