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

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

Issue 1431433003: Move shader compiling to ProgramBuilder and various ShaderBuilder cleanups. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 1 month 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
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
11 #include "GrGLContext.h" 11 #include "GrGLContext.h"
12 #include "glsl/GrGLSLCaps.h" 12 #include "glsl/GrGLSLCaps.h"
13 #include "SkTSearch.h" 13 #include "SkTSearch.h"
14 #include "SkTSort.h" 14 #include "SkTSort.h"
15 15
16 GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions, 16 GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions,
17 const GrGLContextInfo& ctxInfo, 17 const GrGLContextInfo& ctxInfo,
18 const GrGLInterface* glInterface) : INHERITED(contextOptions) { 18 const GrGLInterface* glInterface) : INHERITED(contextOptions) {
19 fVerifiedColorConfigs.reset(); 19 fVerifiedColorConfigs.reset();
20 fStencilFormats.reset(); 20 fStencilFormats.reset();
21 fMSFBOType = kNone_MSFBOType; 21 fMSFBOType = kNone_MSFBOType;
22 fInvalidateFBType = kNone_InvalidateFBType; 22 fInvalidateFBType = kNone_InvalidateFBType;
23 fLATCAlias = kLATC_LATCAlias; 23 fLATCAlias = kLATC_LATCAlias;
24 fMapBufferType = kNone_MapBufferType; 24 fMapBufferType = kNone_MapBufferType;
25 fMaxFragmentUniformVectors = 0; 25 fMaxFragmentUniformVectors = 0;
26 fMaxVertexAttributes = 0; 26 fMaxVertexAttributes = 0;
27 fMaxFragmentTextureUnits = 0; 27 fMaxFragmentTextureUnits = 0;
28 fRGBA8RenderbufferSupport = false; 28 fRGBA8RenderbufferSupport = false;
29 fBGRAIsInternalFormat = false; 29 fBGRAIsInternalFormat = false;
30 fTextureSwizzleSupport = false;
31 fUnpackRowLengthSupport = false; 30 fUnpackRowLengthSupport = false;
32 fUnpackFlipYSupport = false; 31 fUnpackFlipYSupport = false;
33 fPackRowLengthSupport = false; 32 fPackRowLengthSupport = false;
34 fPackFlipYSupport = false; 33 fPackFlipYSupport = false;
35 fTextureUsageSupport = false; 34 fTextureUsageSupport = false;
36 fTexStorageSupport = false; 35 fTexStorageSupport = false;
37 fTextureRedSupport = false;
38 fImagingSupport = false; 36 fImagingSupport = false;
39 fTwoFormatLimit = false; 37 fTwoFormatLimit = false;
40 fFragCoordsConventionSupport = false; 38 fFragCoordsConventionSupport = false;
41 fVertexArrayObjectSupport = false; 39 fVertexArrayObjectSupport = false;
42 fInstancedDrawingSupport = false; 40 fInstancedDrawingSupport = false;
43 fDirectStateAccessSupport = false; 41 fDirectStateAccessSupport = false;
44 fDebugSupport = false; 42 fDebugSupport = false;
45 fES2CompatibilitySupport = false; 43 fES2CompatibilitySupport = false;
46 fMultisampleDisableSupport = false; 44 fMultisampleDisableSupport = false;
47 fUseNonVBOVertexAndIndexDynamicData = false; 45 fUseNonVBOVertexAndIndexDynamicData = false;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 85
88 if (kGL_GrGLStandard == standard) { 86 if (kGL_GrGLStandard == standard) {
89 fRGBA8RenderbufferSupport = true; 87 fRGBA8RenderbufferSupport = true;
90 } else { 88 } else {
91 fRGBA8RenderbufferSupport = version >= GR_GL_VER(3,0) || 89 fRGBA8RenderbufferSupport = version >= GR_GL_VER(3,0) ||
92 ctxInfo.hasExtension("GL_OES_rgb8_rgba8") || 90 ctxInfo.hasExtension("GL_OES_rgb8_rgba8") ||
93 ctxInfo.hasExtension("GL_ARM_rgba8"); 91 ctxInfo.hasExtension("GL_ARM_rgba8");
94 } 92 }
95 93
96 if (kGL_GrGLStandard == standard) { 94 if (kGL_GrGLStandard == standard) {
97 fTextureSwizzleSupport = version >= GR_GL_VER(3,3) ||
98 ctxInfo.hasExtension("GL_ARB_texture_swizzle");
99 } else {
100 fTextureSwizzleSupport = version >= GR_GL_VER(3,0);
101 }
102
103 if (kGL_GrGLStandard == standard) {
104 fUnpackRowLengthSupport = true; 95 fUnpackRowLengthSupport = true;
105 fUnpackFlipYSupport = false; 96 fUnpackFlipYSupport = false;
106 fPackRowLengthSupport = true; 97 fPackRowLengthSupport = true;
107 fPackFlipYSupport = false; 98 fPackFlipYSupport = false;
108 } else { 99 } else {
109 fUnpackRowLengthSupport = version >= GR_GL_VER(3,0) || 100 fUnpackRowLengthSupport = version >= GR_GL_VER(3,0) ||
110 ctxInfo.hasExtension("GL_EXT_unpack_subimage") ; 101 ctxInfo.hasExtension("GL_EXT_unpack_subimage") ;
111 fUnpackFlipYSupport = ctxInfo.hasExtension("GL_CHROMIUM_flipy"); 102 fUnpackFlipYSupport = ctxInfo.hasExtension("GL_CHROMIUM_flipy");
112 fPackRowLengthSupport = version >= GR_GL_VER(3,0) || 103 fPackRowLengthSupport = version >= GR_GL_VER(3,0) ||
113 ctxInfo.hasExtension("GL_NV_pack_subimage"); 104 ctxInfo.hasExtension("GL_NV_pack_subimage");
(...skipping 17 matching lines...) Expand all
131 } 122 }
132 123
133 if (kGL_GrGLStandard == standard) { 124 if (kGL_GrGLStandard == standard) {
134 fTextureBarrierSupport = version >= GR_GL_VER(4,5) || 125 fTextureBarrierSupport = version >= GR_GL_VER(4,5) ||
135 ctxInfo.hasExtension("GL_ARB_texture_barrier") || 126 ctxInfo.hasExtension("GL_ARB_texture_barrier") ||
136 ctxInfo.hasExtension("GL_NV_texture_barrier"); 127 ctxInfo.hasExtension("GL_NV_texture_barrier");
137 } else { 128 } else {
138 fTextureBarrierSupport = ctxInfo.hasExtension("GL_NV_texture_barrier"); 129 fTextureBarrierSupport = ctxInfo.hasExtension("GL_NV_texture_barrier");
139 } 130 }
140 131
141 // ARB_texture_rg is part of OpenGL 3.0, but mesa doesn't support GL_RED
142 // and GL_RG on FBO textures.
143 if (kMesa_GrGLDriver != ctxInfo.driver()) {
144 if (kGL_GrGLStandard == standard) {
145 fTextureRedSupport = version >= GR_GL_VER(3,0) ||
146 ctxInfo.hasExtension("GL_ARB_texture_rg");
147 } else {
148 fTextureRedSupport = version >= GR_GL_VER(3,0) ||
149 ctxInfo.hasExtension("GL_EXT_texture_rg");
150 }
151 }
152 fImagingSupport = kGL_GrGLStandard == standard && 132 fImagingSupport = kGL_GrGLStandard == standard &&
153 ctxInfo.hasExtension("GL_ARB_imaging"); 133 ctxInfo.hasExtension("GL_ARB_imaging");
154 134
155 // ES 2 only guarantees RGBA/uchar + one other format/type combo for 135 // ES 2 only guarantees RGBA/uchar + one other format/type combo for
156 // ReadPixels. The other format has to checked at run-time since it 136 // ReadPixels. The other format has to checked at run-time since it
157 // can change based on which render target is bound 137 // can change based on which render target is bound
158 fTwoFormatLimit = kGLES_GrGLStandard == standard; 138 fTwoFormatLimit = kGLES_GrGLStandard == standard;
159 139
160 // We only enable srgb support if both textures and FBOs support srgb. 140 // We only enable srgb support if both textures and FBOs support srgb.
161 bool srgbSupport = false; 141 bool srgbSupport = false;
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 (ctxInfo.hasExtension("GL_ARB_draw_instanced") && 462 (ctxInfo.hasExtension("GL_ARB_draw_instanced") &&
483 ctxInfo.hasExtension("GL_ARB_instanced_arrays")); 463 ctxInfo.hasExtension("GL_ARB_instanced_arrays"));
484 } else { 464 } else {
485 fSupportsInstancedDraws = 465 fSupportsInstancedDraws =
486 version >= GR_GL_VER(3, 0) || 466 version >= GR_GL_VER(3, 0) ||
487 (ctxInfo.hasExtension("GL_EXT_draw_instanced") && 467 (ctxInfo.hasExtension("GL_EXT_draw_instanced") &&
488 ctxInfo.hasExtension("GL_EXT_instanced_arrays")); 468 ctxInfo.hasExtension("GL_EXT_instanced_arrays"));
489 } 469 }
490 470
491 this->initConfigTexturableTable(ctxInfo, gli, srgbSupport); 471 this->initConfigTexturableTable(ctxInfo, gli, srgbSupport);
472 // initGLSL must be called before this, so that we know if we have GL_RED/R8 support or not
492 this->initConfigRenderableTable(ctxInfo, srgbSupport); 473 this->initConfigRenderableTable(ctxInfo, srgbSupport);
493 this->initShaderPrecisionTable(ctxInfo, gli, glslCaps); 474 this->initShaderPrecisionTable(ctxInfo, gli, glslCaps);
494 475
495 this->applyOptionsOverrides(contextOptions); 476 this->applyOptionsOverrides(contextOptions);
496 glslCaps->applyOptionsOverrides(contextOptions); 477 glslCaps->applyOptionsOverrides(contextOptions);
497 } 478 }
498 479
499 const char* get_glsl_version_decl_string(GrGLStandard standard, GrGLSLGeneration generation, 480 const char* get_glsl_version_decl_string(GrGLStandard standard, GrGLSLGeneration generation,
500 bool isCoreProfile) { 481 bool isCoreProfile) {
501 switch (generation) { 482 switch (generation) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 // undefined results". This appears to be an issue with the 'any' call since even the simple 565 // undefined results". This appears to be an issue with the 'any' call since even the simple
585 // "result=black; if (any()) result=white;" code fails to compile. This issu e comes into play 566 // "result=black; if (any()) result=white;" code fails to compile. This issu e comes into play
586 // from our GrTextureDomain processor. 567 // from our GrTextureDomain processor.
587 glslCaps->fCanUseAnyFunctionInShader = kImagination_GrGLVendor != ctxInfo.ve ndor(); 568 glslCaps->fCanUseAnyFunctionInShader = kImagination_GrGLVendor != ctxInfo.ve ndor();
588 569
589 glslCaps->fForceHighPrecisionNDSTransform = kARM_GrGLVendor == ctxInfo.vendo r() || 570 glslCaps->fForceHighPrecisionNDSTransform = kARM_GrGLVendor == ctxInfo.vendo r() ||
590 kPowerVR54x_GrGLRenderer == ctxI nfo.renderer(); 571 kPowerVR54x_GrGLRenderer == ctxI nfo.renderer();
591 572
592 glslCaps->fVersionDeclString = get_glsl_version_decl_string(standard, glslCa ps->fGLSLGeneration, 573 glslCaps->fVersionDeclString = get_glsl_version_decl_string(standard, glslCa ps->fGLSLGeneration,
593 fIsCoreProfile); 574 fIsCoreProfile);
575
576 if (kGLES_GrGLStandard == standard && k110_GrGLSLGeneration == glslCaps->fGL SLGeneration) {
577 glslCaps->fShaderDerivativeExtensionString = "GL_OES_standard_derivative s";
578 }
579
580 if (kGL_GrGLStandard == standard) {
581 glslCaps->fTextureSwizzleSupport = version >= GR_GL_VER(3,3) ||
582 ctxInfo.hasExtension("GL_ARB_texture_ swizzle");
583 } else {
584 glslCaps->fTextureSwizzleSupport = version >= GR_GL_VER(3,0);
585 }
586
587 // ARB_texture_rg is part of OpenGL 3.0, but mesa doesn't support GL_RED
588 // and GL_RG on FBO textures.
589 if (kMesa_GrGLDriver != ctxInfo.driver()) {
590 if (kGL_GrGLStandard == standard) {
591 glslCaps->fTextureRedSupport = version >= GR_GL_VER(3,0) ||
592 ctxInfo.hasExtension("GL_ARB_texture_ rg");
593 } else {
594 glslCaps->fTextureRedSupport = version >= GR_GL_VER(3,0) ||
595 ctxInfo.hasExtension("GL_EXT_texture _rg");
596 }
597 }
594 } 598 }
595 599
596 bool GrGLCaps::hasPathRenderingSupport(const GrGLContextInfo& ctxInfo, const GrG LInterface* gli) { 600 bool GrGLCaps::hasPathRenderingSupport(const GrGLContextInfo& ctxInfo, const GrG LInterface* gli) {
597 bool hasChromiumPathRendering = ctxInfo.hasExtension("GL_CHROMIUM_path_rende ring"); 601 bool hasChromiumPathRendering = ctxInfo.hasExtension("GL_CHROMIUM_path_rende ring");
598 602
599 if (!(ctxInfo.hasExtension("GL_NV_path_rendering") || hasChromiumPathRenderi ng)) { 603 if (!(ctxInfo.hasExtension("GL_NV_path_rendering") || hasChromiumPathRenderi ng)) {
600 return false; 604 return false;
601 } 605 }
602 606
603 if (kGL_GrGLStandard == ctxInfo.standard()) { 607 if (kGL_GrGLStandard == ctxInfo.standard()) {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 // color renderable: RGBA4, RGB5_A1, RGB565 653 // color renderable: RGBA4, RGB5_A1, RGB565
650 // GL_EXT_texture_rg adds support for R8 as a color render target 654 // GL_EXT_texture_rg adds support for R8 as a color render target
651 // GL_OES_rgb8_rgba8 and/or GL_ARM_rgba8 adds support for RGBA8 655 // GL_OES_rgb8_rgba8 and/or GL_ARM_rgba8 adds support for RGBA8
652 // GL_EXT_texture_format_BGRA8888 and/or GL_APPLE_texture_format_BGRA8888 a dded BGRA support 656 // GL_EXT_texture_format_BGRA8888 and/or GL_APPLE_texture_format_BGRA8888 a dded BGRA support
653 657
654 // ES 3.0 658 // ES 3.0
655 // Same as ES 2.0 except R8 and RGBA8 are supported without extensions (the functions called 659 // Same as ES 2.0 except R8 and RGBA8 are supported without extensions (the functions called
656 // below already account for this). 660 // below already account for this).
657 661
658 GrGLStandard standard = ctxInfo.standard(); 662 GrGLStandard standard = ctxInfo.standard();
663 GrGLSLCaps* glslCaps = static_cast<GrGLSLCaps*>(fShaderCaps.get());
659 664
660 enum { 665 enum {
661 kNo_MSAA = 0, 666 kNo_MSAA = 0,
662 kYes_MSAA = 1, 667 kYes_MSAA = 1,
663 }; 668 };
664 669
665 if (kGL_GrGLStandard == standard) { 670 if (kGL_GrGLStandard == standard) {
666 // Post 3.0 we will get R8 671 // Post 3.0 we will get R8
667 // Prior to 3.0 we will get ALPHA8 (with GL_ARB_framebuffer_object) 672 // Prior to 3.0 we will get ALPHA8 (with GL_ARB_framebuffer_object)
668 if (ctxInfo.version() >= GR_GL_VER(3,0) || 673 if (ctxInfo.version() >= GR_GL_VER(3,0) ||
669 ctxInfo.hasExtension("GL_ARB_framebuffer_object")) { 674 ctxInfo.hasExtension("GL_ARB_framebuffer_object")) {
670 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kNo_MSAA] = true; 675 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kNo_MSAA] = true;
671 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kYes_MSAA] = true; 676 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kYes_MSAA] = true;
672 } 677 }
673 } else { 678 } else {
674 // On ES we can only hope for R8 679 // On ES we can only hope for R8
675 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kNo_MSAA] = fTextureRedSupp ort; 680 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kNo_MSAA] = glslCaps->fText ureRedSupport;
676 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kYes_MSAA] = fTextureRedSup port; 681 fConfigRenderSupport[kAlpha_8_GrPixelConfig][kYes_MSAA] = glslCaps->fTex tureRedSupport;
677 } 682 }
678 683
679 if (kGL_GrGLStandard != standard) { 684 if (kGL_GrGLStandard != standard) {
680 // only available in ES 685 // only available in ES
681 fConfigRenderSupport[kRGB_565_GrPixelConfig][kNo_MSAA] = true; 686 fConfigRenderSupport[kRGB_565_GrPixelConfig][kNo_MSAA] = true;
682 fConfigRenderSupport[kRGB_565_GrPixelConfig][kYes_MSAA] = true; 687 fConfigRenderSupport[kRGB_565_GrPixelConfig][kYes_MSAA] = true;
683 } 688 }
684 689
685 // we no longer support 444 as a render target 690 // we no longer support 444 as a render target
686 fConfigRenderSupport[kRGBA_4444_GrPixelConfig][kNo_MSAA] = false; 691 fConfigRenderSupport[kRGBA_4444_GrPixelConfig][kNo_MSAA] = false;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 736
732 if (this->isConfigTexturable(kAlpha_half_GrPixelConfig)) { 737 if (this->isConfigTexturable(kAlpha_half_GrPixelConfig)) {
733 if (kGL_GrGLStandard == standard) { 738 if (kGL_GrGLStandard == standard) {
734 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true; 739 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true;
735 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = true; 740 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = true;
736 } else if (ctxInfo.version() >= GR_GL_VER(3,0)) { 741 } else if (ctxInfo.version() >= GR_GL_VER(3,0)) {
737 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true; 742 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true;
738 // for now we don't support floating point MSAA on ES 743 // for now we don't support floating point MSAA on ES
739 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = false; 744 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = false;
740 } else { 745 } else {
741 if (ctxInfo.hasExtension("GL_EXT_color_buffer_half_float") && fTextu reRedSupport) { 746 if (ctxInfo.hasExtension("GL_EXT_color_buffer_half_float") &&
747 glslCaps->fTextureRedSupport) {
742 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true ; 748 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = true ;
743 } else { 749 } else {
744 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = fals e; 750 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kNo_MSAA] = fals e;
745 } 751 }
746 // for now we don't support floating point MSAA on ES 752 // for now we don't support floating point MSAA on ES
747 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = false; 753 fConfigRenderSupport[kAlpha_half_GrPixelConfig][kYes_MSAA] = false;
748 } 754 }
749 } 755 }
750 756
751 if (this->isConfigTexturable(kRGBA_half_GrPixelConfig)) { 757 if (this->isConfigTexturable(kRGBA_half_GrPixelConfig)) {
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 1164
1159 r.appendf("Core Profile: %s\n", (fIsCoreProfile ? "YES" : "NO")); 1165 r.appendf("Core Profile: %s\n", (fIsCoreProfile ? "YES" : "NO"));
1160 r.appendf("MSAA Type: %s\n", kMSFBOExtStr[fMSFBOType]); 1166 r.appendf("MSAA Type: %s\n", kMSFBOExtStr[fMSFBOType]);
1161 r.appendf("Invalidate FB Type: %s\n", kInvalidateFBTypeStr[fInvalidateFBType ]); 1167 r.appendf("Invalidate FB Type: %s\n", kInvalidateFBTypeStr[fInvalidateFBType ]);
1162 r.appendf("Map Buffer Type: %s\n", kMapBufferTypeStr[fMapBufferType]); 1168 r.appendf("Map Buffer Type: %s\n", kMapBufferTypeStr[fMapBufferType]);
1163 r.appendf("Max FS Uniform Vectors: %d\n", fMaxFragmentUniformVectors); 1169 r.appendf("Max FS Uniform Vectors: %d\n", fMaxFragmentUniformVectors);
1164 r.appendf("Max FS Texture Units: %d\n", fMaxFragmentTextureUnits); 1170 r.appendf("Max FS Texture Units: %d\n", fMaxFragmentTextureUnits);
1165 r.appendf("Max Vertex Attributes: %d\n", fMaxVertexAttributes); 1171 r.appendf("Max Vertex Attributes: %d\n", fMaxVertexAttributes);
1166 r.appendf("Support RGBA8 Render Buffer: %s\n", (fRGBA8RenderbufferSupport ? "YES": "NO")); 1172 r.appendf("Support RGBA8 Render Buffer: %s\n", (fRGBA8RenderbufferSupport ? "YES": "NO"));
1167 r.appendf("BGRA is an internal format: %s\n", (fBGRAIsInternalFormat ? "YES" : "NO")); 1173 r.appendf("BGRA is an internal format: %s\n", (fBGRAIsInternalFormat ? "YES" : "NO"));
1168 r.appendf("Support texture swizzle: %s\n", (fTextureSwizzleSupport ? "YES": "NO"));
1169 r.appendf("Unpack Row length support: %s\n", (fUnpackRowLengthSupport ? "YES ": "NO")); 1174 r.appendf("Unpack Row length support: %s\n", (fUnpackRowLengthSupport ? "YES ": "NO"));
1170 r.appendf("Unpack Flip Y support: %s\n", (fUnpackFlipYSupport ? "YES": "NO") ); 1175 r.appendf("Unpack Flip Y support: %s\n", (fUnpackFlipYSupport ? "YES": "NO") );
1171 r.appendf("Pack Row length support: %s\n", (fPackRowLengthSupport ? "YES": " NO")); 1176 r.appendf("Pack Row length support: %s\n", (fPackRowLengthSupport ? "YES": " NO"));
1172 r.appendf("Pack Flip Y support: %s\n", (fPackFlipYSupport ? "YES": "NO")); 1177 r.appendf("Pack Flip Y support: %s\n", (fPackFlipYSupport ? "YES": "NO"));
1173 1178
1174 r.appendf("Texture Usage support: %s\n", (fTextureUsageSupport ? "YES": "NO" )); 1179 r.appendf("Texture Usage support: %s\n", (fTextureUsageSupport ? "YES": "NO" ));
1175 r.appendf("Texture Storage support: %s\n", (fTexStorageSupport ? "YES": "NO" )); 1180 r.appendf("Texture Storage support: %s\n", (fTexStorageSupport ? "YES": "NO" ));
1176 r.appendf("GL_R support: %s\n", (fTextureRedSupport ? "YES": "NO"));
1177 r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO")); 1181 r.appendf("GL_ARB_imaging support: %s\n", (fImagingSupport ? "YES": "NO"));
1178 r.appendf("Two Format Limit: %s\n", (fTwoFormatLimit ? "YES": "NO")); 1182 r.appendf("Two Format Limit: %s\n", (fTwoFormatLimit ? "YES": "NO"));
1179 r.appendf("Fragment coord conventions support: %s\n", 1183 r.appendf("Fragment coord conventions support: %s\n",
1180 (fFragCoordsConventionSupport ? "YES": "NO")); 1184 (fFragCoordsConventionSupport ? "YES": "NO"));
1181 r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ? "YES": "NO")); 1185 r.appendf("Vertex array object support: %s\n", (fVertexArrayObjectSupport ? "YES": "NO"));
1182 r.appendf("Instanced drawing support: %s\n", (fInstancedDrawingSupport ? "YE S": "NO")); 1186 r.appendf("Instanced drawing support: %s\n", (fInstancedDrawingSupport ? "YE S": "NO"));
1183 r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ? "YES": "NO")); 1187 r.appendf("Direct state access support: %s\n", (fDirectStateAccessSupport ? "YES": "NO"));
1184 r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO")); 1188 r.appendf("Debug support: %s\n", (fDebugSupport ? "YES": "NO"));
1185 r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ? "YES" : "NO")); 1189 r.appendf("Multisample disable support: %s\n", (fMultisampleDisableSupport ? "YES" : "NO"));
1186 r.appendf("Use non-VBO for dynamic data: %s\n", 1190 r.appendf("Use non-VBO for dynamic data: %s\n",
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 for (int p = 0; p < kGrSLPrecisionCount; ++p) { 1276 for (int p = 0; p < kGrSLPrecisionCount; ++p) {
1273 glslCaps->fFloatPrecisions[kGeometry_GrShaderType][p] = 1277 glslCaps->fFloatPrecisions[kGeometry_GrShaderType][p] =
1274 glslCaps->fFloatPrecisions[kVerte x_GrShaderType][p]; 1278 glslCaps->fFloatPrecisions[kVerte x_GrShaderType][p];
1275 } 1279 }
1276 } 1280 }
1277 } 1281 }
1278 1282
1279 1283
1280 1284
1281 1285
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698