brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.84k stars 2.33k forks source link

Hardware acceleration issue #16183

Open ghost opened 3 years ago

ghost commented 3 years ago

Description of the issue: White screen After restoring the Brave Window from minimized state

How can this issue be reproduced?

1) Enable Hardware acceleration 2) open few tabs with websites 3) minimize and wait for 20-30 seconds or couple of minutes 4) Maximize/Restore Brave Window and then for few seconds a white screen is displayed

Expected result:

Brave Version( check About Brave): [ Version 1.25.68 Chromium: 91.0.4472.77 (Official Build) (64-bit)

Additional Information:

Graphic card : Intel HD 630/ Nvidia GTX 1060 . Windows 21H1/20H2 Its the same with both Intel and Nvidia. I already tried to open brave with Nvidia No issue with other chromium based browser like Edge and Chrome.

Graphic driver is updated

I even tried to do a clean installation of Windows 10 21h1

chuckmckinnon commented 3 years ago

Oh my gosh, I have my browser back!! Disabling hardware acceleration did the trick; thank you!

A couple of days ago, Brave just started... lagging. Taking forever to launch, with a white screen (10+ seconds). Taking just as long to open a new tab. Not redrawing unless I minimized and re-maximized the browser. And so on. I've been too busy with work so I reverted to Firefox for casual browsing and Edge for work. I had time tonight to look for a solution, so I dropped in to Github to look for a related issue and found this. It needs fixing, but in the meantime, thanks!

Lenovo T470s, i7-7600u with Intel HD 620 on Windows 10 20H2. Brave 1.25.70 Chromium: 91.0.4472.77 (Official Build) (64-bit)

ghost commented 3 years ago

No Update yet ?

rebron commented 3 years ago

@onespot97 Are you still having issues with our latest 1.31.87 with hardware acceleration enabled?

ghost commented 3 years ago

Yes, finally a reply after months and now m on Windows 11. But i will double check by reinstalling the browser.

ghost commented 3 years ago

Yes. The issue still persist even after reinstalling Brave latest version on Windows 11

rebron commented 3 years ago

@onespot97 Can you post the details of what you have here: brave://gpu/ If you open that same page in chrome or edge, anything that sticks out that's different?

ghost commented 3 years ago

On Brave :

Graphics Feature Status Canvas: Hardware accelerated Canvas out-of-process rasterization: Disabled Compositing: Hardware accelerated Multiple Raster Threads: Enabled Out-of-process Rasterization: Hardware accelerated OpenGL: Enabled Rasterization: Hardware accelerated Skia Renderer: Enabled Video Decode: Hardware accelerated Vulkan: Disabled WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds clear_uniforms_before_first_program_use decode_encode_srgb_for_generatemipmap disable_d3d11_video_decoder disable_delayed_copy_nv12 disable_direct_composition_sw_video_overlays disable_direct_composition_video_overlays disable_media_foundation_hardware_security enable_webgl_timer_query_extensions exit_on_context_lost disabled_extension_GL_KHR_blend_equation_advanced disabled_extension_GL_KHR_blend_equation_advanced_coherent

On Edge :

Graphics Feature Status Canvas: Hardware accelerated Canvas out-of-process rasterization: Disabled Compositing: Hardware accelerated Multiple Raster Threads: Enabled Out-of-process Rasterization: Hardware accelerated OpenGL: Enabled Rasterization: Hardware accelerated Skia Renderer: Enabled Video Decode: Hardware accelerated Vulkan: Disabled WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds check_ycbcr_studio_g22_left_p709_for_nv12_support clear_uniforms_before_first_program_use decode_encode_srgb_for_generatemipmap disable_decode_swap_chain disable_direct_composition_sw_video_overlays enable_bgra8_overlays_with_yuv_overlay_support enable_webgl_timer_query_extensions exit_on_context_lost max_msaa_sample_count_4 msaa_is_slow disabled_extension_GL_KHR_blend_equation_advanced disabled_extension_GL_KHR_blend_equation_advanced_coherent

sahil-rathi commented 3 years ago

@onespot97 Are you still having issues with our latest 1.31.87 with hardware acceleration enabled?

@onespot97 Can you post the details of what you have here: brave://gpu/ If you open that same page in chrome or edge, anything that sticks out that's different?

Hey , I use brave and have some issues regarding hardware acceleration. If I turn it off :

1) Youtube videos lag at higher resolution and in/out of fullscreen for videos is laggy. 2) Twitch videos stuck freez for 5-15 seconds while I am on other tab while the audio still goes fine. 3)When I alt+tab to go to other screens while any tab is in full screen be it just full screen tab aur video, most of the time it doesn't show that browser window in full screen.

