FeaturesGL_autogen.h (23572B)
1 // GENERATED FILE - DO NOT EDIT. 2 // Generated by gen_features.py using data from gl_features.json. 3 // 4 // Copyright 2022 The ANGLE Project Authors. All rights reserved. 5 // Use of this source code is governed by a BSD-style license that can be 6 // found in the LICENSE file. 7 // 8 // FeaturesGL_autogen.h: angle::Features and workarounds for GL driver bugs and other issues. 9 10 #ifndef ANGLE_PLATFORM_FEATURESGL_H_ 11 #define ANGLE_PLATFORM_FEATURESGL_H_ 12 13 #include "platform/Feature.h" 14 15 namespace angle 16 { 17 18 struct FeaturesGL : FeatureSetBase 19 { 20 FeaturesGL(); 21 ~FeaturesGL(); 22 23 FeatureInfo avoid1BitAlphaTextureFormats = { 24 "avoid1BitAlphaTextureFormats", 25 FeatureCategory::OpenGLWorkarounds, 26 "Issue with 1-bit alpha framebuffer formats", 27 &members, 28 }; 29 30 FeatureInfo RGBA4IsNotSupportedForColorRendering = { 31 "RGBA4IsNotSupportedForColorRendering", 32 FeatureCategory::OpenGLWorkarounds, 33 "GL_RGBA4 is not color renderable", 34 &members, 35 }; 36 37 FeatureInfo allowETCFormats = { 38 "allowETCFormats", 39 FeatureCategory::OpenGLWorkarounds, 40 "Enable ETC2/EAC on desktop OpenGL", 41 &members, 42 }; 43 44 FeatureInfo allowAstcFormats = { 45 "allowAstcFormats", 46 FeatureCategory::OpenGLWorkarounds, 47 "Enable ASTC on desktop OpenGL", 48 &members, 49 }; 50 51 FeatureInfo doesSRGBClearsOnLinearFramebufferAttachments = { 52 "doesSRGBClearsOnLinearFramebufferAttachments", 53 FeatureCategory::OpenGLWorkarounds, 54 "Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled", 55 &members, 56 }; 57 58 FeatureInfo doWhileGLSLCausesGPUHang = { 59 "doWhileGLSLCausesGPUHang", FeatureCategory::OpenGLWorkarounds, 60 "Some GLSL constructs involving do-while loops cause GPU hangs", &members, 61 "http://crbug.com/644669"}; 62 63 FeatureInfo vertexIDDoesNotIncludeBaseVertex = { 64 "vertexIDDoesNotIncludeBaseVertex", 65 FeatureCategory::OpenGLWorkarounds, 66 "gl_VertexID in GLSL vertex shader doesn't include base vertex value", 67 &members, 68 }; 69 70 FeatureInfo finishDoesNotCauseQueriesToBeAvailable = { 71 "finishDoesNotCauseQueriesToBeAvailable", 72 FeatureCategory::OpenGLWorkarounds, 73 "glFinish doesn't cause all queries to report available result", 74 &members, 75 }; 76 77 FeatureInfo alwaysCallUseProgramAfterLink = { 78 "alwaysCallUseProgramAfterLink", FeatureCategory::OpenGLWorkarounds, 79 "Always call useProgram after a successful link to avoid a driver bug", &members, 80 "http://crbug.com/110263"}; 81 82 FeatureInfo unpackOverlappingRowsSeparatelyUnpackBuffer = { 83 "unpackOverlappingRowsSeparatelyUnpackBuffer", 84 FeatureCategory::OpenGLWorkarounds, 85 "In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row", 86 &members, 87 }; 88 89 FeatureInfo packOverlappingRowsSeparatelyPackBuffer = { 90 "packOverlappingRowsSeparatelyPackBuffer", 91 FeatureCategory::OpenGLWorkarounds, 92 "In the case of packing to a pixel pack buffer, pack overlapping rows row by row", 93 &members, 94 }; 95 96 FeatureInfo initializeCurrentVertexAttributes = { 97 "initializeCurrentVertexAttributes", 98 FeatureCategory::OpenGLWorkarounds, 99 "During initialization, assign the current vertex attributes to the spec-mandated defaults", 100 &members, 101 }; 102 103 FeatureInfo emulateAbsIntFunction = {"emulateAbsIntFunction", 104 FeatureCategory::OpenGLWorkarounds, 105 "abs(i) where i is an integer returns unexpected result", 106 &members, "http://crbug.com/642227"}; 107 108 FeatureInfo addAndTrueToLoopCondition = { 109 "addAndTrueToLoopCondition", 110 FeatureCategory::OpenGLWorkarounds, 111 "Calculation of loop conditions in for and while loop has bug", 112 &members, 113 }; 114 115 FeatureInfo unpackLastRowSeparatelyForPaddingInclusion = { 116 "unpackLastRowSeparatelyForPaddingInclusion", FeatureCategory::OpenGLWorkarounds, 117 "When uploading textures from an unpack buffer, some drivers count an extra row padding", 118 &members, "http://anglebug.com/1512"}; 119 120 FeatureInfo packLastRowSeparatelyForPaddingInclusion = { 121 "packLastRowSeparatelyForPaddingInclusion", FeatureCategory::OpenGLWorkarounds, 122 "When uploading textures from an pack buffer, some drivers count an extra row padding", 123 &members, "http://anglebug.com/1512"}; 124 125 FeatureInfo emulateIsnanFloat = {"emulateIsnanFloat", FeatureCategory::OpenGLWorkarounds, 126 "Using isnan() on highp float will get wrong answer", &members, 127 "http://crbug.com/650547"}; 128 129 FeatureInfo useUnusedBlocksWithStandardOrSharedLayout = { 130 "useUnusedBlocksWithStandardOrSharedLayout", 131 FeatureCategory::OpenGLWorkarounds, 132 "Unused std140 or shared uniform blocks will be treated as inactive", 133 &members, 134 }; 135 136 FeatureInfo removeInvariantAndCentroidForESSL3 = { 137 "removeInvariantAndCentroidForESSL3", 138 FeatureCategory::OpenGLWorkarounds, 139 "Fix spec difference between GLSL 4.1 or lower and ESSL3", 140 &members, 141 }; 142 143 FeatureInfo rewriteFloatUnaryMinusOperator = { 144 "rewriteFloatUnaryMinusOperator", FeatureCategory::OpenGLWorkarounds, 145 "Using '-<float>' will get wrong answer", &members, "http://crbug.com/308366"}; 146 147 FeatureInfo emulateAtan2Float = {"emulateAtan2Float", FeatureCategory::OpenGLWorkarounds, 148 "atan(y, x) may return a wrong answer", &members, 149 "http://crbug.com/672380"}; 150 151 FeatureInfo reapplyUBOBindingsAfterUsingBinaryProgram = { 152 "reapplyUBOBindingsAfterUsingBinaryProgram", FeatureCategory::OpenGLWorkarounds, 153 "Some drivers forget about UBO bindings when using program binaries", &members, 154 "http://anglebug.com/1637"}; 155 156 FeatureInfo emulateMaxVertexAttribStride = { 157 "emulateMaxVertexAttribStride", FeatureCategory::OpenGLWorkarounds, 158 "Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried", &members, 159 "http://anglebug.com/1936"}; 160 161 FeatureInfo dontInitializeUninitializedLocals = { 162 "dontInitializeUninitializedLocals", FeatureCategory::OpenGLWorkarounds, 163 "Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests", &members, 164 "http://anglebug.com/2046"}; 165 166 FeatureInfo clampPointSize = { 167 "clampPointSize", 168 FeatureCategory::OpenGLWorkarounds, 169 "The point size range reported from the API is inconsistent with the actual behavior", 170 &members, 171 }; 172 173 FeatureInfo dontUseLoopsToInitializeVariables = { 174 "dontUseLoopsToInitializeVariables", FeatureCategory::OpenGLWorkarounds, 175 "For loops used to initialize variables hit native GLSL compiler bugs", &members, 176 "http://crbug.com/809422"}; 177 178 FeatureInfo clampFragDepth = { 179 "clampFragDepth", 180 FeatureCategory::OpenGLWorkarounds, 181 "gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer", 182 &members, 183 }; 184 185 FeatureInfo rewriteRepeatedAssignToSwizzled = { 186 "rewriteRepeatedAssignToSwizzled", 187 FeatureCategory::OpenGLWorkarounds, 188 "Repeated assignment to swizzled values inside a " 189 "GLSL user-defined function have incorrect results", 190 &members, 191 }; 192 193 FeatureInfo disableBlendFuncExtended = { 194 "disableBlendFuncExtended", FeatureCategory::OpenGLWorkarounds, 195 "ARB_blend_func_extended does not pass the tests", &members, "http://anglebug.com/1085"}; 196 197 FeatureInfo unsizedSRGBReadPixelsDoesntTransform = { 198 "unsizedSRGBReadPixelsDoesntTransform", FeatureCategory::OpenGLWorkarounds, 199 "Drivers returning raw sRGB values instead of linearized values when calling glReadPixels " 200 "on unsized sRGB texture formats", 201 &members, "http://crbug.com/550292 http://crbug.com/565179"}; 202 203 FeatureInfo queryCounterBitsGeneratesErrors = { 204 "queryCounterBitsGeneratesErrors", FeatureCategory::OpenGLWorkarounds, 205 "Drivers generate errors when querying the number of bits in timer queries", &members, 206 "http://anglebug.com/3027"}; 207 208 FeatureInfo dontRelinkProgramsInParallel = { 209 "dontRelinkProgramsInParallel", FeatureCategory::OpenGLWorkarounds, 210 "Relinking a program in parallel is buggy", &members, "http://anglebug.com/3045"}; 211 212 FeatureInfo disableWorkerContexts = {"disableWorkerContexts", 213 FeatureCategory::OpenGLWorkarounds, 214 "Some tests have been seen to fail using worker contexts", 215 &members, "http://crbug.com/849576"}; 216 217 FeatureInfo limitWebglMaxTextureSizeTo4096 = { 218 "limitWebglMaxTextureSizeTo4096", FeatureCategory::OpenGLWorkarounds, 219 "Limit webgl max texture size to 4096 to avoid frequent " 220 "out-of-memory errors", 221 &members, "http://crbug.com/927470"}; 222 223 FeatureInfo limitMaxMSAASamplesTo4 = { 224 "limitMaxMSAASamplesTo4", FeatureCategory::OpenGLWorkarounds, 225 "Various rendering bugs have been observed when using higher MSAA counts", &members, 226 "http://crbug.com/797243"}; 227 228 FeatureInfo allowClearForRobustResourceInit = { 229 "allowClearForRobustResourceInit", FeatureCategory::OpenGLWorkarounds, 230 "Using glClear for robust resource initialization is buggy on some drivers and leads to " 231 "texture corruption. Default to data uploads except on MacOS where it is very slow.", 232 &members, "https://crbug.com/848952 http://crbug.com/883276"}; 233 234 FeatureInfo clampArrayAccess = {"clampArrayAccess", FeatureCategory::OpenGLWorkarounds, 235 "Clamp uniform array access to avoid reading invalid memory.", 236 &members, "http://anglebug.com/2978"}; 237 238 FeatureInfo resetTexImage2DBaseLevel = { 239 "resetTexImage2DBaseLevel", FeatureCategory::OpenGLWorkarounds, 240 "Reset texture base level before calling glTexImage2D to " 241 "work around pixel comparison failure.", 242 &members, "https://crbug.com/705865"}; 243 244 FeatureInfo clearToZeroOrOneBroken = { 245 "clearToZeroOrOneBroken", FeatureCategory::OpenGLWorkarounds, 246 "Clears when the clear color is all zeros or ones do not work.", &members, 247 "https://crbug.com/710443"}; 248 249 FeatureInfo limitMax3dArrayTextureSizeTo1024 = { 250 "limitMax3dArrayTextureSizeTo1024", FeatureCategory::OpenGLWorkarounds, 251 "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang", 252 &members, "http://crbug.com/927470"}; 253 254 FeatureInfo adjustSrcDstRegionForBlitFramebuffer = { 255 "adjustSrcDstRegionForBlitFramebuffer", FeatureCategory::OpenGLWorkarounds, 256 "Many platforms have issues with blitFramebuffer when the parameters are large.", &members, 257 "http://crbug.com/830046"}; 258 259 FeatureInfo clipSrcRegionForBlitFramebuffer = { 260 "clipSrcRegionForBlitFramebuffer", FeatureCategory::OpenGLWorkarounds, 261 "Issues with blitFramebuffer when the parameters don't match the framebuffer size.", 262 &members, "http://crbug.com/830046"}; 263 264 FeatureInfo RGBDXT1TexturesSampleZeroAlpha = { 265 "RGBDXT1TexturesSampleZeroAlpha", FeatureCategory::OpenGLWorkarounds, 266 "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac.", &members, 267 "http://anglebug.com/3729"}; 268 269 FeatureInfo unfoldShortCircuits = { 270 "unfoldShortCircuits", FeatureCategory::OpenGLWorkarounds, 271 "Mac incorrectly executes both sides of && and || expressions when they should " 272 "short-circuit.", 273 &members, "http://anglebug.com/482"}; 274 275 FeatureInfo emulatePrimitiveRestartFixedIndex = { 276 "emulatePrimitiveRestartFixedIndex", FeatureCategory::OpenGLWorkarounds, 277 "When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with " 278 "GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex.", 279 &members, "http://anglebug.com/3997"}; 280 281 FeatureInfo setPrimitiveRestartFixedIndexForDrawArrays = { 282 "setPrimitiveRestartFixedIndexForDrawArrays", FeatureCategory::OpenGLWorkarounds, 283 "Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart " 284 "index is within the number of primitives being drawn.", 285 &members, "http://anglebug.com/3997"}; 286 287 FeatureInfo removeDynamicIndexingOfSwizzledVector = { 288 "removeDynamicIndexingOfSwizzledVector", FeatureCategory::OpenGLWorkarounds, 289 "Dynamic indexing of swizzled l-values doesn't work correctly on various platforms.", 290 &members, "http://crbug.com/709351"}; 291 292 FeatureInfo preAddTexelFetchOffsets = { 293 "preAddTexelFetchOffsets", FeatureCategory::OpenGLWorkarounds, 294 "Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid " 295 "even if the sum of position and offset is in range, so we need to add workarounds by " 296 "rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, " 297 "position + offset, lod).", 298 &members, "http://crbug.com/642605"}; 299 300 FeatureInfo regenerateStructNames = { 301 "regenerateStructNames", FeatureCategory::OpenGLWorkarounds, 302 "All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct" 303 "name with a unique prefix.", 304 &members, "http://crbug.com/403957"}; 305 306 FeatureInfo readPixelsUsingImplementationColorReadFormatForNorm16 = { 307 "readPixelsUsingImplementationColorReadFormatForNorm16", FeatureCategory::OpenGLWorkarounds, 308 "Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from " 309 "EXT_texture_norm16 correctly", 310 &members, "http://anglebug.com/4214"}; 311 312 FeatureInfo flushBeforeDeleteTextureIfCopiedTo = { 313 "flushBeforeDeleteTextureIfCopiedTo", FeatureCategory::OpenGLWorkarounds, 314 "Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush" 315 " before glDeleteTextures in this case", 316 &members, "http://anglebug.com/4267"}; 317 318 FeatureInfo rewriteRowMajorMatrices = { 319 "rewriteRowMajorMatrices", FeatureCategory::OpenGLWorkarounds, 320 "Rewrite row major matrices in shaders as column major as a driver bug workaround", 321 &members, "http://anglebug.com/2273"}; 322 323 FeatureInfo disableDrawBuffersIndexed = { 324 "disableDrawBuffersIndexed", 325 FeatureCategory::OpenGLWorkarounds, 326 "Disable OES_draw_buffers_indexed extension.", 327 &members, 328 }; 329 330 FeatureInfo disableSemaphoreFd = {"disableSemaphoreFd", FeatureCategory::OpenGLWorkarounds, 331 "Disable GL_EXT_semaphore_fd extension", &members, 332 "https://crbug.com/1046462"}; 333 334 FeatureInfo disableTimestampQueries = { 335 "disableTimestampQueries", FeatureCategory::OpenGLWorkarounds, 336 "Disable GL_EXT_disjoint_timer_query extension", &members, "https://crbug.com/811661"}; 337 338 FeatureInfo decodeEncodeSRGBForGenerateMipmap = { 339 "decodeEncodeSRGBForGenerateMipmap", FeatureCategory::OpenGLWorkarounds, 340 "Decode and encode before generateMipmap for srgb format textures.", &members, 341 "http://anglebug.com/4646"}; 342 343 FeatureInfo emulateCopyTexImage2D = { 344 "emulateCopyTexImage2D", 345 FeatureCategory::OpenGLWorkarounds, 346 "Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D.", 347 &members, 348 }; 349 350 FeatureInfo emulateCopyTexImage2DFromRenderbuffers = { 351 "emulateCopyTexImage2DFromRenderbuffers", FeatureCategory::OpenGLWorkarounds, 352 "CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers.", 353 &members, "https://anglebug.com/4674"}; 354 355 FeatureInfo disableGPUSwitchingSupport = { 356 "disableGPUSwitchingSupport", FeatureCategory::OpenGLWorkarounds, 357 "Disable GPU switching support (use only the low-power GPU) on older MacBook Pros.", 358 &members, "https://crbug.com/1091824"}; 359 360 FeatureInfo disableNativeParallelCompile = { 361 "disableNativeParallelCompile", FeatureCategory::OpenGLWorkarounds, 362 "Do not use native KHR_parallel_shader_compile even when available.", &members, 363 "http://crbug.com/1094869"}; 364 365 FeatureInfo emulatePackSkipRowsAndPackSkipPixels = { 366 "emulatePackSkipRowsAndPackSkipPixels", FeatureCategory::OpenGLWorkarounds, 367 "GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver.", &members, 368 "https://anglebug.com/4849"}; 369 370 FeatureInfo clampMscRate = { 371 "clampMscRate", FeatureCategory::OpenGLWorkarounds, 372 "Some drivers return bogus values for GetMscRate, so we clamp it to 30Hz", &members, 373 "https://crbug.com/1042393"}; 374 375 FeatureInfo bindTransformFeedbackBufferBeforeBindBufferRange = { 376 "bindTransformFeedbackBufferBeforeBindBufferRange", FeatureCategory::OpenGLWorkarounds, 377 "Bind transform feedback buffers to the generic binding point before calling " 378 "glBindBufferBase or glBindBufferRange.", 379 &members, "https://anglebug.com/5140"}; 380 381 FeatureInfo disableSyncControlSupport = { 382 "disableSyncControlSupport", FeatureCategory::OpenGLWorkarounds, 383 "Speculative fix for issues on Linux/Wayland where exposing GLX_OML_sync_control renders " 384 "Chrome unusable", 385 &members, "https://crbug.com/1137851"}; 386 387 FeatureInfo keepBufferShadowCopy = { 388 "keepBufferShadowCopy", 389 FeatureCategory::OpenGLWorkarounds, 390 "Maintain a shadow copy of buffer data when the GL API does not permit reading data back.", 391 &members, 392 }; 393 394 FeatureInfo setZeroLevelBeforeGenerateMipmap = { 395 "setZeroLevelBeforeGenerateMipmap", 396 FeatureCategory::OpenGLWorkarounds, 397 "glGenerateMipmap fails if the zero texture level is not set on some Mac drivers.", 398 &members, 399 }; 400 401 FeatureInfo promotePackedFormatsTo8BitPerChannel = { 402 "promotePackedFormatsTo8BitPerChannel", FeatureCategory::OpenGLWorkarounds, 403 "Packed color formats are buggy on Macs with AMD GPUs", &members, 404 "http://anglebug.com/5469"}; 405 406 FeatureInfo initFragmentOutputVariables = { 407 "initFragmentOutputVariables", FeatureCategory::OpenGLWorkarounds, 408 "No init gl_FragColor causes context lost", &members, "http://crbug.com/1171371"}; 409 410 FeatureInfo shiftInstancedArrayDataWithOffset = { 411 "shiftInstancedArrayDataWithOffset", FeatureCategory::OpenGLWorkarounds, 412 "glDrawArraysInstanced is buggy on certain new Mac Intel GPUs", &members, 413 "http://crbug.com/1144207"}; 414 415 FeatureInfo syncVertexArraysToDefault = { 416 "syncVertexArraysToDefault", FeatureCategory::OpenGLWorkarounds, 417 "Only use the default VAO because of missing support or driver bugs", &members, 418 "http://anglebug.com/5577"}; 419 420 FeatureInfo sanitizeAMDGPURendererString = { 421 "sanitizeAMDGPURendererString", FeatureCategory::OpenGLWorkarounds, 422 "Strip precise kernel and DRM version information from amdgpu renderer strings.", &members, 423 "http://crbug.com/1181193"}; 424 425 FeatureInfo unbindFBOBeforeSwitchingContext = { 426 "unbindFBOBeforeSwitchingContext", FeatureCategory::OpenGLWorkarounds, 427 "Imagination GL drivers are buggy with context switching.", &members, 428 "http://crbug.com/1181193"}; 429 430 FeatureInfo flushOnFramebufferChange = {"flushOnFramebufferChange", 431 FeatureCategory::OpenGLWorkarounds, 432 "Switching framebuffers without a flush can lead to " 433 "crashes on Intel 9th Generation GPU Macs.", 434 &members, "http://crbug.com/1181068"}; 435 436 FeatureInfo disableMultisampledRenderToTexture = { 437 "disableMultisampledRenderToTexture", FeatureCategory::OpenGLWorkarounds, 438 "Many drivers have bugs when using GL_EXT_multisampled_render_to_texture", &members, 439 "http://anglebug.com/2894"}; 440 441 FeatureInfo uploadTextureDataInChunks = { 442 "uploadTextureDataInChunks", FeatureCategory::OpenGLWorkarounds, 443 "Upload texture data in <120kb chunks to work around Mac driver hangs and crashes.", 444 &members, "http://crbug.com/1181068"}; 445 446 FeatureInfo emulateImmutableCompressedTexture3D = { 447 "emulateImmutableCompressedTexture3D", FeatureCategory::OpenGLWorkarounds, 448 "Use non-immutable texture allocation to work around a driver bug.", &members, 449 "https://crbug.com/1060012"}; 450 451 FeatureInfo emulateRGB10 = {"emulateRGB10", FeatureCategory::OpenGLWorkarounds, 452 "Emulate RGB10 support using RGB10_A2.", &members, 453 "https://crbug.com/1300575"}; 454 455 FeatureInfo alwaysUnbindFramebufferTexture2D = { 456 "alwaysUnbindFramebufferTexture2D", FeatureCategory::OpenGLWorkarounds, 457 "Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug.", 458 &members, "https://anglebug.com/5536"}; 459 460 FeatureInfo disableTextureClampToBorder = { 461 "disableTextureClampToBorder", FeatureCategory::OpenGLWorkarounds, 462 "Imagination devices generate INVALID_ENUM when setting the texture border color.", 463 &members, "https://anglebug.com/7405"}; 464 465 FeatureInfo passHighpToPackUnormSnormBuiltins = { 466 "passHighpToPackUnormSnormBuiltins", FeatureCategory::OpenGLWorkarounds, 467 "packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4.", &members, 468 "http://anglebug.com/7527"}; 469 470 FeatureInfo supportsFragmentShaderInterlockNV = { 471 "supportsFragmentShaderInterlockNV", FeatureCategory::OpenGLFeatures, 472 "Backend GL context supports NV_fragment_shader_interlock extension", &members, 473 "http://anglebug.com/7279"}; 474 475 FeatureInfo supportsFragmentShaderOrderingINTEL = { 476 "supportsFragmentShaderOrderingINTEL", FeatureCategory::OpenGLFeatures, 477 "Backend GL context supports GL_INTEL_fragment_shader_ordering extension", &members, 478 "http://anglebug.com/7279"}; 479 480 FeatureInfo supportsFragmentShaderInterlockARB = { 481 "supportsFragmentShaderInterlockARB", FeatureCategory::OpenGLFeatures, 482 "Backend GL context supports ARB_fragment_shader_interlock extension", &members, 483 "http://anglebug.com/7279"}; 484 485 FeatureInfo supportsShaderFramebufferFetchEXT = { 486 "supportsShaderFramebufferFetchEXT", FeatureCategory::OpenGLFeatures, 487 "Backend GL context supports EXT_shader_framebuffer_fetch extension", &members, 488 "http://anglebug.com/7279"}; 489 490 FeatureInfo supportsShaderFramebufferFetchNonCoherentEXT = { 491 "supportsShaderFramebufferFetchNonCoherentEXT", FeatureCategory::OpenGLFeatures, 492 "Backend GL context supports EXT_shader_framebuffer_fetch_non_coherent extension", &members, 493 "http://anglebug.com/7279"}; 494 }; 495 496 inline FeaturesGL::FeaturesGL() = default; 497 inline FeaturesGL::~FeaturesGL() = default; 498 499 } // namespace angle 500 501 #endif // ANGLE_PLATFORM_FEATURESGL_H_