/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// NOTE: No include guard. This is meant to be included to generate different // code based on how GFXINFO_FEATURE is defined, possibly multiple times in a // single translation unit. // // GFXINFO_FEATURE(id, pref_name) // - Use when you need a feature for blocklisting, allowed by default. // // GFXINFO_FEATURE_ALLOWLIST(id, pref_name) // - Use when you need a feature for allowlisting, blocked by default. // This allow the use of feature statuses: // - FEATURE_ALLOW_ALWAYS // - FEATURE_ALLOW_QUALIFIED // - FEATURE_DENIED (reserved for internal use) // // GFXINFO_FEATURE_RETIRED(id, pref_name) // - Use when a feature is retired. It should no longer be used. The enum // will remain defined to prevent reuse, but it is otherwise not usable // in the compiled or downloadable blocklists. // // GFXINFO_FEATURE_MISMATCHED(id, blocklist_name, pref_name) // - Do not use for new entries, this is when the id and the blocklist name // did not match in the downloadable blocklist.
/* clang-format off */
/* Wildcard to block all features, starting in123. */
GFXINFO_FEATURE(ALL, "all")
/* Wildcard to block all optional features, starting in123. */
GFXINFO_FEATURE(OPTIONAL, "optional")
/* Whether Direct3D 9is supported for layers, always present. */
GFXINFO_FEATURE(DIRECT3D_9_LAYERS, "layers.direct3d9")
/* Whether Direct3D 10.0is supported for layers, always present. */
GFXINFO_FEATURE(DIRECT3D_10_LAYERS, "layers.direct3d10")
/* Whether Direct3D 10.1is supported for layers, always present. */
GFXINFO_FEATURE(DIRECT3D_10_1_LAYERS, "layers.direct3d10-1")
/* Whether OpenGL is supported for layers, always present. */
GFXINFO_FEATURE(OPENGL_LAYERS, "layers.opengl")
/* Whether WebGL is supported via OpenGL, always present. */
GFXINFO_FEATURE(WEBGL_OPENGL, "webgl.opengl")
/* Whether WebGL is supported via ANGLE (D3D9 -- does not check for the presence of ANGLE libs). */
GFXINFO_FEATURE(WEBGL_ANGLE, "webgl.angle")
/* (Unused) Whether WebGL antialiasing is supported. */
GFXINFO_FEATURE_RETIRED(WEBGL_MSAA, "webgl.msaa")
/* (Unused) Whether Stagefright is supported, starting in17. */
GFXINFO_FEATURE_RETIRED(STAGEFRIGHT, "stagefright")
/* Whether Webrtc Hardware H.264 acceleration is supported, starting in71. */
GFXINFO_FEATURE(WEBRTC_HW_ACCELERATION_H264, "webrtc.hw.acceleration.h264")
/* Whether Direct3D 11is supported for layers, starting in32. */
GFXINFO_FEATURE(DIRECT3D_11_LAYERS, "layers.direct3d11")
/* Whether hardware accelerated video decoding is supported, starting in36. */
GFXINFO_FEATURE(HARDWARE_VIDEO_DECODING, "hardwarevideodecoding")
/* Whether Vulkan hardware video decoding is supported (Linux). */
GFXINFO_FEATURE(HARDWARE_VIDEO_DECODING_VULKAN, "hardwarevideodecodingvulkan")
/* Whether Direct3D 11is supported for ANGLE, starting in38. */
GFXINFO_FEATURE(DIRECT3D_11_ANGLE, "direct3d11angle")
/* Whether Webrtc Hardware acceleration is supported, starting in42. */
GFXINFO_FEATURE(WEBRTC_HW_ACCELERATION_ENCODE, "webrtc.hw.acceleration.encode")
/* Whether Webrtc Hardware acceleration is supported, starting in42. */
GFXINFO_FEATURE(WEBRTC_HW_ACCELERATION_DECODE, "webrtc.hw.acceleration.decode")
/* Whether Canvas acceleration is supported, starting in45 */
GFXINFO_FEATURE(CANVAS2D_ACCELERATION, "canvas2d.acceleration")
/* Whether hardware VP8 decoding is supported, starting in48; downloadable blocking in100. */
GFXINFO_FEATURE(VP8_HW_DECODE, "vp8.hw-decode")
/* Whether hardware VP9 decoding is supported, starting in48; downloadable blocking in100. */
GFXINFO_FEATURE(VP9_HW_DECODE, "vp9.hw-decode")
/* Whether NV_dx_interop2 is supported, starting in50; downloadable blocking in58. */
GFXINFO_FEATURE(DX_INTEROP2, "dx.interop2")
/* Whether the GPU process is supported, starting in52; downloadable blocking in58. */
GFXINFO_FEATURE(GPU_PROCESS, "gpu.process")
/* Whether the WebGL2 is supported, starting in54. */
GFXINFO_FEATURE(WEBGL2, "webgl2")
/* Whether D3D11 keyed mutex is supported, starting in56. */
GFXINFO_FEATURE(D3D11_KEYED_MUTEX, "d3d11.keyed.mutex")
/* Whether WebRender is supported, starting in62. */
GFXINFO_FEATURE(WEBRENDER, "webrender")
/* Does D3D11 support NV12 video format, starting in60. */
GFXINFO_FEATURE(DX_NV12, "dx.nv12")
/* Does D3D11 support P010 video format, starting in64, downloadable blocking in133. */
GFXINFO_FEATURE(DX_P010, "dx.p010")
/* Does D3D11 support P016 video format, starting in64, downloadable blocking in133. */
GFXINFO_FEATURE(DX_P016, "dx.p016")
/* Whether OpenGL swizzle configuration of texture units is supported, starting in70. */
GFXINFO_FEATURE(GL_SWIZZLE, "gl.swizzle")
/* Whether WebRender native compositor is supported, starting in73 */
GFXINFO_FEATURE(WEBRENDER_COMPOSITOR, "webrender.compositor")
/* Whether WebRender can use scissored clears for cached surfaces, staring in79 */
GFXINFO_FEATURE(WEBRENDER_SCISSORED_CACHE_CLEARS, "webrender.scissored_cache_clears")
/* Support webgl.out-of-process: true (starting in83) */
GFXINFO_FEATURE_RETIRED(ALLOW_WEBGL_OUT_OF_PROCESS, "webgl.allow-oop")
/* Is OpenGL threadsafe (starting in83) */
GFXINFO_FEATURE(THREADSAFE_GL, "gl.threadsafe")
/* Whether webrender uses pre-optimized shaders, starting in87; downloadable blocking in133. */
GFXINFO_FEATURE(WEBRENDER_OPTIMIZED_SHADERS, "webrender.optimized-shaders")
/* Whether we prefer EGL over GLX with X11, starting in88. */
GFXINFO_FEATURE(X11_EGL, "x11.egl")
/* Whether DMABUF is supported, starting in88. */
GFXINFO_FEATURE(DMABUF, "dmabuf")
/* Whether webrender caches shader program binaries to disk, starting in89; downloadable blocking in133. */
GFXINFO_FEATURE(WEBRENDER_SHADER_CACHE, "webrender.program-binary-disk")
/* Whether partial present is allowed with WebRender, starting in98. */
GFXINFO_FEATURE(WEBRENDER_PARTIAL_PRESENT, "webrender.partial-present")
/* Whether WebGPU is supported, starting in100. */
GFXINFO_FEATURE(WEBGPU, "webgpu")
/* Whether video overlay of hardware decoded video is supported, starting in100. */
GFXINFO_FEATURE(VIDEO_OVERLAY, "video-overlay")
/* Whether hardware decoded video zero copy is supported, starting in101. */
GFXINFO_FEATURE_ALLOWLIST(HW_DECODED_VIDEO_ZERO_COPY, "hw-video-zero-copy")
/* Whether DMABUF export is supported, starting in103; downloadable blocking in133. */
GFXINFO_FEATURE(DMABUF_SURFACE_EXPORT, "dmabuf.surface-export")
/* Whether reuse decoder device is supported, starting in104. */
GFXINFO_FEATURE(REUSE_DECODER_DEVICE, "reuse-decoder-device")
/* Whether to allow backdrop filter, starting in105. */
GFXINFO_FEATURE(BACKDROP_FILTER, "backdrop.filter")
/* Whether to use Accelerated Canvas2D, starting in110. */
GFXINFO_FEATURE(ACCELERATED_CANVAS2D, "accelerated-canvas2d")
/* Whether hardware H264 decoding is supported, starting in114; downloadable blocking in132. */
GFXINFO_FEATURE(H264_HW_DECODE, "h264.hw-decode")
/* Whether hardware AV1 decoding is supported, starting in114; downloadable blocking in132. */
GFXINFO_FEATURE(AV1_HW_DECODE, "av1.hw-decode")
/* Whether hardware HEVC decoding is supported, starting and downloadable blocking in137. */
GFXINFO_FEATURE(HEVC_HW_DECODE, "hevc.hw-decode")
/* Whether video overlay of software decoded video is supported, starting in116; downloadable blocking in132. */
GFXINFO_FEATURE(VIDEO_SOFTWARE_OVERLAY, "video-software-overlay")
/* Whether WebGL is allowed to use hardware rendering, otherwise software fallbacks, starting in120 (115esr); downloadable blocking in132. */
GFXINFO_FEATURE(WEBGL_USE_HARDWARE, "webgl-use-hardware")
/* Whether overlay is allowed to VideoProcessor-HDR on SDR content, starting in125. */
GFXINFO_FEATURE_MISMATCHED(OVERLAY_VP_AUTO_HDR, FEATURE_OVERLAY_VP_AUTO_HDR, "overlay-vp-auto-hdr")
/* Whether overlay is allowed to VideoProcessor Super Resolution, starting in125. */
GFXINFO_FEATURE_MISMATCHED(OVERLAY_VP_SUPER_RESOLUTION, FEATURE_OVERLAY_VP_SUPER_RESOLUTION, "overlay-vp-super-resolution")
/* Whether DMABUF is supported when using WebGL, starting in88. */
GFXINFO_FEATURE(DMABUF_WEBGL, "dmabuf-webgl")
/* Whether DirectComposition is supported for compositing, starting in141. */
GFXINFO_FEATURE(WEBRENDER_DCOMP, "webrender.dcomp")
/* Whether hardware VP8 encoding is supported, starting in140. */
GFXINFO_FEATURE(VP8_HW_ENCODE, "vp8.hw-encode")
/* Whether hardware VP9 encoding is supported, starting in140. */
GFXINFO_FEATURE(VP9_HW_ENCODE, "vp9.hw-encode")
/* Whether hardware H264 encoding is supported, starting in140. */
GFXINFO_FEATURE(H264_HW_ENCODE, "h264.hw-encode")
/* Whether hardware AV1 encoding is supported, starting in140. */
GFXINFO_FEATURE(AV1_HW_ENCODE, "av1.hw-encode")
/* Whether hardware HEVC encoding is supported, starting in140. */
GFXINFO_FEATURE(HEVC_HW_ENCODE, "hevc.hw-encode")
/* Whether Windows Media Fundation hardware DRM is supported, starting in141. */
GFXINFO_FEATURE(WMF_HW_DRM, "wmf.hw-drm")
/* Whether OpenGL is allowed to use normalized 16-bit texture formats, starting in141. */
GFXINFO_FEATURE_MISMATCHED(GL_NORM16_TEXTURES, GL_NORM16, "gl.norm16-textures")
/* Whether hardware accelerated video encoding is supported, starting in141. */
GFXINFO_FEATURE(HARDWARE_VIDEO_ENCODING, "hardwarevideoencoding")
/* Whether WebGPU's GPUExternalTexture API is supported, starting in 143. */
GFXINFO_FEATURE(WEBGPU_EXTERNAL_TEXTURE, "webgpu.external-texture")
/* Whether Mesa threading is allowed, starting in146. */
GFXINFO_FEATURE(MESA_THREADING, "mesa.threading")
/* Whether WebGL is allowed, starting in150. */
GFXINFO_FEATURE(WEBGL, "webgl")
/* Whether high dynamic range video is reported in media capabilities, starting in152. */
GFXINFO_FEATURE(VIDEO_HDR, "video-hdr")
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.