| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "GrVkCommandBuffer.h" | 8 #include "GrVkCommandBuffer.h" |
| 9 | 9 |
| 10 #include "GrVkFramebuffer.h" | 10 #include "GrVkFramebuffer.h" |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 } | 304 } |
| 305 | 305 |
| 306 void GrVkPrimaryCommandBuffer::executeCommands(const GrVkGpu* gpu, | 306 void GrVkPrimaryCommandBuffer::executeCommands(const GrVkGpu* gpu, |
| 307 const GrVkSecondaryCommandBuffer*
buffer) { | 307 const GrVkSecondaryCommandBuffer*
buffer) { |
| 308 SkASSERT(fIsActive); | 308 SkASSERT(fIsActive); |
| 309 SkASSERT(fActiveRenderPass); | 309 SkASSERT(fActiveRenderPass); |
| 310 SkASSERT(fActiveRenderPass->isCompatible(*buffer->fActiveRenderPass)); | 310 SkASSERT(fActiveRenderPass->isCompatible(*buffer->fActiveRenderPass)); |
| 311 | 311 |
| 312 GR_VK_CALL(gpu->vkInterface(), CmdExecuteCommands(fCmdBuffer, 1, &buffer->fC
mdBuffer)); | 312 GR_VK_CALL(gpu->vkInterface(), CmdExecuteCommands(fCmdBuffer, 1, &buffer->fC
mdBuffer)); |
| 313 this->addResource(buffer); | 313 this->addResource(buffer); |
| 314 // When executing a secondary command buffer all state (besides render pass
state) becomes |
| 315 // invalidated and must be reset. This includes bound buffers, pipelines, dy
namic state, etc. |
| 316 this->invalidateState(); |
| 314 } | 317 } |
| 315 | 318 |
| 316 void GrVkPrimaryCommandBuffer::submitToQueue(const GrVkGpu* gpu, | 319 void GrVkPrimaryCommandBuffer::submitToQueue(const GrVkGpu* gpu, |
| 317 VkQueue queue, | 320 VkQueue queue, |
| 318 GrVkGpu::SyncQueue sync) { | 321 GrVkGpu::SyncQueue sync) { |
| 319 SkASSERT(!fIsActive); | 322 SkASSERT(!fIsActive); |
| 320 | 323 |
| 321 VkResult err; | 324 VkResult err; |
| 322 VkFenceCreateInfo fenceInfo; | 325 VkFenceCreateInfo fenceInfo; |
| 323 memset(&fenceInfo, 0, sizeof(VkFenceCreateInfo)); | 326 memset(&fenceInfo, 0, sizeof(VkFenceCreateInfo)); |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 fIsActive = true; | 546 fIsActive = true; |
| 544 } | 547 } |
| 545 | 548 |
| 546 void GrVkSecondaryCommandBuffer::end(const GrVkGpu* gpu) { | 549 void GrVkSecondaryCommandBuffer::end(const GrVkGpu* gpu) { |
| 547 SkASSERT(fIsActive); | 550 SkASSERT(fIsActive); |
| 548 GR_VK_CALL_ERRCHECK(gpu->vkInterface(), EndCommandBuffer(fCmdBuffer)); | 551 GR_VK_CALL_ERRCHECK(gpu->vkInterface(), EndCommandBuffer(fCmdBuffer)); |
| 549 this->invalidateState(); | 552 this->invalidateState(); |
| 550 fIsActive = false; | 553 fIsActive = false; |
| 551 } | 554 } |
| 552 | 555 |
| OLD | NEW |