25 this->releaseResources();
28void CommandBuffer::releaseResources() {
31 fTrackedUsageResources.clear();
32 fCommandBufferResources.clear();
38 this->releaseResources();
40 fBuffersToAsyncMap.clear();
44 fTrackedUsageResources.push_back(std::move(resource));
48 fCommandBufferResources.push_back(std::move(resource));
52 fFinishedProcs.push_back(std::move(finishedProc));
57 for (
int i = 0; i < fFinishedProcs.size(); ++i) {
58 fFinishedProcs[i]->setFailureResult();
61 fFinishedProcs.clear();
65 for (
size_t i = 0; i < buffers.size(); ++i) {
67 fBuffersToAsyncMap.push_back(buffers[i]);
72 return fBuffersToAsyncMap;
87 depthStencilTexture.
get(),
99 if (depthStencilTexture) {
145 size_t bufferRowBytes) {
188 if (src->textureInfo().isProtected() == Protected::kYes &&
189 dst->textureInfo().isProtected() != Protected::kYes) {
190 SKGPU_LOG_E(
"Can't copy from protected memory to non-protected");
209 bool didResultInWork =
false;
214 if (didResultInWork) {
#define SKGPU_LOG_E(fmt,...)
virtual bool onClearBuffer(const Buffer *, size_t offset, size_t size)=0
virtual bool onAddComputePass(DispatchGroupSpan dispatchGroups)=0
virtual bool onSynchronizeBufferToCpu(const Buffer *, bool *outDidResultInWork)=0
bool clearBuffer(const Buffer *buffer, size_t offset, size_t size)
bool addRenderPass(const RenderPassDesc &, sk_sp< Texture > colorTexture, sk_sp< Texture > resolveTexture, sk_sp< Texture > depthStencilTexture, SkRect viewport, const DrawPassList &drawPasses)
bool copyBufferToTexture(const Buffer *, sk_sp< Texture >, const BufferTextureCopyData *, int count)
void addBuffersToAsyncMapOnSubmit(SkSpan< const sk_sp< Buffer > >)
bool addComputePass(DispatchGroupSpan dispatchGroups)
virtual bool onCopyTextureToBuffer(const Texture *, SkIRect srcRect, const Buffer *, size_t bufferOffset, size_t bufferRowBytes)=0
SkSpan< const sk_sp< Buffer > > buffersToAsyncMapOnSubmit() const
virtual bool onAddRenderPass(const RenderPassDesc &, const Texture *colorTexture, const Texture *resolveTexture, const Texture *depthStencilTexture, SkRect viewport, const DrawPassList &drawPasses)=0
virtual bool onCopyBufferToBuffer(const Buffer *srcBuffer, size_t srcOffset, const Buffer *dstBuffer, size_t dstOffset, size_t size)=0
void resetCommandBuffer()
bool copyTextureToTexture(sk_sp< Texture > src, SkIRect srcRect, sk_sp< Texture > dst, SkIPoint dstPoint, int mipLevel)
virtual void onResetCommandBuffer()=0
bool copyTextureToBuffer(sk_sp< Texture >, SkIRect srcRect, sk_sp< Buffer >, size_t bufferOffset, size_t bufferRowBytes)
void trackResource(sk_sp< Resource > resource)
virtual bool onCopyTextureToTexture(const Texture *src, SkIRect srcRect, const Texture *dst, SkIPoint dstPoint, int mipLevel)=0
void addFinishedProc(sk_sp< RefCntedCallback > finishedProc)
bool synchronizeBufferToCpu(sk_sp< Buffer >)
virtual bool onCopyBufferToTexture(const Buffer *, const Texture *, const BufferTextureCopyData *, int count)=0
void callFinishedProcs(bool success)
bool copyBufferToBuffer(const Buffer *srcBuffer, size_t srcOffset, sk_sp< Buffer > dstBuffer, size_t dstOffset, size_t size)
void trackCommandBufferResource(sk_sp< Resource > resource)
static const uint8_t buffer[]
#define TRACE_EVENT0(category_group, name)