12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #include "include/core/SkTraceMemoryDump.h"
- #include "src/gpu/vk/GrVkGpu.h"
- #include "src/gpu/vk/GrVkTransferBuffer.h"
- sk_sp<GrVkTransferBuffer> GrVkTransferBuffer::Make(GrVkGpu* gpu, size_t size,
- GrVkBuffer::Type type) {
- GrVkBuffer::Desc desc;
- desc.fDynamic = true;
- SkASSERT(GrVkBuffer::kCopyRead_Type == type || GrVkBuffer::kCopyWrite_Type == type);
- desc.fType = type;
- desc.fSizeInBytes = size;
- const GrVkBuffer::Resource* bufferResource = GrVkBuffer::Create(gpu, desc);
- if (!bufferResource) {
- return nullptr;
- }
- GrVkTransferBuffer* buffer = new GrVkTransferBuffer(gpu, desc, bufferResource);
- if (!buffer) {
- bufferResource->unref(gpu);
- }
- return sk_sp<GrVkTransferBuffer>(buffer);
- }
- GrVkTransferBuffer::GrVkTransferBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
- const GrVkBuffer::Resource* bufferResource)
- : INHERITED(gpu, desc.fSizeInBytes,
- kCopyRead_Type == desc.fType ? GrGpuBufferType::kXferCpuToGpu
- : GrGpuBufferType::kXferGpuToCpu,
- kStream_GrAccessPattern)
- , GrVkBuffer(desc, bufferResource) {
- this->registerWithCache(SkBudgeted::kYes);
- }
- void GrVkTransferBuffer::onRelease() {
- if (!this->wasDestroyed()) {
- this->vkRelease(this->getVkGpu());
- }
- INHERITED::onRelease();
- }
- void GrVkTransferBuffer::onAbandon() {
- this->vkAbandon();
- INHERITED::onAbandon();
- }
- void GrVkTransferBuffer::setMemoryBacking(SkTraceMemoryDump* traceMemoryDump,
- const SkString& dumpName) const {
- SkString buffer_id;
- buffer_id.appendU64((uint64_t)this->buffer());
- traceMemoryDump->setMemoryBacking(dumpName.c_str(), "vk_buffer",
- buffer_id.c_str());
- }
|