Fix VkHardwareBufferTest so semaphore signals after queue change.
No-Tree-Checks: true
No-Try: true
No-Presubmit: true
Bug: skia:8611
Change-Id: Ia714b5fd8df794960a8c1176bb7e231c7e8b01b5
Reviewed-on: https://skia-review.googlesource.com/c/175435
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/tests/VkHardwareBufferTest.cpp b/tests/VkHardwareBufferTest.cpp
index 169918d..3ec475a 100644
--- a/tests/VkHardwareBufferTest.cpp
+++ b/tests/VkHardwareBufferTest.cpp
@@ -1054,11 +1054,13 @@
bool VulkanTestHelper::flushSurfaceAndSignalSemaphore(skiatest::Reporter* reporter,
sk_sp<SkSurface> surface) {
+ surface->flush();
+ surface.reset();
GrBackendSemaphore semaphore;
if (!this->setupSemaphoreForSignaling(reporter, &semaphore)) {
return false;
}
- GrSemaphoresSubmitted submitted = surface->flushAndSignalSemaphores(1, &semaphore);
+ GrSemaphoresSubmitted submitted = fGrContext->flushAndSignalSemaphores(1, &semaphore);
if (GrSemaphoresSubmitted::kNo == submitted) {
ERRORF(reporter, "Failing call to flushAndSignalSemaphores on SkSurface");
return false;
@@ -1436,12 +1438,10 @@
///////////////////////////////////////////////////////////////////////////
if (shareSyncs) {
- if (!srcHelper->flushSurfaceAndSignalSemaphore(reporter, surface)) {
+ if (!srcHelper->flushSurfaceAndSignalSemaphore(reporter, std::move(surface))) {
cleanup_resources(srcHelper.get(), dstHelper.get(), buffer);
return;
}
-
- surface.reset();
} else {
surface.reset();
srcHelper->doClientSync();