diff options
author | 2017-06-15 16:06:47 -0400 | |
---|---|---|
committer | 2017-06-15 21:07:21 +0000 | |
commit | 2bd381bffd36cdcffacf606d952547ce66fed7e9 (patch) | |
tree | 4615668e4e6ea616d13419eb4fec0907f75864a4 /src/gpu/vk | |
parent | 10978a6eade1031881bc1793d01ec6d841519778 (diff) |
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>
Diffstat (limited to 'src/gpu/vk')
-rw-r--r-- | src/gpu/vk/GrVkCommandBuffer.cpp | 58 | ||||
-rw-r--r-- | src/gpu/vk/GrVkCommandBuffer.h | 55 | ||||
-rw-r--r-- | src/gpu/vk/GrVkResourceProvider.cpp | 1 | ||||
-rw-r--r-- | src/gpu/vk/GrVkTextureRenderTarget.cpp | 59 | ||||
-rw-r--r-- | src/gpu/vk/GrVkTextureRenderTarget.h | 38 |
5 files changed, 135 insertions, 76 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, diff --git a/src/gpu/vk/GrVkCommandBuffer.h b/src/gpu/vk/GrVkCommandBuffer.h index b387885fff..e602e4d574 100644 --- a/src/gpu/vk/GrVkCommandBuffer.h +++ b/src/gpu/vk/GrVkCommandBuffer.h @@ -14,11 +14,16 @@ #include "GrVkUtil.h" #include "vk/GrVkDefines.h" +class GrVkBuffer; class GrVkFramebuffer; +class GrVkIndexBuffer; +class GrVkImage; class GrVkPipeline; +class GrVkPipelineState; class GrVkRenderPass; class GrVkRenderTarget; class GrVkTransferBuffer; +class GrVkVertexBuffer; class GrVkCommandBuffer : public GrVkResource { public: @@ -40,40 +45,9 @@ public: BarrierType barrierType, void* barrier) const; - static constexpr uint32_t kMaxInputBuffers = 2; + void bindInputBuffer(GrVkGpu* gpu, uint32_t binding, const GrVkVertexBuffer* vbuffer); - void 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 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 bindIndexBuffer(GrVkGpu* gpu, const GrVkIndexBuffer* ibuffer); void bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pipeline); @@ -178,6 +152,8 @@ private: virtual void onReset(GrVkGpu* gpu) {} + static constexpr uint32_t kMaxInputBuffers = 2; + VkBuffer fBoundInputBuffers[kMaxInputBuffers]; VkBuffer fBoundIndexBuffer; @@ -258,18 +234,7 @@ public: 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); - } + VkFilter filter); void copyImageToBuffer(const GrVkGpu* gpu, GrVkImage* srcImage, diff --git a/src/gpu/vk/GrVkResourceProvider.cpp b/src/gpu/vk/GrVkResourceProvider.cpp index 9b94c08723..0f4b2a9f34 100644 --- a/src/gpu/vk/GrVkResourceProvider.cpp +++ b/src/gpu/vk/GrVkResourceProvider.cpp @@ -10,6 +10,7 @@ #include "GrSamplerParams.h" #include "GrVkCommandBuffer.h" #include "GrVkCopyPipeline.h" +#include "GrVkGpu.h" #include "GrVkPipeline.h" #include "GrVkRenderTarget.h" #include "GrVkSampler.h" diff --git a/src/gpu/vk/GrVkTextureRenderTarget.cpp b/src/gpu/vk/GrVkTextureRenderTarget.cpp index a77722832d..8dc5ffed1e 100644 --- a/src/gpu/vk/GrVkTextureRenderTarget.cpp +++ b/src/gpu/vk/GrVkTextureRenderTarget.cpp @@ -19,6 +19,65 @@ #define VK_CALL(GPU, X) GR_VK_CALL(GPU->vkInterface(), X) +GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu, + SkBudgeted budgeted, + const GrSurfaceDesc& desc, + const GrVkImageInfo& info, + const GrVkImageView* texView, + const GrVkImageInfo& msaaInfo, + const GrVkImageView* colorAttachmentView, + const GrVkImageView* resolveAttachmentView) + : GrSurface(gpu, desc) + , GrVkImage(info, GrVkImage::kNot_Wrapped) + , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped) + , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView, + resolveAttachmentView, GrVkImage::kNot_Wrapped) { + this->registerWithCache(budgeted); +} + +GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu, + SkBudgeted budgeted, + const GrSurfaceDesc& desc, + const GrVkImageInfo& info, + const GrVkImageView* texView, + const GrVkImageView* colorAttachmentView) + : GrSurface(gpu, desc) + , GrVkImage(info, GrVkImage::kNot_Wrapped) + , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped) + , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, GrVkImage::kNot_Wrapped) { + this->registerWithCache(budgeted); +} + +GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu, + const GrSurfaceDesc& desc, + const GrVkImageInfo& info, + const GrVkImageView* texView, + const GrVkImageInfo& msaaInfo, + const GrVkImageView* colorAttachmentView, + const GrVkImageView* resolveAttachmentView, + GrVkImage::Wrapped wrapped) + : GrSurface(gpu, desc) + , GrVkImage(info, wrapped) + , GrVkTexture(gpu, desc, info, texView, wrapped) + , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView, + resolveAttachmentView, wrapped) { + this->registerWithCacheWrapped(); +} + +GrVkTextureRenderTarget::GrVkTextureRenderTarget(GrVkGpu* gpu, + const GrSurfaceDesc& desc, + const GrVkImageInfo& info, + const GrVkImageView* texView, + const GrVkImageView* colorAttachmentView, + GrVkImage::Wrapped wrapped) + : GrSurface(gpu, desc) + , GrVkImage(info, wrapped) + , GrVkTexture(gpu, desc, info, texView, wrapped) + , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, wrapped) { + this->registerWithCacheWrapped(); +} + + sk_sp<GrVkTextureRenderTarget> GrVkTextureRenderTarget::Make(GrVkGpu* gpu, const GrSurfaceDesc& desc, const GrVkImageInfo& info, diff --git a/src/gpu/vk/GrVkTextureRenderTarget.h b/src/gpu/vk/GrVkTextureRenderTarget.h index 7eab1058d6..9dc7574730 100644 --- a/src/gpu/vk/GrVkTextureRenderTarget.h +++ b/src/gpu/vk/GrVkTextureRenderTarget.h @@ -11,7 +11,8 @@ #include "GrVkTexture.h" #include "GrVkRenderTarget.h" -#include "GrVkGpu.h" + +class GrVkGpu; #ifdef SK_BUILD_FOR_WIN // Windows gives bogus warnings about inheriting asTexture/asRenderTarget via dominance. @@ -54,27 +55,15 @@ private: const GrVkImageView* texView, const GrVkImageInfo& msaaInfo, const GrVkImageView* colorAttachmentView, - const GrVkImageView* resolveAttachmentView) - : GrSurface(gpu, desc) - , GrVkImage(info, GrVkImage::kNot_Wrapped) - , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped) - , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView, - resolveAttachmentView, GrVkImage::kNot_Wrapped) { - this->registerWithCache(budgeted); - } + const GrVkImageView* resolveAttachmentView); GrVkTextureRenderTarget(GrVkGpu* gpu, SkBudgeted budgeted, const GrSurfaceDesc& desc, const GrVkImageInfo& info, const GrVkImageView* texView, - const GrVkImageView* colorAttachmentView) - : GrSurface(gpu, desc) - , GrVkImage(info, GrVkImage::kNot_Wrapped) - , GrVkTexture(gpu, desc, info, texView, GrVkImage::kNot_Wrapped) - , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, GrVkImage::kNot_Wrapped) { - this->registerWithCache(budgeted); - } + const GrVkImageView* colorAttachmentView); + GrVkTextureRenderTarget(GrVkGpu* gpu, const GrSurfaceDesc& desc, const GrVkImageInfo& info, @@ -82,27 +71,14 @@ private: const GrVkImageInfo& msaaInfo, const GrVkImageView* colorAttachmentView, const GrVkImageView* resolveAttachmentView, - GrVkImage::Wrapped wrapped) - : GrSurface(gpu, desc) - , GrVkImage(info, wrapped) - , GrVkTexture(gpu, desc, info, texView, wrapped) - , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView, - resolveAttachmentView, wrapped) { - this->registerWithCacheWrapped(); - } + GrVkImage::Wrapped wrapped); GrVkTextureRenderTarget(GrVkGpu* gpu, const GrSurfaceDesc& desc, const GrVkImageInfo& info, const GrVkImageView* texView, const GrVkImageView* colorAttachmentView, - GrVkImage::Wrapped wrapped) - : GrSurface(gpu, desc) - , GrVkImage(info, wrapped) - , GrVkTexture(gpu, desc, info, texView, wrapped) - , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, wrapped) { - this->registerWithCacheWrapped(); - } + GrVkImage::Wrapped wrapped); static sk_sp<GrVkTextureRenderTarget> Make(GrVkGpu*, const GrSurfaceDesc&, |