diff options
author | Greg Daniel <egdaniel@google.com> | 2018-02-23 16:08:28 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-26 15:48:18 +0000 |
commit | b68319a4b71a6be4655b00c49a4066df1aa429d4 (patch) | |
tree | 7739d184f1bddb3c26ece9e8c6109bb7e8883406 /src | |
parent | 5279cdf1907e87e12934888d8ad70ceeb7bfc075 (diff) |
Send correct clear count to vulkan beginRenderPass
This technically wasn't an error but fixes a warning in the validation
layers.
Bug: skia:
Change-Id: I3d0d0aa3a29b5a08f145ceabedb9357791d36cb2
Reviewed-on: https://skia-review.googlesource.com/109881
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/vk/GrVkCommandBuffer.cpp | 10 | ||||
-rw-r--r-- | src/gpu/vk/GrVkRenderPass.cpp | 4 |
2 files changed, 3 insertions, 11 deletions
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp index 27642dfe63..2b6dde2f4b 100644 --- a/src/gpu/vk/GrVkCommandBuffer.cpp +++ b/src/gpu/vk/GrVkCommandBuffer.cpp @@ -403,15 +403,7 @@ void GrVkPrimaryCommandBuffer::beginRenderPass(const GrVkGpu* gpu, beginInfo.renderPass = renderPass->vkRenderPass(); beginInfo.framebuffer = target.framebuffer()->framebuffer(); beginInfo.renderArea = renderArea; - - // TODO: have clearValueCount return the index of the last attachment that - // requires a clear instead of the number of total clears. - uint32_t stencilIndex; - if (renderPass->stencilAttachmentIndex(&stencilIndex)) { - beginInfo.clearValueCount = renderPass->clearValueCount() ? 2 : 0; - } else { - beginInfo.clearValueCount = renderPass->clearValueCount(); - } + beginInfo.clearValueCount = renderPass->clearValueCount(); beginInfo.pClearValues = clearValues; VkSubpassContents contents = forSecondaryCB ? VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS diff --git a/src/gpu/vk/GrVkRenderPass.cpp b/src/gpu/vk/GrVkRenderPass.cpp index 7f8b20ad41..e0daa3f8e1 100644 --- a/src/gpu/vk/GrVkRenderPass.cpp +++ b/src/gpu/vk/GrVkRenderPass.cpp @@ -86,7 +86,7 @@ void GrVkRenderPass::init(const GrVkGpu* gpu, subpassDesc.colorAttachmentCount = 1; if (VK_ATTACHMENT_LOAD_OP_CLEAR == colorOp.fLoadOp) { - fClearValueCount++; + fClearValueCount = colorRef.attachment + 1; } } else { // I don't think there should ever be a time where we don't have a color attachment @@ -107,7 +107,7 @@ void GrVkRenderPass::init(const GrVkGpu* gpu, stencilRef.attachment = currentAttachment++; stencilRef.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; if (VK_ATTACHMENT_LOAD_OP_CLEAR == stencilOp.fLoadOp) { - fClearValueCount++; + fClearValueCount = SkTMax(fClearValueCount, stencilRef.attachment + 1); } } else { stencilRef.attachment = VK_ATTACHMENT_UNUSED; |