Revert "Perform Vulkan resets in a background thread"
This reverts commit 30e6343b35c815b58fd8e2b1cd7cb584d13f159c.
Reason for revert: occasional failures
Original change's description:
> Perform Vulkan resets in a background thread
>
> Bug: skia:
> Change-Id: I90783dc9ac2fcae560cd54e6c8c6df11d7195ac0
> Reviewed-on: https://skia-review.googlesource.com/c/168488
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,ethannicholas@google.com
Change-Id: Iab0d65331c44fa8976bd35e5efea4b42174836b0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/177061
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/vk/GrVkResourceProvider.h b/src/gpu/vk/GrVkResourceProvider.h
index 72d0b60..7771de1 100644
--- a/src/gpu/vk/GrVkResourceProvider.h
+++ b/src/gpu/vk/GrVkResourceProvider.h
@@ -24,10 +24,9 @@
#include "SkTDynamicHash.h"
#include "SkTInternalLList.h"
-#include <mutex>
-#include <thread>
-
-class GrVkCommandPool;
+class GrPipeline;
+class GrPrimitiveProcessor;
+class GrSamplerState;
class GrVkCopyPipeline;
class GrVkGpu;
class GrVkPipeline;
@@ -85,10 +84,12 @@
const GrVkRenderPass::LoadStoreOps& colorOps,
const GrVkRenderPass::LoadStoreOps& stencilOps);
- GrVkCommandPool* findOrCreateCommandPool();
-
+ GrVkPrimaryCommandBuffer* findOrCreatePrimaryCommandBuffer();
void checkCommandBuffers();
+ GrVkSecondaryCommandBuffer* findOrCreateSecondaryCommandBuffer();
+ void recycleSecondaryCommandBuffer(GrVkSecondaryCommandBuffer* cb);
+
// Finds or creates a compatible GrVkDescriptorPool for the requested type and count.
// The refcount is incremented and a pointer returned.
// TODO: Currently this will just create a descriptor pool without holding onto a ref itself
@@ -167,12 +168,7 @@
// resource usages.
void abandonResources();
- void backgroundReset(GrVkCommandPool* pool);
-
- void reset(GrVkCommandPool* pool);
-
private:
-
#ifdef SK_DEBUG
#define GR_PIPELINE_STATE_CACHE_STATS
#endif
@@ -235,7 +231,7 @@
const GrVkRenderPass::LoadStoreOps& colorOps,
const GrVkRenderPass::LoadStoreOps& stencilOps);
- void releaseResources(GrVkGpu* gpu);
+ void releaseResources(const GrVkGpu* gpu);
void abandonResources();
private:
@@ -253,11 +249,13 @@
SkSTArray<4, CompatibleRenderPassSet> fRenderPassArray;
- // Array of command pools that we are waiting on
- SkSTArray<4, GrVkCommandPool*, true> fActiveCommandPools;
+ // Array of PrimaryCommandBuffers that are currently in flight
+ SkSTArray<4, GrVkPrimaryCommandBuffer*, true> fActiveCommandBuffers;
+ // Array of available primary command buffers that are not in flight
+ SkSTArray<4, GrVkPrimaryCommandBuffer*, true> fAvailableCommandBuffers;
- // Array of available command pools that are not in flight
- SkSTArray<4, GrVkCommandPool*, true> fAvailableCommandPools;
+ // Array of available secondary command buffers
+ SkSTArray<16, GrVkSecondaryCommandBuffer*, true> fAvailableSecondaryCommandBuffers;
// Array of available uniform buffer resources
SkSTArray<16, const GrVkResource*, true> fAvailableUniformBufferResources;
@@ -275,8 +273,6 @@
SkSTArray<4, std::unique_ptr<GrVkDescriptorSetManager>> fDescriptorSetManagers;
GrVkDescriptorSetManager::Handle fUniformDSHandle;
-
- std::recursive_mutex fBackgroundMutex;
};
#endif