aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/vk/GrVkCommandBuffer.h
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2016-07-20 08:33:00 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-20 08:33:00 -0700
commitc1be9bc1696b50982eb6dda154a76f8dd7b7d438 (patch)
tree37f0449ba2510819273a65ec619476df686510c9 /src/gpu/vk/GrVkCommandBuffer.h
parent35a98c733fb69ab72623cfd62ee2ac9859b0c613 (diff)
Add GrVkRecycledResource subclass
Diffstat (limited to 'src/gpu/vk/GrVkCommandBuffer.h')
-rw-r--r--src/gpu/vk/GrVkCommandBuffer.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gpu/vk/GrVkCommandBuffer.h b/src/gpu/vk/GrVkCommandBuffer.h
index c8bac336d5..f439b27613 100644
--- a/src/gpu/vk/GrVkCommandBuffer.h
+++ b/src/gpu/vk/GrVkCommandBuffer.h
@@ -117,11 +117,19 @@ public:
fTrackedResources.push_back(resource);
}
+ // Add ref-counted resource that will be tracked and released when this command buffer finishes
+ // execution. When it is released, it will signal that the resource can be recycled for reuse.
+ void addRecycledResource(const GrVkRecycledResource* resource) {
+ resource->ref();
+ fTrackedRecycledResources.push_back(resource);
+ }
+
void reset(GrVkGpu* gpu);
protected:
GrVkCommandBuffer(VkCommandBuffer cmdBuffer, const GrVkRenderPass* rp = VK_NULL_HANDLE)
: fTrackedResources(kInitialTrackedResourcesCount)
+ , fTrackedRecycledResources(kInitialTrackedResourcesCount)
, fIsActive(false)
, fActiveRenderPass(rp)
, fCmdBuffer(cmdBuffer)
@@ -129,7 +137,8 @@ protected:
, fBoundIndexBufferIsValid(false) {
this->invalidateState();
}
- SkTArray<const GrVkResource*, true> fTrackedResources;
+ SkTArray<const GrVkResource*, true> fTrackedResources;
+ SkTArray<const GrVkRecycledResource*, true> fTrackedRecycledResources;
// Tracks whether we are in the middle of a command buffer begin/end calls and thus can add
// new commands to the buffer;