Chromium Code Reviews| Index: src/gpu/vk/GrVkCommandBuffer.cpp |
| diff --git a/src/gpu/vk/GrVkCommandBuffer.cpp b/src/gpu/vk/GrVkCommandBuffer.cpp |
| index 317b735391f6391479cfe88ef5baaf0768b815dc..c05cdf8b823e6c00f70134e5886b5a6cb90f1dce 100644 |
| --- a/src/gpu/vk/GrVkCommandBuffer.cpp |
| +++ b/src/gpu/vk/GrVkCommandBuffer.cpp |
| @@ -66,12 +66,20 @@ void GrVkCommandBuffer::reset(GrVkGpu* gpu) { |
| for (int i = 0; i < fTrackedResources.count(); ++i) { |
| fTrackedResources[i]->unref(gpu); |
| } |
| - fTrackedResources.reset(); |
| - |
| for (int i = 0; i < fTrackedRecycledResources.count(); ++i) { |
| fTrackedRecycledResources[i]->recycle(const_cast<GrVkGpu*>(gpu)); |
| } |
| - fTrackedRecycledResources.reset(); |
| + |
| + if (++fNumResets > kMaxNumberofRewindResets) { |
| + fTrackedResources.reset(); |
| + fTrackedRecycledResources.reset(); |
| + fTrackedResources.setReserve(kInitialTrackedResourcesCount); |
| + fTrackedRecycledResources.setReserve(kInitialTrackedResourcesCount); |
|
jvanverth1
2016/09/19 18:51:04
fNumResets = 0; ?
egdaniel
2016/09/19 19:52:37
Done.
|
| + } else { |
| + fTrackedResources.rewind(); |
| + fTrackedRecycledResources.rewind(); |
| + } |
| + |
| this->invalidateState(); |