If I turn it on :

All the above issues are fixed but whole screen starts flickering on random intervals which is very irritating to the eyes. So I request a fix to this issue as without hardware acceleration on, videos are laggy and the experience becomes bad many times.

chrislockard commented 2 years ago

Chiming in because I think my issue is similar: on a fresh Windows 11 installation on a Lenovo Legion 5 (AMD 5800H iGPU and Nvidia 3050 Ti dGPU) Brave is the only chromium-based browser I'm experiencing extreme lagging and crashing with. Disabling hardware acceleration makes brave responsive and usable, but utilizes much more cpu.

Drivers are up-to-date for both AMD (21.11.3) and nVidia (496.49).

brave://gpu

Graphics Feature Status

  • Canvas: Hardware accelerated
  • Canvas out-of-process rasterization: Disabled
  • Compositing: Hardware accelerated
  • Multiple Raster Threads: Enabled
  • Out-of-process Rasterization: Hardware accelerated
  • OpenGL: Enabled
  • Rasterization: Hardware accelerated
  • Raw Draw: Disabled
  • Skia Renderer: Enabled
  • Video Decode: Hardware accelerated
  • Vulkan: Disabled
  • WebGL: Hardware accelerated
  • WebGL2: Hardware accelerated

Driver Bug Workarounds

  • clear_uniforms_before_first_program_use
  • decode_encode_srgb_for_generatemipmap
  • disable_delayed_copy_nv12
  • disable_direct_composition_sw_video_overlays
  • enable_webgl_timer_query_extensions
  • exit_on_context_lost
  • disabled_extension_GL_KHR_blend_equation_advanced
  • disabled_extension_GL_KHR_blend_equation_advanced_coherent

Problems Detected

