diff options
author | Greg Daniel <egdaniel@google.com> | 2017-06-16 16:17:03 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-06-16 16:17:15 +0000 |
commit | 6ecc911070add386dc9ffeb8b131d21035672fb6 (patch) | |
tree | 04bdcfd72b07ca6e29014a0b54e5ce34030fabac /src/gpu/vk/GrVkCommandBuffer.cpp | |
parent | 35186b5db595e85985df8611810ab54a99b0f835 (diff) |
Revert "Revert "Remove Gr*Gpu includes from header files.""
This reverts commit 56af45b03c542ef0bc198e42687bf685aafaae81.
Reason for revert: Relanding now that pre CL has relanded
Original change's description:
> Revert "Remove Gr*Gpu includes from header files."
>
> This reverts commit 2bd381bffd36cdcffacf606d952547ce66fed7e9.
>
> Reason for revert: Need to revert change this landed on top of
>
> Original change's description:
> > Remove Gr*Gpu includes from header files.
> >
> > Some general cleanup to try to keep use of the backend gpu class in cpps.
> >
> > Bug: skia:
> > Change-Id: I1a28e0e5c2e55562b3fff56c284c3405b5b6d8bc
> > Reviewed-on: https://skia-review.googlesource.com/20057
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
>
> TBR=egdaniel@google.com,robertphillips@google.com
>
> Change-Id: I5b27d50654a17502c056d59b2d4f9609376d189e
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/20064
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,robertphillips@google.com
Change-Id: Id1656a7708223bc4dcc8eb4444ef41ada61be5d0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/20148
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'src/gpu/vk/GrVkCommandBuffer.cpp')
-rw-r--r-- | src/gpu/vk/GrVkCommandBuffer.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp index 63642d4ed0..d4fe80caf9 100644 --- a/src/gpu/vk/GrVkCommandBuffer.cpp +++ b/src/gpu/vk/GrVkCommandBuffer.cpp @@ -7,14 +7,19 @@ #include "GrVkCommandBuffer.h" +#include "GrVkGpu.h" #include "GrVkFramebuffer.h" +#include "GrVkImage.h" #include "GrVkImageView.h" +#include "GrVkIndexBuffer.h" #include "GrVkPipeline.h" +#include "GrVkPipelineState.h" #include "GrVkRenderPass.h" #include "GrVkRenderTarget.h" #include "GrVkPipelineState.h" #include "GrVkTransferBuffer.h" #include "GrVkUtil.h" +#include "GrVkVertexBuffer.h" #include "SkRect.h" void GrVkCommandBuffer::invalidateState() { @@ -145,6 +150,40 @@ void GrVkCommandBuffer::pipelineBarrier(const GrVkGpu* gpu, } +void GrVkCommandBuffer::bindInputBuffer(GrVkGpu* gpu, uint32_t binding, + const GrVkVertexBuffer* vbuffer) { + VkBuffer vkBuffer = vbuffer->buffer(); + SkASSERT(VK_NULL_HANDLE != vkBuffer); + SkASSERT(binding < kMaxInputBuffers); + // TODO: once vbuffer->offset() no longer always returns 0, we will need to track the offset + // to know if we can skip binding or not. + if (vkBuffer != fBoundInputBuffers[binding]) { + VkDeviceSize offset = vbuffer->offset(); + GR_VK_CALL(gpu->vkInterface(), CmdBindVertexBuffers(fCmdBuffer, + binding, + 1, + &vkBuffer, + &offset)); + fBoundInputBuffers[binding] = vkBuffer; + addResource(vbuffer->resource()); + } +} + +void GrVkCommandBuffer::bindIndexBuffer(GrVkGpu* gpu, const GrVkIndexBuffer* ibuffer) { + VkBuffer vkBuffer = ibuffer->buffer(); + SkASSERT(VK_NULL_HANDLE != vkBuffer); + // TODO: once ibuffer->offset() no longer always returns 0, we will need to track the offset + // to know if we can skip binding or not. + if (vkBuffer != fBoundIndexBuffer) { + GR_VK_CALL(gpu->vkInterface(), CmdBindIndexBuffer(fCmdBuffer, + vkBuffer, + ibuffer->offset(), + VK_INDEX_TYPE_UINT16)); + fBoundIndexBuffer = vkBuffer; + addResource(ibuffer->resource()); + } +} + void GrVkCommandBuffer::clearAttachments(const GrVkGpu* gpu, int numAttachments, const VkClearAttachment* attachments, @@ -535,6 +574,25 @@ void GrVkPrimaryCommandBuffer::blitImage(const GrVkGpu* gpu, filter)); } +void GrVkPrimaryCommandBuffer::blitImage(const GrVkGpu* gpu, + const GrVkImage& srcImage, + const GrVkImage& dstImage, + uint32_t blitRegionCount, + const VkImageBlit* blitRegions, + VkFilter filter) { + this->blitImage(gpu, + srcImage.resource(), + srcImage.image(), + srcImage.currentLayout(), + dstImage.resource(), + dstImage.image(), + dstImage.currentLayout(), + blitRegionCount, + blitRegions, + filter); +} + + void GrVkPrimaryCommandBuffer::copyImageToBuffer(const GrVkGpu* gpu, GrVkImage* srcImage, VkImageLayout srcLayout, |