aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2018-02-23 16:08:28 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-26 15:48:18 +0000
commitb68319a4b71a6be4655b00c49a4066df1aa429d4 (patch)
tree7739d184f1bddb3c26ece9e8c6109bb7e8883406 /src
parent5279cdf1907e87e12934888d8ad70ceeb7bfc075 (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.cpp10
-rw-r--r--src/gpu/vk/GrVkRenderPass.cpp4
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;