Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
GrVkPipeline.h
Go to the documentation of this file.
1/*
2* Copyright 2016 Google Inc.
3*
4* Use of this source code is governed by a BSD-style license that can be
5* found in the LICENSE file.
6*/
7
8#ifndef GrVkPipeline_DEFINED
9#define GrVkPipeline_DEFINED
10
13#include "src/gpu/Blend.h"
16
17#include <cinttypes>
18
19class GrPipeline;
20class GrProgramInfo;
21class GrRenderTarget;
24class GrVkGpu;
25class GrVkRenderPass;
26class GrXferProcessor;
27struct SkIRect;
28
29namespace skgpu {
30class Swizzle;
31}
32
34public:
36 const GrGeometryProcessor::AttributeSet& vertexAttribs,
37 const GrGeometryProcessor::AttributeSet& instanceAttribs,
40 const GrStencilSettings&,
41 int numSamples,
42 bool isHWAntialiasState,
43 const skgpu::BlendInfo&,
44 bool isWireframe,
45 bool useConservativeRaster,
46 uint32_t subpass,
47 VkPipelineShaderStageCreateInfo* shaderStageInfo,
48 int shaderStageCount,
49 VkRenderPass compatibleRenderPass,
50 VkPipelineLayout layout,
51 bool ownsLayout,
52 VkPipelineCache cache);
53
55 const GrProgramInfo&,
56 VkPipelineShaderStageCreateInfo* shaderStageInfo,
57 int shaderStageCount,
58 VkRenderPass compatibleRenderPass,
59 VkPipelineLayout layout,
60 VkPipelineCache cache,
61 uint32_t subpass);
62
63 VkPipeline pipeline() const { return fPipeline; }
64 VkPipelineLayout layout() const {
66 return fPipelineLayout;
67 }
68
71 SkISize colorAttachmentDimensions,
72 GrSurfaceOrigin, const SkIRect& scissorRect);
75 SkISize colorAttachmentDimensions);
78 const skgpu::Swizzle& writeSwizzle,
79 const GrXferProcessor&);
80
81#ifdef SK_TRACE_MANAGED_RESOURCES
82 void dumpInfo() const override {
83 SkDebugf("GrVkPipeline: %" PRIdPTR " (%d refs)\n", (intptr_t)fPipeline, this->getRefCnt());
84 }
85#endif
86
87protected:
88 GrVkPipeline(const GrVkGpu* gpu, VkPipeline pipeline, VkPipelineLayout layout)
90
91 VkPipeline fPipeline;
92 VkPipelineLayout fPipelineLayout;
93
94private:
95 void freeGPUData() const override;
96
98};
99
100#endif
GrPrimitiveType
Definition GrTypesPriv.h:42
GrSurfaceOrigin
Definition GrTypes.h:147
#define SkASSERT(cond)
Definition SkAssert.h:116
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
static void SetDynamicScissorRectState(GrVkGpu *, GrVkCommandBuffer *, SkISize colorAttachmentDimensions, GrSurfaceOrigin, const SkIRect &scissorRect)
VkPipelineLayout layout() const
static void SetDynamicBlendConstantState(GrVkGpu *, GrVkCommandBuffer *, const skgpu::Swizzle &writeSwizzle, const GrXferProcessor &)
void freeGPUData() const override
VkPipeline fPipeline
static sk_sp< GrVkPipeline > Make(GrVkGpu *, const GrGeometryProcessor::AttributeSet &vertexAttribs, const GrGeometryProcessor::AttributeSet &instanceAttribs, GrPrimitiveType, GrSurfaceOrigin, const GrStencilSettings &, int numSamples, bool isHWAntialiasState, const skgpu::BlendInfo &, bool isWireframe, bool useConservativeRaster, uint32_t subpass, VkPipelineShaderStageCreateInfo *shaderStageInfo, int shaderStageCount, VkRenderPass compatibleRenderPass, VkPipelineLayout layout, bool ownsLayout, VkPipelineCache cache)
VkPipelineLayout fPipelineLayout
VkPipeline pipeline() const
GrVkPipeline(const GrVkGpu *gpu, VkPipeline pipeline, VkPipelineLayout layout)
static void SetDynamicViewportState(GrVkGpu *, GrVkCommandBuffer *, SkISize colorAttachmentDimensions)
#define VK_NULL_HANDLE
Definition vulkan_core.h:46