aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gn/gpu.gni1
-rw-r--r--src/gpu/gl/GrGLSemaphore.cpp20
-rw-r--r--src/gpu/gl/GrGLSemaphore.h11
-rw-r--r--src/gpu/gl/GrGLTextureRenderTarget.cpp24
-rw-r--r--src/gpu/gl/GrGLTextureRenderTarget.h17
-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
10 files changed, 96 insertions, 188 deletions
diff --git a/gn/gpu.gni b/gn/gpu.gni
index 86f76742cc..2547981f5a 100644
--- a/gn/gpu.gni
+++ b/gn/gpu.gni
@@ -402,7 +402,6 @@ skia_gpu_sources = [
"$_src/gpu/gl/GrGLProgramDataManager.h",
"$_src/gpu/gl/GrGLRenderTarget.cpp",
"$_src/gpu/gl/GrGLRenderTarget.h",
- "$_src/gpu/gl/GrGLSemaphore.cpp",
"$_src/gpu/gl/GrGLSemaphore.h",
"$_src/gpu/gl/GrGLStencilAttachment.cpp",
"$_src/gpu/gl/GrGLStencilAttachment.h",
diff --git a/src/gpu/gl/GrGLSemaphore.cpp b/src/gpu/gl/GrGLSemaphore.cpp
deleted file mode 100644
index c26b74e9c1..0000000000
--- a/src/gpu/gl/GrGLSemaphore.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "GrGLSemaphore.h"
-
-#include "GrGLGpu.h"
-
-GrGLSemaphore::GrGLSemaphore(const GrGLGpu* gpu, bool isOwned)
- : INHERITED(gpu), fSync(0), fIsOwned(isOwned) {
-}
-
-GrGLSemaphore::~GrGLSemaphore() {
- if (fIsOwned && fGpu) {
- static_cast<const GrGLGpu*>(fGpu)->deleteSync(fSync);
- }
-}
diff --git a/src/gpu/gl/GrGLSemaphore.h b/src/gpu/gl/GrGLSemaphore.h
index ba05219357..cfc3de9951 100644
--- a/src/gpu/gl/GrGLSemaphore.h
+++ b/src/gpu/gl/GrGLSemaphore.h
@@ -11,8 +11,7 @@
#include "GrSemaphore.h"
#include "GrBackendSemaphore.h"
-
-class GrGLGpu;
+#include "GrGLGpu.h"
class GrGLSemaphore : public GrSemaphore {
public:
@@ -29,13 +28,17 @@ public:
return sema;
}
- ~GrGLSemaphore() override;
+ ~GrGLSemaphore() override {
+ if (fIsOwned && fGpu) {
+ static_cast<const GrGLGpu*>(fGpu)->deleteSync(fSync);
+ }
+ }
GrGLsync sync() const { return fSync; }
void setSync(const GrGLsync& sync) { fSync = sync; }
private:
- GrGLSemaphore(const GrGLGpu* gpu, bool isOwned);
+ GrGLSemaphore(const GrGLGpu* gpu, bool isOwned) : INHERITED(gpu), fSync(0), fIsOwned(isOwned) {}
void setBackendSemaphore(GrBackendSemaphore* backendSemaphore) const override {
backendSemaphore->initGL(fSync);
diff --git a/src/gpu/gl/GrGLTextureRenderTarget.cpp b/src/gpu/gl/GrGLTextureRenderTarget.cpp
index ef401cdd06..c643cfffa5 100644
--- a/src/gpu/gl/GrGLTextureRenderTarget.cpp
+++ b/src/gpu/gl/GrGLTextureRenderTarget.cpp
@@ -8,33 +8,9 @@
#include "GrGLTextureRenderTarget.h"
#include "GrContext.h"
-#include "GrGLGpu.h"
#include "GrTexturePriv.h"
#include "SkTraceMemoryDump.h"
-GrGLTextureRenderTarget::GrGLTextureRenderTarget(GrGLGpu* gpu,
- SkBudgeted budgeted,
- const GrSurfaceDesc& desc,
- const GrGLTexture::IDDesc& texIDDesc,
- const GrGLRenderTarget::IDDesc& rtIDDesc,
- bool wasMipMapDataProvided)
- : GrSurface(gpu, desc)
- , GrGLTexture(gpu, desc, texIDDesc, wasMipMapDataProvided)
- , GrGLRenderTarget(gpu, desc, rtIDDesc) {
- this->registerWithCache(budgeted);
-}
-
-GrGLTextureRenderTarget::GrGLTextureRenderTarget(GrGLGpu* gpu,
- const GrSurfaceDesc& desc,
- const GrGLTexture::IDDesc& texIDDesc,
- const GrGLRenderTarget::IDDesc& rtIDDesc,
- bool wasMipMapDataProvided)
- : GrSurface(gpu, desc)
- , GrGLTexture(gpu, desc, texIDDesc, wasMipMapDataProvided)
- , GrGLRenderTarget(gpu, desc, rtIDDesc) {
- this->registerWithCacheWrapped();
-}
-
// GrGLTextureRenderTarget must dump both of its superclasses.
void GrGLTextureRenderTarget::dumpMemoryStatistics(
SkTraceMemoryDump* traceMemoryDump) const {
diff --git a/src/gpu/gl/GrGLTextureRenderTarget.h b/src/gpu/gl/GrGLTextureRenderTarget.h
index e104e85b3f..d74239ec14 100644
--- a/src/gpu/gl/GrGLTextureRenderTarget.h
+++ b/src/gpu/gl/GrGLTextureRenderTarget.h
@@ -9,11 +9,10 @@
#ifndef GrGLTextureRenderTarget_DEFINED
#define GrGLTextureRenderTarget_DEFINED
+#include "GrGLGpu.h"
#include "GrGLTexture.h"
#include "GrGLRenderTarget.h"
-class GrGLGpu;
-
#ifdef SK_BUILD_FOR_WIN
// Windows gives bogus warnings about inheriting asTexture/asRenderTarget via dominance.
#pragma warning(push)
@@ -29,7 +28,12 @@ public:
const GrSurfaceDesc& desc,
const GrGLTexture::IDDesc& texIDDesc,
const GrGLRenderTarget::IDDesc& rtIDDesc,
- bool wasMipMapDataProvided);
+ bool wasMipMapDataProvided)
+ : GrSurface(gpu, desc)
+ , GrGLTexture(gpu, desc, texIDDesc, wasMipMapDataProvided)
+ , GrGLRenderTarget(gpu, desc, rtIDDesc) {
+ this->registerWithCache(budgeted);
+ }
bool canAttemptStencilAttachment() const override;
@@ -55,7 +59,12 @@ private:
const GrSurfaceDesc& desc,
const GrGLTexture::IDDesc& texIDDesc,
const GrGLRenderTarget::IDDesc& rtIDDesc,
- bool wasMipMapDataProvided);
+ bool wasMipMapDataProvided)
+ : GrSurface(gpu, desc)
+ , GrGLTexture(gpu, desc, texIDDesc, wasMipMapDataProvided)
+ , GrGLRenderTarget(gpu, desc, rtIDDesc) {
+ this->registerWithCacheWrapped();
+ }
size_t onGpuMemorySize() const override;
};
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp
index d4fe80caf9..63642d4ed0 100644
--- a/src/gpu/vk/GrVkCommandBuffer.cpp
+++ b/src/gpu/vk/GrVkCommandBuffer.cpp
@@ -7,19 +7,14 @@
#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() {
@@ -150,40 +145,6 @@ 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,
@@ -574,25 +535,6 @@ 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 e602e4d574..b387885fff 100644
--- a/src/gpu/vk/GrVkCommandBuffer.h
+++ b/src/gpu/vk/GrVkCommandBuffer.h
@@ -14,16 +14,11 @@
#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:
@@ -45,9 +40,40 @@ public:
BarrierType barrierType,
void* barrier) const;
- void bindInputBuffer(GrVkGpu* gpu, uint32_t binding, const GrVkVertexBuffer* vbuffer);
+ static constexpr uint32_t kMaxInputBuffers = 2;
- void bindIndexBuffer(GrVkGpu* gpu, const GrVkIndexBuffer* ibuffer);
+ 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 bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pipeline);
@@ -152,8 +178,6 @@ private:
virtual void onReset(GrVkGpu* gpu) {}
- static constexpr uint32_t kMaxInputBuffers = 2;
-
VkBuffer fBoundInputBuffers[kMaxInputBuffers];
VkBuffer fBoundIndexBuffer;
@@ -234,7 +258,18 @@ public:
const GrVkImage& dstImage,
uint32_t blitRegionCount,
const VkImageBlit* blitRegions,
- VkFilter filter);
+ VkFilter filter) {
+ this->blitImage(gpu,
+ srcImage.resource(),
+ srcImage.image(),
+ srcImage.currentLayout(),
+ dstImage.resource(),
+ dstImage.image(),
+ dstImage.currentLayout(),
+ blitRegionCount,
+ blitRegions,
+ filter);
+ }
void copyImageToBuffer(const GrVkGpu* gpu,
GrVkImage* srcImage,
diff --git a/src/gpu/vk/GrVkResourceProvider.cpp b/src/gpu/vk/GrVkResourceProvider.cpp
index 0f4b2a9f34..9b94c08723 100644
--- a/src/gpu/vk/GrVkResourceProvider.cpp
+++ b/src/gpu/vk/GrVkResourceProvider.cpp
@@ -10,7 +10,6 @@
#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 8dc5ffed1e..a77722832d 100644
--- a/src/gpu/vk/GrVkTextureRenderTarget.cpp
+++ b/src/gpu/vk/GrVkTextureRenderTarget.cpp
@@ -19,65 +19,6 @@
#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 9dc7574730..7eab1058d6 100644
--- a/src/gpu/vk/GrVkTextureRenderTarget.h
+++ b/src/gpu/vk/GrVkTextureRenderTarget.h
@@ -11,8 +11,7 @@
#include "GrVkTexture.h"
#include "GrVkRenderTarget.h"
-
-class GrVkGpu;
+#include "GrVkGpu.h"
#ifdef SK_BUILD_FOR_WIN
// Windows gives bogus warnings about inheriting asTexture/asRenderTarget via dominance.
@@ -55,15 +54,27 @@ private:
const GrVkImageView* texView,
const GrVkImageInfo& msaaInfo,
const GrVkImageView* colorAttachmentView,
- const GrVkImageView* resolveAttachmentView);
+ 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(GrVkGpu* gpu,
SkBudgeted budgeted,
const GrSurfaceDesc& desc,
const GrVkImageInfo& info,
const GrVkImageView* texView,
- const GrVkImageView* colorAttachmentView);
-
+ 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(GrVkGpu* gpu,
const GrSurfaceDesc& desc,
const GrVkImageInfo& info,
@@ -71,14 +82,27 @@ private:
const GrVkImageInfo& msaaInfo,
const GrVkImageView* colorAttachmentView,
const GrVkImageView* resolveAttachmentView,
- GrVkImage::Wrapped wrapped);
+ 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(GrVkGpu* gpu,
const GrSurfaceDesc& desc,
const GrVkImageInfo& info,
const GrVkImageView* texView,
const GrVkImageView* colorAttachmentView,
- GrVkImage::Wrapped wrapped);
+ GrVkImage::Wrapped wrapped)
+ : GrSurface(gpu, desc)
+ , GrVkImage(info, wrapped)
+ , GrVkTexture(gpu, desc, info, texView, wrapped)
+ , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, wrapped) {
+ this->registerWithCacheWrapped();
+ }
static sk_sp<GrVkTextureRenderTarget> Make(GrVkGpu*,
const GrSurfaceDesc&,