stride3d / stride3d/stride

Native dependencies of `Stride.Graphics` fail to get copied if `StrideGraphicsAPI != "Direct3D11"`

Open
#1,541 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Release Type: Official Release

Version: 4.1.0.1734

Platform(s): Windows (but would probably occur on all platforms)

Describe the bug
When the StrideGraphicsApi msbuild property is set to anything other than Direct3D11, the freetype.dll native dependency is NOT copied to the build's output. This causes the game to crash upon startup because freetype.dll is missing.

To Reproduce
Steps to reproduce the behavior:

  1. Pick a project (e.g. the ThirdPersonPlatformer sample).
  2. Set StrideGraphicsApi to, for instance, Vulkan.
  3. dotnet build / dotnet publish.
  4. freetype.dll is missing from the win-x64 output directory.

Expected behavior
freetype.dll should be copied from the Stride.Graphics NuGet package for all graphics APIs, not just Direct3D11.

Screenshots
n/a

Log and callstacks

Additional context

  • Issue #936 seems to report a similar problem.
  • I searched through the MSBuild binlog and found that the ssdeps file for Stride.Graphics is only ever found if the graphics API is set to Direct3D11. The cause of this seems to be the absence of the Stride.Graphics.ssdeps file in the folders of the other APIs inside the Stride.Graphics package.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the problem with the ThirdPersonPlatformer sample by setting StrideGraphicsApi to Vulkan and running dotnet build or dotnet publish. Inspect the Stride.Graphics NuGet package and its API-specific folders, then use the MSBuild binary log to trace Stride.Graphics.ssdeps; done means freetype.dll is copied to the win-x64 output for non-Direct3D11 APIs.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.