Remove MVKCommandEncoderState::reset().

MVKCommandEncoderState has numerous subclasses, and the polymorphic
MVKCommandEncoderState::resetImpl() requires significant maintenance
across these subclasses. It's only use was in disabling depth-stencil state.

Remove MVKCommandEncoderState::reset() and all implementations of resetImpl()
across all MVKCommandEncoderState subclasses.
Remove MVKPipeline::__hasDepthStencilInfo and disable depth-stencil state
automatically via cleared Vulkan struct in MVKPipeline.
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h
index d488932..41e4544 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h
+++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.h
@@ -83,23 +83,11 @@
         encodeImpl(stage);
     }
 
-    /**
-     * Marks this instance as dirty and calls resetImpl() function to reset this instance
-     * back to initial state. Subclasses must override the resetImpl() function.
-     */
-    void reset() {
-        _isDirty = true;
-        _isModified = false;
-
-        resetImpl();
-    }
-
 	/** Constructs this instance for the specified command encoder. */
     MVKCommandEncoderState(MVKCommandEncoder* cmdEncoder) : _cmdEncoder(cmdEncoder) {}
 
 protected:
     virtual void encodeImpl(uint32_t stage) = 0;
-    virtual void resetImpl() = 0;
 
     MVKCommandEncoder* _cmdEncoder;
 	bool _isDirty = false;
@@ -127,7 +115,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     MVKPipeline* _pipeline = nullptr;
 };
@@ -156,7 +143,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     MVKSmallVector<VkViewport, kMVKCachedViewportScissorCount> _viewports, _dynamicViewports;
 };
@@ -185,7 +171,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     MVKSmallVector<VkRect2D, kMVKCachedViewportScissorCount> _scissors, _dynamicScissors;
 };
@@ -212,7 +197,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 	bool isTessellating();
 
     MVKSmallVector<char, 128> _pushConstants;
@@ -252,7 +236,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
     void setStencilState(MVKMTLStencilDescriptorData& stencilInfo,
                          const VkStencilOpState& vkStencil,
                          bool enabled);
@@ -283,7 +266,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     uint32_t _frontFaceValue = 0;
     uint32_t _backFaceValue = 0;
@@ -312,7 +294,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     float _depthBiasConstantFactor = 0;
     float _depthBiasClamp = 0;
@@ -340,7 +321,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
 
     float _red = 0;
     float _green = 0;
@@ -440,23 +420,6 @@
 		bool areSamplerStateBindingsDirty = false;
 
 		bool needsSwizzle = false;
-
-		void reset() {
-			bufferBindings.clear();
-			textureBindings.clear();
-			samplerStateBindings.clear();
-			swizzleConstants.clear();
-			bufferSizes.clear();
-
-			areBufferBindingsDirty = false;
-			areTextureBindingsDirty = false;
-			areSamplerStateBindingsDirty = false;
-			swizzleBufferBinding.isDirty = false;
-			bufferSizeBufferBinding.isDirty = false;
-			viewRangeBufferBinding.isDirty = false;
-
-			needsSwizzle = false;
-		}
 	};
 
 };
@@ -524,7 +487,6 @@
 
 protected:
     void encodeImpl(uint32_t stage) override;
-    void resetImpl() override;
     void markDirty() override;
 
     ResourceBindings<8> _shaderStageResourceBindings[4];
@@ -563,7 +525,6 @@
 
 protected:
     void encodeImpl(uint32_t) override;
-    void resetImpl() override;
 
 	ResourceBindings<4> _resourceBindings;
 };
@@ -589,7 +550,6 @@
 
 protected:
     void encodeImpl(uint32_t) override;
-    void resetImpl() override;
 
     MTLVisibilityResultMode _mtlVisibilityResultMode = MTLVisibilityResultModeDisabled;
     NSUInteger _mtlVisibilityResultOffset = 0;
diff --git a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm
index 4919d21..968d087 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCommandEncoderState.mm
@@ -49,10 +49,6 @@
 	}
 }
 
-void MVKPipelineCommandEncoderState::resetImpl() {
-    _pipeline = nullptr;
-}
-
 
 #pragma mark -
 #pragma mark MVKViewportCommandEncoderState
@@ -103,11 +99,6 @@
     }
 }
 
-void MVKViewportCommandEncoderState::resetImpl() {
-    _viewports.clear();
-	_dynamicViewports.clear();
-}
-
 
 #pragma mark -
 #pragma mark MVKScissorCommandEncoderState
@@ -158,11 +149,6 @@
 	}
 }
 
-void MVKScissorCommandEncoderState::resetImpl() {
-    _scissors.clear();
-	_dynamicScissors.clear();
-}
-
 
 #pragma mark -
 #pragma mark MVKPushConstantsCommandEncoderState
@@ -255,10 +241,6 @@
 	return gp ? gp->isTessellationPipeline() : false;
 }
 
-void MVKPushConstantsCommandEncoderState::resetImpl() {
-    _pushConstants.clear();
-}
-
 
 #pragma mark -
 #pragma mark MVKDepthStencilCommandEncoderState
