Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Unified Diff: src/gpu/vk/GrVkCommandBuffer.cpp

Issue 2167453003: Add GrVkRecycledResource subclass (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: pass gpu into recycle function Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/vk/GrVkCommandBuffer.cpp
diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp
index 7fb143ed987065b4d2697a49ddf16cada071d3ed..999e8a3f5b91527403ae902914d249cf7f3620d9 100644
--- a/src/gpu/vk/GrVkCommandBuffer.cpp
+++ b/src/gpu/vk/GrVkCommandBuffer.cpp
@@ -40,6 +40,11 @@ void GrVkCommandBuffer::freeGPUData(const GrVkGpu* gpu) const {
fTrackedResources[i]->unref(gpu);
}
+ for (int i = 0; i < fTrackedRecycledResources.count(); ++i) {
+ fTrackedRecycledResources[i]->recycle(const_cast<GrVkGpu*>(gpu));
+ fTrackedRecycledResources[i]->unref(gpu);
+ }
+
GR_VK_CALL(gpu->vkInterface(), FreeCommandBuffers(gpu->device(), gpu->cmdPool(),
1, &fCmdBuffer));
@@ -50,6 +55,11 @@ void GrVkCommandBuffer::abandonSubResources() const {
for (int i = 0; i < fTrackedResources.count(); ++i) {
fTrackedResources[i]->unrefAndAbandon();
}
+
+ for (int i = 0; i < fTrackedRecycledResources.count(); ++i) {
+ // We don't recycle resources when abadoning them.
jvanverth1 2016/07/20 14:08:47 sp: abandon
egdaniel 2016/07/20 14:48:39 Done.
+ fTrackedRecycledResources[i]->unrefAndAbandon();
+ }
}
void GrVkCommandBuffer::reset(GrVkGpu* gpu) {
@@ -59,6 +69,13 @@ void GrVkCommandBuffer::reset(GrVkGpu* gpu) {
}
fTrackedResources.reset();
+ for (int i = 0; i < fTrackedRecycledResources.count(); ++i) {
+ fTrackedRecycledResources[i]->recycle(const_cast<GrVkGpu*>(gpu));
+ fTrackedRecycledResources[i]->unref(gpu);
+ }
+ fTrackedRecycledResources.reset();
+
+
this->invalidateState();
// we will retain resources for later use

Powered by Google App Engine
This is Rietveld 408576698