aboutsummaryrefslogtreecommitdiff
path: root/layers/core_validation.cpp
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2017-06-12 12:46:39 -0700
committerChris Forbes <chrisf@ijw.co.nz>2017-06-12 14:38:54 -0700
commit3e0d3a4402a823c28b01c440cd021f639b1060a0 (patch)
treea5a9117bd3f2125e2235ee1834bf47f9aa5bdd34 /layers/core_validation.cpp
parent87773c677ad185795fdb5165f6feccd09b4b8e26 (diff)
downloadusermoji-3e0d3a4402a823c28b01c440cd021f639b1060a0.tar.xz
layers: Split validate & update of CmdWriteTimestamp
Diffstat (limited to 'layers/core_validation.cpp')
-rw-r--r--layers/core_validation.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index df227ddc..f50e6b72 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -6732,15 +6732,22 @@ VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPi
std::unique_lock<std::mutex> lock(global_lock);
GLOBAL_CB_NODE *cb_state = GetCBNode(dev_data, commandBuffer);
if (cb_state) {
- QueryObject query = {queryPool, slot};
- cb_state->queryUpdates.emplace_back([=](VkQueue q) {return setQueryState(q, commandBuffer, query, true);});
skip |= ValidateCmdQueueFlags(dev_data, cb_state, "vkCmdWriteTimestamp()", VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT,
VALIDATION_ERROR_1e802415);
skip |= ValidateCmd(dev_data, cb_state, CMD_WRITETIMESTAMP, "vkCmdWriteTimestamp()");
- UpdateCmdBufferLastCmd(cb_state, CMD_WRITETIMESTAMP);
}
lock.unlock();
- if (!skip) dev_data->dispatch_table.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, slot);
+
+ if (skip) return;
+
+ dev_data->dispatch_table.CmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, slot);
+
+ lock.lock();
+ if (cb_state) {
+ QueryObject query = {queryPool, slot};
+ cb_state->queryUpdates.emplace_back([=](VkQueue q) {return setQueryState(q, commandBuffer, query, true);});
+ UpdateCmdBufferLastCmd(cb_state, CMD_WRITETIMESTAMP);
+ }
}
static bool MatchUsage(layer_data *dev_data, uint32_t count, const VkAttachmentReference *attachments,