ANGLE Features

  • allow_compressed_formats (Frontend workarounds): Enabled: true
    Allow compressed formats
  • disable_anisotropic_filtering (Frontend workarounds): Disabled
    Disable support for anisotropic filtering
  • disable_program_binary (Frontend features) anglebug:5007: Disabled
    Disable support for GL_OES_get_program_binary
  • disable_program_caching_for_transform_feedback (Frontend workarounds): Disabled
    On some GPUs, program binaries don't contain transform feedback varyings
  • enableCompressingPipelineCacheInThreadPool (Frontend workarounds) anglebug:4722: Disabled: false
    Enable compressing pipeline cache in thread pool.
  • enableProgramBinaryForCapture (Frontend features) anglebug:5658: Disabled
    Even if FrameCapture is enabled, enable GL_OES_get_program_binary
  • enable_capture_limits (Frontend features) anglebug:5750: Disabled
    Set the context limits like frame capturing was enabled
  • forceInitShaderVariables (Frontend features): Disabled
    Force-enable shader variable initialization
  • forceRobustResourceInit (Frontend features) anglebug:6041: Disabled
    Force-enable robust resource init
  • lose_context_on_out_of_memory (Frontend workarounds): Enabled: true
    Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs
  • scalarize_vec_and_mat_constructor_args (Frontend workarounds) 1165751: Disabled: false
    Always rewrite vec/mat constructors to be consistent
  • sync_framebuffer_bindings_on_tex_image (Frontend workarounds): Disabled
    On some drivers TexImage sometimes seems to interact with the Framebuffer
  • add_mock_texture_no_render_target (D3D workarounds) anglebug:2152: Disabled: isIntel && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164815)
    On some drivers when rendering with no render target, two bugs lead to incorrect behavior
  • allowES3OnFL10_0 (D3D workarounds): Disabled: false
    Allow ES3 on 10.0 devices
  • allow_clear_for_robust_resource_init (D3D workarounds) 941620: Enabled: true
    Some drivers corrupt texture data when clearing for robust resource initialization.
  • allow_translate_uniform_block_to_structured_buffer (D3D workarounds) anglebug:3682: Enabled: IsWin10OrGreater()
    There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer.
  • call_clear_twice (D3D workarounds) 655534: Disabled: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164771)
    Using clear() may not take effect
  • depth_stencil_blit_extra_copy (D3D workarounds) anglebug:1452: Disabled: (part1 <= 13u && part2 < 6881) && isNvidia && driverVersionValid
    Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil
  • disable_b5g6r5_support (D3D workarounds): Disabled: (isIntel && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154539)) || isAMD
    Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data
  • emulate_isnan_float (D3D workarounds) 650547: Disabled: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164542)
    Using isnan() on highp float will get wrong answer
  • emulate_tiny_stencil_textures (D3D workarounds): Disabled: isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1)
    1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly
  • expand_integer_pow_expressions (D3D workarounds): Enabled: true
    The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions
  • flush_after_ending_transform_feedback (D3D workarounds): Enabled: isNvidia
    Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions
  • force_atomic_value_resolution (D3D workarounds) anglebug:3246: Enabled: isNvidia
    On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation
  • get_dimensions_ignores_base_level (D3D workarounds): Enabled: isNvidia
    Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin
  • mrt_perf_workaround (D3D workarounds): Enabled: true
    Some drivers have a bug where they ignore null render targets
  • pre_add_texel_fetch_offsets (D3D workarounds): Disabled: isIntel
    HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range
  • rewrite_unary_minus_operator (D3D workarounds): Disabled: isIntel && (isBroadwell || isHaswell) && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154624)
    Evaluating unary minus operator on integer may get wrong answer in vertex shaders
  • select_view_in_geometry_shader (D3D workarounds): Disabled: !deviceCaps.supportsVpRtIndexWriteFromVertexShader
    The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension
  • set_data_faster_than_image_upload (D3D workarounds): Enabled: !(isIvyBridge || isBroadwell || isHaswell)
    Set data faster than image upload
  • skip_vs_constant_register_zero (D3D workarounds): Enabled: isNvidia
    In specific cases the driver doesn't handle constant register zero correctly
  • use_instanced_point_sprite_emulation (D3D workarounds): Disabled: isFeatureLevel9_3
    Some D3D11 renderers do not support geometry shaders for pointsprite emulation
  • use_system_memory_for_constant_buffers (D3D workarounds) 593024: Disabled: isIntel
    Copying from staging storage to constant buffer storage does not work
  • zero_max_lod (D3D workarounds): Disabled: isFeatureLevel9_3
    Missing an option to disable mipmaps on a mipmapped texture

