diff options
author | egdaniel <egdaniel@google.com> | 2016-07-20 08:33:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-20 08:33:00 -0700 |
commit | c1be9bc1696b50982eb6dda154a76f8dd7b7d438 (patch) | |
tree | 37f0449ba2510819273a65ec619476df686510c9 /src/gpu/vk/GrVkCommandBuffer.h | |
parent | 35a98c733fb69ab72623cfd62ee2ac9859b0c613 (diff) |
Add GrVkRecycledResource subclass
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2167453003
Review-Url: https://codereview.chromium.org/2167453003
Diffstat (limited to 'src/gpu/vk/GrVkCommandBuffer.h')
-rw-r--r-- | src/gpu/vk/GrVkCommandBuffer.h | 11 |
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; |