Graphics Feature Status ======================= * Canvas: Hardware accelerated * Canvas out-of-process rasterization: Enabled * Direct Rendering Display Compositor: Disabled * Compositing: Hardware accelerated * Multiple Raster Threads: Enabled * OpenGL: Enabled * Rasterization: Hardware accelerated * Raw Draw: Disabled * Skia Graphite: Disabled * Video Decode: Hardware accelerated * Video Encode: Hardware accelerated * Vulkan: Enabled * WebGL: Hardware accelerated * WebGL2: Hardware accelerated * WebGPU: Hardware accelerated * WebNN: Disabled Driver Bug Workarounds ====================== * check_egl_fence_before_wait * enable_webgl_timer_query_extensions * exit_on_context_lost * max_msaa_sample_count_4 * msaa_is_slow * rely_on_implicit_sync_for_swap_buffers * disabled_extension_GL_KHR_blend_equation_advanced * disabled_extension_GL_KHR_blend_equation_advanced_coherent * disabled_extension_GL_MESA_framebuffer_flip_y Problems Detected ================= * On Intel GPUs MSAA performance is not acceptable for GPU rasterization: (http://crbug.com/527565), (http://crbug.com/1298585) Applied Workarounds: msaa_is_slow * Disable KHR_blend_equation_advanced until cc shaders are updated: (http://crbug.com/661715) Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent) * Avoid waiting on a egl fence before pageflipping and rely on implicit sync.: (http://crbug.com/721463) Applied Workarounds: rely_on_implicit_sync_for_swap_buffers * Expose WebGL's disjoint_timer_query extensions on platforms with site isolation: (http://crbug.com/808744), (http://crbug.com/870491) Applied Workarounds: enable_webgl_timer_query_extensions * Disable GL_MESA_framebuffer_flip_y for desktop GL: (http://crbug.com/964010) Applied Workarounds: disable(GL_MESA_framebuffer_flip_y) * Limit MSAA to 4x on ChromeOS for Intel: (http://crbug.com/1003860) Applied Workarounds: max_msaa_sample_count_4 * Context loss recovery often fails on Chrome OS: (http://crbug.com/992286), (http://crbug.com/1177986) Applied Workarounds: exit_on_context_lost * Check if egl fences are already signalled before waiting them on the i965 driver: (http://crbug.com/1246254) Applied Workarounds: check_egl_fence_before_wait ANGLE Features ============== * allowCompressedFormats (Frontend workarounds): Enabled condition: true Allow compressed formats * alwaysRunLinkSubJobsThreaded (Frontend features) (http://anglebug.com/8417): Enabled condition: true If true, sub tasks of the link job are always threaded, regardless of GL_KHR_parallel_shader_compile * cacheCompiledShader (Frontend features) (http://anglebug.com/7036): Enabled condition: true Enable to cache compiled shaders * compileJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the compile job cannot be parallelized * disableAnisotropicFiltering (Frontend workarounds): Disabled Disable support for anisotropic filtering * disableDrawBuffersIndexed (Frontend features) (http://anglebug.com/7724): Disabled Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed * disableProgramBinary (Frontend features) (http://anglebug.com/5007): Disabled Disable support for GL_OES_get_program_binary * disableProgramCaching (Frontend features) (http://anglebug.com/1423136): Disabled Disables saving programs to the cache * disableProgramCachingForTransformFeedback (Frontend workarounds): Disabled On some GPUs, program binaries don't contain transform feedback varyings * dumpShaderSource (Frontend features) (http://anglebug.com/7760): Disabled Write shader source to temp directory * dumpTranslatedShaders (Frontend features) (http://anglebug.com/8280): Disabled Write translated shaders to temp directory * emulatePixelLocalStorage (Frontend features) (http://anglebug.com/7279): Enabled condition: true Emulate ANGLE_shader_pixel_local_storage using shader images * enableCaptureLimits (Frontend features) (http://anglebug.com/5750): Disabled Set the context limits like frame capturing was enabled * enableProgramBinaryForCapture (Frontend features) (http://anglebug.com/5658): Disabled Even if FrameCapture is enabled, enable GL_OES_get_program_binary * enableShaderSubstitution (Frontend workarounds) (http://anglebug.com/7761): Disabled Check the filesystem for shaders to use instead of those provided through glShaderSource * enableTranslatedShaderSubstitution (Frontend workarounds) (http://anglebug.com/8280): Disabled Check the filesystem for translated shaders to use instead of the shader translator's * forceDepthAttachmentInitOnClear (Frontend workarounds) (https://anglebug.com/7246): Disabled Force depth attachment initialization on clear ops * forceGlErrorChecking (Frontend features) (https://issuetracker.google.com/220069903): Disabled condition: (IsAndroid() && isSwiftShader) Force GL error checking (i.e. prevent applications from disabling error checking * forceInitShaderVariables (Frontend features): Disabled Force-enable shader variable initialization * forceMinimumMaxVertexAttributes (Frontend features): Disabled condition: false Force the minimum GL_MAX_VERTEX_ATTRIBS that the context's client version allows. * forceRobustResourceInit (Frontend features) (http://anglebug.com/6041): Disabled Force-enable robust resource init * linkJobIsThreadSafe (Frontend features) (http://anglebug.com/8297): Enabled condition: true If false, parts of the link job cannot be parallelized * loseContextOnOutOfMemory (Frontend workarounds): Enabled condition: true Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs * singleThreadedTextureDecompression (Frontend workarounds): Disabled Disables multi-threaded decompression of compressed texture formats * uncurrentEglSurfaceUponSurfaceDestroy (Frontend workarounds) (https://issuetracker.google.com/292285899): Enabled condition: true Make egl surface uncurrent when calling eglDestroySurface(), if the surface is still bound by the context of current render thread * adjustClearColorPrecision (Vulkan workarounds) (https://issuetracker.google.com/292282210): Disabled condition: IsAndroid() && mFeatures.supportsLegacyDithering.enabled && isARM Adjust normalized clear color precision based on framebuffer color channel bits count * allocateNonZeroMemory (Vulkan features) (http://anglebug.com/4384): Disabled condition: false Fill new allocations with non-zero values to flush out errors. * allowGenerateMipmapWithCompute (Vulkan features) (http://anglebug.com/4551): Disabled condition: supportsSubgroupQuadOpsInComputeShader && mSubgroupExtendedTypesFeatures.shaderSubgroupExtendedTypes && maxComputeWorkGroupInvocations >= 256 && ((isAMD && !IsWindows()) || isNvidia || isSamsung) Use the compute path to generate mipmaps on devices that meet the minimum requirements, and the performance is better. * allowHostImageCopyDespiteNonIdenticalLayout (Vulkan features): Disabled condition: false When using VK_EXT_host_image_copy, allow VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT even ifperf query indicates only optimalDeviceAccess, but not identicalMemoryLayout * allowMultisampledRenderToTextureEmulation (Vulkan workarounds) (http://anglebug.com/8291): Disabled condition: (isTileBasedRenderer && !isARM) || isSamsung Allow emulation of EXT_multisampled_render_to_texture * appendAliasedMemoryDecorations (Vulkan workarounds) (b/266235549): Enabled condition: true Append aliased memory decoration to ssbo and image in SpirV if they are not declared with restrict memory qualifier in GLSL * asyncCommandBufferReset (Vulkan features) (https://issuetracker.google.com/255411748): Enabled condition: true Reset command buffer in async thread. * asyncCommandQueue (Vulkan features) (http://anglebug.com/4324): Disabled condition: false Use CommandQueue worker thread to dispatch work to GPU. * avoidOpSelectWithMismatchingRelaxedPrecision (Vulkan workarounds) (http://anglebug.com/8503): Disabled condition: isNvidia && (nvidiaVersion.major >= 535 && nvidiaVersion.major <= 551) On some drivers, the OpSelect SPIR-V instruction with arguments with mismatching RelaxedPrecision decoration causes a crash * bottomLeftOriginPresentRegionRectangles (Vulkan workarounds): Disabled condition: IsAndroid() On some platforms present region rectangles are expected to have a bottom-left origin, instead of top-left origin as from spec * bresenhamLineRasterization (Vulkan features): Enabled condition: mLineRasterizationFeatures.bresenhamLines == 1U Enable Bresenham line rasterization via VK_EXT_line_rasterization extension * clDumpVkSpirv (Vulkan features): Disabled Enable SPIR-V dumping at runtime for OpenCL programs compiled with clspv * clampFragDepth (Vulkan workarounds) (http://anglebug.com/3970): Disabled condition: isNvidia && !mFeatures.supportsDepthClampZeroOne.enabled gl_FragDepth is not clamped when rendering to a floating point depth buffer without VK_EXT_depth_clamp_zero_one * clampPointSize (Vulkan workarounds) (http://anglebug.com/2970): Disabled condition: isNvidia && nvidiaVersion.major < uint32_t(IsWindows() ? 430 : 421) The point size range reported from the API is inconsistent with the actual behavior * compressVertexData (Vulkan workarounds): Disabled Compress vertex data to smaller data types when possible. Using this feature makes ANGLE non-conformant. * deferFlushUntilEndRenderPass (Vulkan workarounds) (https://issuetracker.google.com/issues/166475273): Enabled condition: !isQualcommProprietary Allow glFlush to be deferred until renderpass ends * disableDepthStencilResolveThroughAttachment (Vulkan workarounds) (http://anglebug.com/8658): Disabled condition: isNvidia || isQualcommProprietary On some drivers, using a depth/stencil resolve attachment results in errors * disableFlippingBlitWithCommand (Vulkan workarounds) (http://anglebug.com/3498): Disabled condition: IsAndroid() && isQualcommProprietary vkCmdBlitImage with flipped coordinates blits incorrectly. * disablePipelineCacheLoadForTesting (Vulkan workarounds) (https://anglebug.com/8417): Disabled Disable loading the pipeline cache from the blob cache for testing * disableSeparateShaderObjects (Vulkan app workarounds) (https://issuetracker.google.com/309028728): Disabled Disable GL_EXT_separate_shader_objects and cap core ES version to 3.0 * disallowMixedDepthStencilLoadOpNoneAndLoad (Vulkan workarounds) (http://anglebug.com/7370): Disabled condition: isARM && armDriverVersion < ARMDriverVersion(38, 1, 0) Disallow use of LOAD_OP_NONE for only one of the depth or stencil aspects of a depth/stencil attachment * doubleDepthBiasConstantFactor (Vulkan workarounds): Enabled condition: (isIntel && !IsWindows()) || isRADV || isNvidia Due to a Vulkan spec ambiguity, some drivers interpret depthBiasConstantFactor as half the expected value * eglColorspaceAttributePassthrough (Vulkan features) (https://anglebug.com/7319): Disabled condition: IsAndroid() && isSamsung Support passthrough of EGL colorspace attribute values * emulateAdvancedBlendEquations (Vulkan features) (http://anglebug.com/3586): Disabled condition: !mFeatures.supportsBlendOperationAdvanced.enabled && (isVenus || !isIntel) Emulate GL_KHR_blend_equation_advanced * emulateDithering (Vulkan features) (http://anglebug.com/6755): Disabled condition: IsAndroid() && !mFeatures.supportsLegacyDithering.enabled Emulate OpenGL dithering * emulateR32fImageAtomicExchange (Vulkan workarounds) (http://anglebug.com/5535): Enabled condition: true Emulate r32f images with r32ui to support imageAtomicExchange. * emulateTransformFeedback (Vulkan features) (http://anglebug.com/3205): Disabled condition: !mFeatures.supportsTransformFeedbackExtension.enabled && vk::CanSupportTransformFeedbackEmulation(mPhysicalDeviceFeatures) Emulate transform feedback as the VK_EXT_transform_feedback is not present. * emulatedPrerotation180 (Vulkan features) (http://anglebug.com/4901): Disabled Emulate 180-degree prerotation. * emulatedPrerotation270 (Vulkan features) (http://anglebug.com/4901): Disabled Emulate 270-degree prerotation. * emulatedPrerotation90 (Vulkan features) (http://anglebug.com/4901): Disabled Emulate 90-degree prerotation. * enableAdditionalBlendFactorsForDithering (Vulkan app workarounds) (https://issuetracker.google.com/328837151): Disabled Dithering darkens or brightens pixels depending on coordinates and when repeated sufficient numbers of times this effect becomes visible to users. Conditionally enable additional blend factors for dithering * enableAsyncPipelineCacheCompression (Vulkan workarounds) (http://anglebug.com/4722): Enabled condition: true Enable compressing pipeline cache in a thread. * enableMergeClientAttribBuffer (Vulkan features) (https://issuetracker.google.com/328301788): Disabled Enable merge for client attrib buffer if possible * enableMultisampledRenderToTexture (Vulkan workarounds) (http://anglebug.com/4937): Disabled condition: mFeatures.supportsMultisampledRenderToSingleSampled.enabled || mFeatures.supportsMultisampledRenderToSingleSampledGOOGLEX.enabled || (mFeatures.supportsDepthStencilResolve.enabled && mFeatures.allowMultisampledRenderToTextureEmulation.enabled) Expose EXT_multisampled_render_to_texture * enableParallelCompileAndLink (Vulkan features) (http://anglebug.com/8297): Disabled Expose the GL_KHR_parallel_shader_compile extension * enablePipelineCacheDataCompression (Vulkan features) (https://issuetracker.google.com/258207403): Enabled condition: true enable pipeline cache data compression. * enablePortabilityEnumeration (Vulkan workarounds) (http://anglebug.com/8229): Disabled condition: mFeatures.supportsPortabilityEnumeration.enabled && IsApple() Enable use of VK_KHR_portability_enumeration extension * enablePreRotateSurfaces (Vulkan features) (http://anglebug.com/3502): Disabled condition: IsAndroid() Enable Android pre-rotation for landscape applications * enablePrecisionQualifiers (Vulkan features) (http://anglebug.com/3078): Enabled condition: !(IsPixel2(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) && (mPhysicalDeviceProperties.driverVersion < kPixel2DriverWithRelaxedPrecision)) && !IsPixel4(mPhysicalDeviceProperties.vendorID, mPhysicalDeviceProperties.deviceID) Enable precision qualifiers in shaders * explicitlyCastMediumpFloatTo16Bit (Vulkan workarounds) (https://issuetracker.google.com/274859104): Disabled condition: isARM Explicitly cast mediump floating point values to 16 bit * explicitlyEnablePerSampleShading (Vulkan workarounds) (http://anglebug.com/6876): Disabled condition: isARM Explicitly enable per-sample shading if the fragment shader contains the sample qualifier * exposeNonConformantExtensionsAndVersions (Vulkan workarounds) (http://anglebug.com/5375): Disabled condition: kExposeNonConformantExtensionsAndVersions && !isVenus Expose GLES versions and extensions that are not conformant. * forceContinuousRefreshOnSharedPresent (Vulkan features) (https://issuetracker.google.com/229267970): Disabled condition: false Force to create vulkan swapchain with continuous refresh on shared present * forceD16TexFilter (Vulkan workarounds) (http://anglebug.com/3452): Disabled condition: IsAndroid() && isQualcommProprietary VK_FORMAT_D16_UNORM does not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, which prevents OES_depth_texture from being supported. * forceDisableFullScreenExclusive (Vulkan workarounds) (http://anglebug.com/8215): Disabled Device needs VK_EXT_full_screen_exclusive explicitly disabled * forceFallbackFormat (Vulkan workarounds): Disabled Force a fallback format for angle_end2end_tests * forceFragmentShaderPrecisionHighpToMediump (Vulkan workarounds) (https://issuetracker.google.com/184850002): Disabled condition: false Forces highp precision in fragment shader to mediump. * forceMaxUniformBufferSize16KB (Vulkan workarounds) (https://issuetracker.google.com/161903006): Disabled condition: isQualcommProprietary && isAdreno540 Force max uniform buffer size to 16K on some device due to bug * forceNearestFiltering (Vulkan workarounds): Disabled Force nearest filtering when sampling. * forceNearestMipFiltering (Vulkan workarounds): Disabled Force nearest mip filtering when sampling. * forceSampleUsageForAhbBackedImages (Vulkan app workarounds) (https://issuetracker.google.com/155487768): Disabled Force enable VK_IMAGE_USAGE_SAMPLED_BIT usage for all AHB images * forceSubmitImmutableTextureUpdates (Vulkan app workarounds) (http://anglebug.com/6929): Disabled Force submit updates to immutable textures * forceTextureLodOffset1 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 1 when sampling. * forceTextureLodOffset2 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 2 when sampling. * forceTextureLodOffset3 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 3 when sampling. * forceTextureLodOffset4 (Vulkan workarounds): Disabled Increase the minimum texture level-of-detail by 4 when sampling. * forceWaitForSubmissionToCompleteForQueryResult (Vulkan workarounds) (https://issuetracker.google.com/253522366): Disabled condition: isARM || (isNvidia && nvidiaVersion.major < 470u) Force wait for submission to complete before calling getQueryResult(wait). * hasEffectivePipelineCacheSerialization (Vulkan features) (https://anglebug.com/7369): Enabled condition: !isSwiftShader && !nvVersionLessThan520 Whether the implementation serializes the Vulkan pipeline cache effectively. On some implementations, pipeline cache serialization returns no data, so there is no benefit to serializing it * limitSampleCountTo2 (Vulkan workarounds) (http://anglebug.com/8162): Disabled Limit sample count to 2 to save memory on low end devices. * logMemoryReportCallbacks (Vulkan features): Disabled condition: false Log each callback from VK_EXT_device_memory_report * logMemoryReportStats (Vulkan features): Disabled condition: false Log stats from VK_EXT_device_memory_report each swap * mapUnspecifiedColorSpaceToPassThrough (Vulkan features): Disabled condition: ExtensionFound("VK_EXT_swapchain_colorspace", mEnabledInstanceExtensions) Use VK_COLOR_SPACE_PASS_THROUGH_EXT for EGL_NONE or unspecifed color spaces * mergeProgramPipelineCachesToGlobalCache (Vulkan workarounds) (https://anglebug.com/7369): Disabled condition: !mFeatures.supportsGraphicsPipelineLibrary.enabled || (mFeatures.preferMonolithicPipelinesOverLibraries.enabled && libraryBlobsAreReusedByMonolithicPipelines) Whether it's beneficial to merge the pipeline cache for the shaders subset of the pipeline into the monolithic pipeline cache. Only useful on platforms where monolithic pipelines can reuse blobs from partial pipelines * mutableMipmapTextureUpload (Vulkan features) (https://anglebug.com/7308): Enabled condition: canPreferDeviceLocalMemoryHostVisible(mPhysicalDeviceProperties.deviceType) Enable uploading the previously defined mutable mipmap texture. * overrideSurfaceFormatRGB8ToRGBA8 (Vulkan workarounds) (http://anglebug.com/6651): Enabled condition: true Override surface format GL_RGB8 to GL_RGBA8 * padBuffersToMaxVertexAttribStride (Vulkan workarounds) (http://anglebug.com/4428): Disabled condition: isAMD || isSamsung Vulkan considers vertex attribute accesses to count up to the last multiple of the stride. This additional access supports AMD's robust buffer access implementation. AMDVLK in particular will return incorrect values when the vertex access extends into the range that would be the stride padding and the buffer is too small. This workaround limits GL_MAX_VERTEX_ATTRIB_STRIDE to a maximum value and pads up every buffer allocation size to be a multiple of the maximum stride. * perFrameWindowSizeQuery (Vulkan workarounds) (http://anglebug.com/3623, http://anglebug.com/3624, http://anglebug.com/3625): Enabled condition: IsAndroid() || isIntel || (IsWindows() && isAMD) || IsFuchsia() || isSamsung || nativeWindowSystem == angle::NativeWindowSystem::Wayland Vulkan swapchain is not returning VK_ERROR_OUT_OF_DATE when window resizing * permanentlySwitchToFramebufferFetchMode (Vulkan features): Disabled condition: isTileBasedRenderer Whether the context should permanently switch to framebuffer fetch mode on first encounter * persistentlyMappedBuffers (Vulkan features) (http://anglebug.com/2162): Enabled condition: true Persistently map buffer memory to reduce map/unmap IOCTL overhead. * preferAggregateBarrierCalls (Vulkan workarounds) (http://anglebug.com/4633): Enabled condition: isImmediateModeRenderer Single barrier call is preferred over multiple calls with fine grained pipeline stage dependency information * preferCPUForBufferSubData (Vulkan features) (http://issuetracker.google.com/200067929): Disabled condition: isMaliJobManagerBasedGPU Prefer use CPU to do bufferSubData instead of staged update. * preferDeviceLocalMemoryHostVisible (Vulkan features) (http://anglebug.com/7047): Enabled condition: canPreferDeviceLocalMemoryHostVisible(mPhysicalDeviceProperties.deviceType) Prefer adding HOST_VISIBLE flag for DEVICE_LOCAL memory when picking memory types * preferDrawClearOverVkCmdClearAttachments (Vulkan workarounds) (https://issuetracker.google.com/166809097): Disabled condition: isQualcommProprietary On some hardware, clear using a draw call instead of vkCmdClearAttachments in the middle of render pass due to bugs * preferDriverUniformOverSpecConst (Vulkan features) (http://anglebug.com/7406): Disabled condition: (isQualcommProprietary && mPhysicalDeviceProperties.driverVersion < kPixel4DriverWithWorkingSpecConstSupport) || isARM || isPowerVR || isSwiftShader Prefer using driver uniforms instead of specialization constants. * preferHostCachedForNonStaticBufferUsage (Vulkan features) (https://issuetracker.google.com/288119108): Disabled prefer host cached memory for non static buffer usage * preferLinearFilterForYUV (Vulkan features) (https://anglebug.com/7382): Disabled condition: isVenus Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion * preferMSRTSSFlagByDefault (Vulkan features) (http://anglebug.com/8622): Disabled condition: isARM Enable MSRTSS for each image initialization if available * preferMonolithicPipelinesOverLibraries (Vulkan workarounds) (https://anglebug.com/7369): Disabled condition: !mGraphicsPipelineLibraryProperties.graphicsPipelineLibraryFastLinking || isSwiftShader Whether monolithic pipelines perform significantly better than libraries * preferSkippingInvalidateForEmulatedFormats (Vulkan workarounds) (http://anglebug.com/6860): Enabled condition: isImmediateModeRenderer Skipping invalidate is preferred for emulated formats that have extra channels over re-clearing the image * preferSubmitAtFBOBoundary (Vulkan workarounds) (https://issuetracker.google.com/187425444): Disabled condition: isARM || isSwiftShader Submit commands to driver at each FBO boundary for performance improvements. * preferSubmitOnAnySamplesPassedQueryEnd (Vulkan workarounds) (https://issuetracker.google.com/250706693): Disabled condition: isTileBasedRenderer Submit commands to driver when last GL_ANY_SAMPLES_PASSED query is made for performance improvements. * provokingVertex (Vulkan features): Enabled condition: mProvokingVertexFeatures.provokingVertexLast == 1U Enable provoking vertex mode via VK_EXT_provoking_vertex extension * requireCachedBitForStagingBuffer (Vulkan workarounds) (https://issuetracker.google.com/315836169): Enabled condition: !isARM use cached bit as required bit instead of preferred bit for staging buffers * retainSPIRVDebugInfo (Vulkan features) (http://anglebug.com/5901): Disabled condition: getEnableValidationLayers() Retain debug info in SPIR-V blob. * roundOutputAfterDithering (Vulkan workarounds) (http://anglebug.com/6953): Disabled condition: isQualcomm Round output after dithering to workaround a driver bug that rounds the output up * slowAsyncCommandQueueForTesting (Vulkan workarounds) (https://anglebug.com/6574): Disabled Artificially slow down async command queue for threading testing * slowDownMonolithicPipelineCreationForTesting (Vulkan workarounds) (https://anglebug.com/7369): Disabled Artificially slow down async monolithic pipeline creation for threading testing * supportsAndroidHardwareBuffer (Vulkan features): Disabled VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer extension * supportsAndroidNativeFenceSync (Vulkan features) (http://anglebug.com/2517): Enabled condition: (mFeatures.supportsExternalFenceFd.enabled && FencePropertiesCompatibleWithAndroid(externalFenceProperties) && mFeatures.supportsExternalSemaphoreFd.enabled && SemaphorePropertiesCompatibleWithAndroid(externalSemaphoreProperties)) VkDevice supports the EGL_ANDROID_native_fence_sync extension * supportsBindMemory2 (Vulkan features) (https://anglebug.com/4966): Enabled condition: true VkDevice supports the VK_KHR_bind_memory2 extension * supportsBlendOperationAdvanced (Vulkan features) (http://anglebug.com/3586): Disabled condition: ExtensionFound("VK_EXT_blend_operation_advanced", deviceExtensionNames) VkDevice supports VK_EXT_blend_operation_advanced extension. * supportsColorWriteEnable (Vulkan features) (https://anglebug.com/7161): Disabled VkDevice supports VK_EXT_color_write_enable extension * supportsComputeTranscodeEtcToBc (Vulkan features): Disabled condition: !mPhysicalDeviceFeatures.textureCompressionETC2 && kSupportTranscodeEtcToBc && (mSubgroupProperties.supportedOperations & kRequiredSubgroupOp) == kRequiredSubgroupOp && (limitsVk.maxTexelBufferElements >= kMaxTexelBufferSize) supports compute shader transcode etc format to bc format * supportsCustomBorderColor (Vulkan features) (http://anglebug.com/3577): Enabled condition: mCustomBorderColorFeatures.customBorderColors == 1U && mCustomBorderColorFeatures.customBorderColorWithoutFormat == 1U VkDevice supports the VK_EXT_custom_border_color extension * supportsDepthClampZeroOne (Vulkan features) (http://anglebug.com/3970): Enabled condition: mDepthClampZeroOneFeatures.depthClampZeroOne == 1U VkDevice supports the VK_EXT_depth_clamp_zero_one extension * supportsDepthClipControl (Vulkan features) (http://anglebug.com/5421): Enabled condition: mDepthClipControlFeatures.depthClipControl == 1U VkDevice supports VK_EXT_depth_clip_control extension. * supportsDepthStencilIndependentResolveNone (Vulkan features) (http://anglebug.com/7551): Enabled condition: mFeatures.supportsDepthStencilResolve.enabled && mDepthStencilResolveProperties.independentResolveNone VkDevice supports the VK_KHR_depth_stencil_resolve extension with the independentResolveNone feature * supportsDepthStencilResolve (Vulkan features) (http://anglebug.com/4836): Enabled condition: mFeatures.supportsRenderpass2.enabled && mDepthStencilResolveProperties.supportedDepthResolveModes != 0 VkDevice supports the VK_KHR_depth_stencil_resolve extension * supportsExtendedDynamicState (Vulkan features) (http://anglebug.com/5906): Enabled condition: mExtendedDynamicStateFeatures.extendedDynamicState == 1U && !isArm44OrLess VkDevice supports VK_EXT_extended_dynamic_state extension * supportsExtendedDynamicState2 (Vulkan features) (http://anglebug.com/5906): Enabled condition: mExtendedDynamicState2Features.extendedDynamicState2 == 1U && !isArm44OrLess VkDevice supports VK_EXT_extended_dynamic_state2 extension * supportsExternalFenceCapabilities (Vulkan features): Enabled condition: true VkInstance supports the VK_KHR_external_fence_capabilities extension * supportsExternalFenceFd (Vulkan features) (http://anglebug.com/2517): Enabled condition: ExtensionFound("VK_KHR_external_fence_fd", deviceExtensionNames) VkDevice supports the VK_KHR_external_fence_fd extension * supportsExternalFormatResolve (Vulkan features): Disabled condition: false VkDevice supports the VK_ANDROID_external_format_resolve extension * supportsExternalMemoryDmaBufAndModifiers (Vulkan features) (http://anglebug.com/6248): Enabled condition: ExtensionFound("VK_EXT_external_memory_dma_buf", deviceExtensionNames) && ExtensionFound("VK_EXT_image_drm_format_modifier", deviceExtensionNames) VkDevice supports the VK_EXT_external_memory_dma_buf and VK_EXT_image_drm_format_modifier extensions * supportsExternalMemoryFd (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_external_memory_fd", deviceExtensionNames) VkDevice supports the VK_KHR_external_memory_fd extension * supportsExternalMemoryFuchsia (Vulkan features): Disabled condition: ExtensionFound("VK_FUCHSIA_external_memory", deviceExtensionNames) VkDevice supports the VK_FUCHSIA_external_memory extension * supportsExternalMemoryHost (Vulkan features): Disabled VkDevice supports the VK_EXT_external_memory_host extension * supportsExternalSemaphoreCapabilities (Vulkan features): Enabled condition: true VkInstance supports the VK_KHR_external_semaphore_capabilities extension * supportsExternalSemaphoreFd (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_external_semaphore_fd", deviceExtensionNames) VkDevice supports the VK_KHR_external_semaphore_fd extension * supportsExternalSemaphoreFuchsia (Vulkan features): Disabled condition: ExtensionFound("VK_FUCHSIA_external_semaphore", deviceExtensionNames) VkDevice supports the VK_FUCHSIA_external_semaphore extension * supportsFormatFeatureFlags2 (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_format_feature_flags2", deviceExtensionNames) VkDevice supports the VK_KHR_format_feature_flags2 extension * supportsFoveatedRendering (Vulkan features) (http://anglebug.com/8484): Disabled condition: mFeatures.supportsImagelessFramebuffer.enabled && mFeatures.supportsRenderPassLoadStoreOpNone.enabled && mFeatures.supportsFragmentShadingRate.enabled && canSupportFoveatedRendering() Use VK_KHR_fragment_shading_rate extension to implement QCOM foveated rendering extensions * supportsFragmentShaderPixelInterlock (Vulkan features): Enabled condition: mFragmentShaderInterlockFeatures.fragmentShaderPixelInterlock == 1U VkDevice supports the VK_EXT_fragment_shader_interlock extension and has the fragmentShaderPixelInterlock feature * supportsFragmentShadingRate (Vulkan features) (http://anglebug.com/7172): Enabled condition: canSupportFragmentShadingRate() VkDevice supports VK_KHR_fragment_shading_rate extension * supportsFullScreenExclusive (Vulkan features) (http://anglebug.com/8215): Disabled VkDevice supports the VK_EXT_full_screen_exclusive extension * supportsGGPFrameToken (Vulkan features): Disabled VkDevice supports the VK_GGP_frame_token extension * supportsGeometryStreamsCapability (Vulkan features) (http://anglebug.com/3206): Enabled condition: mFeatures.supportsTransformFeedbackExtension.enabled && mTransformFeedbackFeatures.geometryStreams == 1U Implementation supports the GeometryStreams SPIR-V capability. * supportsGetMemoryRequirements2 (Vulkan features) (https://anglebug.com/4830): Enabled condition: true VkDevice supports the VK_KHR_get_memory_requirements2 extension * supportsGraphicsPipelineLibrary (Vulkan features) (https://anglebug.com/7369): Enabled condition: mGraphicsPipelineLibraryFeatures.graphicsPipelineLibrary == 1U && (!isNvidia || nvidiaVersion.major >= 531) && !isRADV VkDevice supports the VK_EXT_graphics_pipeline_library extension * supportsHostImageCopy (Vulkan features): Disabled condition: mHostImageCopyFeatures.hostImageCopy == 1U && mHostImageCopyProperties.identicalMemoryTypeRequirements && !IsFuchsia() VkDevice supports the VK_EXT_host_image_copy extension * supportsHostQueryReset (Vulkan features) (http://anglebug.com/6692): Enabled condition: mHostQueryResetFeatures.hostQueryReset == 1U VkDevice supports VK_EXT_host_query_reset extension * supportsImage2dViewOf3d (Vulkan features) (https://anglebug.com/7320): Enabled condition: mImage2dViewOf3dFeatures.image2DViewOf3D == 1U VkDevice supports VK_EXT_image_2d_view_of_3d * supportsImageCubeArray (Vulkan features) (http://anglebug.com/3584): Enabled condition: mPhysicalDeviceFeatures.imageCubeArray == 1U VkDevice supports the imageCubeArray feature properly * supportsImageFormatList (Vulkan features) (http://anglebug.com/5281): Enabled condition: ExtensionFound("VK_KHR_image_format_list", deviceExtensionNames) Enable VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT by default for ICDs that support VK_KHR_image_format_list * supportsImagelessFramebuffer (Vulkan features) (http://anglebug.com/7553): Enabled condition: mImagelessFramebufferFeatures.imagelessFramebuffer == 1U && !isSamsungDriverWithImagelessFramebufferBug VkDevice supports VK_KHR_imageless_framebuffer extension * supportsIncrementalPresent (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_incremental_present", deviceExtensionNames) VkDevice supports the VK_KHR_incremental_present extension * supportsIndexTypeUint8 (Vulkan features) (http://anglebug.com/4405): Enabled condition: mIndexTypeUint8Features.indexTypeUint8 == 1U VkDevice supports the VK_EXT_index_type_uint8 extension * supportsLegacyDithering (Vulkan features) (https://issuetracker.google.com/284462263): Disabled condition: mDitheringFeatures.legacyDithering == 1U VkDevice supports the VK_EXT_legacy_dithering extension * supportsLockSurfaceExtension (Vulkan features): Disabled condition: IsAndroid() Surface supports the EGL_KHR_lock_surface3 extension * supportsLogicOpDynamicState (Vulkan features) (http://anglebug.com/3862): Enabled condition: mFeatures.supportsExtendedDynamicState2.enabled && mExtendedDynamicState2Features.extendedDynamicState2LogicOp == 1U && !(IsLinux() && isIntel && isMesaLessThan22_2) && !(IsAndroid() && isGalaxyS23) VkDevice supports the logicOp feature of VK_EXT_extended_dynamic_state2 extension * supportsMemoryBudget (Vulkan features): Disabled condition: ExtensionFound("VK_EXT_memory_budget", deviceExtensionNames) VkDevice supports the VK_EXT_memory_budget extension. * supportsMixedReadWriteDepthStencilLayouts (Vulkan features) (https://anglebug.com/7899): Enabled condition: true VkDevice supports the mixed read and write depth/stencil layouts introduced by VK_KHR_maintenance2 * supportsMultiDrawIndirect (Vulkan features) (http://anglebug.com/6439): Enabled condition: mPhysicalDeviceFeatures.multiDrawIndirect == 1U VkDevice supports the multiDrawIndirect extension * supportsMultisampledRenderToSingleSampled (Vulkan features) (http://anglebug.com/4836): Disabled condition: mFeatures.supportsRenderpass2.enabled && mFeatures.supportsDepthStencilResolve.enabled && mMultisampledRenderToSingleSampledFeatures.multisampledRenderToSingleSampled == 1U VkDevice supports the VK_EXT_multisampled_render_to_single_sampled extension * supportsMultisampledRenderToSingleSampledGOOGLEX (Vulkan features) (http://anglebug.com/4836): Disabled condition: !mFeatures.supportsMultisampledRenderToSingleSampled.enabled && mFeatures.supportsRenderpass2.enabled && mFeatures.supportsDepthStencilResolve.enabled && mMultisampledRenderToSingleSampledFeaturesGOOGLEX.multisampledRenderToSingleSampled == 1U VkDevice supports the VK_GOOGLEX_multisampled_render_to_single_sampled extension * supportsMultiview (Vulkan features) (http://anglebug.com/6048): Enabled condition: mMultiviewFeatures.multiview == 1U VkDevice supports the VK_KHR_multiview extension * supportsPipelineCreationFeedback (Vulkan features) (http://anglebug.com/5881): Enabled condition: ExtensionFound("VK_EXT_pipeline_creation_feedback", deviceExtensionNames) VkDevice supports VK_EXT_pipeline_creation_feedback extension * supportsPipelineProtectedAccess (Vulkan features) (https://anglebug.com/7714): Disabled condition: mPipelineProtectedAccessFeatures.pipelineProtectedAccess == 1U && mProtectedMemoryFeatures.protectedMemory == 1U VkDevice supports the VK_EXT_pipeline_protected_access extension * supportsPipelineRobustness (Vulkan features) (https://anglebug.com/5845): Enabled condition: mPipelineRobustnessFeatures.pipelineRobustness == 1U && mPhysicalDeviceFeatures.robustBufferAccess VkDevice supports VK_EXT_pipeline_robustness extension * supportsPipelineStatisticsQuery (Vulkan features) (http://anglebug.com/5430): Enabled condition: mPhysicalDeviceFeatures.pipelineStatisticsQuery == 1U VkDevice supports the pipelineStatisticsQuery feature * supportsPortabilityEnumeration (Vulkan features) (http://anglebug.com/8229): Enabled condition: ExtensionFound("VK_KHR_portability_enumeration", instanceExtensionNames) Vulkan supports VK_KHR_portability_enumeration extension * supportsPresentation (Vulkan features): Enabled condition: nativeWindowSystem != angle::NativeWindowSystem::Gbm VkDisplay supports presentation through a present family queue * supportsPrimitiveTopologyListRestart (Vulkan features) (http://anglebug.com/3832): Enabled condition: mPrimitiveTopologyListRestartFeatures.primitiveTopologyListRestart == 1U VkDevice supports VK_EXT_primitive_topology_list_restart extension. * supportsPrimitivesGeneratedQuery (Vulkan features) (http://anglebug.com/5430): Enabled condition: mFeatures.supportsTransformFeedbackExtension.enabled && mPrimitivesGeneratedQueryFeatures.primitivesGeneratedQuery == 1U VkDevice supports VK_EXT_primitives_generated_query extension * supportsProtectedMemory (Vulkan features) (http://anglebug.com/3965): Disabled condition: mProtectedMemoryFeatures.protectedMemory == 1U && (!isARM || mPipelineProtectedAccessFeatures.pipelineProtectedAccess == 1U) VkDevice supports protected memory * supportsRasterizationOrderAttachmentAccess (Vulkan features) (https://anglebug.com/7604): Disabled condition: !isQualcomm && mRasterizationOrderAttachmentAccessFeatures.rasterizationOrderColorAttachmentAccess == 1U VkDevice supports VK_EXT_rasterization_order_attachment_access extension * supportsRenderPassLoadStoreOpNone (Vulkan features) (http://anglebug.com/5371): Enabled condition: ExtensionFound("VK_EXT_load_store_op_none", deviceExtensionNames) VkDevice supports VK_EXT_load_store_op_none extension. * supportsRenderPassStoreOpNone (Vulkan features) (http://anglebug.com/5055): Disabled condition: !mFeatures.supportsRenderPassLoadStoreOpNone.enabled && ExtensionFound("VK_QCOM_render_pass_store_ops", deviceExtensionNames) VkDevice supports VK_QCOM_render_pass_store_ops extension. * supportsRenderpass2 (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_create_renderpass2", deviceExtensionNames) VkDevice supports the VK_KHR_create_renderpass2 extension * supportsSampler2dViewOf3d (Vulkan features) (https://anglebug.com/7320): Enabled condition: mFeatures.supportsImage2dViewOf3d.enabled && mImage2dViewOf3dFeatures.sampler2DViewOf3D == 1U VkDevice supports the sampler2DViewOf3D feature of VK_EXT_image_2d_view_of_3d * supportsSamplerMirrorClampToEdge (Vulkan features): Enabled condition: ExtensionFound("VK_KHR_sampler_mirror_clamp_to_edge", deviceExtensionNames) VkDevice supports the VK_KHR_sampler_mirror_clamp_to_edge extension * supportsShaderFloat16 (Vulkan features) (http://anglebug.com/4551): Enabled condition: mShaderFloat16Int8Features.shaderFloat16 == 1U VkDevice supports the VK_KHR_shader_float16_int8 extension and has the shaderFloat16 feature * supportsShaderFramebufferFetch (Vulkan features): Disabled condition: (IsAndroid() && isARM) || mFeatures.supportsRasterizationOrderAttachmentAccess.enabled Whether the Vulkan backend supports coherent framebuffer fetch * supportsShaderFramebufferFetchNonCoherent (Vulkan features): Disabled condition: (IsAndroid() && !(isARM || isQualcomm)) || isSwiftShader Whether the Vulkan backend supports non-coherent framebuffer fetch * supportsShaderNonSemanticInfo (Vulkan features) (http://anglebug.com/8549): Disabled condition: false Enable non-semantic info inside shader module via VK_KHR_shader_non_semantic_info extension * supportsShaderStencilExport (Vulkan features): Enabled condition: ExtensionFound("VK_EXT_shader_stencil_export", deviceExtensionNames) VkDevice supports the VK_EXT_shader_stencil_export extension * supportsSharedPresentableImageExtension (Vulkan features): Disabled condition: ExtensionFound("VK_KHR_shared_presentable_image", deviceExtensionNames) VkSurface supports the VK_KHR_shared_presentable_images extension * supportsSurfaceCapabilities2Extension (Vulkan features): Disabled condition: ExtensionFound("VK_KHR_get_surface_capabilities2", instanceExtensionNames) && useVulkanSwapchain == UseVulkanSwapchain::Yes VkInstance supports the VK_KHR_get_surface_capabilities2 extension * supportsSurfaceProtectedCapabilitiesExtension (Vulkan features): Disabled condition: ExtensionFound("VK_KHR_surface_protected_capabilities", instanceExtensionNames) && useVulkanSwapchain == UseVulkanSwapchain::Yes VkInstance supports the VK_KHR_surface_protected_capabilities extension * supportsSurfaceProtectedSwapchains (Vulkan features): Disabled condition: IsAndroid() VkSurface supportsProtected for protected swapchains * supportsSurfacelessQueryExtension (Vulkan features): Disabled condition: ExtensionFound("VK_GOOGLE_surfaceless_query", instanceExtensionNames) && useVulkanSwapchain == UseVulkanSwapchain::Yes && !isMockICDEnabled() && !IsXclipse() VkInstance supports the VK_GOOGLE_surfaceless_query extension * supportsSwapchainMaintenance1 (Vulkan features) (https://anglebug.com/7847): Disabled condition: mSwapchainMaintenance1Features.swapchainMaintenance1 == 1U && useVulkanSwapchain == UseVulkanSwapchain::Yes VkDevice supports the VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions * supportsTimelineSemaphore (Vulkan features): Enabled condition: mTimelineSemaphoreFeatures.timelineSemaphore == 1U VkDevice supports the VK_KHR_timeline_semaphore extension * supportsTimestampSurfaceAttribute (Vulkan features) (https://anglebug.com/7489): Disabled condition: IsAndroid() && ExtensionFound("VK_GOOGLE_display_timing", deviceExtensionNames) Platform supports setting frame timestamp surface attribute * supportsTransformFeedbackExtension (Vulkan features) (http://anglebug.com/3206): Enabled condition: vk::CanSupportTransformFeedbackExtension(mTransformFeedbackFeatures) Transform feedback uses the VK_EXT_transform_feedback extension. * supportsVertexInputDynamicState (Vulkan features) (https://anglebug.com/7162): Enabled condition: mVertexInputDynamicStateFeatures.vertexInputDynamicState == 1U && !(IsWindows() && isIntel) VkDevice supports VK_EXT_vertex_input_dynamic_state extension * supportsYUVSamplerConversion (Vulkan features): Enabled condition: mSamplerYcbcrConversionFeatures.samplerYcbcrConversion != 0U VkDevice supports the VK_KHR_sampler_ycbcr_conversion extension * supportsYuvTarget (Vulkan features): Disabled VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment * swapbuffersOnFlushOrFinishWithSingleBuffer (Vulkan features) (http://anglebug.com/6878): Disabled condition: IsAndroid() Bypass deferredFlush with calling swapbuffers on flush or finish when in Shared Present mode * syncMonolithicPipelinesToBlobCache (Vulkan workarounds) (https://anglebug.com/7369): Disabled condition: mFeatures.hasEffectivePipelineCacheSerialization.enabled && (hasNoPipelineWarmUp || canSyncLargeMonolithicCache) Whether it's beneficial to store monolithic pipelines in the blob cache when VK_EXT_graphics_pipeline_library is in use. Otherwise the libraries are stored only, and monolithic pipelines are recreated on every run * useCullModeDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled && !isArm44OrLess Use the Cull Mode dynamic state from VK_EXT_extended_dynamic_state * useDepthBiasEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState2.enabled Use the Depth Bias Enable dynamic state from VK_EXT_extended_dynamic_state2 * useDepthCompareOpDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled Use the Depth Compare Op dynamic state from VK_EXT_extended_dynamic_state * useDepthTestEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled Use the Depth Test Enable dynamic state from VK_EXT_extended_dynamic_state * useDepthWriteEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled && !isArm44OrLess Use the Depth Write Enable dynamic state from VK_EXT_extended_dynamic_state * useFrontFaceDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled Use the Front Face dynamic state from VK_EXT_extended_dynamic_state * useMultipleDescriptorsForExternalFormats (Vulkan workarounds) (http://anglebug.com/6141): Enabled condition: true Return a default descriptor count for external formats. * useNonZeroStencilWriteMaskStaticState (Vulkan workarounds) (http://anglebug.com/7556): Disabled condition: isARM && armDriverVersion < ARMDriverVersion(43, 0, 0) Work around a driver bug where 0 in stencil write mask static state would make the corresponding dynamic state malfunction in the presence of discard or alpha to coverage * usePrimitiveRestartEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState2.enabled && !isArm44OrLess Use the Primitive Restart Enable dynamic state from VK_EXT_extended_dynamic_state2 * useRasterizerDiscardEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState2.enabled Use the Rasterizer Discard Enable dynamic state from VK_EXT_extended_dynamic_state2 * useResetCommandBufferBitForSecondaryPools (Vulkan workarounds): Disabled condition: isARM Use VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT for initializing SecondaryCommandPools when using VulkanSecondaryCommandBuffer. * useStencilOpDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled Use the Stencil Op dynamic state from VK_EXT_extended_dynamic_state * useStencilTestEnableDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Enabled condition: mFeatures.supportsExtendedDynamicState.enabled Use the Stencil Test Enable dynamic state from VK_EXT_extended_dynamic_state * useVertexInputBindingStrideDynamicState (Vulkan workarounds) (http://anglebug.com/5906): Disabled condition: mFeatures.supportsExtendedDynamicState.enabled && !mFeatures.supportsVertexInputDynamicState.enabled && !isArm44OrLess && !isVertexInputBindingStrideBuggy Use the Vertex Input Bininding Stride dynamic state from VK_EXT_extended_dynamic_state * useVmaForImageSuballocation (Vulkan features): Enabled condition: true Utilize VMA for image memory suballocation. * varyingsRequireMatchingPrecisionInSpirv (Vulkan workarounds) (http://anglebug.com/7488): Disabled condition: isPowerVR Add additional SPIRV instructions to make sure precision between shader stages match with each other * waitIdleBeforeSwapchainRecreation (Vulkan workarounds) (http://anglebug.com/5061): Disabled condition: IsAndroid() && isARM Before passing an oldSwapchain to VkSwapchainCreateInfoKHR, wait for queue to be idle. Works around a bug on platforms which destroy oldSwapchain in vkCreateSwapchainKHR. * warmUpPipelineCacheAtLink (Vulkan features) (http://anglebug.com/5881): Disabled condition: libraryBlobsAreReusedByMonolithicPipelines && !isQualcommProprietary && !(IsLinux() && isIntel) && !(IsChromeOS() && isSwiftShader) Warm up the Vulkan pipeline cache at link time Dawn Info ========= Vulkan backend - Intel(R) Xe Graphics (TGL GT2) ----------------------------------------------------------------- [WebGPU Status] --------------- * Available [Adapter Supported Features] ---------------------------- * depth-clip-control * depth32float-stencil8 * timestamp-query * texture-compression-bc * texture-compression-etc2 * texture-compression-astc * indirect-first-instance * shader-f16 * rg11b10ufloat-renderable * bgra8unorm-storage * float32filterable * dawn-internal-usages * dawn-multi-planar-formats * dawn-native * implicit-device-synchronization * surface-capabilities * transient-attachments * unorm16texture-formats * snorm16texture-formats * adapter-properties-memory-heaps * adapter-properties-vk * format-capabilities * drm-format-capabilities * norm16texture-formats * shared-texture-memory-dma-buf * shared-texture-memory-opaque-fd * shared-fence-vk-semaphore-opaque-fd * shared-fence-vk-semaphore-sync-fd [Enabled Toggle Names] ---------------------- * lazy_clear_resource_on_first_use: (https://crbug.com/dawn/145): Clears resource to zero on first usage. This initializes the resource so that no dirty bits from recycled memory is present in the new resource. * use_temporary_buffer_in_texture_to_texture_copy: (https://crbug.com/dawn/42): Split texture-to-texture copy into two copies: copy from source texture into a temporary buffer, and copy from the temporary buffer into the destination texture when copying between compressed textures that don't have block-aligned sizes. This workaround is enabled by default on all Vulkan drivers to solve an issue in the Vulkan SPEC about the texture-to-texture copies with compressed formats. See #1005 (https://github.com/KhronosGroup/Vulkan-Docs/issues/1005) for more details. * vulkan_use_d32s8: (https://crbug.com/dawn/286): Vulkan mandates support of either D32_FLOAT_S8 or D24_UNORM_S8. When available the backend will use D32S8 (toggle to on) but setting the toggle to off will make it use the D24S8 format when possible. * vulkan_use_s8: (https://crbug.com/dawn/666): Vulkan has a pure stencil8 format but it is not universally available. When this toggle is on, the backend will use S8 for the stencil8 format, otherwise it will fallback to D32S8 or D24S8. * disallow_spirv: (https://crbug.com/1214923): Disallow usage of SPIR-V completely so that only WGSL is used for shader modules. This is useful to prevent a Chromium renderer process from successfully sending SPIR-V code to be compiled in the GPU process. * use_placeholder_fragment_in_vertex_only_pipeline: (https://crbug.com/dawn/136): Use a placeholder empty fragment shader in vertex only render pipeline. This toggle must be enabled for OpenGL ES backend, the Vulkan Backend, and serves as a workaround by default enabled on some Metal devices with Intel GPU to ensure the depth result is correct. * timestamp_quantization: (https://crbug.com/dawn/1800): Enable timestamp queries quantization to reduce the precision of timers that can be created with timestamp queries. * use_vulkan_zero_initialize_workgroup_memory_extension: (https://crbug.com/dawn/1302): Initialize workgroup memory with OpConstantNull on Vulkan when the Vulkan extension VK_KHR_zero_initialize_workgroup_memory is supported. * disable_sub_allocation_for_2d_texture_with_copy_dst_or_render_attachment: (https://crbug.com/1237175): Disable resource sub-allocation for the 2D texture with CopyDst or RenderAttachment usage. Due to driver issues, this toggle is enabled by default on D3D12 backends using Intel Gen9.5 or Gen11 GPUs, on Vulkan backends using Intel Gen12 GPUs, and D3D12 backends using AMD GPUs. * vulkan_use_image_robust_access_2: (https://crbug.com/tint/1890): Disable Tint robustness transform on textures when VK_EXT_robustness2 is supported and robustImageAccess2 == VK_TRUE. * vulkan_use_buffer_robust_access_2: (https://crbug.com/tint/1890): Disable index clamping on the runtime-sized arrays on buffers in Tint robustness transform when VK_EXT_robustness2 is supported and robustBufferAccess2 == VK_TRUE. [WebGPU Required Toggles - enabled] ----------------------------------- * disallow_spirv: (https://crbug.com/1214923): Disallow usage of SPIR-V completely so that only WGSL is used for shader modules. This is useful to prevent a Chromium renderer process from successfully sending SPIR-V code to be compiled in the GPU process. * timestamp_quantization: (https://crbug.com/dawn/1800): Enable timestamp queries quantization to reduce the precision of timers that can be created with timestamp queries. Version Information =================== Data exported : 2024-04-17T15:44:27.761Z Chrome version : Chrome/125.0.6411.0 Operating system : Linux 15849.0.0 Software rendering list URL: https://chromium.googlesource.com/chromium/src/+/1e1feba86652e13dd74bf475d351d928caeb86a5/gpu/config/software_rendering_list.json Driver bug list URL : https://chromium.googlesource.com/chromium/src/+/1e1feba86652e13dd74bf475d351d928caeb86a5/gpu/config/gpu_driver_bug_list.json ANGLE commit id : 926334570f2c 2D graphics backend : Skia/125 2135d686708b128c4b0fbdc87ab262fdfb9107e7 Command Line : /opt/google/chrome/chrome --enable-native-gpu-memory-buffers --enable-webgl-image-chromium --gpu-sandbox-failures-fatal=yes --gpu-sandbox-start-early --video-capture-use-gpu-memory-buffer --enable-logging --log-level=1 --use-cras --enable-wayland-server --user-data-dir=/home/chronos --arc-build-properties={'device': 'volteer_cheets', 'firstApiLevel': '28'} --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --defer-external-display-timeout=10 --enable-touchview --fingerprint-sensor-location=keyboard-bottom-right --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --disable-mojo-broker --ash-use-cros-mojo-service-manager --cros-healthd-uses-service-manager --login-profile=user --has-chromeos-keyboard --enable-touchview --form-factor=CONVERTIBLE --guest-wallpaper-large=/usr/share/chromeos-assets/wallpaper/guest_large.jpg --guest-wallpaper-small=/usr/share/chromeos-assets/wallpaper/guest_small.jpg --child-wallpaper-large=/usr/share/chromeos-assets/wallpaper/child_large.jpg --child-wallpaper-small=/usr/share/chromeos-assets/wallpaper/child_small.jpg --default-wallpaper-large=/usr/share/chromeos-assets/wallpaper/default_large.jpg --default-wallpaper-small=/usr/share/chromeos-assets/wallpaper/default_small.jpg --device-help-content-id=voxel --fingerprint-sensor-location=keyboard-bottom-right --ozone-nnpalm-properties={} --arc-availability=officially-supported --enable-arcvm --arc-erofs --enable-houdini --enable-houdini64 --enterprise-enrollment-initial-modulus=15 --enterprise-enrollment-modulus-limit=19 --enable-crashpad --ml_service=enabled --ondevice_handwriting=use_rootfs --ondevice_document_scanner=use_rootfs --feature-management-level=0 --feature-management-max-level=1 --feature-management-scope=0 --login-user=luca@les.cx --login-profile=d2ef2d1d3a7794f1bcd4c72e07a5e0d60502eafc --feature-flags=["enable-drdc@1","enable-webgl-developer-extensions","enable-webgl-draft-extensions"] --enable-features=ArcAdbSideloading,Borealis,Crostini,CrostiniGpuSupport,EnableDspHotword,OnDeviceSpeechRecognition,Pepper3DImageChromium,PluginVm,QuickUnlockFingerprint,SmartDim,UmaStorageDimensions --disable-features --flag-switches-begin --enable-webgl-developer-extensions --enable-webgl-draft-extensions --enable-features=ArcAdbSideloading,Borealis,Crostini,CrostiniGpuSupport,EnableDspHotword,OnDeviceSpeechRecognition,Pepper3DImageChromium,PluginVm,QuickUnlockFingerprint,SmartDim,UmaStorageDimensions,EnableDrDc --flag-switches-end Driver Information ================== Initialization time : 76 In-process GPU : false Passthrough Command Decoder : true Sandboxed : true GPU0 : VENDOR= 0x8086 [Google Inc. (Intel)], DEVICE=0x9a49 [ANGLE (Intel, Vulkan 1.3.274 (Intel(R) Xe Graphics (TGL GT2) (0x00009A49)), Intel open-source Mesa driver-24.0.2)], REV=1, DRIVER_VENDOR=Mesa, DRIVER_VERSION=driver *ACTIVE* Optimus : false AMD switchable : false GPU CUDA compute capability major version: 0 Pixel shader version : 1.00 Vertex shader version : 1.00 Max. MSAA samples : 16 Machine model name : Machine model version : GL implementation parts : (gl=egl-angle,angle=vulkan) Display type : ANGLE_VULKAN GL_VENDOR : Google Inc. (Intel) GL_RENDERER : ANGLE (Intel, Vulkan 1.3.274 (Intel(R) Xe Graphics (TGL GT2) (0x00009A49)), Intel open-source Mesa driver-24.0.2) GL_VERSION : OpenGL ES 2.0.0 (ANGLE 2.1.22917 git hash: 926334570f2c) GL_EXTENSIONS : GL_AMD_performance_monitor GL_ANGLE_base_vertex_base_instance GL_ANGLE_base_vertex_base_instance_shader_builtin GL_ANGLE_client_arrays GL_ANGLE_compressed_texture_etc GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_get_image GL_ANGLE_get_serialized_context_string GL_ANGLE_get_tex_level_parameter GL_ANGLE_instanced_arrays GL_ANGLE_logic_op GL_ANGLE_memory_object_flags GL_ANGLE_memory_size GL_ANGLE_multi_draw GL_ANGLE_pack_reverse_row_order GL_ANGLE_polygon_mode GL_ANGLE_program_cache_control GL_ANGLE_read_only_depth_stencil_feedback_loops GL_ANGLE_relaxed_vertex_attribute_type GL_ANGLE_request_extension GL_ANGLE_rgbx_internal_format GL_ANGLE_robust_client_memory GL_ANGLE_robust_fragment_shader_output GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_ANGLE_vulkan_image GL_APPLE_clip_distance GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_lose_context GL_EXT_EGL_image_external_wrap_modes GL_EXT_base_instance GL_EXT_blend_func_extended GL_EXT_blend_minmax GL_EXT_buffer_storage GL_EXT_clip_control GL_EXT_color_buffer_half_float GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_clamp GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_draw_elements_base_vertex GL_EXT_float_blend GL_EXT_frag_depth GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_multi_draw_indirect GL_EXT_multisample_compatibility GL_EXT_occlusion_query_boolean GL_EXT_polygon_offset_clamp GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_separate_shader_objects GL_EXT_shader_non_constant_global_initializers GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_texture_border_clamp GL_EXT_texture_compression_bptc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_mirror_clamp_to_edge GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_type_2_10_10_10_REV GL_EXT_unpack_subimage GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_NV_depth_buffer_float2 GL_NV_fence GL_NV_framebuffer_blit GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_NV_polygon_mode GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_compressed_EAC_R11_signed_texture GL_OES_compressed_EAC_R11_unsigned_texture GL_OES_compressed_EAC_RG11_signed_texture GL_OES_compressed_EAC_RG11_unsigned_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_ETC2_RGB8_texture GL_OES_compressed_ETC2_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_RGBA8_texture GL_OES_compressed_ETC2_punchthroughA_sRGB8_alpha_texture GL_OES_compressed_ETC2_sRGB8_alpha8_texture GL_OES_compressed_ETC2_sRGB8_texture GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_draw_elements_base_vertex GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_primitive_bounding_box GL_OES_rgb8_rgba8 GL_OES_sample_shading GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_3D GL_OES_texture_border_clamp GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_vertex_half_float GL_QCOM_shading_rate Disabled Extensions : GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_MESA_framebuffer_flip_y Disabled WebGL Extensions : Window system binding vendor : Google Inc. (Intel) Window system binding version : 1.5 (ANGLE 2.1.22917 git hash: 926334570f2c) Window system binding extensions: EGL_EXT_create_context_robustness EGL_ANGLE_surface_orientation EGL_KHR_create_context EGL_KHR_image EGL_KHR_image_base EGL_EXT_image_gl_colorspace EGL_KHR_gl_colorspace EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_blob_cache EGL_ANDROID_recordable EGL_ANDROID_native_fence_sync EGL_ANGLE_create_context_backwards_compatible EGL_KHR_no_config_context EGL_IMG_context_priority EGL_KHR_create_context_no_error EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_reusable_sync EGL_EXT_buffer_age EGL_ANGLE_create_surface_swap_interval EGL_ANGLE_vulkan_image EGL_KHR_partial_update EGL_ANGLE_global_fence_sync Direct rendering version : unknown Reset notification strategy : 0x8252 GPU process crash count : 0 gfx::BufferFormats supported for allocation and texturing: R_8: supported, R_16: not supported, RG_88: not supported, RG_1616: not supported, BGR_565: supported, RGBA_4444: not supported, RGBX_8888: supported, RGBA_8888: supported, BGRX_8888: supported, BGRA_1010102: supported, RGBA_1010102: supported, BGRA_8888: supported, RGBA_F16: supported, YVU_420: supported, YUV_420_BIPLANAR: supported, YUVA_420_TRIPLANAR: not supported, P010: supported Compositor Information ====================== Tile Update Mode: One-copy Partial Raster : Enabled GpuMemoryBuffers Status ======================= R_8 : CAMERA_AND_CPU_READ_WRITE, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING R_16 : Software only RG_88 : SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING RG_1616 : Software only BGR_565 : GPU_READ RGBA_4444 : Software only RGBX_8888 : GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING RGBA_8888 : GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING BGRX_8888 : GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING BGRA_1010102 : SCANOUT, SCANOUT_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING RGBA_1010102 : SCANOUT, SCANOUT_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING BGRA_8888 : GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_FRONT_RENDERING RGBA_F16 : Software only YVU_420 : GPU_READ, SCANOUT_VEA_CPU_READ, VEA_READ_CAMERA_AND_CPU_READ_WRITE YUV_420_BIPLANAR : SCANOUT_CAMERA_READ_WRITE, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, SCANOUT_VEA_CPU_READ, SCANOUT_FRONT_RENDERING, VEA_READ_CAMERA_AND_CPU_READ_WRITE YUVA_420_TRIPLANAR: Software only P010 : GPU_READ_CPU_READ_WRITE Display(s) Information ====================== Info : Display[2785062953156608] bounds=[0,0 1410x940], workarea=[0,0 1410x940], scale=1.6, rotation=0, panel_rotation=0 internal detected Color space (all) : {primaries:BT709, transfer:SRGB, matrix:RGB, range:FULL} Buffer format (all) : BGRA_8888 Color volume : {name:'srgb', r:[0.6400, 0.3300], g:[0.3000, 0.6000], b:[0.1500, 0.3300], w:[0.3127, 0.3290]} SDR white level in nits : 203 HDR relative maximum luminance: 1 Bits per color component : 8 Bits per pixel : 24 Refresh Rate in Hz : 59.998512268066406 Video Acceleration Information ============================== Decoding : Decode h264 baseline : 16x16 to 4096x4096 pixels Decode h264 main : 16x16 to 4096x4096 pixels Decode h264 high : 16x16 to 4096x4096 pixels Decode vp8 : 16x16 to 4096x4096 pixels Decode vp9 profile0 : 16x16 to 16384x16384 pixels Decode vp9 profile2 : 16x16 to 16384x16384 pixels Decode hevc main : 16x16 to 16384x16384 pixels Decode hevc main 10 : 16x16 to 16384x16384 pixels Decode hevc main still-picture: 16x16 to 16384x16384 pixels Decode av1 profile main : 16x16 to 16384x16384 pixels Encoding : Encode h264 baseline : 321x241 to 4096x4096 pixels, and/or 30.000 fps. Encode h264 main : 321x241 to 4096x4096 pixels, and/or 30.000 fps. Encode h264 high : 321x241 to 4096x4096 pixels, and/or 30.000 fps. Encode vp9 profile0 : 321x241 to 8192x8192 pixels, and/or 30.000 fps. Vulkan Information ================== info: { "apiVersion": "1.3.275", "usedApiVersion": "1.1.0", "instanceExtensions": { "VK_KHR_device_group_creation": 1, "VK_KHR_display": 23, "VK_KHR_external_fence_capabilities": 1, "VK_KHR_external_memory_capabilities": 1, "VK_KHR_external_semaphore_capabilities": 1, "VK_KHR_get_display_properties2": 1, "VK_KHR_get_physical_device_properties2": 2, "VK_KHR_get_surface_capabilities2": 1, "VK_KHR_surface": 25, "VK_KHR_surface_protected_capabilities": 1, "VK_EXT_acquire_drm_display": 1, "VK_EXT_debug_report": 10, "VK_EXT_debug_utils": 2, "VK_EXT_direct_mode_display": 1, "VK_EXT_display_surface_counter": 1, "VK_EXT_swapchain_colorspace": 4, "VK_KHR_portability_enumeration": 1, "VK_LUNARG_direct_driver_loading": 1 }, "enabledInstanceExtensions": [ "VK_EXT_debug_report" ], "instanceLayers": [], "physicalDevices": [ { "properties": { "apiVersion": "1.3.274", "driverVersion": "24.0.2", "vendorID": 32902, "deviceID": 39497, "deviceType": 1, "deviceName": "Intel(R) Xe Graphics (TGL GT2)", "pipelineCacheUUID": "6ac649fa-56b1-9096-e53b-296c9ebbd953", "limits": { "maxImageDimension1D": 16384, "maxImageDimension2D": 16384, "maxImageDimension3D": 2048, "maxImageDimensionCube": 16384, "maxImageArrayLayers": 2048, "maxTexelBufferElements": 134217728, "maxUniformBufferRange": 1073741824, "maxStorageBufferRange": 4096221184, "maxPushConstantsSize": 128, "maxMemoryAllocationCount": 4294967295, "maxSamplerAllocationCount": 65536, "bufferImageGranularity": 1, "sparseAddressSpaceSize": 0, "maxBoundDescriptorSets": 8, "maxPerStageDescriptorSamplers": 65535, "maxPerStageDescriptorUniformBuffers": 64, "maxPerStageDescriptorStorageBuffers": 65535, "maxPerStageDescriptorSampledImages": 65535, "maxPerStageDescriptorStorageImages": 65535, "maxPerStageDescriptorInputAttachments": 64, "maxPerStageResources": 4294967295, "maxDescriptorSetSamplers": 393210, "maxDescriptorSetUniformBuffers": 384, "maxDescriptorSetUniformBuffersDynamic": 8, "maxDescriptorSetStorageBuffers": 393210, "maxDescriptorSetStorageBuffersDynamic": 8, "maxDescriptorSetSampledImages": 393210, "maxDescriptorSetStorageImages": 393210, "maxDescriptorSetInputAttachments": 256, "maxVertexInputAttributes": 29, "maxVertexInputBindings": 31, "maxVertexInputAttributeOffset": 2047, "maxVertexInputBindingStride": 4095, "maxVertexOutputComponents": 128, "maxTessellationGenerationLevel": 64, "maxTessellationPatchSize": 32, "maxTessellationControlPerVertexInputComponents": 128, "maxTessellationControlPerVertexOutputComponents": 128, "maxTessellationControlPerPatchOutputComponents": 128, "maxTessellationControlTotalOutputComponents": 2048, "maxTessellationEvaluationInputComponents": 128, "maxTessellationEvaluationOutputComponents": 128, "maxGeometryShaderInvocations": 32, "maxGeometryInputComponents": 128, "maxGeometryOutputComponents": 128, "maxGeometryOutputVertices": 256, "maxGeometryTotalOutputComponents": 1024, "maxFragmentInputComponents": 116, "maxFragmentOutputAttachments": 8, "maxFragmentDualSrcAttachments": 1, "maxFragmentCombinedOutputResources": 131078, "maxComputeSharedMemorySize": 65536, "maxComputeWorkGroupCount": [ 65535, 65535, 65535 ], "maxComputeWorkGroupInvocations": 1024, "maxComputeWorkGroupSize": [ 1024, 1024, 1024 ], "subPixelPrecisionBits": 8, "subTexelPrecisionBits": 8, "mipmapPrecisionBits": 8, "maxDrawIndexedIndexValue": 4294967295, "maxDrawIndirectCount": 4294967295, "maxSamplerLodBias": 16, "maxSamplerAnisotropy": 16, "maxViewports": 16, "maxViewportDimensions": [ 16384, 16384 ], "viewportBoundsRange": [ -32768, 32767 ], "viewportSubPixelBits": 13, "minMemoryMapAlignment": 4096, "minTexelBufferOffsetAlignment": 1, "minUniformBufferOffsetAlignment": 1, "minStorageBufferOffsetAlignment": 1, "minTexelOffset": -8, "maxTexelOffset": 7, "minTexelGatherOffset": -32, "maxTexelGatherOffset": 31, "minInterpolationOffset": -0.5, "maxInterpolationOffset": 0.4375, "subPixelInterpolationOffsetBits": 4, "maxFramebufferWidth": 16384, "maxFramebufferHeight": 16384, "maxFramebufferLayers": 2048, "framebufferColorSampleCounts": 31, "framebufferDepthSampleCounts": 31, "framebufferStencilSampleCounts": 31, "framebufferNoAttachmentsSampleCounts": 31, "maxColorAttachments": 8, "sampledImageColorSampleCounts": 31, "sampledImageIntegerSampleCounts": 31, "sampledImageDepthSampleCounts": 31, "sampledImageStencilSampleCounts": 31, "storageImageSampleCounts": 1, "maxSampleMaskWords": 1, "timestampComputeAndGraphics": true, "timestampPeriod": 52.08333206176758, "maxClipDistances": 8, "maxCullDistances": 8, "maxCombinedClipAndCullDistances": 8, "discreteQueuePriorities": 2, "pointSizeRange": [ 0.125, 255.875 ], "lineWidthRange": [ 0, 8 ], "pointSizeGranularity": 0.125, "lineWidthGranularity": 0.0078125, "strictLines": false, "standardSampleLocations": true, "optimalBufferCopyOffsetAlignment": 1, "optimalBufferCopyRowPitchAlignment": 1, "nonCoherentAtomSize": 1 }, "sparseProperties": { "residencyStandard2DBlockShape": false, "residencyStandard2DMultisampleBlockShape": false, "residencyStandard3DBlockShape": false, "residencyAlignedMipSize": false, "residencyNonResidentStrict": false } }, "extensions": { "VK_KHR_8bit_storage": 1, "VK_KHR_16bit_storage": 1, "VK_KHR_bind_memory2": 1, "VK_KHR_buffer_device_address": 1, "VK_KHR_calibrated_timestamps": 1, "VK_KHR_cooperative_matrix": 2, "VK_KHR_copy_commands2": 1, "VK_KHR_create_renderpass2": 1, "VK_KHR_dedicated_allocation": 3, "VK_KHR_deferred_host_operations": 4, "VK_KHR_depth_stencil_resolve": 1, "VK_KHR_descriptor_update_template": 1, "VK_KHR_device_group": 4, "VK_KHR_draw_indirect_count": 1, "VK_KHR_driver_properties": 1, "VK_KHR_dynamic_rendering": 1, "VK_KHR_external_fence": 1, "VK_KHR_external_fence_fd": 1, "VK_KHR_external_memory": 1, "VK_KHR_external_memory_fd": 1, "VK_KHR_external_semaphore": 1, "VK_KHR_external_semaphore_fd": 1, "VK_KHR_format_feature_flags2": 2, "VK_KHR_fragment_shading_rate": 2, "VK_KHR_get_memory_requirements2": 1, "VK_KHR_global_priority": 1, "VK_KHR_image_format_list": 1, "VK_KHR_imageless_framebuffer": 1, "VK_KHR_incremental_present": 2, "VK_KHR_maintenance1": 2, "VK_KHR_maintenance2": 1, "VK_KHR_maintenance3": 1, "VK_KHR_maintenance4": 2, "VK_KHR_maintenance5": 1, "VK_KHR_maintenance6": 1, "VK_KHR_map_memory2": 1, "VK_KHR_multiview": 1, "VK_KHR_pipeline_executable_properties": 1, "VK_KHR_pipeline_library": 1, "VK_KHR_present_id": 1, "VK_KHR_present_wait": 1, "VK_KHR_push_descriptor": 2, "VK_KHR_relaxed_block_layout": 1, "VK_KHR_sampler_mirror_clamp_to_edge": 3, "VK_KHR_sampler_ycbcr_conversion": 14, "VK_KHR_separate_depth_stencil_layouts": 1, "VK_KHR_shader_atomic_int64": 1, "VK_KHR_shader_clock": 1, "VK_KHR_shader_draw_parameters": 1, "VK_KHR_shader_float16_int8": 1, "VK_KHR_shader_float_controls": 4, "VK_KHR_shader_integer_dot_product": 1, "VK_KHR_shader_non_semantic_info": 1, "VK_KHR_shader_subgroup_extended_types": 1, "VK_KHR_shader_subgroup_uniform_control_flow": 1, "VK_KHR_shader_terminate_invocation": 1, "VK_KHR_spirv_1_4": 1, "VK_KHR_storage_buffer_storage_class": 1, "VK_KHR_swapchain": 70, "VK_KHR_swapchain_mutable_format": 1, "VK_KHR_synchronization2": 1, "VK_KHR_timeline_semaphore": 2, "VK_KHR_uniform_buffer_standard_layout": 1, "VK_KHR_variable_pointers": 1, "VK_KHR_vertex_attribute_divisor": 1, "VK_KHR_vulkan_memory_model": 3, "VK_KHR_workgroup_memory_explicit_layout": 1, "VK_KHR_zero_initialize_workgroup_memory": 1, "VK_EXT_4444_formats": 1, "VK_EXT_border_color_swizzle": 1, "VK_EXT_buffer_device_address": 2, "VK_EXT_calibrated_timestamps": 2, "VK_EXT_color_write_enable": 1, "VK_EXT_conditional_rendering": 2, "VK_EXT_conservative_rasterization": 1, "VK_EXT_custom_border_color": 12, "VK_EXT_depth_bias_control": 1, "VK_EXT_depth_clamp_zero_one": 1, "VK_EXT_depth_clip_control": 1, "VK_EXT_depth_clip_enable": 1, "VK_EXT_descriptor_indexing": 2, "VK_EXT_display_control": 1, "VK_EXT_dynamic_rendering_unused_attachments": 1, "VK_EXT_extended_dynamic_state": 1, "VK_EXT_extended_dynamic_state2": 1, "VK_EXT_extended_dynamic_state3": 2, "VK_EXT_external_memory_dma_buf": 1, "VK_EXT_external_memory_host": 1, "VK_EXT_fragment_shader_interlock": 1, "VK_EXT_global_priority": 2, "VK_EXT_global_priority_query": 1, "VK_EXT_graphics_pipeline_library": 1, "VK_EXT_host_query_reset": 1, "VK_EXT_image_2d_view_of_3d": 1, "VK_EXT_image_drm_format_modifier": 2, "VK_EXT_image_robustness": 1, "VK_EXT_image_sliced_view_of_3d": 1, "VK_EXT_image_view_min_lod": 1, "VK_EXT_index_type_uint8": 1, "VK_EXT_inline_uniform_block": 1, "VK_EXT_line_rasterization": 1, "VK_EXT_load_store_op_none": 1, "VK_EXT_multi_draw": 1, "VK_EXT_mutable_descriptor_type": 1, "VK_EXT_nested_command_buffer": 1, "VK_EXT_non_seamless_cube_map": 1, "VK_EXT_pci_bus_info": 2, "VK_EXT_physical_device_drm": 1, "VK_EXT_pipeline_creation_cache_control": 3, "VK_EXT_pipeline_creation_feedback": 1, "VK_EXT_pipeline_robustness": 1, "VK_EXT_post_depth_coverage": 1, "VK_EXT_primitive_topology_list_restart": 1, "VK_EXT_primitives_generated_query": 1, "VK_EXT_private_data": 1, "VK_EXT_provoking_vertex": 1, "VK_EXT_queue_family_foreign": 1, "VK_EXT_robustness2": 1, "VK_EXT_sample_locations": 1, "VK_EXT_sampler_filter_minmax": 2, "VK_EXT_scalar_block_layout": 1, "VK_EXT_separate_stencil_usage": 1, "VK_EXT_shader_atomic_float": 1, "VK_EXT_shader_atomic_float2": 1, "VK_EXT_shader_demote_to_helper_invocation": 1, "VK_EXT_shader_module_identifier": 1, "VK_EXT_shader_stencil_export": 1, "VK_EXT_shader_subgroup_ballot": 1, "VK_EXT_shader_subgroup_vote": 1, "VK_EXT_shader_viewport_index_layer": 1, "VK_EXT_subgroup_size_control": 2, "VK_EXT_texel_buffer_alignment": 1, "VK_EXT_tooling_info": 1, "VK_EXT_transform_feedback": 1, "VK_EXT_vertex_attribute_divisor": 3, "VK_EXT_vertex_input_dynamic_state": 2, "VK_EXT_ycbcr_image_arrays": 1, "VK_AMD_buffer_marker": 1, "VK_GOOGLE_decorate_string": 1, "VK_GOOGLE_hlsl_functionality1": 1, "VK_GOOGLE_user_type": 1, "VK_INTEL_shader_integer_functions2": 1, "VK_NV_compute_shader_derivatives": 1, "VK_VALVE_mutable_descriptor_type": 1 }, "features": { "robustBufferAccess": true, "fullDrawIndexUint32": true, "imageCubeArray": true, "independentBlend": true, "geometryShader": true, "tessellationShader": true, "sampleRateShading": true, "dualSrcBlend": true, "logicOp": true, "multiDrawIndirect": true, "drawIndirectFirstInstance": true, "depthClamp": true, "depthBiasClamp": true, "fillModeNonSolid": true, "depthBounds": true, "wideLines": true, "largePoints": true, "alphaToOne": true, "multiViewport": true, "samplerAnisotropy": true, "textureCompressionETC2": true, "textureCompressionASTCLDR": true, "textureCompressionBC": true, "occlusionQueryPrecise": true, "pipelineStatisticsQuery": true, "vertexPipelineStoresAndAtomics": true, "fragmentStoresAndAtomics": true, "shaderTessellationAndGeometryPointSize": true, "shaderImageGatherExtended": true, "shaderStorageImageExtendedFormats": true, "shaderStorageImageMultisample": false, "shaderStorageImageReadWithoutFormat": false, "shaderStorageImageWriteWithoutFormat": true, "shaderUniformBufferArrayDynamicIndexing": true, "shaderSampledImageArrayDynamicIndexing": true, "shaderStorageBufferArrayDynamicIndexing": true, "shaderStorageImageArrayDynamicIndexing": true, "shaderClipDistance": true, "shaderCullDistance": true, "shaderFloat64": false, "shaderInt64": true, "shaderInt16": true, "shaderResourceResidency": false, "shaderResourceMinLod": true, "sparseBinding": false, "sparseResidencyBuffer": false, "sparseResidencyImage2D": false, "sparseResidencyImage3D": false, "sparseResidency2Samples": false, "sparseResidency4Samples": false, "sparseResidency8Samples": false, "sparseResidency16Samples": false, "sparseResidencyAliased": false, "variableMultisampleRate": true, "inheritedQueries": true }, "featureSamplerYcbcrConversion": true, "featureProtectedMemory": false, "queueFamilies": [ { "queueFlags": 7, "queueCount": 1, "timestampValidBits": 36, "minImageTransferGranularity": { "width": 1, "height": 1, "depth": 1 } } ] } ] } Device Performance Information ============================== Log Messages ============ 2024-04-17T15:29:22.742263Z WARNING chrome[8520:8520]: [gpu_init.cc(337)] : Starting gpu initialization. 2024-04-17T15:29:22.761828Z WARNING chrome[8520:8520]: [gbm_surface_factory.cc(182)] : Platform device extensions not found. 2024-04-17T15:29:22.810368Z WARNING chrome[8520:8520]: [gpu_init.cc(608)] : Using passthrough command decoder. NOTE: This log is to help triage feedback reports and does not by itself mean there is an issue. 2024-04-17T15:29:22.812248Z VERBOSE1 chrome[8520:8520]: [gbm_surface_factory.cc(231)] : Found Gbm Device at /dev/dri/renderD128 2024-04-17T15:29:22.813363Z WARNING chrome[8520:8520]: [gpu_main.cc(362)] : gpu initialization completed init_success:1 2024-04-17T15:29:22.813710Z ERROR chrome[8520:8556]: [default_socket.cc(59)] : /run/perfetto/ exists but cannot be accessed. Falling back on /tmp/ (errno: 13, Permission denied) 2024-04-17T15:29:22.820086Z VERBOSE1 chrome[8520:8520]: [gbm_surface_factory.cc(231)] : Found Gbm Device at /dev/dri/renderD128 2024-04-17T15:29:22.954631Z VERBOSE1 chrome[8520:8553]: [drm_device_manager.cc(42)] : Primary DRM device added: /sys/devices/pci0000:00/0000:00:02.0/drm/card0 2024-04-17T15:29:22.985422Z WARNING chrome[8520:8553]: [drm_gpu_display_manager.cc(533)] : SetColorTemperatureAdjustment: there is no display with ID 2785062953156608 2024-04-17T15:29:22.985483Z WARNING chrome[8520:8553]: [drm_gpu_display_manager.cc(566)] : SetColorMatrix: there is no display with ID 2785062953156608 2024-04-17T15:29:23.958247Z VERBOSE1 chrome[8520:8553]: [screen_manager.cc(312)] : DRM testing: {"card0":{"base_connector=276":["{connector=276 crtc=91 mode=2256x1504@60+(0,0)}"]}} 2024-04-17T15:29:23.958601Z VERBOSE1 chrome[8520:8553]: [screen_manager.cc(321)] : Test-modeset succeeded. 2024-04-17T15:29:23.958794Z VERBOSE1 chrome[8520:8553]: [screen_manager.cc(312)] : DRM configuring: {"card0":{"base_connector=276":["{connector=276 crtc=91 mode=2256x1504@60+(0,0)}"]}} 2024-04-17T15:29:23.974820Z VERBOSE1 chrome[8520:8553]: [screen_manager.cc(334)] : Modeset succeeded. 2024-04-17T15:30:29.073452Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 13059051 2024-04-17T15:30:29.073540Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 392516648 2024-04-17T15:30:29.073563Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 566837297 2024-04-17T15:30:29.073582Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1323480413 2024-04-17T15:30:29.073601Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1579226582 2024-04-17T15:30:29.073621Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1793109273 2024-04-17T15:30:29.073640Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1909966793 2024-04-17T15:30:29.073658Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1925021599 2024-04-17T15:30:29.073676Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 1943984447 2024-04-17T15:30:29.073697Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 2187350548 2024-04-17T15:30:29.073717Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 2260818228 2024-04-17T15:30:29.073737Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 2567716200 2024-04-17T15:30:29.073762Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 3209973736 2024-04-17T15:30:29.073786Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 3246905546 2024-04-17T15:30:29.073806Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 3423892978 2024-04-17T15:30:29.073826Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 3867987773 2024-04-17T15:30:29.073846Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 3961480405 2024-04-17T15:30:29.073868Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 4132967467 2024-04-17T15:30:29.073889Z WARNING chrome[8520:8520]: [skottie_wrapper_impl.cc(131)] : Encountered unknown property node with hash: 4155569757 2024-04-17T15:31:36.938213Z ERROR chrome[8520:8520]: [shared_image_manager.cc(225)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox. 2024-04-17T15:32:15.964135Z ERROR chrome[8520:8520]: [shared_image_manager.cc(225)] : SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.