#include "src/gpu/graphite/dawn/DawnCommandBuffer.h"
#include "include/gpu/graphite/TextureInfo.h"
#include "src/gpu/graphite/Log.h"
#include "src/gpu/graphite/RenderPassDesc.h"
#include "src/gpu/graphite/TextureProxy.h"
#include "src/gpu/graphite/compute/DispatchGroup.h"
#include "src/gpu/graphite/dawn/DawnBuffer.h"
#include "src/gpu/graphite/dawn/DawnCaps.h"
#include "src/gpu/graphite/dawn/DawnComputePipeline.h"
#include "src/gpu/graphite/dawn/DawnGraphicsPipeline.h"
#include "src/gpu/graphite/dawn/DawnGraphiteTypesPriv.h"
#include "src/gpu/graphite/dawn/DawnGraphiteUtilsPriv.h"
#include "src/gpu/graphite/dawn/DawnQueueManager.h"
#include "src/gpu/graphite/dawn/DawnResourceProvider.h"
#include "src/gpu/graphite/dawn/DawnSampler.h"
#include "src/gpu/graphite/dawn/DawnSharedContext.h"
#include "src/gpu/graphite/dawn/DawnTexture.h"
namespace skgpu::graphite {
std::unique_ptr<DawnCommandBuffer> DawnCommandBuffer::Make(const DawnSharedContext* sharedContext,
DawnResourceProvider* resourceProvider) { … }
DawnCommandBuffer::DawnCommandBuffer(const DawnSharedContext* sharedContext,
DawnResourceProvider* resourceProvider)
: … { … }
DawnCommandBuffer::~DawnCommandBuffer() { … }
wgpu::CommandBuffer DawnCommandBuffer::finishEncoding() { … }
void DawnCommandBuffer::onResetCommandBuffer() { … }
bool DawnCommandBuffer::setNewCommandBufferResources() { … }
bool DawnCommandBuffer::onAddRenderPass(const RenderPassDesc& renderPassDesc,
SkIRect renderPassBounds,
const Texture* colorTexture,
const Texture* resolveTexture,
const Texture* depthStencilTexture,
SkRect viewport,
const DrawPassList& drawPasses) { … }
bool DawnCommandBuffer::onAddComputePass(DispatchGroupSpan groups) { … }
bool DawnCommandBuffer::beginRenderPass(const RenderPassDesc& renderPassDesc,
SkIRect renderPassBounds,
const Texture* colorTexture,
const Texture* resolveTexture,
const Texture* depthStencilTexture) { … }
bool DawnCommandBuffer::loadMSAAFromResolveAndBeginRenderPassEncoder(
const RenderPassDesc& frontendRenderPassDesc,
const wgpu::RenderPassDescriptor& wgpuRenderPassDesc,
const DawnTexture* msaaTexture) { … }
bool DawnCommandBuffer::doBlitWithDraw(const wgpu::RenderPassEncoder& renderEncoder,
const RenderPassDesc& frontendRenderPassDesc,
const wgpu::TextureView& sourceTextureView,
int width,
int height) { … }
void DawnCommandBuffer::endRenderPass() { … }
bool DawnCommandBuffer::addDrawPass(const DrawPass* drawPass) { … }
bool DawnCommandBuffer::bindGraphicsPipeline(const GraphicsPipeline* graphicsPipeline) { … }
void DawnCommandBuffer::bindUniformBuffer(const BindBufferInfo& info, UniformSlot slot) { … }
void DawnCommandBuffer::bindDrawBuffers(const BindBufferInfo& vertices,
const BindBufferInfo& instances,
const BindBufferInfo& indices,
const BindBufferInfo& indirect) { … }
void DawnCommandBuffer::bindTextureAndSamplers(
const DrawPass& drawPass, const DrawPassCommands::BindTexturesAndSamplers& command) { … }
void DawnCommandBuffer::syncUniformBuffers() { … }
void DawnCommandBuffer::setScissor(unsigned int left,
unsigned int top,
unsigned int width,
unsigned int height) { … }
void DawnCommandBuffer::preprocessViewport(const SkRect& viewport) { … }
void DawnCommandBuffer::setViewport(const SkRect& viewport) { … }
void DawnCommandBuffer::setBlendConstants(float* blendConstants) { … }
void DawnCommandBuffer::draw(PrimitiveType type,
unsigned int baseVertex,
unsigned int vertexCount) { … }
void DawnCommandBuffer::drawIndexed(PrimitiveType type,
unsigned int baseIndex,
unsigned int indexCount,
unsigned int baseVertex) { … }
void DawnCommandBuffer::drawInstanced(PrimitiveType type,
unsigned int baseVertex,
unsigned int vertexCount,
unsigned int baseInstance,
unsigned int instanceCount) { … }
void DawnCommandBuffer::drawIndexedInstanced(PrimitiveType type,
unsigned int baseIndex,
unsigned int indexCount,
unsigned int baseVertex,
unsigned int baseInstance,
unsigned int instanceCount) { … }
void DawnCommandBuffer::drawIndirect(PrimitiveType type) { … }
void DawnCommandBuffer::drawIndexedIndirect(PrimitiveType type) { … }
void DawnCommandBuffer::beginComputePass() { … }
void DawnCommandBuffer::bindComputePipeline(const ComputePipeline* computePipeline) { … }
void DawnCommandBuffer::bindDispatchResources(const DispatchGroup& group,
const DispatchGroup::Dispatch& dispatch) { … }
void DawnCommandBuffer::dispatchWorkgroups(const WorkgroupSize& globalSize) { … }
void DawnCommandBuffer::dispatchWorkgroupsIndirect(const Buffer* indirectBuffer,
size_t indirectBufferOffset) { … }
void DawnCommandBuffer::endComputePass() { … }
bool DawnCommandBuffer::onCopyBufferToBuffer(const Buffer* srcBuffer,
size_t srcOffset,
const Buffer* dstBuffer,
size_t dstOffset,
size_t size) { … }
bool DawnCommandBuffer::onCopyTextureToBuffer(const Texture* texture,
SkIRect srcRect,
const Buffer* buffer,
size_t bufferOffset,
size_t bufferRowBytes) { … }
bool DawnCommandBuffer::onCopyBufferToTexture(const Buffer* buffer,
const Texture* texture,
const BufferTextureCopyData* copyData,
int count) { … }
bool DawnCommandBuffer::onCopyTextureToTexture(const Texture* src,
SkIRect srcRect,
const Texture* dst,
SkIPoint dstPoint,
int mipLevel) { … }
bool DawnCommandBuffer::onSynchronizeBufferToCpu(const Buffer* buffer, bool* outDidResultInWork) { … }
bool DawnCommandBuffer::onClearBuffer(const Buffer* buffer, size_t offset, size_t size) { … }
}