[BUG] libSkiaSharp.dll Requires d3d12.dll causing crashes on systems without DX12
Description
There is a hard dependency on DX12 in the latest versions of SkiaSharp. After porting one of our legacy Win32 apps to use SkiaSharp, out of a sample of 1 million installations around 0.1% are crashing because their systems don't have DX12, alll mostly on Windows 10.
Code
This should be a runtime dependency that is dynamically loaded.
Expected Behavior
SkiaSharp loads the necessary DX12 libraries at runtime
Actual Behavior
It has a link time dependency which causes crashes on systems which aren't fully updated.
Version of SkiaSharp
3.116.0 (Current)
Last Known Good Version of SkiaSharp
2.88.9 (Previous)
IDE / Editor
Visual Studio (Windows), Visual Studio Code (Windows)
Platform / Operating System
Windows
Platform / Operating System Version
No response
Devices
No response
Relevant Screenshots
No response
Relevant Log Output
Code of Conduct
- [x] I agree to follow this project's Code of Conduct
We've found some similar issues:
- #3267 , similarity score: 86%
If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.
Note: You can give me feedback by 👍 or 👎 this comment.
Triage Summary
Labels will be applied to indicate a reliability issue related to crashes in the SkiaSharp library due to a hard dependency on DX12 and to specify the affected platform (Windows 10).
This issue is not specifically identified as a regression but highlights a significant reliability concern.
Additional remarks:
- The issue centers on DX12 dependency in SkiaSharp, with no connections to backend labels like Metal, OpenGL, PDF, Raster, or Vulkan.
Detailed Summary and Actions
Summary of the triage:
- The issue describes crashes caused by a hard dependency on DX12 in the latest versions of SkiaSharp, indicating a reliability problem.
- It specifically affects Windows 10 systems, necessitating the Windows-Classic label for applications using Win32 APIs.
- The bug pertains to the native bindings within the SkiaSharp library, thus justifying the area label.
Summary of the actions that will be performed:
| Action | Item | Description |
|---|---|---|
| Apply Label | tenet/reliability | The issue describes crashes occurring due to a hard dependency on DX12, indicating reliability issues. |
| Apply Label | os/Windows-Classic | The issue is affecting Windows 10 systems, as it specifically mentions bugs related to DX12 in SkiaSharp. |
| Apply Label | area/libSkiaSharp.native | The issue pertains to a bug in the SkiaSharp library's dependency on the DX12 library under native bindings. |
This entire triage process was automated by AI and mistakes may have been made. Please let us know so we can continue to improve.
We've found some similar issues:
- [BUG]
libSkiaSharp.dllRequiresd3d12.dllin3.119.0, Causing Crashes on Win7 #3267 , similarity score: 86%If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.
Note: You can give me feedback by 👍 or 👎 this comment.
While this is in reference to Windows 7, all of our crashes occur on Windows 10
Yeah, but the common theme is that they're on systems that don't support DX12 (the operating system version probably isn't that relevant), and the resolution would be the same. So this is still a duplicate.
Any updates on this as well as publishing symbols?