diff options
| author | Chris Forbes <chrisforbes@google.com> | 2017-06-12 12:46:39 -0700 |
|---|---|---|
| committer | Chris Forbes <chrisf@ijw.co.nz> | 2017-06-12 14:38:54 -0700 |
| commit | 3e0d3a4402a823c28b01c440cd021f639b1060a0 (patch) | |
| tree | a5a9117bd3f2125e2235ee1834bf47f9aa5bdd34 /layers/core_validation.cpp | |
| parent | 87773c677ad185795fdb5165f6feccd09b4b8e26 (diff) | |
| download | usermoji-3e0d3a4402a823c28b01c440cd021f639b1060a0.tar.xz | |
layers: Split validate & update of CmdWriteTimestamp
Diffstat (limited to 'layers/core_validation.cpp')
| -rw-r--r-- | layers/core_validation.cpp | 15 |
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, |
