Home | History | Annotate | Download | only in gl

Lines Matching defs:shaderCaps

292     GrShaderCaps* shaderCaps = fShaderCaps.get();
295 shaderCaps->fPathRenderingSupport = this->hasPathRenderingSupport(ctxInfo, gli);
300 shaderCaps->fDstReadInShaderSupport = shaderCaps->fFBFetchSupport;
304 shaderCaps->fDualSourceBlendingSupport = (ctxInfo.version() >= GR_GL_VER(3, 3) ||
307 shaderCaps->fShaderDerivativeSupport = true;
309 shaderCaps->fGeometryShaderSupport = ctxInfo.version() >= GR_GL_VER(3, 2) &&
311 shaderCaps->fIntegerSupport = ctxInfo.version() >= GR_GL_VER(3, 0) &&
315 shaderCaps->fDualSourceBlendingSupport = ctxInfo.hasExtension("GL_EXT_blend_func_extended");
317 shaderCaps->fShaderDerivativeSupport = ctxInfo.version() >= GR_GL_VER(3, 0) ||
320 shaderCaps->fGeometryShaderSupport = ctxInfo.hasExtension("GL_EXT_geometry_shader");
322 shaderCaps->fIntegerSupport = ctxInfo.version() >= GR_GL_VER(3, 0) &&
330 shaderCaps->fMaxVertexSamplers = SkTMin<GrGLint>(kMaxSaneSamplers, maxSamplers);
331 if (shaderCaps->fGeometryShaderSupport) {
333 shaderCaps->fMaxGeometrySamplers = SkTMin<GrGLint>(kMaxSaneSamplers, maxSamplers);
336 shaderCaps->fMaxFragmentSamplers = SkTMin<GrGLint>(kMaxSaneSamplers, maxSamplers);
338 shaderCaps->fMaxCombinedSamplers = SkTMin<GrGLint>(kMaxSaneSamplers, maxSamplers);
341 shaderCaps->fImageLoadStoreSupport = ctxInfo.version() >= GR_GL_VER(4, 2);
342 if (!shaderCaps->fImageLoadStoreSupport &&
344 shaderCaps->fImageLoadStoreSupport = true;
345 shaderCaps->fImageLoadStoreExtensionString = "GL_ARB_shader_image_load_store";
348 shaderCaps->fImageLoadStoreSupport = ctxInfo.version() >= GR_GL_VER(3, 1);
350 if (shaderCaps->fImageLoadStoreSupport) {
356 &shaderCaps->fMaxVertexImageStorages);
357 if (shaderCaps->fGeometryShaderSupport) {
359 &shaderCaps->fMaxGeometryImageStorages);
362 &shaderCaps->fMaxFragmentImageStorages);
364 &shaderCaps->fMaxCombinedImageStorages);
366 shaderCaps->fMaxCombinedImageStorages = SkTMin(SkTMin(shaderCaps->fMaxCombinedImageStorages,
368 shaderCaps->fMaxVertexImageStorages = SkTMin(maxUnits,
369 shaderCaps->fMaxVertexImageStorages);
370 shaderCaps->fMaxGeometryImageStorages = SkTMin(maxUnits,
371 shaderCaps->fMaxGeometryImageStorages);
372 shaderCaps->fMaxFragmentImageStorages = SkTMin(maxUnits,
373 shaderCaps->fMaxFragmentImageStorages);
599 this->initShaderPrecisionTable(ctxInfo, gli, shaderCaps);
654 this->initConfigTable(contextOptions, ctxInfo, gli, shaderCaps);
657 shaderCaps->applyOptionsOverrides(contextOptions);
729 GrShaderCaps* shaderCaps = fShaderCaps.get();
730 shaderCaps->fGLSLGeneration = ctxInfo.glslGeneration();
733 shaderCaps->fFBFetchNeedsCustomOutput = (version >= GR_GL_VER(3, 0));
734 shaderCaps->fFBFetchSupport = true;
735 shaderCaps->fFBFetchColorName = "gl_LastFragData[0]";
736 shaderCaps->fFBFetchExtensionString = "GL_EXT_shader_framebuffer_fetch";
740 shaderCaps->fFBFetchNeedsCustomOutput = false;
741 shaderCaps->fFBFetchSupport = true;
742 shaderCaps->fFBFetchColorName = "gl_LastFragData[0]";
743 shaderCaps->fFBFetchExtensionString = "GL_NV_shader_framebuffer_fetch";
747 shaderCaps->fFBFetchNeedsCustomOutput = false;
748 shaderCaps->fFBFetchSupport = true;
749 shaderCaps->fFBFetchColorName = "gl_LastFragColorARM";
750 shaderCaps->fFBFetchExtensionString = "GL_ARM_shader_framebuffer_fetch";
752 shaderCaps->fUsesPrecisionModifiers = true;
759 shaderCaps->fFBFetchSupport = false;
762 shaderCaps->fBindlessTextureSupport = ctxInfo.hasExtension("GL_NV_bindless_texture");
765 shaderCaps->fFlatInterpolationSupport = ctxInfo.glslGeneration() >= k130_GrGLSLGeneration;
767 shaderCaps->fFlatInterpolationSupport =
772 shaderCaps->fNoPerspectiveInterpolationSupport =
776 shaderCaps->fNoPerspectiveInterpolationSupport = true;
777 shaderCaps->fNoPerspectiveInterpolationExtensionString =
783 shaderCaps->fMultisampleInterpolationSupport =
787 shaderCaps->fMultisampleInterpolationSupport = true;
789 shaderCaps->fMultisampleInterpolationSupport = true;
790 shaderCaps->fMultisampleInterpolationExtensionString =
796 shaderCaps->fSampleVariablesSupport = ctxInfo.glslGeneration() >= k400_GrGLSLGeneration;
799 shaderCaps->fSampleVariablesSupport = true;
801 shaderCaps->fSampleVariablesSupport = true;
802 shaderCaps->fSampleVariablesExtensionString = "GL_OES_sample_variables";
806 if (shaderCaps->fSampleVariablesSupport &&
809 shaderCaps->fSampleMaskOverrideCoverageSupport =
815 shaderCaps->fDropsTileOnZeroDivide = kQualcomm_GrGLVendor == ctxInfo.vendor();
822 shaderCaps->fCanUseAnyFunctionInShader = kImagination_GrGLVendor != ctxInfo.vendor();
824 shaderCaps->fVersionDeclString = get_glsl_version_decl_string(standard,
825 shaderCaps->fGLSLGeneration,
828 if (kGLES_GrGLStandard == standard && k110_GrGLSLGeneration == shaderCaps->fGLSLGeneration) {
829 shaderCaps->fShaderDerivativeExtensionString = "GL_OES_standard_derivatives";
839 shaderCaps->fFragCoordConventionsExtensionString = "GL_ARB_fragment_coord_conventions";
843 shaderCaps->fSecondaryOutputExtensionString = "GL_EXT_blend_func_extended";
848 shaderCaps->fExternalTextureSupport = true;
852 shaderCaps->fExternalTextureSupport = true;
856 if (shaderCaps->fExternalTextureSupport) {
858 shaderCaps->fExternalTextureExtensionString = "GL_OES_EGL_image_external";
860 shaderCaps->fExternalTextureExtensionString = "GL_OES_EGL_image_external_essl3";
865 shaderCaps->fTexelFetchSupport = ctxInfo.glslGeneration() >= k130_GrGLSLGeneration;
867 shaderCaps->fTexelFetchSupport =
871 if (shaderCaps->fTexelFetchSupport) {
873 shaderCaps->fTexelBufferSupport = ctxInfo.version() >= GR_GL_VER(3, 1) &&
878 shaderCaps->fTexelBufferSupport = true;
880 shaderCaps->fTexelBufferSupport = true;
881 shaderCaps->fTexelBufferExtensionString = "GL_OES_texture_buffer";
883 shaderCaps->fTexelBufferSupport = true;
884 shaderCaps->fTexelBufferExtensionString = "GL_EXT_texture_buffer";
890 shaderCaps->fVertexIDSupport = true;
893 shaderCaps->fVertexIDSupport = ctxInfo.glslGeneration() >= k330_GrGLSLGeneration;
899 shaderCaps->fCanUseMinAndAbsTogether = false;
905 shaderCaps->fMustForceNegatedAtanParamToFloat = true;
911 if (shaderCaps->fFBFetchSupport && kQualcomm_GrGLVendor == ctxInfo.vendor()) {
912 shaderCaps->fRequiresLocalOutputColorForFBFetch = true;
919 shaderCaps->fMustImplementGSInvocationsWithLoop = true;
929 shaderCaps->fMustObfuscateUniformColor = true;
1054 this->shaderCaps()->dualSourceBlendingSupport() &&
1055 this->shaderCaps()->pathRenderingSupport() &&
1127 GrShaderCaps* shaderCaps = static_cast<GrShaderCaps*>(fShaderCaps.get());
1140 shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kAutomatic_AdvBlendEqInteraction;
1143 shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kGeneralEnable_AdvBlendEqInteraction;
1150 shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kAutomatic_AdvBlendEqInteraction;
1153 shaderCaps->fAdvBlendEqInteraction = GrShaderCaps::kGeneralEnable_AdvBlendEqInteraction;
1360 GrShaderCaps* shaderCaps) {
1368 shaderCaps->fShaderPrecisionVaries = false;
1376 shaderCaps->fFloatPrecisions[s][p].fLogRangeLow = range[0];
1377 shaderCaps->fFloatPrecisions[s][p].fLogRangeHigh = range[1];
1378 shaderCaps->fFloatPrecisions[s][p].fBits = bits;
1380 first = &shaderCaps->fFloatPrecisions[s][p];
1382 else if (!shaderCaps->fShaderPrecisionVaries) {
1383 shaderCaps->fShaderPrecisionVaries =
1384 (*first != shaderCaps->fFloatPrecisions[s][p]);
1393 shaderCaps->fShaderPrecisionVaries = false;
1397 shaderCaps->fFloatPrecisions[s][p].fLogRangeLow = 127;
1398 shaderCaps->fFloatPrecisions[s][p].fLogRangeHigh = 127;
1399 shaderCaps->fFloatPrecisions[s][p].fBits = 23;
1408 if (shaderCaps
1410 shaderCaps->fFloatPrecisions[kGeometry_GrShaderType][p] =
1411 shaderCaps->fFloatPrecisions[kVertex_GrShaderType][p];
1414 shaderCaps->initSamplerPrecisionTable();
1479 GrShaderCaps* shaderCaps) {
1575 bool texelBufferSupport = this->shaderCaps()->texelBufferSupport();
2077 shaderCaps->fConfigTextureSwizzle[i] = fConfigTable[i].fSwizzle;
2089 shaderCaps->fConfigOutputSwizzle[i] = GrSwizzle::AAAA();
2097 if (this->shaderCaps()->imageLoadStoreSupport()) {