Vulkan: refactor CommandGraphResource
Merged back RecordableGraphResource into CommandGraphResource. Queries
didn't really need to be a resource, as they always inserted separate
single-command nodes in the graph. The CommandGraph class is augmented
with a few functions that generate such nodes.
This is in preparation for debug markers, as they too require such
nodes.
Bug: angleproject:2853
Change-Id: I5251a0e0fdd42ed1126921b4acc13687a14af9cd
Reviewed-on: https://chromium-review.googlesource.com/c/1422549
Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/QueryVk.cpp b/src/libANGLE/renderer/vulkan/QueryVk.cpp
index 9e21117..c321402 100644
--- a/src/libANGLE/renderer/vulkan/QueryVk.cpp
+++ b/src/libANGLE/renderer/vulkan/QueryVk.cpp
@@ -50,13 +50,11 @@
contextVk, &mQueryHelperTimeElapsedBegin));
}
- mQueryHelperTimeElapsedBegin.writeTimestamp(contextVk,
- mQueryHelperTimeElapsedBegin.getQueryPool(),
- mQueryHelperTimeElapsedBegin.getQuery());
+ mQueryHelperTimeElapsedBegin.writeTimestamp(contextVk);
}
else
{
- mQueryHelper.beginQuery(contextVk, mQueryHelper.getQueryPool(), mQueryHelper.getQuery());
+ mQueryHelper.beginQuery(contextVk);
}
return angle::Result::Continue;
@@ -68,12 +66,11 @@
if (getType() == gl::QueryType::TimeElapsed)
{
- mQueryHelper.writeTimestamp(contextVk, mQueryHelper.getQueryPool(),
- mQueryHelper.getQuery());
+ mQueryHelper.writeTimestamp(contextVk);
}
else
{
- mQueryHelper.endQuery(contextVk, mQueryHelper.getQueryPool(), mQueryHelper.getQuery());
+ mQueryHelper.endQuery(contextVk);
}
return angle::Result::Continue;
@@ -92,7 +89,7 @@
ASSERT(getType() == gl::QueryType::Timestamp);
- mQueryHelper.writeTimestamp(contextVk, mQueryHelper.getQueryPool(), mQueryHelper.getQuery());
+ mQueryHelper.writeTimestamp(contextVk);
return angle::Result::Continue;
}
@@ -123,7 +120,7 @@
// may not have been performed by the GPU yet. To avoid a race condition in this case, wait
// for the batch to finish first before querying (or return not-ready if not waiting).
ANGLE_TRY(renderer->checkCompletedCommands(contextVk));
- if (mQueryHelper.isResourceInUse(renderer))
+ if (renderer->isSerialInUse(mQueryHelper.getStoredQueueSerial()))
{
if (!wait)
{