Simplify MVKCommand and MVKCommandTypePool instantiation.

MVKCommand constructor not longer take MVKCommandTypePool.
Remove MVKCommand::returnToPool().
MVKCommandTypePool no longer track MVKCommandPool.
Remove MVKCommand.mm.
This commit is contained in:
Bill Hollings 2020-04-18 22:52:40 -04:00
parent 33dbc761c7
commit e4be6b836c
19 changed files with 79 additions and 373 deletions

View File

@ -63,8 +63,6 @@
A94FB7CB1C7DFB4800632CA3 /* MVKCmdDraw.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7751C7DFB4800632CA3 /* MVKCmdDraw.mm */; }; A94FB7CB1C7DFB4800632CA3 /* MVKCmdDraw.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7751C7DFB4800632CA3 /* MVKCmdDraw.mm */; };
A94FB7CC1C7DFB4800632CA3 /* MVKCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7761C7DFB4800632CA3 /* MVKCommand.h */; }; A94FB7CC1C7DFB4800632CA3 /* MVKCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7761C7DFB4800632CA3 /* MVKCommand.h */; };
A94FB7CD1C7DFB4800632CA3 /* MVKCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7761C7DFB4800632CA3 /* MVKCommand.h */; }; A94FB7CD1C7DFB4800632CA3 /* MVKCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7761C7DFB4800632CA3 /* MVKCommand.h */; };
A94FB7CE1C7DFB4800632CA3 /* MVKCommand.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7771C7DFB4800632CA3 /* MVKCommand.mm */; };
A94FB7CF1C7DFB4800632CA3 /* MVKCommand.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7771C7DFB4800632CA3 /* MVKCommand.mm */; };
A94FB7D01C7DFB4800632CA3 /* MVKCommandBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */; }; A94FB7D01C7DFB4800632CA3 /* MVKCommandBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */; };
A94FB7D11C7DFB4800632CA3 /* MVKCommandBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */; }; A94FB7D11C7DFB4800632CA3 /* MVKCommandBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */; };
A94FB7D21C7DFB4800632CA3 /* MVKCommandBuffer.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */; }; A94FB7D21C7DFB4800632CA3 /* MVKCommandBuffer.mm in Sources */ = {isa = PBXBuildFile; fileRef = A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */; };
@ -334,7 +332,6 @@
A94FB7741C7DFB4800632CA3 /* MVKCmdDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCmdDraw.h; sourceTree = "<group>"; }; A94FB7741C7DFB4800632CA3 /* MVKCmdDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCmdDraw.h; sourceTree = "<group>"; };
A94FB7751C7DFB4800632CA3 /* MVKCmdDraw.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCmdDraw.mm; sourceTree = "<group>"; }; A94FB7751C7DFB4800632CA3 /* MVKCmdDraw.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCmdDraw.mm; sourceTree = "<group>"; };
A94FB7761C7DFB4800632CA3 /* MVKCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommand.h; sourceTree = "<group>"; }; A94FB7761C7DFB4800632CA3 /* MVKCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommand.h; sourceTree = "<group>"; };
A94FB7771C7DFB4800632CA3 /* MVKCommand.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCommand.mm; sourceTree = "<group>"; };
A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommandBuffer.h; sourceTree = "<group>"; }; A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommandBuffer.h; sourceTree = "<group>"; };
A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCommandBuffer.mm; sourceTree = "<group>"; }; A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKCommandBuffer.mm; sourceTree = "<group>"; };
A94FB77A1C7DFB4800632CA3 /* MVKCommandPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommandPool.h; sourceTree = "<group>"; }; A94FB77A1C7DFB4800632CA3 /* MVKCommandPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommandPool.h; sourceTree = "<group>"; };
@ -471,7 +468,6 @@
A94FB76C1C7DFB4800632CA3 /* MVKCmdTransfer.h */, A94FB76C1C7DFB4800632CA3 /* MVKCmdTransfer.h */,
A94FB76D1C7DFB4800632CA3 /* MVKCmdTransfer.mm */, A94FB76D1C7DFB4800632CA3 /* MVKCmdTransfer.mm */,
A94FB7761C7DFB4800632CA3 /* MVKCommand.h */, A94FB7761C7DFB4800632CA3 /* MVKCommand.h */,
A94FB7771C7DFB4800632CA3 /* MVKCommand.mm */,
A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */, A94FB7781C7DFB4800632CA3 /* MVKCommandBuffer.h */,
A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */, A94FB7791C7DFB4800632CA3 /* MVKCommandBuffer.mm */,
A95B7D671D3EE486003183D3 /* MVKCommandEncoderState.h */, A95B7D671D3EE486003183D3 /* MVKCommandEncoderState.h */,
@ -1037,7 +1033,6 @@
A95B7D6B1D3EE486003183D3 /* MVKCommandEncoderState.mm in Sources */, A95B7D6B1D3EE486003183D3 /* MVKCommandEncoderState.mm in Sources */,
A93E83352121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */, A93E83352121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */,
A9B51BD7225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */, A9B51BD7225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */,
A94FB7CE1C7DFB4800632CA3 /* MVKCommand.mm in Sources */,
A94FB80E1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */, A94FB80E1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */,
A94FB81A1C7DFB4800632CA3 /* MVKSync.mm in Sources */, A94FB81A1C7DFB4800632CA3 /* MVKSync.mm in Sources */,
45557A5221C9EFF3008868BD /* MVKCodec.cpp in Sources */, 45557A5221C9EFF3008868BD /* MVKCodec.cpp in Sources */,
@ -1095,7 +1090,6 @@
A95B7D6C1D3EE486003183D3 /* MVKCommandEncoderState.mm in Sources */, A95B7D6C1D3EE486003183D3 /* MVKCommandEncoderState.mm in Sources */,
A93E83362121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */, A93E83362121F0C8001FEBD4 /* MVKGPUCapture.mm in Sources */,
A9B51BD8225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */, A9B51BD8225E986A00AC74D2 /* MVKOSExtensions.mm in Sources */,
A94FB7CF1C7DFB4800632CA3 /* MVKCommand.mm in Sources */,
A94FB80F1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */, A94FB80F1C7DFB4800632CA3 /* MVKShaderModule.mm in Sources */,
A94FB81B1C7DFB4800632CA3 /* MVKSync.mm in Sources */, A94FB81B1C7DFB4800632CA3 /* MVKSync.mm in Sources */,
45557A5321C9EFF3008868BD /* MVKCodec.cpp in Sources */, 45557A5321C9EFF3008868BD /* MVKCodec.cpp in Sources */,

