Lines Matching refs:gpu
8 #include "src/gpu/vk/GrVkCommandBuffer.h"
12 #include "src/gpu/vk/GrVkBuffer.h"
13 #include "src/gpu/vk/GrVkCommandPool.h"
14 #include "src/gpu/vk/GrVkFramebuffer.h"
15 #include "src/gpu/vk/GrVkGpu.h"
16 #include "src/gpu/vk/GrVkImage.h"
17 #include "src/gpu/vk/GrVkImageView.h"
18 #include "src/gpu/vk/GrVkPipeline.h"
19 #include "src/gpu/vk/GrVkPipelineState.h"
20 #include "src/gpu/vk/GrVkPipelineState.h"
21 #include "src/gpu/vk/GrVkRenderPass.h"
22 #include "src/gpu/vk/GrVkRenderTarget.h"
23 #include "src/gpu/vk/GrVkUtil.h"
25 #include "src/gpu/vk/GrVkDrawAreaManager.h"
26 #include "src/gpu/vk/vulkan_header_ext_huawei.h"
46 void GrVkCommandBuffer::freeGPUData(const GrGpu* gpu, VkCommandPool cmdPool) const {
47 TRACE_EVENT0("skia.gpu", TRACE_FUNC);
56 GrVkGpu* vkGpu = (GrVkGpu*)gpu;
63 TRACE_EVENT0("skia.gpu", TRACE_FUNC);
80 void GrVkCommandBuffer::pipelineBarrier(const GrVkGpu* gpu,
130 this->submitPipelineBarriers(gpu);
146 this->submitPipelineBarriers(gpu, true);
150 void GrVkCommandBuffer::submitPipelineBarriers(const GrVkGpu* gpu, bool forSelfDependency) {
164 GR_VK_CALL(gpu->vkInterface(), CmdPipelineBarrier(
181 void GrVkCommandBuffer::bindInputBuffer(GrVkGpu* gpu, uint32_t binding,
190 GR_VK_CALL(gpu->vkInterface(), CmdBindVertexBuffers(fCmdBuffer,
200 void GrVkCommandBuffer::bindIndexBuffer(GrVkGpu* gpu, sk_sp<const GrBuffer> buffer) {
206 GR_VK_CALL(gpu->vkInterface(), CmdBindIndexBuffer(fCmdBuffer,
214 void GrVkCommandBuffer::clearAttachments(const GrVkGpu* gpu,
224 this->addingWork(gpu);
235 GR_VK_CALL(gpu->vkInterface(), CmdClearAttachments(fCmdBuffer,
240 if (gpu->vkCaps().mustInvalidatePrimaryCmdBufferStateAfterClearAttachments()) {
245 void GrVkCommandBuffer::bindDescriptorSets(const GrVkGpu* gpu,
253 GR_VK_CALL(gpu->vkInterface(), CmdBindDescriptorSets(fCmdBuffer,
263 void GrVkCommandBuffer::bindPipeline(const GrVkGpu* gpu, sk_sp<const GrVkPipeline> pipeline) {
265 GR_VK_CALL(gpu->vkInterface(), CmdBindPipeline(fCmdBuffer,
271 void GrVkCommandBuffer::pushConstants(const GrVkGpu* gpu, VkPipelineLayout layout,
278 GR_VK_CALL(gpu->vkInterface(), CmdPushConstants(fCmdBuffer,
286 void GrVkCommandBuffer::drawIndexed(const GrVkGpu* gpu,
294 this->addingWork(gpu);
295 GR_VK_CALL(gpu->vkInterface(), CmdDrawIndexed(fCmdBuffer,
303 void GrVkCommandBuffer::draw(const GrVkGpu* gpu,
310 this->addingWork(gpu);
311 GR_VK_CALL(gpu->vkInterface(), CmdDraw(fCmdBuffer,
318 void GrVkCommandBuffer::drawIndirect(const GrVkGpu* gpu,
326 this->addingWork(gpu);
328 GR_VK_CALL(gpu->vkInterface(), CmdDrawIndirect(fCmdBuffer,
336 void GrVkCommandBuffer::drawIndexedIndirect(const GrVkGpu* gpu,
344 this->addingWork(gpu);
346 GR_VK_CALL(gpu->vkInterface(), CmdDrawIndexedIndirect(fCmdBuffer,
354 void GrVkCommandBuffer::setViewport(const GrVkGpu* gpu,
361 GR_VK_CALL(gpu->vkInterface(), CmdSetViewport(fCmdBuffer,
369 void GrVkCommandBuffer::setScissor(const GrVkGpu* gpu,
376 GR_VK_CALL(gpu->vkInterface(), CmdSetScissor(fCmdBuffer,
384 void GrVkCommandBuffer::setBlendConstants(const GrVkGpu* gpu,
388 GR_VK_CALL(gpu->vkInterface(), CmdSetBlendConstants(fCmdBuffer, blendConstants));
393 void GrVkCommandBuffer::addingWork(const GrVkGpu* gpu) {
394 this->submitPipelineBarriers(gpu);
406 GrVkPrimaryCommandBuffer* GrVkPrimaryCommandBuffer::Create(GrVkGpu* gpu,
418 GR_VK_CALL_RESULT(gpu, err, AllocateCommandBuffers(gpu->device(), &cmdInfo, &cmdBuffer));
425 void GrVkPrimaryCommandBuffer::begin(GrVkGpu* gpu) {
434 GR_VK_CALL_ERRCHECK(gpu, BeginCommandBuffer(fCmdBuffer, &cmdBufferBeginInfo));
438 void GrVkPrimaryCommandBuffer::end(GrVkGpu* gpu, bool abandoningBuffer) {
449 this->submitPipelineBarriers(gpu);
451 GR_VK_CALL_ERRCHECK(gpu, EndCommandBuffer(fCmdBuffer));
458 bool GrVkPrimaryCommandBuffer::beginRenderPass(GrVkGpu* gpu,
470 this->addingWork(gpu);
512 GR_VK_CALL(gpu->vkInterface(), CmdBeginRenderPass(fCmdBuffer, &beginInfo, contents));
520 void GrVkPrimaryCommandBuffer::endRenderPass(const GrVkGpu* gpu) {
523 this->addingWork(gpu);
524 GR_VK_CALL(gpu->vkInterface(), CmdEndRenderPass(fCmdBuffer));
529 void GrVkPrimaryCommandBuffer::nexSubpass(GrVkGpu* gpu, bool forSecondaryCB) {
534 GR_VK_CALL(gpu->vkInterface(), CmdNextSubpass(fCmdBuffer, contents));
537 void GrVkPrimaryCommandBuffer::executeCommands(const GrVkGpu* gpu,
547 this->addingWork(gpu);
549 GR_VK_CALL(gpu->vkInterface(), CmdExecuteCommands(fCmdBuffer, 1, &buffer->fCmdBuffer));
566 static bool submit_to_queue(GrVkGpu* gpu,
597 GR_VK_CALL_RESULT(gpu, result, QueueSubmit(queue, 1, &submitInfo, fence));
600 if (nullptr != gpu->vkInterface()->fFunctions.fGetPerFrameLoad) {
602 GR_VK_CALL(gpu->vkInterface(), GetPerFrameLoad(commandBufferCount, commandBuffers, &frameLoad));
612 GrVkGpu* gpu,
623 GR_VK_CALL_RESULT(gpu, err, CreateFence(gpu->device(), &fenceInfo, nullptr,
631 GR_VK_CALL_RESULT(gpu, err, ResetFences(gpu->device(), 1, &fSubmitFence));
644 gpu, queue, fSubmitFence, 0, nullptr, nullptr, 1, &fCmdBuffer, 0, nullptr,
645 gpu->protectedContext() ? GrProtected::kYes : GrProtected::kNo);
664 submitted = submit_to_queue(gpu, queue, fSubmitFence, vkWaitSems.count(),
667 gpu->protectedContext() ? GrProtected::kYes : GrProtected::kNo);
680 GR_VK_CALL(gpu->vkInterface(), DestroyFence(gpu->device(), fSubmitFence, nullptr));
687 void GrVkPrimaryCommandBuffer::forceSync(GrVkGpu* gpu) {
691 GR_VK_CALL_ERRCHECK(gpu, WaitForFences(gpu->device(), 1, &fSubmitFence, true, UINT64_MAX));
694 bool GrVkPrimaryCommandBuffer::finished(GrVkGpu* gpu) {
701 GR_VK_CALL_RESULT_NOCHECK(gpu, err, GetFenceStatus(gpu->device(), fSubmitFence));
735 void GrVkPrimaryCommandBuffer::copyImage(const GrVkGpu* gpu,
744 this->addingWork(gpu);
747 GR_VK_CALL(gpu->vkInterface(), CmdCopyImage(fCmdBuffer,
756 void GrVkPrimaryCommandBuffer::blitImage(const GrVkGpu* gpu,
768 this->addingWork(gpu);
771 GR_VK_CALL(gpu->vkInterface(), CmdBlitImage(fCmdBuffer,
781 void GrVkPrimaryCommandBuffer::blitImage(const GrVkGpu* gpu,
787 this->blitImage(gpu,
800 void GrVkPrimaryCommandBuffer::copyImageToBuffer(const GrVkGpu* gpu,
808 this->addingWork(gpu);
810 GR_VK_CALL(gpu->vkInterface(), CmdCopyImageToBuffer(fCmdBuffer,
820 void GrVkPrimaryCommandBuffer::copyBufferToImage(const GrVkGpu* gpu,
828 this->addingWork(gpu);
830 GR_VK_CALL(gpu->vkInterface(), CmdCopyBufferToImage(fCmdBuffer,
839 void GrVkPrimaryCommandBuffer::copyBuffer(GrVkGpu* gpu,
846 this->addingWork(gpu);
861 GR_VK_CALL(gpu->vkInterface(), CmdCopyBuffer(fCmdBuffer,
870 void GrVkPrimaryCommandBuffer::updateBuffer(GrVkGpu* gpu,
881 this->addingWork(gpu);
883 gpu->vkInterface(),
889 void GrVkPrimaryCommandBuffer::clearColorImage(const GrVkGpu* gpu,
896 this->addingWork(gpu);
898 GR_VK_CALL(gpu->vkInterface(), CmdClearColorImage(fCmdBuffer,
906 void GrVkPrimaryCommandBuffer::clearDepthStencilImage(const GrVkGpu* gpu,
913 this->addingWork(gpu);
915 GR_VK_CALL(gpu->vkInterface(), CmdClearDepthStencilImage(fCmdBuffer,
923 void GrVkPrimaryCommandBuffer::resolveImage(GrVkGpu* gpu,
931 this->addingWork(gpu);
935 GR_VK_CALL(gpu->vkInterface(), CmdResolveImage(fCmdBuffer,
944 void GrVkPrimaryCommandBuffer::onFreeGPUData(const GrVkGpu* gpu) const {
948 GR_VK_CALL(gpu->vkInterface(), DestroyFence(gpu->device(), fSubmitFence, nullptr));
953 void GrVkPrimaryCommandBuffer::drawBlurImage(const GrVkGpu* gpu,
959 if ((gpu == nullptr) || (image == nullptr)) {
962 this->addingWork(gpu);
992 GR_VK_CALL(gpu->vkInterface(), CmdDrawBlurImageHUAWEI(fCmdBuffer, &drawBlurImageInfo));
999 GrVkSecondaryCommandBuffer* GrVkSecondaryCommandBuffer::Create(GrVkGpu* gpu,
1012 GR_VK_CALL_RESULT(gpu, err, AllocateCommandBuffers(gpu->device(), &cmdInfo, &cmdBuffer));
1024 void GrVkSecondaryCommandBuffer::begin(GrVkGpu* gpu, const GrVkFramebuffer* framebuffer,
1050 GR_VK_CALL_ERRCHECK(gpu, BeginCommandBuffer(fCmdBuffer, &cmdBufferBeginInfo));
1055 void GrVkSecondaryCommandBuffer::end(GrVkGpu* gpu) {
1058 GR_VK_CALL_ERRCHECK(gpu, EndCommandBuffer(fCmdBuffer));