aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2017-06-15 16:06:47 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-15 21:07:21 +0000
commit2bd381bffd36cdcffacf606d952547ce66fed7e9 (patch)
tree4615668e4e6ea616d13419eb4fec0907f75864a4 /src/gpu/vk
parent10978a6eade1031881bc1793d01ec6d841519778 (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.cpp58
-rw-r--r--src/gpu/vk/GrVkCommandBuffer.h55
-rw-r--r--src/gpu/vk/GrVkResourceProvider.cpp1
-rw-r--r--src/gpu/vk/GrVkTextureRenderTarget.cpp59
-rw-r--r--src/gpu/vk/GrVkTextureRenderTarget.h38
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&,