8#ifndef GrVkRenderPass_DEFINED
9#define GrVkRenderPass_DEFINED
39 return !(*
this ==
right);
48 , fRenderPass(renderPass)
71 return !(*
this ==
right);
97 kForInputAttachment = 1 << 0,
98 kForNonCoherentAdvBlend = 1 << 1,
108 AttachmentsDescriptor*,
114 const LoadStoreOps& colorOp,
115 const LoadStoreOps& resolveOp,
116 const LoadStoreOps& stencilOp);
148 bool equalLoadStoreOps(
const LoadStoreOps& colorOps,
165 const AttachmentsDescriptor&,
168 uint64_t externalRenderPass);
170#ifdef SK_TRACE_MANAGED_RESOURCES
171 void dumpInfo()
const override {
172 SkDebugf(
"GrVkRenderPass: %" PRIdPTR
" (%d refs)\n",
173 (intptr_t)fRenderPass, this->getRefCnt());
184 AttachmentsDescriptor*,
185 const LoadStoreOps& colorOps,
186 const LoadStoreOps& resolveOp,
187 const LoadStoreOps& stencilOps,
191 void freeGPUData()
const override;
193 VkRenderPass fRenderPass;
195 AttachmentsDescriptor fAttachmentsDescriptor;
199 uint32_t fClearValueCount;
201 uint32_t fColorAttachmentIndex = 0;
#define GR_MAKE_BITFIELD_CLASS_OPS(X)
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
#define SK_MAKE_BITFIELD_OPS(X)
#define SK_DECL_BITFIELD_OPS_FRIENDS(X)
@ kNo
Don't pre-clip the geometry before applying the (perspective) matrix.
static bool right(const SkPoint &p0, const SkPoint &p1)
GrVkManagedResource(const GrVkGpu *gpu)
GrVkRenderPass(const GrVkGpu *gpu, VkRenderPass renderPass, uint32_t colorAttachmentIndex)
bool colorAttachmentIndex(uint32_t *index) const
void genKey(skgpu::KeyBuilder *) const
GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(SelfDependencyFlags)
SkDEBUGCODE(bool isExternal() const { return fAttachmentFlags &kExternal_AttachmentFlag;}) bool equalLoadStoreOps(const LoadStoreOps &colorOps
const VkExtent2D & granularity() const
LoadFromResolve loadFromResolve() const
bool isCompatible(GrVkRenderTarget *target, SelfDependencyFlags selfDepFlags, LoadFromResolve) const
static void GenKey(skgpu::KeyBuilder *, AttachmentFlags, const AttachmentsDescriptor &, SelfDependencyFlags selfDepFlags, LoadFromResolve, uint64_t externalRenderPass)
@ kExternal_AttachmentFlag
@ kStencil_AttachmentFlag
@ kResolve_AttachmentFlag
bool isCompatibleExternalRP(VkRenderPass) const
bool stencilAttachmentIndex(uint32_t *index) const
SelfDependencyFlags selfDependencyFlags() const
static GrVkRenderPass * Create(GrVkGpu *, const GrVkRenderPass &compatibleRenderPass, const LoadStoreOps &colorOp, const LoadStoreOps &resolveOp, const LoadStoreOps &stencilOp)
static GrVkRenderPass * CreateSimple(GrVkGpu *, AttachmentsDescriptor *, AttachmentFlags, SelfDependencyFlags selfDepFlags, LoadFromResolve)
const LoadStoreOps & resolveOps
bool hasStencilAttachment() const
uint32_t clearValueCount() const
VkRenderPass vkRenderPass() const
bool hasResolveAttachment() const
LoadStoreOps fLoadStoreOps
bool operator==(const AttachmentDesc &right) const
bool isCompatible(const AttachmentDesc &desc) const
bool operator!=(const AttachmentDesc &right) const
uint32_t fAttachmentCount
VkAttachmentStoreOp fStoreOp
bool operator!=(const LoadStoreOps &right) const
bool operator==(const LoadStoreOps &right) const
LoadStoreOps(VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp)
VkAttachmentLoadOp fLoadOp
@ VK_ATTACHMENT_LOAD_OP_LOAD
@ VK_ATTACHMENT_STORE_OP_STORE