From eb25d3f9f359336186234016f50d988bc9d0f0e6 Mon Sep 17 00:00:00 2001 From: malnasse Date: Wed, 3 Jun 2015 17:28:38 -0400 Subject: Use correct depth aspect for depth image. --- demos/cube.c | 9 ++++++++- demos/tri.c | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/demos/cube.c b/demos/cube.c index 71f1d4cd..36917e12 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -372,6 +372,7 @@ static void demo_flush_init_cmd(struct demo *demo) static void demo_set_image_layout( struct demo *demo, VkImage image, + VkImageAspect aspect, VkImageLayout old_image_layout, VkImageLayout new_image_layout) { @@ -405,7 +406,7 @@ static void demo_set_image_layout( .oldLayout = old_image_layout, .newLayout = new_image_layout, .image = image, - .subresourceRange = { VK_IMAGE_ASPECT_COLOR, 0, 1, 0, 0 } + .subresourceRange = { aspect, 0, 1, 0, 0 } }; if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL) { @@ -619,6 +620,7 @@ static void demo_prepare_buffers(struct demo *demo) demo->buffers[i].mem = images[i].memory; demo_set_image_layout(demo, demo->buffers[i].image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); @@ -691,6 +693,7 @@ static void demo_prepare_depth(struct demo *demo) assert(!err); demo_set_image_layout(demo, demo->depth.image, + VK_IMAGE_ASPECT_DEPTH, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); @@ -951,6 +954,7 @@ static void demo_prepare_texture_image(struct demo *demo, tex_obj->imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; demo_set_image_layout(demo, tex_obj->image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_UNDEFINED, tex_obj->imageLayout); /* setting the image layout does not reference the actual memory so no need to add a mem ref */ @@ -999,10 +1003,12 @@ static void demo_prepare_textures(struct demo *demo) VK_MEMORY_PROPERTY_DEVICE_ONLY); demo_set_image_layout(demo, staging_texture.image, + VK_IMAGE_ASPECT_COLOR, staging_texture.imageLayout, VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL); demo_set_image_layout(demo, demo->textures[i].image, + VK_IMAGE_ASPECT_COLOR, demo->textures[i].imageLayout, VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL); @@ -1019,6 +1025,7 @@ static void demo_prepare_textures(struct demo *demo) 1, ©_region); demo_set_image_layout(demo, demo->textures[i].image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL, demo->textures[i].imageLayout); diff --git a/demos/tri.c b/demos/tri.c index 26f75987..d59d9e62 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -189,6 +189,7 @@ static void demo_flush_init_cmd(struct demo *demo) static void demo_set_image_layout( struct demo *demo, VkImage image, + VkImageAspect aspect, VkImageLayout old_image_layout, VkImageLayout new_image_layout) { @@ -222,7 +223,7 @@ static void demo_set_image_layout( .oldLayout = old_image_layout, .newLayout = new_image_layout, .image = image, - .subresourceRange = { VK_IMAGE_ASPECT_COLOR, 0, 1, 0, 0 } + .subresourceRange = { aspect, 0, 1, 0, 0 } }; if (new_image_layout == VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL) { @@ -416,6 +417,7 @@ static void demo_prepare_buffers(struct demo *demo) demo->buffers[i].mem = images[i].memory; demo_set_image_layout(demo, demo->buffers[i].image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); @@ -490,6 +492,7 @@ static void demo_prepare_depth(struct demo *demo) assert(!err); demo_set_image_layout(demo, demo->depth.image, + VK_IMAGE_ASPECT_DEPTH, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); @@ -590,6 +593,7 @@ static void demo_prepare_texture_image(struct demo *demo, tex_obj->imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; demo_set_image_layout(demo, tex_obj->image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_UNDEFINED, tex_obj->imageLayout); /* setting the image layout does not reference the actual memory so no need to add a mem ref */ @@ -640,10 +644,12 @@ static void demo_prepare_textures(struct demo *demo) VK_MEMORY_PROPERTY_DEVICE_ONLY); demo_set_image_layout(demo, staging_texture.image, + VK_IMAGE_ASPECT_COLOR, staging_texture.imageLayout, VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL); demo_set_image_layout(demo, demo->textures[i].image, + VK_IMAGE_ASPECT_COLOR, demo->textures[i].imageLayout, VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL); @@ -660,6 +666,7 @@ static void demo_prepare_textures(struct demo *demo) 1, ©_region); demo_set_image_layout(demo, demo->textures[i].image, + VK_IMAGE_ASPECT_COLOR, VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL, demo->textures[i].imageLayout); -- cgit v1.2.3