View File

@ -32,8 +32,6 @@ class MVKCmdDebugMarker : public MVKCommand {
public: public:
VkResult setContent(MVKCommandBuffer* cmdBuff, const char* pMarkerName, const float color[4]); VkResult setContent(MVKCommandBuffer* cmdBuff, const char* pMarkerName, const float color[4]);
MVKCmdDebugMarker(MVKCommandTypePool<MVKCmdDebugMarker>* pool);
~MVKCmdDebugMarker() override; ~MVKCmdDebugMarker() override;
protected: protected:
@ -50,8 +48,6 @@ class MVKCmdDebugMarkerBegin : public MVKCmdDebugMarker {
public: public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDebugMarkerBegin(MVKCommandTypePool<MVKCmdDebugMarkerBegin>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -69,8 +65,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDebugMarkerEnd(MVKCommandTypePool<MVKCmdDebugMarkerEnd>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -86,8 +80,6 @@ class MVKCmdDebugMarkerInsert : public MVKCmdDebugMarker {
public: public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDebugMarkerInsert(MVKCommandTypePool<MVKCmdDebugMarkerInsert>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -34,9 +34,6 @@ VkResult MVKCmdDebugMarker::setContent(MVKCommandBuffer* cmdBuff,
return VK_SUCCESS; return VK_SUCCESS;
} }
MVKCmdDebugMarker::MVKCmdDebugMarker(MVKCommandTypePool<MVKCmdDebugMarker>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
MVKCmdDebugMarker::~MVKCmdDebugMarker() { MVKCmdDebugMarker::~MVKCmdDebugMarker() {
[_markerName release]; [_markerName release];
} }
@ -57,9 +54,6 @@ void MVKCmdDebugMarkerBegin::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDebugMarkerBegin::MVKCmdDebugMarkerBegin(MVKCommandTypePool<MVKCmdDebugMarkerBegin>* pool)
: MVKCmdDebugMarker::MVKCmdDebugMarker((MVKCommandTypePool<MVKCmdDebugMarker>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDebugMarkerEnd #pragma mark MVKCmdDebugMarkerEnd
@ -79,9 +73,6 @@ void MVKCmdDebugMarkerEnd::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDebugMarkerEnd::MVKCmdDebugMarkerEnd(MVKCommandTypePool<MVKCmdDebugMarkerEnd>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDebugMarkerInsert #pragma mark MVKCmdDebugMarkerInsert
@ -92,9 +83,6 @@ void MVKCmdDebugMarkerInsert::encode(MVKCommandEncoder* cmdEncoder) {
[cmdEncoder->getMTLEncoder() insertDebugSignpost: _markerName]; [cmdEncoder->getMTLEncoder() insertDebugSignpost: _markerName];
} }
MVKCmdDebugMarkerInsert::MVKCmdDebugMarkerInsert(MVKCommandTypePool<MVKCmdDebugMarkerInsert>* pool)
: MVKCmdDebugMarker::MVKCmdDebugMarker((MVKCommandTypePool<MVKCmdDebugMarker>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark Support functions #pragma mark Support functions

View File

@ -37,8 +37,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDispatch(MVKCommandTypePool<MVKCmdDispatch>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -57,8 +55,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDispatchIndirect(MVKCommandTypePool<MVKCmdDispatchIndirect>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -59,10 +59,6 @@ void MVKCmdDispatch::encode(MVKCommandEncoder* cmdEncoder) {
threadsPerThreadgroup: cmdEncoder->_mtlThreadgroupSize]; threadsPerThreadgroup: cmdEncoder->_mtlThreadgroupSize];
} }
MVKCmdDispatch::MVKCmdDispatch(MVKCommandTypePool<MVKCmdDispatch>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {
}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDispatchIndirect #pragma mark MVKCmdDispatchIndirect
@ -86,6 +82,3 @@ void MVKCmdDispatchIndirect::encode(MVKCommandEncoder* cmdEncoder) {
threadsPerThreadgroup: cmdEncoder->_mtlThreadgroupSize]; threadsPerThreadgroup: cmdEncoder->_mtlThreadgroupSize];
} }
MVKCmdDispatchIndirect::MVKCmdDispatchIndirect(MVKCommandTypePool<MVKCmdDispatchIndirect>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}

View File

@ -40,8 +40,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBindVertexBuffers(MVKCommandTypePool<MVKCmdBindVertexBuffers>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -63,8 +61,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBindIndexBuffer(MVKCommandTypePool<MVKCmdBindIndexBuffer>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -87,8 +83,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDraw(MVKCommandTypePool<MVKCmdDraw>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -115,8 +109,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDrawIndexed(MVKCommandTypePool<MVKCmdDrawIndexed>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -143,8 +135,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDrawIndirect(MVKCommandTypePool<MVKCmdDrawIndirect>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -170,8 +160,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdDrawIndexedIndirect(MVKCommandTypePool<MVKCmdDrawIndexedIndirect>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -55,9 +55,6 @@ void MVKCmdBindVertexBuffers::encode(MVKCommandEncoder* cmdEncoder) {
for (auto& b : _bindings) { cmdEncoder->_graphicsResourcesState.bindBuffer(kMVKShaderStageVertex, b); } for (auto& b : _bindings) { cmdEncoder->_graphicsResourcesState.bindBuffer(kMVKShaderStageVertex, b); }
} }
MVKCmdBindVertexBuffers::MVKCmdBindVertexBuffers(MVKCommandTypePool<MVKCmdBindVertexBuffers>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdBindIndexBuffer #pragma mark MVKCmdBindIndexBuffer
@ -80,9 +77,6 @@ void MVKCmdBindIndexBuffer::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_graphicsResourcesState.bindIndexBuffer(_binding); cmdEncoder->_graphicsResourcesState.bindIndexBuffer(_binding);
} }
MVKCmdBindIndexBuffer::MVKCmdBindIndexBuffer(MVKCommandTypePool<MVKCmdBindIndexBuffer>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDraw #pragma mark MVKCmdDraw
@ -273,10 +267,6 @@ void MVKCmdDraw::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDraw::MVKCmdDraw(MVKCommandTypePool<MVKCmdDraw>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {
}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDrawIndexed #pragma mark MVKCmdDrawIndexed
@ -514,9 +504,6 @@ void MVKCmdDrawIndexed::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDrawIndexed::MVKCmdDrawIndexed(MVKCommandTypePool<MVKCmdDrawIndexed>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDrawIndirect #pragma mark MVKCmdDrawIndirect
@ -763,9 +750,6 @@ void MVKCmdDrawIndirect::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDrawIndirect::MVKCmdDrawIndirect(MVKCommandTypePool<MVKCmdDrawIndirect>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdDrawIndexedIndirect #pragma mark MVKCmdDrawIndexedIndirect
@ -1026,6 +1010,3 @@ void MVKCmdDrawIndexedIndirect::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdDrawIndexedIndirect::MVKCmdDrawIndexedIndirect(MVKCommandTypePool<MVKCmdDrawIndexedIndirect>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}

View File

@ -49,8 +49,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdPipelineBarrier(MVKCommandTypePool<MVKCmdPipelineBarrier>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -76,8 +74,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBindPipeline(MVKCommandTypePool<MVKCmdBindPipeline>* pool);
bool isTessellationPipeline(); bool isTessellationPipeline();
protected: protected:
@ -107,8 +103,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBindDescriptorSets(MVKCommandTypePool<MVKCmdBindDescriptorSets>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -136,8 +130,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdPushConstants(MVKCommandTypePool<MVKCmdPushConstants>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -164,8 +156,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdPushDescriptorSet(MVKCommandTypePool<MVKCmdPushDescriptorSet>* pool);
~MVKCmdPushDescriptorSet() override; ~MVKCmdPushDescriptorSet() override;
protected: protected:
@ -194,8 +184,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdPushDescriptorSetWithTemplate(MVKCommandTypePool<MVKCmdPushDescriptorSetWithTemplate>* pool);
~MVKCmdPushDescriptorSetWithTemplate() override; ~MVKCmdPushDescriptorSetWithTemplate() override;
protected: protected:
@ -222,8 +210,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetResetEvent(MVKCommandTypePool<MVKCmdSetResetEvent>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -254,8 +240,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdWaitEvents(MVKCommandTypePool<MVKCmdWaitEvents>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -126,9 +126,6 @@ void MVKCmdPipelineBarrier::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdPipelineBarrier::MVKCmdPipelineBarrier(MVKCommandTypePool<MVKCmdPipelineBarrier>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdBindPipeline #pragma mark MVKCmdBindPipeline
@ -150,9 +147,6 @@ void MVKCmdBindPipeline::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->bindPipeline(_bindPoint, _pipeline); cmdEncoder->bindPipeline(_bindPoint, _pipeline);
} }
MVKCmdBindPipeline::MVKCmdBindPipeline(MVKCommandTypePool<MVKCmdBindPipeline>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
bool MVKCmdBindPipeline::isTessellationPipeline() { bool MVKCmdBindPipeline::isTessellationPipeline() {
if (_bindPoint == VK_PIPELINE_BIND_POINT_GRAPHICS) if (_bindPoint == VK_PIPELINE_BIND_POINT_GRAPHICS)
return ((MVKGraphicsPipeline*)_pipeline)->isTessellationPipeline(); return ((MVKGraphicsPipeline*)_pipeline)->isTessellationPipeline();
@ -199,9 +193,6 @@ void MVKCmdBindDescriptorSets::encode(MVKCommandEncoder* cmdEncoder) {
_pipelineLayout->bindDescriptorSets(cmdEncoder, _descriptorSets, _firstSet, _dynamicOffsets); _pipelineLayout->bindDescriptorSets(cmdEncoder, _descriptorSets, _firstSet, _dynamicOffsets);
} }
MVKCmdBindDescriptorSets::MVKCmdBindDescriptorSets(MVKCommandTypePool<MVKCmdBindDescriptorSets>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdPushConstants #pragma mark MVKCmdPushConstants
@ -239,9 +230,6 @@ void MVKCmdPushConstants::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdPushConstants::MVKCmdPushConstants(MVKCommandTypePool<MVKCmdPushConstants>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdPushDescriptorSet #pragma mark MVKCmdPushDescriptorSet
@ -311,9 +299,6 @@ void MVKCmdPushDescriptorSet::encode(MVKCommandEncoder* cmdEncoder) {
_pipelineLayout->pushDescriptorSet(cmdEncoder, _descriptorWrites, _set); _pipelineLayout->pushDescriptorSet(cmdEncoder, _descriptorWrites, _set);
} }
MVKCmdPushDescriptorSet::MVKCmdPushDescriptorSet(MVKCommandTypePool<MVKCmdPushDescriptorSet>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
MVKCmdPushDescriptorSet::~MVKCmdPushDescriptorSet() { MVKCmdPushDescriptorSet::~MVKCmdPushDescriptorSet() {
clearDescriptorWrites(); clearDescriptorWrites();
} }
@ -401,10 +386,6 @@ void MVKCmdPushDescriptorSetWithTemplate::encode(MVKCommandEncoder* cmdEncoder)
_pipelineLayout->pushDescriptorSet(cmdEncoder, _descUpdateTemplate, _set, _pData); _pipelineLayout->pushDescriptorSet(cmdEncoder, _descUpdateTemplate, _set, _pData);
} }
MVKCmdPushDescriptorSetWithTemplate::MVKCmdPushDescriptorSetWithTemplate(
MVKCommandTypePool<MVKCmdPushDescriptorSetWithTemplate>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
MVKCmdPushDescriptorSetWithTemplate::~MVKCmdPushDescriptorSetWithTemplate() { MVKCmdPushDescriptorSetWithTemplate::~MVKCmdPushDescriptorSetWithTemplate() {
if (_pData) delete[] (char*)_pData; if (_pData) delete[] (char*)_pData;
} }
@ -429,9 +410,6 @@ void MVKCmdSetResetEvent::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->signalEvent(_mvkEvent, _status); cmdEncoder->signalEvent(_mvkEvent, _status);
} }
MVKCmdSetResetEvent::MVKCmdSetResetEvent(MVKCommandTypePool<MVKCmdSetResetEvent>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdWaitEvents #pragma mark MVKCmdWaitEvents
@ -464,6 +442,3 @@ void MVKCmdWaitEvents::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdWaitEvents::MVKCmdWaitEvents(MVKCommandTypePool<MVKCmdWaitEvents>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}

View File

@ -35,8 +35,6 @@ public:
VkQueryPool queryPool, VkQueryPool queryPool,
uint32_t query); uint32_t query);
MVKCmdQuery(MVKCommandTypePool<MVKCommand>* pool);
protected: protected:
MVKQueryPool* _queryPool; MVKQueryPool* _queryPool;
uint32_t _query; uint32_t _query;
@ -57,8 +55,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBeginQuery(MVKCommandTypePool<MVKCmdBeginQuery>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -75,8 +71,6 @@ class MVKCmdEndQuery : public MVKCmdQuery {
public: public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdEndQuery(MVKCommandTypePool<MVKCmdEndQuery>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -97,8 +91,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdWriteTimestamp(MVKCommandTypePool<MVKCmdWriteTimestamp>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -120,8 +112,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdResetQueryPool(MVKCommandTypePool<MVKCmdResetQueryPool>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -147,8 +137,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdCopyQueryPoolResults(MVKCommandTypePool<MVKCmdCopyQueryPoolResults>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -34,8 +34,6 @@ VkResult MVKCmdQuery::setContent(MVKCommandBuffer* cmdBuff,
return VK_SUCCESS; return VK_SUCCESS;
} }
MVKCmdQuery::MVKCmdQuery(MVKCommandTypePool<MVKCommand>* pool) : MVKCommand::MVKCommand(pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdBeginQuery #pragma mark MVKCmdBeginQuery
@ -59,9 +57,6 @@ void MVKCmdBeginQuery::encode(MVKCommandEncoder* cmdEncoder) {
_queryPool->beginQuery(_query, _flags, cmdEncoder); _queryPool->beginQuery(_query, _flags, cmdEncoder);
} }
MVKCmdBeginQuery::MVKCmdBeginQuery(MVKCommandTypePool<MVKCmdBeginQuery>* pool)
: MVKCmdQuery::MVKCmdQuery((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdEndQuery #pragma mark MVKCmdEndQuery
@ -72,9 +67,6 @@ void MVKCmdEndQuery::encode(MVKCommandEncoder* cmdEncoder) {
_queryPool->endQuery(_query, cmdEncoder); _queryPool->endQuery(_query, cmdEncoder);
} }
MVKCmdEndQuery::MVKCmdEndQuery(MVKCommandTypePool<MVKCmdEndQuery>* pool)
: MVKCmdQuery::MVKCmdQuery((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdWriteTimestamp #pragma mark MVKCmdWriteTimestamp
@ -97,9 +89,6 @@ void MVKCmdWriteTimestamp::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->markTimestamp(_queryPool, _query); cmdEncoder->markTimestamp(_queryPool, _query);
} }
MVKCmdWriteTimestamp::MVKCmdWriteTimestamp(MVKCommandTypePool<MVKCmdWriteTimestamp>* pool)
: MVKCmdQuery::MVKCmdQuery((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdResetQueryPool #pragma mark MVKCmdResetQueryPool
@ -122,9 +111,6 @@ void MVKCmdResetQueryPool::encode(MVKCommandEncoder* cmdEncoder) {
_queryPool->resetResults(_query, _queryCount, cmdEncoder); _queryPool->resetResults(_query, _queryCount, cmdEncoder);
} }
MVKCmdResetQueryPool::MVKCmdResetQueryPool(MVKCommandTypePool<MVKCmdResetQueryPool>* pool)
: MVKCmdQuery::MVKCmdQuery((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdCopyQueryPoolResults #pragma mark MVKCmdCopyQueryPoolResults
@ -161,6 +147,3 @@ void MVKCmdCopyQueryPoolResults::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdCopyQueryPoolResults::MVKCmdCopyQueryPoolResults(MVKCommandTypePool<MVKCmdCopyQueryPoolResults>* pool)
: MVKCmdQuery::MVKCmdQuery((MVKCommandTypePool<MVKCommand>*)pool) {}

View File

@ -41,8 +41,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBeginRenderPass(MVKCommandTypePool<MVKCmdBeginRenderPass>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -66,8 +64,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdNextSubpass(MVKCommandTypePool<MVKCmdNextSubpass>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -86,8 +82,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdEndRenderPass(MVKCommandTypePool<MVKCmdEndRenderPass>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -107,8 +101,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdExecuteCommands(MVKCommandTypePool<MVKCmdExecuteCommands>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -129,8 +121,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetViewport(MVKCommandTypePool<MVKCmdSetViewport>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -153,8 +143,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetScissor(MVKCommandTypePool<MVKCmdSetScissor>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -175,8 +163,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetLineWidth(MVKCommandTypePool<MVKCmdSetLineWidth>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -198,8 +184,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetDepthBias(MVKCommandTypePool<MVKCmdSetDepthBias>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -221,8 +205,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetBlendConstants(MVKCommandTypePool<MVKCmdSetBlendConstants>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -246,8 +228,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetDepthBounds(MVKCommandTypePool<MVKCmdSetDepthBounds>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -269,8 +249,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetStencilCompareMask(MVKCommandTypePool<MVKCmdSetStencilCompareMask>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -292,8 +270,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetStencilWriteMask(MVKCommandTypePool<MVKCmdSetStencilWriteMask>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -315,8 +291,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdSetStencilReference(MVKCommandTypePool<MVKCmdSetStencilReference>* pool);
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -57,9 +57,6 @@ void MVKCmdBeginRenderPass::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->beginRenderpass(_contents, _renderPass, _framebuffer, _info.renderArea, &_clearValues, _loadOverride, _storeOverride); cmdEncoder->beginRenderpass(_contents, _renderPass, _framebuffer, _info.renderArea, &_clearValues, _loadOverride, _storeOverride);
} }
MVKCmdBeginRenderPass::MVKCmdBeginRenderPass(MVKCommandTypePool<MVKCmdBeginRenderPass>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdNextSubpass #pragma mark MVKCmdNextSubpass
@ -77,9 +74,6 @@ void MVKCmdNextSubpass::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->beginNextSubpass(_contents); cmdEncoder->beginNextSubpass(_contents);
} }
MVKCmdNextSubpass::MVKCmdNextSubpass(MVKCommandTypePool<MVKCmdNextSubpass>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdEndRenderPass #pragma mark MVKCmdEndRenderPass
@ -96,9 +90,6 @@ void MVKCmdEndRenderPass::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->endRenderpass(); cmdEncoder->endRenderpass();
} }
MVKCmdEndRenderPass::MVKCmdEndRenderPass(MVKCommandTypePool<MVKCmdEndRenderPass>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdExecuteCommands #pragma mark MVKCmdExecuteCommands
@ -122,9 +113,6 @@ void MVKCmdExecuteCommands::encode(MVKCommandEncoder* cmdEncoder) {
for (auto& cb : _secondaryCommandBuffers) { cmdEncoder->encodeSecondary(cb); } for (auto& cb : _secondaryCommandBuffers) { cmdEncoder->encodeSecondary(cb); }
} }
MVKCmdExecuteCommands::MVKCmdExecuteCommands(MVKCommandTypePool<MVKCmdExecuteCommands>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetViewport #pragma mark MVKCmdSetViewport
@ -149,9 +137,6 @@ void MVKCmdSetViewport::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_viewportState.setViewports(_mtlViewports, _firstViewport, true); cmdEncoder->_viewportState.setViewports(_mtlViewports, _firstViewport, true);
} }
MVKCmdSetViewport::MVKCmdSetViewport(MVKCommandTypePool<MVKCmdSetViewport>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetScissor #pragma mark MVKCmdSetScissor
@ -176,9 +161,6 @@ void MVKCmdSetScissor::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_scissorState.setScissors(_mtlScissors, _firstScissor, true); cmdEncoder->_scissorState.setScissors(_mtlScissors, _firstScissor, true);
} }
MVKCmdSetScissor::MVKCmdSetScissor(MVKCommandTypePool<MVKCmdSetScissor>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetLineWidth #pragma mark MVKCmdSetLineWidth
@ -199,9 +181,6 @@ VkResult MVKCmdSetLineWidth::setContent(MVKCommandBuffer* cmdBuff,
void MVKCmdSetLineWidth::encode(MVKCommandEncoder* cmdEncoder) {} void MVKCmdSetLineWidth::encode(MVKCommandEncoder* cmdEncoder) {}
MVKCmdSetLineWidth::MVKCmdSetLineWidth(MVKCommandTypePool<MVKCmdSetLineWidth>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetDepthBias #pragma mark MVKCmdSetDepthBias
@ -225,9 +204,6 @@ void MVKCmdSetDepthBias::encode(MVKCommandEncoder* cmdEncoder) {
_depthBiasClamp); _depthBiasClamp);
} }
MVKCmdSetDepthBias::MVKCmdSetDepthBias(MVKCommandTypePool<MVKCmdSetDepthBias>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetBlendConstants #pragma mark MVKCmdSetBlendConstants
@ -248,9 +224,6 @@ void MVKCmdSetBlendConstants::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_blendColorState.setBlendColor(_red, _green, _blue, _alpha, true); cmdEncoder->_blendColorState.setBlendColor(_red, _green, _blue, _alpha, true);
} }
MVKCmdSetBlendConstants::MVKCmdSetBlendConstants(MVKCommandTypePool<MVKCmdSetBlendConstants>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetDepthBounds #pragma mark MVKCmdSetDepthBounds
@ -273,9 +246,6 @@ VkResult MVKCmdSetDepthBounds::setContent(MVKCommandBuffer* cmdBuff,
void MVKCmdSetDepthBounds::encode(MVKCommandEncoder* cmdEncoder) {} void MVKCmdSetDepthBounds::encode(MVKCommandEncoder* cmdEncoder) {}
MVKCmdSetDepthBounds::MVKCmdSetDepthBounds(MVKCommandTypePool<MVKCmdSetDepthBounds>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetStencilCompareMask #pragma mark MVKCmdSetStencilCompareMask
@ -295,9 +265,6 @@ void MVKCmdSetStencilCompareMask::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_depthStencilState.setStencilCompareMask(_faceMask, _stencilCompareMask); cmdEncoder->_depthStencilState.setStencilCompareMask(_faceMask, _stencilCompareMask);
} }
MVKCmdSetStencilCompareMask::MVKCmdSetStencilCompareMask(MVKCommandTypePool<MVKCmdSetStencilCompareMask>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetStencilWriteMask #pragma mark MVKCmdSetStencilWriteMask
@ -317,9 +284,6 @@ void MVKCmdSetStencilWriteMask::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_depthStencilState.setStencilWriteMask(_faceMask, _stencilWriteMask); cmdEncoder->_depthStencilState.setStencilWriteMask(_faceMask, _stencilWriteMask);
} }
MVKCmdSetStencilWriteMask::MVKCmdSetStencilWriteMask(MVKCommandTypePool<MVKCmdSetStencilWriteMask>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
#pragma mark - #pragma mark -
#pragma mark MVKCmdSetStencilReference #pragma mark MVKCmdSetStencilReference
@ -339,6 +303,3 @@ void MVKCmdSetStencilReference::encode(MVKCommandEncoder* cmdEncoder) {
cmdEncoder->_stencilReferenceValueState.setReferenceValues(_faceMask, _stencilReference); cmdEncoder->_stencilReferenceValueState.setReferenceValues(_faceMask, _stencilReference);
} }
MVKCmdSetStencilReference::MVKCmdSetStencilReference(MVKCommandTypePool<MVKCmdSetStencilReference>* pool)
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}

View File

@ -48,9 +48,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdCopyImage(MVKCommandTypePool<MVKCmdCopyImage>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
VkResult setContent(MVKCommandBuffer* cmdBuff, VkResult setContent(MVKCommandBuffer* cmdBuff,
@ -111,7 +108,7 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBlitImage(MVKCommandTypePool<MVKCmdBlitImage>* pool); MVKCmdBlitImage();
~MVKCmdBlitImage() override; ~MVKCmdBlitImage() override;
@ -152,7 +149,7 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdResolveImage(MVKCommandTypePool<MVKCmdResolveImage>* pool); MVKCmdResolveImage();
~MVKCmdResolveImage() override; ~MVKCmdResolveImage() override;
@ -190,9 +187,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdCopyBuffer(MVKCommandTypePool<MVKCmdCopyBuffer>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -219,9 +213,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdBufferImageCopy(MVKCommandTypePool<MVKCmdBufferImageCopy>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
bool isArrayTexture(); bool isArrayTexture();
@ -249,9 +240,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdClearAttachments(MVKCommandTypePool<MVKCmdClearAttachments>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
void populateVertices(float attWidth, float attHeight); void populateVertices(float attWidth, float attHeight);
@ -285,9 +273,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdClearImage(MVKCommandTypePool<MVKCmdClearImage>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
uint32_t populateMetalCopyRegions(const VkImageBlit* pRegion, uint32_t cpyRgnIdx); uint32_t populateMetalCopyRegions(const VkImageBlit* pRegion, uint32_t cpyRgnIdx);
@ -319,9 +304,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdFillBuffer(MVKCommandTypePool<MVKCmdFillBuffer>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;
@ -347,9 +329,6 @@ public:
void encode(MVKCommandEncoder* cmdEncoder) override; void encode(MVKCommandEncoder* cmdEncoder) override;
MVKCmdUpdateBuffer(MVKCommandTypePool<MVKCmdUpdateBuffer>* pool) :
MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {}
protected: protected:
MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override; MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) override;

View File

@ -205,7 +205,7 @@ void MVKCmdCopyImage::encode(MVKCommandEncoder* cmdEncoder) {
tempBuffData.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; tempBuffData.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
MVKBuffer* tempBuff = cmdEncoder->getCommandEncodingPool()->getTransferMVKBuffer(tempBuffData); MVKBuffer* tempBuff = cmdEncoder->getCommandEncodingPool()->getTransferMVKBuffer(tempBuffData);
MVKCmdBufferImageCopy cpyCmd(&cmdEncoder->_cmdBuffer->getCommandPool()->_cmdBufferImageCopyPool); MVKCmdBufferImageCopy cpyCmd;
// Copy from source image to buffer // Copy from source image to buffer
// Create and execute a temporary buffer image command. // Create and execute a temporary buffer image command.
@ -428,9 +428,7 @@ void MVKCmdBlitImage::encode(MVKCommandEncoder* cmdEncoder) {
#pragma mark Construction #pragma mark Construction
MVKCmdBlitImage::MVKCmdBlitImage(MVKCommandTypePool<MVKCmdBlitImage>* pool) MVKCmdBlitImage::MVKCmdBlitImage() {
: MVKCmdCopyImage::MVKCmdCopyImage((MVKCommandTypePool<MVKCmdCopyImage>*)pool) {
initMTLRenderPassDescriptor(); initMTLRenderPassDescriptor();
} }
@ -582,7 +580,7 @@ void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) {
// To be threadsafe...do NOT acquire and return the command from the pool. // To be threadsafe...do NOT acquire and return the command from the pool.
uint32_t expRgnCnt = uint32_t(_expansionRegions.size()); uint32_t expRgnCnt = uint32_t(_expansionRegions.size());
if (expRgnCnt > 0) { if (expRgnCnt > 0) {
MVKCmdBlitImage expandCmd(&cmdEncoder->_cmdBuffer->getCommandPool()->_cmdBlitImagePool); MVKCmdBlitImage expandCmd;
expandCmd.setContent(cmdEncoder->_cmdBuffer, expandCmd.setContent(cmdEncoder->_cmdBuffer,
(VkImage)_dstImage, _dstLayout, (VkImage)xfrImage, _dstLayout, (VkImage)_dstImage, _dstLayout, (VkImage)xfrImage, _dstLayout,
expRgnCnt, _expansionRegions.data(), expRgnCnt, _expansionRegions.data(),
@ -595,7 +593,7 @@ void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) {
// To be threadsafe...do NOT acquire and return the command from the pool. // To be threadsafe...do NOT acquire and return the command from the pool.
uint32_t cpyRgnCnt = uint32_t(_copyRegions.size()); uint32_t cpyRgnCnt = uint32_t(_copyRegions.size());
if (cpyRgnCnt > 0) { if (cpyRgnCnt > 0) {
MVKCmdCopyImage copyCmd(&cmdEncoder->_cmdBuffer->getCommandPool()->_cmdCopyImagePool); MVKCmdCopyImage copyCmd;
copyCmd.setContent(cmdEncoder->_cmdBuffer, copyCmd.setContent(cmdEncoder->_cmdBuffer,
(VkImage)_srcImage, _srcLayout, (VkImage)xfrImage, _dstLayout, (VkImage)_srcImage, _srcLayout, (VkImage)xfrImage, _dstLayout,
cpyRgnCnt, _copyRegions.data(), kMVKCommandUseResolveCopyImage); cpyRgnCnt, _copyRegions.data(), kMVKCommandUseResolveCopyImage);
@ -624,9 +622,7 @@ void MVKCmdResolveImage::encode(MVKCommandEncoder* cmdEncoder) {
} }
} }
MVKCmdResolveImage::MVKCmdResolveImage(MVKCommandTypePool<MVKCmdResolveImage>* pool) MVKCmdResolveImage::MVKCmdResolveImage() {
: MVKCommand::MVKCommand((MVKCommandTypePool<MVKCommand>*)pool) {
initMTLRenderPassDescriptor(); initMTLRenderPassDescriptor();
} }

View File

@ -24,8 +24,26 @@
class MVKCommandBuffer; class MVKCommandBuffer;
class MVKCommandEncoder; class MVKCommandEncoder;
class MVKCommandPool; class MVKCommandPool;
//class MVKCommandEncodingPool;
template <class T> class MVKCommandTypePool;
#pragma mark -
#pragma mark MVKCommandTypePool
/** A pool of MVKCommand instances of a particular type. */
template <class T>
class MVKCommandTypePool : public MVKObjectPool<T> {
public:
/** Returns the Vulkan API opaque object controlling this object. */
MVKVulkanAPIObject* getVulkanAPIObject() override { return nullptr; }
/** Returns a new command instance. */
T* newObject() override { return new T(); }
MVKCommandTypePool(bool isPooling = true) : MVKObjectPool<T>(isPooling) {}
};
#pragma mark - #pragma mark -
@ -34,8 +52,8 @@ template <class T> class MVKCommandTypePool;
/** /**
* Abstract class that represents a Vulkan command. * Abstract class that represents a Vulkan command.
* *
* To allow the command contents to be populated, all concrete * To allow command contents to be populated in a standard way, all concrete
* subclasses must support a member function of the following form: * subclasses must support a public member function of the following form:
* *
* VkResult setContent(MVKCommandBuffer* cmdBuff, ...); * VkResult setContent(MVKCommandBuffer* cmdBuff, ...);
*/ */
@ -49,23 +67,9 @@ public:
/** Encodes this command on the specified command encoder. */ /** Encodes this command on the specified command encoder. */
virtual void encode(MVKCommandEncoder* cmdEncoder) = 0; virtual void encode(MVKCommandEncoder* cmdEncoder) = 0;
/**
* Returns this object back to the type pool associated with the subclass type,
* contained in the command pool.
*
* This method is not thread-safe. Vulkan Command Pools are externally synchronized.
* For a particular MVKCommandTypePool instance, all calls to pool->aquireObject(),
* and returnToPool() (or pool->returnObject()), MUST be called from the same thread.
*
* Do not call this function if a subclass instance has been created inline to
* perform a transient sub-command operation. Instead, let the instance be destroyed
* automatically at the end of the inline scope, as usual for inline instantiation.
*/
void returnToPool(MVKCommandPool* cmdPool);
MVKCommand(MVKCommandTypePool<MVKCommand>* pool) {}
protected: protected:
friend MVKCommandBuffer;
virtual MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) = 0; virtual MVKCommandTypePool<MVKCommand>* getTypePool(MVKCommandPool* cmdPool) = 0;
// Macro to implement a subclass override of the getTypePool(MVKCommandPool* cmdPool) function. // Macro to implement a subclass override of the getTypePool(MVKCommandPool* cmdPool) function.
@ -76,43 +80,6 @@ protected:
}; };
#pragma mark -
#pragma mark MVKCommandTypePool
/**
* Static function for MVKCommandTypePool template to call to resolve its own getVulkanAPIObject()
* from its MVKCommandPool. Needed because MVKCommandTypePool template cannot have a function
* implementation outside the template, and MVKCommandPool is not fully defined in this header file.
*/
MVKVulkanAPIObject* mvkCommandPoolGetVulkanAPIObject(MVKCommandPool* cmdPool);
/** A pool of MVKCommand instances of a particular type. */
template <class T>
class MVKCommandTypePool : public MVKObjectPool<T> {
public:
/** Returns the Vulkan API opaque object controlling this object. */
MVKVulkanAPIObject* getVulkanAPIObject() override { return mvkCommandPoolGetVulkanAPIObject(_commandPool); };
/** Some commands require access to the command pool to access resources. */
MVKCommandPool* getCommandPool() { return _commandPool; }
/** Returns a new command instance. */
T* newObject() override { return new T(this); }
/**
* Configures this instance to either use pooling, or not, depending on the
* value of isPooling, which defaults to true if not indicated explicitly.
*/
MVKCommandTypePool(MVKCommandPool* cmdPool, bool isPooling = true) : MVKObjectPool<T>(isPooling), _commandPool(cmdPool) {}
protected:
MVKCommandPool* _commandPool;
};
#pragma mark - #pragma mark -
#pragma mark MVKLoadStoreOverrideMixin #pragma mark MVKLoadStoreOverrideMixin

View File

@ -1,33 +0,0 @@
/*
* MVKCommand.mm
*
* Copyright (c) 2015-2020 The Brenwill Workshop Ltd. (http://www.brenwill.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "MVKCommand.h"
#include "MVKCommandPool.h"
#pragma mark -
#pragma mark MVKCommand
void MVKCommand::returnToPool(MVKCommandPool* cmdPool) { getTypePool(cmdPool)->returnObject(this); }
#pragma mark -
#pragma mark MVKCommandTypePool
MVKVulkanAPIObject* mvkCommandPoolGetVulkanAPIObject(MVKCommandPool* cmdPool) { return cmdPool->getVulkanAPIObject(); }

View File

@ -58,7 +58,7 @@ void MVKCommandBuffer::releaseCommands() {
MVKCommand* cmd = _head; MVKCommand* cmd = _head;
while (cmd) { while (cmd) {
MVKCommand* nextCmd = cmd->_next; // Establish next before returning current to pool. MVKCommand* nextCmd = cmd->_next; // Establish next before returning current to pool.
cmd->returnToPool(getCommandPool()); (cmd->getTypePool(getCommandPool()))->returnObject(cmd);
cmd = nextCmd; cmd = nextCmd;
} }
_head = nullptr; _head = nullptr;
@ -421,7 +421,7 @@ void MVKCommandEncoder::clearRenderArea() {
// Create and execute a temporary clear attachments command. // Create and execute a temporary clear attachments command.
// To be threadsafe...do NOT acquire and return the command from the pool. // To be threadsafe...do NOT acquire and return the command from the pool.
MVKCmdClearAttachments cmd(&_cmdBuffer->getCommandPool()->_cmdClearAttachmentsPool); MVKCmdClearAttachments cmd;
cmd.setContent(_cmdBuffer, clearAttCnt, clearAtts.data(), 1, &clearRect); cmd.setContent(_cmdBuffer, clearAttCnt, clearAtts.data(), 1, &clearRect);
cmd.encode(this); cmd.encode(this);
} }

View File

@ -140,52 +140,52 @@ MVKCommandPool::MVKCommandPool(MVKDevice* device,
_queueFamilyIndex(pCreateInfo->queueFamilyIndex), _queueFamilyIndex(pCreateInfo->queueFamilyIndex),
_commandBufferPool(device, usePooling), _commandBufferPool(device, usePooling),
_commandEncodingPool(this), _commandEncodingPool(this),
_cmdPipelineBarrierPool(this, usePooling), _cmdPipelineBarrierPool(usePooling),
_cmdBindPipelinePool(this, usePooling), _cmdBindPipelinePool(usePooling),
_cmdBeginRenderPassPool(this, usePooling), _cmdBeginRenderPassPool(usePooling),
_cmdNextSubpassPool(this, usePooling), _cmdNextSubpassPool(usePooling),
_cmdExecuteCommandsPool(this, usePooling), _cmdExecuteCommandsPool(usePooling),
_cmdEndRenderPassPool(this, usePooling), _cmdEndRenderPassPool(usePooling),
_cmdBindDescriptorSetsPool(this, usePooling), _cmdBindDescriptorSetsPool(usePooling),
_cmdSetViewportPool(this, usePooling), _cmdSetViewportPool(usePooling),
_cmdSetScissorPool(this, usePooling), _cmdSetScissorPool(usePooling),
_cmdSetLineWidthPool(this, usePooling), _cmdSetLineWidthPool(usePooling),
_cmdSetDepthBiasPool(this, usePooling), _cmdSetDepthBiasPool(usePooling),
_cmdSetBlendConstantsPool(this, usePooling), _cmdSetBlendConstantsPool(usePooling),
_cmdSetDepthBoundsPool(this, usePooling), _cmdSetDepthBoundsPool(usePooling),
_cmdSetStencilCompareMaskPool(this, usePooling), _cmdSetStencilCompareMaskPool(usePooling),
_cmdSetStencilWriteMaskPool(this, usePooling), _cmdSetStencilWriteMaskPool(usePooling),
_cmdSetStencilReferencePool(this, usePooling), _cmdSetStencilReferencePool(usePooling),
_cmdBindVertexBuffersPool(this, usePooling), _cmdBindVertexBuffersPool(usePooling),
_cmdBindIndexBufferPool(this, usePooling), _cmdBindIndexBufferPool(usePooling),
_cmdDrawPool(this, usePooling), _cmdDrawPool(usePooling),
_cmdDrawIndexedPool(this, usePooling), _cmdDrawIndexedPool(usePooling),
_cmdDrawIndirectPool(this, usePooling), _cmdDrawIndirectPool(usePooling),
_cmdDrawIndexedIndirectPool(this, usePooling), _cmdDrawIndexedIndirectPool(usePooling),
_cmdCopyImagePool(this, usePooling), _cmdCopyImagePool(usePooling),
_cmdBlitImagePool(this, usePooling), _cmdBlitImagePool(usePooling),
_cmdResolveImagePool(this, usePooling), _cmdResolveImagePool(usePooling),
_cmdFillBufferPool(this, usePooling), _cmdFillBufferPool(usePooling),
_cmdUpdateBufferPool(this, usePooling), _cmdUpdateBufferPool(usePooling),
_cmdCopyBufferPool(this, usePooling), _cmdCopyBufferPool(usePooling),
_cmdBufferImageCopyPool(this, usePooling), _cmdBufferImageCopyPool(usePooling),
_cmdClearAttachmentsPool(this, usePooling), _cmdClearAttachmentsPool(usePooling),
_cmdClearImagePool(this, usePooling), _cmdClearImagePool(usePooling),
_cmdBeginQueryPool(this, usePooling), _cmdBeginQueryPool(usePooling),
_cmdEndQueryPool(this, usePooling), _cmdEndQueryPool(usePooling),
_cmdWriteTimestampPool(this, usePooling), _cmdWriteTimestampPool(usePooling),
_cmdResetQueryPoolPool(this, usePooling), _cmdResetQueryPoolPool(usePooling),
_cmdCopyQueryPoolResultsPool(this, usePooling), _cmdCopyQueryPoolResultsPool(usePooling),
_cmdPushConstantsPool(this, usePooling), _cmdPushConstantsPool(usePooling),
_cmdDispatchPool(this, usePooling), _cmdDispatchPool(usePooling),
_cmdDispatchIndirectPool(this, usePooling), _cmdDispatchIndirectPool(usePooling),
_cmdPushDescriptorSetPool(this, usePooling), _cmdPushDescriptorSetPool(usePooling),
_cmdPushDescriptorSetWithTemplatePool(this, usePooling), _cmdPushDescriptorSetWithTemplatePool(usePooling),
_cmdDebugMarkerBeginPool(this, usePooling), _cmdDebugMarkerBeginPool(usePooling),
_cmdDebugMarkerEndPool(this, usePooling), _cmdDebugMarkerEndPool(usePooling),
_cmdDebugMarkerInsertPool(this, usePooling), _cmdDebugMarkerInsertPool(usePooling),
_cmdSetResetEventPool(this, usePooling), _cmdSetResetEventPool(usePooling),
_cmdWaitEventsPool(this, usePooling) _cmdWaitEventsPool(usePooling)
// when extending be sure to add to trim() as well // when extending be sure to add to trim() as well
{} {}