Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index c3fe0f6..ab8f920 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -24,6 +24,7 @@
 - Revert to supporting host-coherent memory for linear images on macOS.
 - Ensure Vulkan loader magic number is set every time before returning any dispatchable Vulkan handle.
 - Fix crash when `VkDeviceCreateInfo` specifies queue families out of numerical order.
+- Remove error logging on `VK_TIMEOUT` of `VkSemaphore` and `VkFence`.
 - Consolidate the various linkable objects into a `MVKLinkableMixin` template base class.
 - Use `MVKVector` whenever possible in MoltenVK, especially within render loop.
 - No longer prefer dedicated allocations for buffer memory, including buffer-backed images.
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm
index 9fb29be..60d4532 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKSync.mm
@@ -80,15 +80,9 @@
 #pragma mark -
 #pragma mark MVKSemaphore
 
-bool MVKSemaphore::wait(uint64_t timeout) {
-	bool isDone = _blocker.wait(timeout, true);
-	if ( !isDone && timeout > 0 ) { reportError(VK_TIMEOUT, "Vulkan semaphore timeout after %llu nanoseconds.", timeout); }
-	return isDone;
-}
+bool MVKSemaphore::wait(uint64_t timeout) { return _blocker.wait(timeout, true); }
 
-void MVKSemaphore::signal() {
-    _blocker.release();
-}
+void MVKSemaphore::signal() { _blocker.release(); }
 
 void MVKSemaphore::encodeWait(id<MTLCommandBuffer> cmdBuff) {
     [cmdBuff encodeWaitForEvent: _mtlEvent value: _mtlEventValue];
@@ -254,12 +248,7 @@
 		((MVKFence*)pFences[i])->addSitter(&fenceSitter);
 	}
 
-	if ( !fenceSitter.wait(timeout) ) {
-		rslt = VK_TIMEOUT;
-		if (timeout > 0) {
-			device->reportError(rslt, "Vulkan fence timeout after %llu nanoseconds.", timeout);
-		}
-	}
+	if ( !fenceSitter.wait(timeout) ) { rslt = VK_TIMEOUT; }
 
 	for (uint32_t i = 0; i < fenceCount; i++) {
 		((MVKFence*)pFences[i])->removeSitter(&fenceSitter);