mono / SkiaSharp

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
MIT License
4.55k stars 543 forks source link

[BUG] SKGLElement gives black screen on Intel integrated graphics #2837

Open AhmedEssoubai opened 7 months ago

AhmedEssoubai commented 7 months ago

Description

We are trying to use the new SKGLElement WPF element for our project to replace the WinFormsHost solution since it has many issues when integrated in a WPF project. The element works fine on a machine with an Nvidia or AMD graphic card. But, when tested on a machine with integrated Intel graphics only (or the other is disabled), it does not work for all graphics cards. On one of the testing machine that have an Intel HDG 4600 graphics card, we have a newly installed Windows 11 on it.

When using WinFormsHost with SKGLControl, it works just fine.

SKGLElement is based on GLWpfControl(https://github.com/opentk/GLWpfControl). We did try out this control, and it did result in the same issue. There are others faced the same issue: https://github.com/opentk/GLWpfControl/issues/73.

@mattleibow @gmurray81 do you have any suggestions on how to resolve such issue. Is it a problem with the control or the machine it self? if so, why SKGLControl works fine on this machine? Aren't they both use OpenGL?

Code

e.Surface.Canvas.Clear(new SKColor(255, 0, 0));

Expected Behavior

No response

Actual Behavior

No response

Version of SkiaSharp

3.x (Alpha)

Last Known Good Version of SkiaSharp

2.88.2 (Previous)

IDE / Editor

Visual Studio (Windows)

Platform / Operating System

Windows

Platform / Operating System Version

Windows 11

Devices

HP Mini PC with Intel HDG 4600

Relevant Screenshots

No response

Relevant Log Output

No response

Code of Conduct

romen-h commented 2 months ago

I have been working around this issue by upgrading or downgrading Intel graphics drivers, it seems to be an issue on Intel's side unfortunately. It's also likely to be an issue that the upstream GlWpfControl would have to fix rather than SkiaSharp.

I had a system with Intel UHD 630 and tested a bunch of driver versions to find the exact version that the problem started happening:

Driver Version,     MM/DD/YYYY,     Working
15.40.7.4279,       09/01/2015,         Yes
15.40.14.4352,      12/23/2015,         Yes
15.40.15.4360,      12/21/2015,         Yes
15.40.16.4364,      01/06/2016,         Yes 
15.40.21.4416,      03/23/2016,         No
15.40.23.4444,      04/22/2016,         No
15.40.30.4531,      09/29/2016,         No
15.40.37.4835,      11/06/2017,         No
15.40.42.5063,      03/19/2019,         No
15.40.48.5171,      02/05/2021,         No