SkiaSharp icon indicating copy to clipboard operation
SkiaSharp copied to clipboard

[BUG] libSkiaSharp.dll Requires d3d12.dll causing crashes on systems without DX12

Open andrewmd5 opened this issue 3 months ago • 5 comments

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

andrewmd5 avatar Sep 08 '25 11:09 andrewmd5

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.

similar-issues-ai[bot] avatar Sep 08 '25 11:09 similar-issues-ai[bot]

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.

github-actions[bot] avatar Sep 08 '25 11:09 github-actions[bot]

We've found some similar issues:

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

andrewmd5 avatar Sep 10 '25 10:09 andrewmd5

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.

molesmoke avatar Sep 10 '25 21:09 molesmoke

Any updates on this as well as publishing symbols?

andrewmd5 avatar Oct 05 '25 16:10 andrewmd5