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

Side by Side Diff: src/gpu/gl/GrGLCaps.cpp

Issue 1126423006: Don't do discards when on Adreno4xx due to driver bug. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Nit Created 5 years, 7 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 | no next file » | 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 2012 Google Inc. 2 * Copyright 2012 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 #include "GrGLCaps.h" 9 #include "GrGLCaps.h"
10 10
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 // frequently changing VBOs. We've measured a performance increase using non -VBO vertex 212 // frequently changing VBOs. We've measured a performance increase using non -VBO vertex
213 // data for dynamic content on these GPUs. Perhaps we should read the render er string and 213 // data for dynamic content on these GPUs. Perhaps we should read the render er string and
214 // limit this decision to specific GPU families rather than basing it on the vendor alone. 214 // limit this decision to specific GPU families rather than basing it on the vendor alone.
215 if (!GR_GL_MUST_USE_VBO && 215 if (!GR_GL_MUST_USE_VBO &&
216 (kARM_GrGLVendor == ctxInfo.vendor() || 216 (kARM_GrGLVendor == ctxInfo.vendor() ||
217 kImagination_GrGLVendor == ctxInfo.vendor() || 217 kImagination_GrGLVendor == ctxInfo.vendor() ||
218 kQualcomm_GrGLVendor == ctxInfo.vendor())) { 218 kQualcomm_GrGLVendor == ctxInfo.vendor())) {
219 fUseNonVBOVertexAndIndexDynamicData = true; 219 fUseNonVBOVertexAndIndexDynamicData = true;
220 } 220 }
221 221
222 if ((kGL_GrGLStandard == standard && version >= GR_GL_VER(4,3)) || 222 // A driver but on the nexus 6 causes incorrect dst copies when invalidate i s called beforehand.
223 (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0)) || 223 // Thus we are blacklisting this extension for now on Adreno4xx devices.
224 ctxInfo.hasExtension("GL_ARB_invalidate_subdata")) { 224 if (kAdreno4xx_GrGLRenderer != ctxInfo.renderer() &&
225 ((kGL_GrGLStandard == standard && version >= GR_GL_VER(4,3)) ||
226 (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0)) ||
227 ctxInfo.hasExtension("GL_ARB_invalidate_subdata"))) {
225 fDiscardRenderTargetSupport = true; 228 fDiscardRenderTargetSupport = true;
226 fInvalidateFBType = kInvalidate_InvalidateFBType; 229 fInvalidateFBType = kInvalidate_InvalidateFBType;
227 } else if (ctxInfo.hasExtension("GL_EXT_discard_framebuffer")) { 230 } else if (ctxInfo.hasExtension("GL_EXT_discard_framebuffer")) {
228 fDiscardRenderTargetSupport = true; 231 fDiscardRenderTargetSupport = true;
229 fInvalidateFBType = kDiscard_InvalidateFBType; 232 fInvalidateFBType = kDiscard_InvalidateFBType;
230 } 233 }
231 234
232 if (kARM_GrGLVendor == ctxInfo.vendor() || kImagination_GrGLVendor == ctxInf o.vendor()) { 235 if (kARM_GrGLVendor == ctxInfo.vendor() || kImagination_GrGLVendor == ctxInf o.vendor()) {
233 fFullClearIsFree = true; 236 fFullClearIsFree = true;
234 } 237 }
(...skipping 917 matching lines...) Expand 10 before | Expand all | Expand 10 after
1152 if (fGeometryShaderSupport) { 1155 if (fGeometryShaderSupport) {
1153 for (int p = 0; p < kGrSLPrecisionCount; ++p) { 1156 for (int p = 0; p < kGrSLPrecisionCount; ++p) {
1154 fFloatPrecisions[kGeometry_GrShaderType][p] = fFloatPrecisions[kVert ex_GrShaderType][p]; 1157 fFloatPrecisions[kGeometry_GrShaderType][p] = fFloatPrecisions[kVert ex_GrShaderType][p];
1155 } 1158 }
1156 } 1159 }
1157 } 1160 }
1158 1161
1159 1162
1160 1163
1161 1164
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698