Removed mustSubmitCommandsBeforeCopyOp
The NVidia bug which prompted this appears to have been fixed.
Bug: skia:
Change-Id: If6934bee97ae56ed11d9794b2a5351d004023276
Reviewed-on: https://skia-review.googlesource.com/c/175257
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index bd35eb9..9040225 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -344,10 +344,6 @@
fMustDoCopiesFromOrigin = true;
}
- if (kNvidia_VkVendor == properties.vendorID) {
- fMustSubmitCommandsBeforeCopyOp = true;
- }
-
#if defined(SK_BUILD_FOR_WIN)
if (kNvidia_VkVendor == properties.vendorID || kIntel_VkVendor == properties.vendorID) {
fMustSleepOnTearDown = true;
diff --git a/src/gpu/vk/GrVkCaps.h b/src/gpu/vk/GrVkCaps.h
index 9514d41..e27e8d5 100644
--- a/src/gpu/vk/GrVkCaps.h
+++ b/src/gpu/vk/GrVkCaps.h
@@ -72,13 +72,6 @@
return fMustDoCopiesFromOrigin;
}
- // On Nvidia there is a current bug where we must the current command buffer before copy
- // operations or else the copy will not happen. This includes copies, blits, resolves, and copy
- // as draws.
- bool mustSubmitCommandsBeforeCopyOp() const {
- return fMustSubmitCommandsBeforeCopyOp;
- }
-
// Sometimes calls to QueueWaitIdle return before actually signalling the fences
// on the command buffers even though they have completed. This causes an assert to fire when
// destroying the command buffers. Therefore we add a sleep to make sure the fence signals.
@@ -229,7 +222,6 @@
SkSTArray<1, GrVkYcbcrConversionInfo> fYcbcrInfos;
bool fMustDoCopiesFromOrigin = false;
- bool fMustSubmitCommandsBeforeCopyOp = false;
bool fMustSleepOnTearDown = false;
bool fNewCBOnPipelineChange = false;
bool fShouldAlwaysUseDedicatedImageMemory = false;
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 1c02e33..ded00fb 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -467,10 +467,6 @@
SkASSERT(dst);
SkASSERT(src && src->numColorSamples() > 1 && src->msaaImage());
- if (this->vkCaps().mustSubmitCommandsBeforeCopyOp()) {
- this->submitCommandBuffer(GrVkGpu::kSkip_SyncQueue);
- }
-
VkImageResolve resolveInfo;
resolveInfo.srcSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1};
resolveInfo.srcOffset = {srcRect.fLeft, srcRect.fTop, 0};
@@ -1020,10 +1016,6 @@
return false;
}
- if (this->vkCaps().mustSubmitCommandsBeforeCopyOp()) {
- this->submitCommandBuffer(kSkip_SyncQueue);
- }
-
int width = tex->width();
int height = tex->height();
VkImageBlit blitRegion;
@@ -1773,10 +1765,6 @@
return true;
}
- if (this->vkCaps().mustSubmitCommandsBeforeCopyOp()) {
- this->submitCommandBuffer(GrVkGpu::kSkip_SyncQueue);
- }
-
if (this->vkCaps().canCopyAsDraw(dstConfig, SkToBool(dst->asRenderTarget()),
srcConfig, SkToBool(src->asTexture()))) {
SkAssertResult(fCopyManager.copySurfaceAsDraw(this, dst, dstOrigin, src, srcOrigin, srcRect,