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" |
11 #include "GrVkImageView.h" | 11 #include "GrVkImageView.h" |
12 #include "GrVkPipeline.h" | 12 #include "GrVkPipeline.h" |
13 #include "GrVkRenderPass.h" | 13 #include "GrVkRenderPass.h" |
14 #include "GrVkRenderTarget.h" | 14 #include "GrVkRenderTarget.h" |
15 #include "GrVkProgram.h" | 15 #include "GrVkPipelineState.h" |
16 #include "GrVkTransferBuffer.h" | 16 #include "GrVkTransferBuffer.h" |
17 #include "GrVkUtil.h" | 17 #include "GrVkUtil.h" |
18 | 18 |
19 GrVkCommandBuffer* GrVkCommandBuffer::Create(const GrVkGpu* gpu, VkCommandPool c
mdPool) { | 19 GrVkCommandBuffer* GrVkCommandBuffer::Create(const GrVkGpu* gpu, VkCommandPool c
mdPool) { |
20 const VkCommandBufferAllocateInfo cmdInfo = { | 20 const VkCommandBufferAllocateInfo cmdInfo = { |
21 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, // sType | 21 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, // sType |
22 NULL, // pNext | 22 NULL, // pNext |
23 cmdPool, // commandPool | 23 cmdPool, // commandPool |
24 VK_COMMAND_BUFFER_LEVEL_PRIMARY, // level | 24 VK_COMMAND_BUFFER_LEVEL_PRIMARY, // level |
25 1 // bufferCount | 25 1 // bufferCount |
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
340 } | 340 } |
341 #endif | 341 #endif |
342 GR_VK_CALL(gpu->vkInterface(), CmdClearAttachments(fCmdBuffer, | 342 GR_VK_CALL(gpu->vkInterface(), CmdClearAttachments(fCmdBuffer, |
343 numAttachments, | 343 numAttachments, |
344 attachments, | 344 attachments, |
345 numRects, | 345 numRects, |
346 clearRects)); | 346 clearRects)); |
347 } | 347 } |
348 | 348 |
349 void GrVkCommandBuffer::bindDescriptorSets(const GrVkGpu* gpu, | 349 void GrVkCommandBuffer::bindDescriptorSets(const GrVkGpu* gpu, |
350 GrVkProgram* program, | 350 GrVkPipelineState* pipelineState, |
351 VkPipelineLayout layout, | 351 VkPipelineLayout layout, |
352 uint32_t firstSet, | 352 uint32_t firstSet, |
353 uint32_t setCount, | 353 uint32_t setCount, |
354 const VkDescriptorSet* descriptorSets
, | 354 const VkDescriptorSet* descriptorSets
, |
355 uint32_t dynamicOffsetCount, | 355 uint32_t dynamicOffsetCount, |
356 const uint32_t* dynamicOffsets) { | 356 const uint32_t* dynamicOffsets) { |
357 SkASSERT(fIsActive); | 357 SkASSERT(fIsActive); |
358 GR_VK_CALL(gpu->vkInterface(), CmdBindDescriptorSets(fCmdBuffer, | 358 GR_VK_CALL(gpu->vkInterface(), CmdBindDescriptorSets(fCmdBuffer, |
359 VK_PIPELINE_BIND_POINT_
GRAPHICS, | 359 VK_PIPELINE_BIND_POINT_
GRAPHICS, |
360 layout, | 360 layout, |
361 firstSet, | 361 firstSet, |
362 setCount, | 362 setCount, |
363 descriptorSets, | 363 descriptorSets, |
364 dynamicOffsetCount, | 364 dynamicOffsetCount, |
365 dynamicOffsets)); | 365 dynamicOffsets)); |
366 program->addUniformResources(*this); | 366 pipelineState->addUniformResources(*this); |
367 } | 367 } |
368 | 368 |
369 void GrVkCommandBuffer::bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pip
eline) { | 369 void GrVkCommandBuffer::bindPipeline(const GrVkGpu* gpu, const GrVkPipeline* pip
eline) { |
370 SkASSERT(fIsActive); | 370 SkASSERT(fIsActive); |
371 SkASSERT(fActiveRenderPass); | 371 SkASSERT(fActiveRenderPass); |
372 GR_VK_CALL(gpu->vkInterface(), CmdBindPipeline(fCmdBuffer, | 372 GR_VK_CALL(gpu->vkInterface(), CmdBindPipeline(fCmdBuffer, |
373 VK_PIPELINE_BIND_POINT_GRAPHI
CS, | 373 VK_PIPELINE_BIND_POINT_GRAPHI
CS, |
374 pipeline->pipeline())); | 374 pipeline->pipeline())); |
375 addResource(pipeline); | 375 addResource(pipeline); |
376 } | 376 } |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 } | 436 } |
437 | 437 |
438 void GrVkCommandBuffer::setBlendConstants(const GrVkGpu* gpu, | 438 void GrVkCommandBuffer::setBlendConstants(const GrVkGpu* gpu, |
439 const float blendConstants[4]) { | 439 const float blendConstants[4]) { |
440 SkASSERT(fIsActive); | 440 SkASSERT(fIsActive); |
441 if (memcmp(blendConstants, fCachedBlendConstant, 4 * sizeof(float))) { | 441 if (memcmp(blendConstants, fCachedBlendConstant, 4 * sizeof(float))) { |
442 GR_VK_CALL(gpu->vkInterface(), CmdSetBlendConstants(fCmdBuffer, blendCon
stants)); | 442 GR_VK_CALL(gpu->vkInterface(), CmdSetBlendConstants(fCmdBuffer, blendCon
stants)); |
443 memcpy(fCachedBlendConstant, blendConstants, 4 * sizeof(float)); | 443 memcpy(fCachedBlendConstant, blendConstants, 4 * sizeof(float)); |
444 } | 444 } |
445 } | 445 } |
OLD | NEW |