Open Bug 1358916 Opened 7 years ago Updated 2 years ago

Blacklist D2D for GeForce 7300 SE/7200 GS

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

REOPENED

People

(Reporter: Oriol, Unassigned)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

Attached image screencast.gif
I have an old computer with an old NVIDIA GeForce 7300 SE/7200 GS graphics card.

I installed Windows 10 on this PC. It uses the Microsoft Basic Display Adapter because NVIDIA didn't release drivers for this card on Windows 10.

Firefox attempts to use Direct3D 11 with Direct2D 1.1. However, this produces awful artifacts when scrolling.

Disabling D2D (gfx.direct2d.disabled = true) works just fine. So no need to disable D3D 11, only D2D.

This is the graphics info:
> Features
>  - Compositing:                Direct3D 11
>  - Asynchronous Pan/Zoom:      none
>  - WebGL Renderer:             Google Inc. -- ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0)
>  - WebGL2 Renderer:            Google Inc. -- ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0)
>  - Audio Backend:              wasapi
>  - Direct2D:                   true
>  - DirectWrite:                true (10.0.14393.953)
> GPU #1
>  - Active:                     Yes
>  - Description:                Microsoft Basic Display Adapter
>  - Vendor ID:                  0x10de
>  - Device ID:                  0x01d3
>  - Driver Version:             10.0.14393.0
>  - Driver Date:                6-21-2006
>  - Drivers:                    Unknown
>  - Subsys ID:                  00000000
>  - RAM:                        0
> Diagnostics
>  - AzureCanvasAccelerated:     0
>  - AzureCanvasBackend:         direct2d 1.1
>  - AzureContentBackend:        direct2d 1.1
>  - AzureFallbackCanvasBackend: skia
>  - failures:                   [GFX1-]: VendorIDMismatch V 0x10de 0x1414
> Decision Log
>  - D3D9_COMPOSITING:           disabled by default: Disabled by default
>  - GPU_PROCESS:                unavailable by runtime: Multi-process mode is not enabled
> Failure Log
>  - (#0) Error:                 VendorIDMismatch V 0x10de 0x1414
Interestingly, it seems either enabling e10s or bug 1325227 fixes the problem. Since it will land on Firefox 54, probably there is no need to do anything.
Sorry for reacting so late. Looks like the issue is resolved, please don't hesitate to reopen the bug if the problem happens again. The fact that bug 1325227 fixed this is a bit worrying.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Yes, this problem when scrolling is fixed. But occasionally I have seen some black artifacts, which might also be caused by D2D. I haven't found any way to reliably reproduce that, though.
This was regressed again by bug 1375743, which enabled layers.mlgpu.dev-enabled.
Enabling e10s or disabling D2D still solves the problem.
Blocks: 1375743
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Oriol, what does about:support graphics look like now?  Do you still get the mismatch vendor message, and is it still showing Microsoft Basic with Nvidia vendor id?
Flags: needinfo?(oriol-bugzilla)
It looks like this:

> Features
>  - Compositing:                Direct3D 11 (Advanced Layers)
>  - Asynchronous Pan/Zoom:      none
>  - WebGL 1 Driver WSI Info:
>     - EGL_VENDOR:              Google Inc. (adapter LUID: 000000000000602a)
>     - EGL_VERSION:             1.4 (ANGLE 2.1.0.dec065540d5f)
>     - EGL_EXTENSIONS:          EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource 
>     - EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses 
>  - WebGL 1 Driver Renderer:    Google Inc. -- ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0)
>  - WebGL 1 Driver Version:     OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
>  - WebGL 1 Driver Extensions:  GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives 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 
>  - WebGL 1 Extensions:         ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
>  - WebGL 2 Driver WSI Info:
>     - EGL_VENDOR:              Google Inc. (adapter LUID: 000000000000602a)
>     - EGL_VERSION:             1.4 (ANGLE 2.1.0.dec065540d5f)
>     - EGL_EXTENSIONS:          EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource 
>     - EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses 
>  - WebGL 2 Driver Renderer:    Google Inc. -- ANGLE (Microsoft Basic Render Driver Direct3D11 vs_5_0 ps_5_0)
>  - WebGL 2 Driver Version:     OpenGL ES 3.0 (ANGLE 2.1.0.dec065540d5f)
>  - WebGL 2 Driver Extensions:  GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives 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 
>  - WebGL 2 Extensions:         EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
>  - Direct2D:                   true
>  - DirectWrite:                true (10.0.14393.1358)
> GPU #1
>  - Active:                     Yes
>  - Description:                Microsoft Basic Display Adapter
>  - Vendor ID:                  0x10de
>  - Device ID:                  0x01d3
>  - Driver Version:             10.0.14393.0
>  - Driver Date:                6-21-2006
>  - Drivers:                    Unknown
>  - Subsys ID:                  00000000
>  - RAM:                        0
> Diagnostics
>  - AzureCanvasAccelerated:     0
>  - AzureCanvasBackend:         direct2d 1.1
>  - AzureContentBackend:        direct2d 1.1
>  - AzureFallbackCanvasBackend: skia
>  - Device Reset:               Trigger Device Reset
>  - failures:                   [GFX1-]: VendorIDMismatch V 0x10de 0x1414
> Decision Log
>  - GPU_PROCESS:                unavailable by default: Multi-process mode is not enabled
>  - WEBRENDER:
>     - opt-in by default:       WebRender is an opt-in feature
>     - unavailable by runtime:  GPU Process is disabled
> Failure Log
>  - (#0) Error:                 VendorIDMismatch V 0x10de 0x1414

The vendor mismatch is because it's a NVIDIA card (with vendor ID 0x10DE, see http://www.nvidia.com/object/device_ids.html) but it has Microsoft's drivers (with vendor ID 0x1414, see https://msdn.microsoft.com/en-us/library/windows/desktop/bb205075(v=vs.85).aspx#WARP_new_for_Win8).
Flags: needinfo?(oriol-bugzilla)
Whiteboard: [gfx-noted]
Seems fixed on Windows 10 version 1709. Now it says
>  - DirectWrite                 true (10.0.16299.15)
>  - Driver Version              10.0.16299.15

In another partition I haven't upgraded yet to 1709, and I still see the problem. There it's
>  - DirectWrite                 true (10.0.15063.483)
>  - Driver Version              10.0.15063.0

The driver date is still 6-21-2006 in both cases, despite it seems the version has been updated.
I thought D2D was at least dx10/11? Why would it be used for a dx9 card? With not even a proper accelerated driver, nonetheless?

P.s. I'm told last w8 driver should work just fine on w10 http://www.nvidia.com/download/driverResults.aspx/82758
(In reply to mirh from comment #8)
> I thought D2D was at least dx10/11? Why would it be used for a dx9 card?
> With not even a proper accelerated driver, nonetheless?
> P.s. I'm told last w8 driver should work just fine on w10
> http://www.nvidia.com/download/driverResults.aspx/82758

I think in the past I tried installing the Windows 8 driver, and then Firefox effectively used D3D9.
But if I don't manually install any driver, then Windows 10 uses Microsoft's driver, and Firefox uses D3D11 with D2D.
Well, something is obviously wrong if a 2006 driver is somehow asked to do DX11 stuff.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: