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

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

Issue 1906623002: Update min Vulkan version to 1.0.8.0, and fix various bugs (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: rebase Created 4 years, 8 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/GrVkImage.cpp ('k') | src/gpu/vk/GrVkPipelineState.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 Google Inc. 2 * Copyright 2016 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #ifndef GrVkPipelineState_DEFINED 9 #ifndef GrVkPipelineState_DEFINED
10 #define GrVkPipelineState_DEFINED 10 #define GrVkPipelineState_DEFINED
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 GrGLSLXferProcessor* xferProcessor, 159 GrGLSLXferProcessor* xferProcessor,
160 const GrGLSLFragProcs& fragmentProcessors); 160 const GrGLSLFragProcs& fragmentProcessors);
161 161
162 // Each pool will manage one type of descriptor. Thus each descriptor set we use will all be of 162 // Each pool will manage one type of descriptor. Thus each descriptor set we use will all be of
163 // one VkDescriptorType. 163 // one VkDescriptorType.
164 struct DescriptorPoolManager { 164 struct DescriptorPoolManager {
165 DescriptorPoolManager(VkDescriptorSetLayout layout, VkDescriptorType typ e, 165 DescriptorPoolManager(VkDescriptorSetLayout layout, VkDescriptorType typ e,
166 uint32_t descCount, GrVkGpu* gpu) 166 uint32_t descCount, GrVkGpu* gpu)
167 : fDescLayout(layout) 167 : fDescLayout(layout)
168 , fDescType(type) 168 , fDescType(type)
169 , fCurrentDescriptorSet(0) 169 , fDescCountPerSet(descCount)
170 , fCurrentDescriptorCount(0)
170 , fPool(nullptr) { 171 , fPool(nullptr) {
171 SkASSERT(descCount < (kMaxDescSetLimit >> 2)); 172 SkASSERT(descCount < kMaxDescLimit >> 2);
172 fMaxDescriptorSets = descCount << 2; 173 fMaxDescriptors = fDescCountPerSet << 2;
173 this->getNewPool(gpu); 174 this->getNewPool(gpu);
174 } 175 }
175 176
176 ~DescriptorPoolManager() { 177 ~DescriptorPoolManager() {
177 SkASSERT(!fDescLayout); 178 SkASSERT(!fDescLayout);
178 SkASSERT(!fPool); 179 SkASSERT(!fPool);
179 } 180 }
180 181
181 void getNewDescriptorSet(GrVkGpu* gpu, VkDescriptorSet* ds); 182 void getNewDescriptorSet(GrVkGpu* gpu, VkDescriptorSet* ds);
182 183
183 void freeGPUResources(const GrVkGpu* gpu); 184 void freeGPUResources(const GrVkGpu* gpu);
184 void abandonGPUResources(); 185 void abandonGPUResources();
185 186
186 VkDescriptorSetLayout fDescLayout; 187 VkDescriptorSetLayout fDescLayout;
187 VkDescriptorType fDescType; 188 VkDescriptorType fDescType;
188 uint32_t fMaxDescriptorSets; 189 uint32_t fDescCountPerSet;
189 uint32_t fCurrentDescriptorSet; 190 uint32_t fMaxDescriptors;
191 uint32_t fCurrentDescriptorCount;
190 GrVkDescriptorPool* fPool; 192 GrVkDescriptorPool* fPool;
191 193
192 private: 194 private:
193 static const uint32_t kMaxDescSetLimit = 1 << 10; 195 static const uint32_t kMaxDescLimit = 1 << 10;
194 196
195 void getNewPool(GrVkGpu* gpu); 197 void getNewPool(GrVkGpu* gpu);
196 }; 198 };
197 199
198 void writeUniformBuffers(const GrVkGpu* gpu); 200 void writeUniformBuffers(const GrVkGpu* gpu);
199 201
200 void writeSamplers(GrVkGpu* gpu, const SkTArray<const GrTextureAccess*>& tex tureBindings); 202 void writeSamplers(GrVkGpu* gpu, const SkTArray<const GrTextureAccess*>& tex tureBindings);
201 203
202 /** 204 /**
203 * We use the RT's size and origin to adjust from Skia device space to vulkan normalized device 205 * We use the RT's size and origin to adjust from Skia device space to vulkan normalized device
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 281
280 DescriptorPoolManager fSamplerPoolManager; 282 DescriptorPoolManager fSamplerPoolManager;
281 DescriptorPoolManager fUniformPoolManager; 283 DescriptorPoolManager fUniformPoolManager;
282 284
283 int fNumSamplers; 285 int fNumSamplers;
284 286
285 friend class GrVkPipelineStateBuilder; 287 friend class GrVkPipelineStateBuilder;
286 }; 288 };
287 289
288 #endif 290 #endif
OLDNEW
« no previous file with comments | « src/gpu/vk/GrVkImage.cpp ('k') | src/gpu/vk/GrVkPipelineState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698