Can't use CmdCopyBufferToImage or vice versa for depth and stencil.

This commit is contained in:
Dr. Chat 2016-04-01 22:03:29 -05:00
parent f9a634ad25
commit 3726064af5
1 changed files with 16 additions and 16 deletions

View File

@ -339,18 +339,18 @@ CachedRenderPass::CachedRenderPass(VkDevice device,
VkSampleCountFlagBits sample_count; VkSampleCountFlagBits sample_count;
switch (desired_config.surface_msaa) { switch (desired_config.surface_msaa) {
case MsaaSamples::k1X: case MsaaSamples::k1X:
sample_count = VK_SAMPLE_COUNT_1_BIT; sample_count = VK_SAMPLE_COUNT_1_BIT;
break; break;
case MsaaSamples::k2X: case MsaaSamples::k2X:
sample_count = VK_SAMPLE_COUNT_2_BIT; sample_count = VK_SAMPLE_COUNT_2_BIT;
break; break;
case MsaaSamples::k4X: case MsaaSamples::k4X:
sample_count = VK_SAMPLE_COUNT_4_BIT; sample_count = VK_SAMPLE_COUNT_4_BIT;
break; break;
default: default:
assert_unhandled_case(desired_config.surface_msaa); assert_unhandled_case(desired_config.surface_msaa);
break; break;
} }
// Initialize all attachments to default unused. // Initialize all attachments to default unused.
@ -840,15 +840,15 @@ void RenderCache::UpdateTileView(VkCommandBuffer command_buffer,
&barrier, 0, nullptr); &barrier, 0, nullptr);
} }
// TODO(DrChat): Stencil copies.
VkBufferImageCopy region; VkBufferImageCopy region;
region.bufferOffset = view->key.tile_offset * 5120; region.bufferOffset = view->key.tile_offset * 5120;
region.bufferRowLength = 0; region.bufferRowLength = 0;
region.bufferImageHeight = 0; region.bufferImageHeight = 0;
region.imageSubresource = {0, 0, 0, 1}; region.imageSubresource = {0, 0, 0, 1};
region.imageSubresource.aspectMask = region.imageSubresource.aspectMask = view->key.color_or_depth
view->key.color_or_depth ? VK_IMAGE_ASPECT_COLOR_BIT
? VK_IMAGE_ASPECT_COLOR_BIT : VK_IMAGE_ASPECT_DEPTH_BIT;
: VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT;
region.imageOffset = {0, 0, 0}; region.imageOffset = {0, 0, 0};
region.imageExtent = {view->key.tile_width * 80u, view->key.tile_height * 16u, region.imageExtent = {view->key.tile_width * 80u, view->key.tile_height * 16u,
1}; 1};