Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(172)

Side by Side Diff: src/gpu/vk/GrVkProgramBuilder.h

Issue 1816153002: Set up cache in vulkan to reuse GrVkPrograms (aka VkPipelines) (Closed) Base URL: https://skia.googlesource.com/skia.git@progSamplers
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/gpu/vk/GrVkProgram.cpp ('k') | src/gpu/vk/GrVkProgramBuilder.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 GrVkProgramBuilder_DEFINED
9 #define GrVkProgramBuilder_DEFINED
10
11 #include "glsl/GrGLSLProgramBuilder.h"
12
13 #include "GrPipeline.h"
14 #include "vk/GrVkUniformHandler.h"
15 #include "vk/GrVkVaryingHandler.h"
16
17 #include "shaderc/shaderc.h"
18 #include "vulkan/vulkan.h"
19
20 class GrVkGpu;
21 class GrVkRenderPass;
22 class GrVkProgram;
23 class GrVkProgramDesc;
24
25 class GrVkProgramBuilder : public GrGLSLProgramBuilder {
26 public:
27 /** Generates a shader program.
28 *
29 * The program implements what is specified in the stages given as input.
30 * After successful generation, the builder result objects are available
31 * to be used.
32 * @return true if generation was successful.
33 */
34 static GrVkProgram* CreateProgram(GrVkGpu*,
35 const GrPipeline&,
36 const GrPrimitiveProcessor&,
37 GrPrimitiveType,
38 const GrVkProgramDesc&,
39 const GrVkRenderPass& renderPass);
40
41 const GrCaps* caps() const override;
42 const GrGLSLCaps* glslCaps() const override;
43
44 GrVkGpu* gpu() const { return fGpu; }
45
46 void finalizeFragmentOutputColor(GrGLSLShaderVar& outputColor) override;
47
48 private:
49 GrVkProgramBuilder(GrVkGpu*,
50 const GrPipeline&,
51 const GrPrimitiveProcessor&,
52 const GrVkProgramDesc&);
53
54 GrVkProgram* finalize(GrPrimitiveType primitiveType, const GrVkRenderPass& r enderPass);
55
56 static bool CreateVkShaderModule(const GrVkGpu* gpu,
57 VkShaderStageFlagBits stage,
58 const GrGLSLShaderBuilder& builder,
59 VkShaderModule* shaderModule,
60 VkPipelineShaderStageCreateInfo* stageInfo) ;
61
62 GrGLSLUniformHandler* uniformHandler() override { return &fUniformHandler; }
63 const GrGLSLUniformHandler* uniformHandler() const override { return &fUnifo rmHandler; }
64 GrGLSLVaryingHandler* varyingHandler() override { return &fVaryingHandler; }
65
66 GrVkGpu* fGpu;
67 GrVkVaryingHandler fVaryingHandler;
68 GrVkUniformHandler fUniformHandler;
69
70 typedef GrGLSLProgramBuilder INHERITED;
71 };
72
73 #endif
OLDNEW
« no previous file with comments | « src/gpu/vk/GrVkProgram.cpp ('k') | src/gpu/vk/GrVkProgramBuilder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698