@@ -363,12 +345,6 @@
 	}
 }
 
-void MVKDepthStencilCommandEncoderState::resetImpl() {
-    _depthStencilData = kMVKMTLDepthStencilDescriptorDataDefault;
-	_hasDepthAttachment = false;
-	_hasStencilAttachment = false;
-}
-
 
 #pragma mark -
 #pragma mark MVKStencilReferenceValueCommandEncoderState
@@ -406,11 +382,6 @@
                                                backReferenceValue: _backFaceValue];
 }
 
-void MVKStencilReferenceValueCommandEncoderState::resetImpl() {
-    _frontFaceValue = 0;
-    _backFaceValue = 0;
-}
-
 
 #pragma mark -
 #pragma mark MVKDepthBiasCommandEncoderState
@@ -453,13 +424,6 @@
     }
 }
 
-void MVKDepthBiasCommandEncoderState::resetImpl() {
-    _depthBiasConstantFactor = 0;
-    _depthBiasClamp = 0;
-    _depthBiasSlopeFactor = 0;
-    _isEnabled = false;
-}
-
 
 #pragma mark -
 #pragma mark MVKBlendColorCommandEncoderState
@@ -484,13 +448,6 @@
     [_cmdEncoder->_mtlRenderEncoder setBlendColorRed: _red green: _green blue: _blue alpha: _alpha];
 }
 
-void MVKBlendColorCommandEncoderState::resetImpl() {
-    _red = 0;
-    _green = 0;
-    _blue = 0;
-    _alpha = 0;
-}
-
 
 #pragma mark -
 #pragma mark MVKResourcesCommandEncoderState
@@ -808,12 +765,6 @@
     }
 }
 
-void MVKGraphicsResourcesCommandEncoderState::resetImpl() {
-	for (uint32_t i = kMVKShaderStageVertex; i <= kMVKShaderStageFragment; i++) {
-		_shaderStageResourceBindings[i].reset();
-	}
-}
-
 
 #pragma mark -
 #pragma mark MVKComputeResourcesCommandEncoderState
@@ -908,10 +859,6 @@
                                              });
 }
 
-void MVKComputeResourcesCommandEncoderState::resetImpl() {
-	_resourceBindings.reset();
-}
-
 
 #pragma mark -
 #pragma mark MVKOcclusionQueryCommandEncoderState
@@ -966,9 +913,3 @@
 	[_cmdEncoder->_mtlRenderEncoder setVisibilityResultMode: _mtlVisibilityResultMode
 													 offset: _mtlVisibilityResultOffset];
 }
-
-void MVKOcclusionQueryCommandEncoderState::resetImpl() {
-    _mtlVisibilityResultMode = MTLVisibilityResultModeDisabled;
-    _mtlVisibilityResultOffset = 0;
-    _mtlRenderPassQueries.clear();
-}
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h
index 2fd7020..cdef884 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.h
@@ -338,7 +338,6 @@
 	uint32_t _tessCtlLevelBufferIndex = 0;
 
 	bool _dynamicStateEnabled[kMVKVkDynamicStateCount];
-	bool _hasDepthStencilInfo;
 	bool _needsVertexSwizzleBuffer = false;
 	bool _needsVertexBufferSizeBuffer = false;
 	bool _needsVertexViewRangeBuffer = false;
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm
index 262c8c8..873729e 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKPipeline.mm
@@ -241,14 +241,9 @@
 				[mtlCmdEnc setRenderPipelineState: _mtlPipelineState];
 			}
 
-            // Depth stencil state
-            if (_hasDepthStencilInfo) {
-                cmdEncoder->_depthStencilState.setDepthStencilState(_depthStencilInfo);
-                cmdEncoder->_stencilReferenceValueState.setReferenceValues(_depthStencilInfo);
-            } else {
-                cmdEncoder->_depthStencilState.reset();
-                cmdEncoder->_stencilReferenceValueState.reset();
-            }
+            // Depth stencil state - Cleared _depthStencilInfo values will disable depth testing
+			cmdEncoder->_depthStencilState.setDepthStencilState(_depthStencilInfo);
+			cmdEncoder->_stencilReferenceValueState.setReferenceValues(_depthStencilInfo);
 
             // Rasterization
             cmdEncoder->_blendColorState.setBlendColor(_blendConstants[0], _blendConstants[1],
@@ -418,8 +413,8 @@
 	// Render pipeline state
 	initMTLRenderPipelineState(pCreateInfo, reflectData);
 
-	// Depth stencil content
-	_hasDepthStencilInfo = mvkSetOrClear(&_depthStencilInfo, pCreateInfo->pDepthStencilState);
+	// Depth stencil content - clearing will disable depth and stencil testing
+	mvkSetOrClear(&_depthStencilInfo, pCreateInfo->pDepthStencilState);
 
 	// Viewports and scissors
 	auto pVPState = pCreateInfo->pViewportState;