DAWN Info


    <Discrete GPU> D3D12 backend - NVIDIA GeForce RTX 3050 Ti Laptop GPU
    [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <Integrated GPU> D3D12 backend - AMD Radeon(TM) Graphics
  • [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <CPU> D3D12 backend - Microsoft Basic Render Driver
  • [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <Discrete GPU> Vulkan backend - NVIDIA GeForce RTX 3050 Ti Laptop GPU
  • [Default 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 ituse the D24S8 format when possible.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • depth_clamping: dawn-internal-usages: <Integrated GPU> Vulkan backend - AMD Radeon(TM) Graphics
  • [Default 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 ituse the D24S8 format when possible.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • depth_clamping: dawn-internal-usages: undefined

Version Information

Data exported | 2021-11-24T18:26:52.824Z -- | -- Chrome version | Chrome/96.0.4664.45 Operating system | Windows NT 10.0.22000 Software rendering list URL | https://chromium.googlesource.com/chromium/src/+/76e4c1bb2ab4671b8beba3444e61c0f17584b2fc/gpu/config/software_rendering_list.json Driver bug list URL | https://chromium.googlesource.com/chromium/src/+/76e4c1bb2ab4671b8beba3444e61c0f17584b2fc/gpu/config/gpu_driver_bug_list.json ANGLE commit id | fc379ea0f411 2D graphics backend | Skia/96 eca463eb20a11c3c569304228ede2adb29a4228b Command Line | "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --component-updater=url-source=https://go-updater.brave.com/extensions --disable-client-side-phishing-detection --disable-domain-reliability --disable-features=CopyLinkToText,ComputePressure,AdInterestGroupAPI,FirstPartySets,AutofillEnableAccountWalletStorage,AppDiscoveryRemoteUrlSearch,InterestGroupStorage,ConversionMeasurement,IdleDetection,AutofillServerCommunication,WebSQLInThirdPartyContextEnabled,TabGroupsFeedback,Parakeet,LiveCaption,SignedExchangeSubresourcePrefetch,NavigatorPluginsFixed,Prerender2,SpeculationRulesPrefetchProxy,DirectSockets,TrustTokens,HandwritingRecognitionWebPlatformApiFinch,FlocIdComputedEventLogging,ReportAllJavaScriptFrameworks,InterestCohortFeaturePolicy,InterestCohortAPIOriginTrial,NotificationTriggers,WebOTP,FederatedLearningOfCohorts,ReadLater,TextFragmentAnchor,Fledge,SubresourceWebBundles,NetworkTimeServiceQuerying --enable-dom-distiller --enable-features=WebUIDarkMode,AutoupgradeMixedContent,SafetyTip,WinrtGeolocationImplementation,PrefetchPrivacyChanges,PasswordImport,ReducedReferrerGranularity,LegacyTLSEnforced --lso-url=https://no-thanks.invalid --no-pings --origin-trial-public-key=bYUKPJoPnCxeNvu72j4EmPuK7tr1PAC7SHh8ld9Mw3E=,fMS4mpO6buLQ/QMd+zJmxzty/VQ6B1EUZqoCU04zoRU= --sync-url=https://sync-v2.brave.com/v2 --variations-server-url=https://variations.brave.com/seed --enable-features=LegacyTLSEnforced,ReducedReferrerGranularity,PasswordImport,PrefetchPrivacyChanges,WinrtGeolocationImplementation,SafetyTip,AutoupgradeMixedContent,WebUIDarkMode --disable-features=NetworkTimeServiceQuerying,SubresourceWebBundles,Fledge,TextFragmentAnchor,ReadLater,FederatedLearningOfCohorts,WebOTP,NotificationTriggers,InterestCohortAPIOriginTrial,HandwritingRecognitionWebPlatformApiFinch,FlocIdComputedEventLogging,TrustTokens,DirectSockets,SpeculationRulesPrefetchProxy,Prerender2,WebSQLInThirdPartyContextEnabled,AutofillServerCommunication,Parakeet,TabGroupsFeedback,SignedExchangeSubresourcePrefetch,NavigatorPluginsFixed,LiveCaption,IdleDetection,InterestGroupStorage,ConversionMeasurement,ComputePressure,AdInterestGroupAPI,CopyLinkToText,InterestCohortFeaturePolicy,ReportAllJavaScriptFrameworks,FirstPartySets,AutofillEnableAccountWalletStorage,AppDiscoveryRemoteUrlSearch --flag-switches-begin --flag-switches-end

Log Messages

  • GpuProcessHost: The info collection GPU process exited normally. Everything is okay.
edge://gpu

Graphics Feature Status

  • Canvas: Hardware accelerated
  • Canvas out-of-process rasterization: Disabled
  • Compositing: Hardware accelerated
  • Multiple Raster Threads: Enabled
  • Out-of-process Rasterization: Hardware accelerated
  • OpenGL: Enabled
  • Rasterization: Hardware accelerated
  • Raw Draw: Disabled
  • Skia Renderer: Enabled
  • Video Decode: Hardware accelerated
  • Vulkan: Disabled
  • WebGL: Hardware accelerated
  • WebGL2: Hardware accelerated

Driver Bug Workarounds

  • clear_uniforms_before_first_program_use
  • decode_encode_srgb_for_generatemipmap
  • disable_delayed_copy_nv12
  • disable_direct_composition_sw_video_overlays
  • disable_nv12_dynamic_textures
  • disable_vp_scaling
  • disallow_vp9_resilient_dxva_decoding
  • enable_webgl_timer_query_extensions
  • exit_on_context_lost
  • limit_d3d11_video_decoder_to_11_0
  • use_empty_video_hdr_metadata
  • disabled_extension_GL_KHR_blend_equation_advanced
  • disabled_extension_GL_KHR_blend_equation_advanced_coherent

Problems Detected

ANGLE Features

  • allow_compressed_formats (Frontend workarounds): Enabled: true
    Allow compressed formats
  • disable_anisotropic_filtering (Frontend workarounds): Disabled
    Disable support for anisotropic filtering
  • disable_program_binary (Frontend features) anglebug:5007: Disabled
    Disable support for GL_OES_get_program_binary
  • disable_program_caching_for_transform_feedback (Frontend workarounds): Disabled
    On some GPUs, program binaries don't contain transform feedback varyings
  • enableCompressingPipelineCacheInThreadPool (Frontend workarounds) anglebug:4722: Disabled: false
    Enable compressing pipeline cache in thread pool.
  • enableProgramBinaryForCapture (Frontend features) anglebug:5658: Disabled
    Even if FrameCapture is enabled, enable GL_OES_get_program_binary
  • enable_capture_limits (Frontend features) anglebug:5750: Disabled
    Set the context limits like frame capturing was enabled
  • forceInitShaderVariables (Frontend features): Disabled
    Force-enable shader variable initialization
  • forceRobustResourceInit (Frontend features) anglebug:6041: Disabled
    Force-enable robust resource init
  • lose_context_on_out_of_memory (Frontend workarounds): Enabled: true
    Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs
  • scalarize_vec_and_mat_constructor_args (Frontend workarounds) 1165751: Disabled: false
    Always rewrite vec/mat constructors to be consistent
  • sync_framebuffer_bindings_on_tex_image (Frontend workarounds): Disabled
    On some drivers TexImage sometimes seems to interact with the Framebuffer
  • add_mock_texture_no_render_target (D3D workarounds) anglebug:2152: Disabled: isIntel && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164815)
    On some drivers when rendering with no render target, two bugs lead to incorrect behavior
  • allowES3OnFL10_0 (D3D workarounds): Disabled: false
    Allow ES3 on 10.0 devices
  • allow_clear_for_robust_resource_init (D3D workarounds) 941620: Enabled: true
    Some drivers corrupt texture data when clearing for robust resource initialization.
  • allow_translate_uniform_block_to_structured_buffer (D3D workarounds) anglebug:3682: Enabled: IsWin10OrGreater()
    There is a slow fxc compile performance issue with dynamic uniform indexing if translating a uniform block with a large array member to cbuffer.
  • call_clear_twice (D3D workarounds) 655534: Disabled: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164771)
    Using clear() may not take effect
  • depth_stencil_blit_extra_copy (D3D workarounds) anglebug:1452: Disabled
    Bug in some drivers triggers a TDR when using CopySubresourceRegion from a staging texture to a depth/stencil
  • disable_b5g6r5_support (D3D workarounds): Enabled: (isIntel && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154539)) || isAMD
    Textures with the format DXGI_FORMAT_B5G6R5_UNORM have incorrect data
  • emulate_isnan_float (D3D workarounds) 650547: Disabled: isIntel && isSkylake && capsVersion >= IntelDriverVersion(160000) && capsVersion < IntelDriverVersion(164542)
    Using isnan() on highp float will get wrong answer
  • emulate_tiny_stencil_textures (D3D workarounds): Enabled: isAMD && !(deviceCaps.featureLevel < D3D_FEATURE_LEVEL_10_1)
    1x1 and 2x2 mips of depth/stencil textures aren't sampled correctly
  • expand_integer_pow_expressions (D3D workarounds): Enabled: true
    The HLSL optimizer has a bug with optimizing 'pow' in certain integer-valued expressions
  • flush_after_ending_transform_feedback (D3D workarounds): Disabled: isNvidia
    Some drivers sometimes write out-of-order results to StreamOut buffers when transform feedback is used to repeatedly write to the same buffer positions
  • force_atomic_value_resolution (D3D workarounds) anglebug:3246: Disabled: isNvidia
    On some drivers the return value from RWByteAddressBuffer.InterlockedAdd does not resolve when used in the .yzw components of a RWByteAddressBuffer.Store operation
  • get_dimensions_ignores_base_level (D3D workarounds): Disabled: isNvidia
    Some drivers do not take into account the base level of the texture in the results of the HLSL GetDimensions builtin
  • mrt_perf_workaround (D3D workarounds): Enabled: true
    Some drivers have a bug where they ignore null render targets
  • pre_add_texel_fetch_offsets (D3D workarounds): Disabled: isIntel
    HLSL's function texture.Load returns 0 when the parameter Location is negative, even if the sum of Offset and Location is in range
  • rewrite_unary_minus_operator (D3D workarounds): Disabled: isIntel && (isBroadwell || isHaswell) && capsVersion >= IntelDriverVersion(150000) && capsVersion < IntelDriverVersion(154624)
    Evaluating unary minus operator on integer may get wrong answer in vertex shaders
  • select_view_in_geometry_shader (D3D workarounds): Disabled: !deviceCaps.supportsVpRtIndexWriteFromVertexShader
    The viewport or render target slice will be selected in the geometry shader stage for the ANGLE_multiview extension
  • set_data_faster_than_image_upload (D3D workarounds): Enabled: !(isIvyBridge || isBroadwell || isHaswell)
    Set data faster than image upload
  • skip_vs_constant_register_zero (D3D workarounds): Disabled: isNvidia
    In specific cases the driver doesn't handle constant register zero correctly
  • use_instanced_point_sprite_emulation (D3D workarounds): Disabled: isFeatureLevel9_3
    Some D3D11 renderers do not support geometry shaders for pointsprite emulation
  • use_system_memory_for_constant_buffers (D3D workarounds) 593024: Disabled: isIntel
    Copying from staging storage to constant buffer storage does not work
  • zero_max_lod (D3D workarounds): Disabled: isFeatureLevel9_3
    Missing an option to disable mipmaps on a mipmapped texture

DAWN Info


    <Integrated GPU> D3D12 backend - AMD Radeon(TM) Graphics
    [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <Discrete GPU> D3D12 backend - NVIDIA GeForce RTX 3050 Ti Laptop GPU
  • [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <CPU> D3D12 backend - Microsoft Basic Render Driver
  • [Default 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_d3d12_resource_heap_tier2: https://crbug.com/dawn/27: Enable support for resource heap tier 2. Resource heap tier 2 allows mixing of texture and buffers in the same heap. This allows better heap re-use and reduces fragmentation.
  • use_d3d12_render_pass: https://crbug.com/dawn/36: Use the D3D12 render pass API introduced in Windows build 1809 by default. On versions of Windows prior to build 1809, or when this toggle is turned off, Dawn will emulate a render pass.
  • use_d3d12_residency_management: https://crbug.com/dawn/193: Enable residency management. This allows page-in and page-out of resource heaps in GPU memory. This component improves overcommitted performance by keeping the most recently used resources local to the GPU. Turning this component off can cause allocation failures when application memory exceeds physical device memory.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • dawn-internal-usages: multiplanar_formats: <Integrated GPU> Vulkan backend - AMD Radeon(TM) Graphics
  • [Default 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 ituse the D24S8 format when possible.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • depth_clamping: dawn-internal-usages: <Discrete GPU> Vulkan backend - NVIDIA GeForce RTX 3050 Ti Laptop GPU
  • [Default 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 ituse the D24S8 format when possible.
  • disallow_unsafe_apis: http://crbug.com/1138528: Produces validation errors on API entry points or parameter combinations that aren't considered secure yet.
  • use_tint_generator: https://crbug.com/dawn/571: Use Tint instead of SPRIV-cross to generate shaders.
  • [WebGPU Forced 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 sendingSPIR-V code to be compiled in the GPU process.
  • [Supported Features]
  • texture_compression_bc: pipeline_statistics_query: timestamp_query
  • depth_clamping: dawn-internal-usages: undefined

Version Information

Data exported | 2021-11-24T18:38:14.156Z -- | -- Edge version | Edg/96.0.1054.34 Operating system | Windows NT 10.0.22000 Software rendering list URL | https://chromium.googlesource.com/chromium/src/+/38cededc5d09b785d12203f1d3209aa6eb293e79/gpu/config/software_rendering_list.json Driver bug list URL | https://chromium.googlesource.com/chromium/src/+/38cededc5d09b785d12203f1d3209aa6eb293e79/gpu/config/gpu_driver_bug_list.json ANGLE commit id | ddf494af345a 2D graphics backend | Skia/96 910d785f026afa4e6fa5a433dbda1a576f86d46f Command Line | "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --flag-switches-begin --flag-switches-end

Log Messages

  • GpuProcessHost: The info collection GPU process exited normally. Everything is okay.

Editing to call out the fact that I have performed no customization to Brave.

Edit 2: Brave version is Version 1.32.106 Chromium: 96.0.4664.45 (Official Build) (64-bit)

tilchl commented 2 years ago

Sadly still a problem in Chrome version Chrome/97.0.4692.71 brave://GPU compared to Edge gives these differences

Entry Brave Edge
Driver D3D12 feature level D3D 12.2 Not supported
GL_VERSION OpenGL ES 2.0.0 ANGLE 2.1.17202 git hash: 7ccfe9ae7cb9 ANGLE 2.1.24942 git hash: 270ddf4f441b
Media Foundation Rendering Capabilities completely missing bunch of stuff
Decode hevc main missing available

In Youtube the video plays fine as long as the mouse hovers over it and it triggers the playback overlay, or the "stats for nerds" are layed over the video. Could that be some sort of low priority thing for just the playback?

My specs: AMD 5950X, AMD 6800xt, 32GB 3600cl14

Markus700 commented 2 years ago

I also have extreme issues with hardware acceleration. Videos, for example twitch, are stuttering and lagging extreme. This issue only occurs with enabled hardware acceleration.

On Google Chrome hardware acceleration works like a charm.

brave:gpu and chrome:gpu looks practicly identical.

System: Ryzen 5800x RTX3080

Any info I can provide?

tilchl commented 2 years ago

Chromium shows the same behavior as Brave.

So this most likely needs to be fixed in chromium/chromium

sdgoihew commented 1 year ago

Man, you saved my life! I didn't knew HW accel can be turned off.

I tried to post this problem (crashes after renaming crome.exe to something.exe on AMD on Windows https://habr.com/ru/companies/yandex/articles/721374/ ) on reddit, but moders deleted my thread.