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

Side by Side Diff: include/gpu/GrCaps.h

Issue 1592803002: Differentiate maxColorSamples and maxStencilSamples in GrCaps (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: updates Created 4 years, 11 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 | « no previous file | src/gpu/GrCaps.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 /* 2 /*
3 * Copyright 2013 Google Inc. 3 * Copyright 2013 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #ifndef GrCaps_DEFINED 8 #ifndef GrCaps_DEFINED
9 #define GrCaps_DEFINED 9 #define GrCaps_DEFINED
10 10
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 /** To avoid as-yet-unnecessary complexity we don't allow any partial suppor t of MIP Maps (e.g. 115 /** To avoid as-yet-unnecessary complexity we don't allow any partial suppor t of MIP Maps (e.g.
116 only for POT textures) */ 116 only for POT textures) */
117 bool mipMapSupport() const { return fMipMapSupport; } 117 bool mipMapSupport() const { return fMipMapSupport; }
118 bool twoSidedStencilSupport() const { return fTwoSidedStencilSupport; } 118 bool twoSidedStencilSupport() const { return fTwoSidedStencilSupport; }
119 bool stencilWrapOpsSupport() const { return fStencilWrapOpsSupport; } 119 bool stencilWrapOpsSupport() const { return fStencilWrapOpsSupport; }
120 bool discardRenderTargetSupport() const { return fDiscardRenderTargetSupport ; } 120 bool discardRenderTargetSupport() const { return fDiscardRenderTargetSupport ; }
121 bool gpuTracingSupport() const { return fGpuTracingSupport; } 121 bool gpuTracingSupport() const { return fGpuTracingSupport; }
122 bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSup port; } 122 bool compressedTexSubImageSupport() const { return fCompressedTexSubImageSup port; }
123 bool oversizedStencilSupport() const { return fOversizedStencilSupport; } 123 bool oversizedStencilSupport() const { return fOversizedStencilSupport; }
124 bool textureBarrierSupport() const { return fTextureBarrierSupport; } 124 bool textureBarrierSupport() const { return fTextureBarrierSupport; }
125 bool mixedSamplesSupport() const { return fMixedSamplesSupport; } 125 bool usesMixedSamples() const { return fUsesMixedSamples; }
126 126
127 bool useDrawInsteadOfClear() const { return fUseDrawInsteadOfClear; } 127 bool useDrawInsteadOfClear() const { return fUseDrawInsteadOfClear; }
128 bool useDrawInsteadOfPartialRenderTargetWrite() const { 128 bool useDrawInsteadOfPartialRenderTargetWrite() const {
129 return fUseDrawInsteadOfPartialRenderTargetWrite; 129 return fUseDrawInsteadOfPartialRenderTargetWrite;
130 } 130 }
131 131
132 bool preferVRAMUseOverFlushes() const { return fPreferVRAMUseOverFlushes; } 132 bool preferVRAMUseOverFlushes() const { return fPreferVRAMUseOverFlushes; }
133 133
134 /** 134 /**
135 * Indicates the capabilities of the fixed function blend unit. 135 * Indicates the capabilities of the fixed function blend unit.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 bool reuseScratchTextures() const { return fReuseScratchTextures; } 181 bool reuseScratchTextures() const { return fReuseScratchTextures; }
182 bool reuseScratchBuffers() const { return fReuseScratchBuffers; } 182 bool reuseScratchBuffers() const { return fReuseScratchBuffers; }
183 183
184 int maxRenderTargetSize() const { return fMaxRenderTargetSize; } 184 int maxRenderTargetSize() const { return fMaxRenderTargetSize; }
185 int maxTextureSize() const { return fMaxTextureSize; } 185 int maxTextureSize() const { return fMaxTextureSize; }
186 /** This is the maximum tile size to use by GPU devices for rendering sw-bac ked images/bitmaps. 186 /** This is the maximum tile size to use by GPU devices for rendering sw-bac ked images/bitmaps.
187 It is usually the max texture size, unless we're overriding it for testi ng. */ 187 It is usually the max texture size, unless we're overriding it for testi ng. */
188 int maxTileSize() const { SkASSERT(fMaxTileSize <= fMaxTextureSize); return fMaxTileSize; } 188 int maxTileSize() const { SkASSERT(fMaxTileSize <= fMaxTextureSize); return fMaxTileSize; }
189 189
190 // Will be 0 if MSAA is not supported 190 // Will be 0 if MSAA is not supported
191 int maxSampleCount() const { return fMaxSampleCount; } 191 int maxColorSampleCount() const { return fMaxColorSampleCount; }
192 // Will be 0 if MSAA is not supported
193 int maxStencilSampleCount() const { return fMaxStencilSampleCount; }
194 // We require the sample count to be less than maxColorSampleCount and maxSt encilSampleCount.
195 // If we are using mixed samples, we only care about stencil.
196 int maxSampleCount() const {
197 if (this->usesMixedSamples()) {
198 return this->maxStencilSampleCount();
199 } else {
200 return SkTMin(this->maxColorSampleCount(), this->maxStencilSampleCou nt());
201 }
202 }
203
192 204
193 virtual bool isConfigTexturable(GrPixelConfig config) const = 0; 205 virtual bool isConfigTexturable(GrPixelConfig config) const = 0;
194 virtual bool isConfigRenderable(GrPixelConfig config, bool withMSAA) const = 0; 206 virtual bool isConfigRenderable(GrPixelConfig config, bool withMSAA) const = 0;
195 207
196 bool suppressPrints() const { return fSuppressPrints; } 208 bool suppressPrints() const { return fSuppressPrints; }
197 209
198 bool immediateFlush() const { return fImmediateFlush; } 210 bool immediateFlush() const { return fImmediateFlush; }
199 211
200 bool drawPathMasksToCompressedTexturesSupport() const { 212 bool drawPathMasksToCompressedTexturesSupport() const {
201 return fDrawPathMasksToCompressedTextureSupport; 213 return fDrawPathMasksToCompressedTextureSupport;
(...skipping 26 matching lines...) Expand all
228 bool fMipMapSupport : 1; 240 bool fMipMapSupport : 1;
229 bool fTwoSidedStencilSupport : 1; 241 bool fTwoSidedStencilSupport : 1;
230 bool fStencilWrapOpsSupport : 1; 242 bool fStencilWrapOpsSupport : 1;
231 bool fDiscardRenderTargetSupport : 1; 243 bool fDiscardRenderTargetSupport : 1;
232 bool fReuseScratchTextures : 1; 244 bool fReuseScratchTextures : 1;
233 bool fReuseScratchBuffers : 1; 245 bool fReuseScratchBuffers : 1;
234 bool fGpuTracingSupport : 1; 246 bool fGpuTracingSupport : 1;
235 bool fCompressedTexSubImageSupport : 1; 247 bool fCompressedTexSubImageSupport : 1;
236 bool fOversizedStencilSupport : 1; 248 bool fOversizedStencilSupport : 1;
237 bool fTextureBarrierSupport : 1; 249 bool fTextureBarrierSupport : 1;
238 bool fMixedSamplesSupport : 1; 250 bool fUsesMixedSamples : 1;
239 bool fSupportsInstancedDraws : 1; 251 bool fSupportsInstancedDraws : 1;
240 bool fFullClearIsFree : 1; 252 bool fFullClearIsFree : 1;
241 bool fMustClearUploadedBufferData : 1; 253 bool fMustClearUploadedBufferData : 1;
242 254
243 // Driver workaround 255 // Driver workaround
244 bool fUseDrawInsteadOfClear : 1; 256 bool fUseDrawInsteadOfClear : 1;
245 bool fUseDrawInsteadOfPartialRenderTargetWrite : 1; 257 bool fUseDrawInsteadOfPartialRenderTargetWrite : 1;
246 258
247 // ANGLE workaround 259 // ANGLE workaround
248 bool fPreferVRAMUseOverFlushes : 1; 260 bool fPreferVRAMUseOverFlushes : 1;
249 261
250 BlendEquationSupport fBlendEquationSupport; 262 BlendEquationSupport fBlendEquationSupport;
251 uint32_t fAdvBlendEqBlacklist; 263 uint32_t fAdvBlendEqBlacklist;
252 GR_STATIC_ASSERT(kLast_GrBlendEquation < 32); 264 GR_STATIC_ASSERT(kLast_GrBlendEquation < 32);
253 265
254 uint32_t fMapBufferFlags; 266 uint32_t fMapBufferFlags;
255 int fGeometryBufferMapThreshold; 267 int fGeometryBufferMapThreshold;
256 268
257 int fMaxRenderTargetSize; 269 int fMaxRenderTargetSize;
258 int fMaxTextureSize; 270 int fMaxTextureSize;
259 int fMaxTileSize; 271 int fMaxTileSize;
260 int fMaxSampleCount; 272 int fMaxColorSampleCount;
273 int fMaxStencilSampleCount;
261 274
262 private: 275 private:
263 virtual void onApplyOptionsOverrides(const GrContextOptions&) {}; 276 virtual void onApplyOptionsOverrides(const GrContextOptions&) {};
264 277
265 bool fSuppressPrints : 1; 278 bool fSuppressPrints : 1;
266 bool fImmediateFlush: 1; 279 bool fImmediateFlush: 1;
267 bool fDrawPathMasksToCompressedTextureSupport : 1; 280 bool fDrawPathMasksToCompressedTextureSupport : 1;
268 281
269 typedef SkRefCnt INHERITED; 282 typedef SkRefCnt INHERITED;
270 }; 283 };
271 284
272 #endif 285 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrCaps.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698