Native dependencies of `Stride.Graphics` fail to get copied if `StrideGraphicsAPI != "Direct3D11"`
Nobody has claimed this yet.
- 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:
- Pick a project (e.g. the ThirdPersonPlatformer sample).
- Set
StrideGraphicsApito, for instance,Vulkan. dotnet build/dotnet publish.freetype.dllis missing from thewin-x64output 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
- ThirdPersonPlatformer crash: ThirdPersonPlatformer_run_log.txt
- ThirdPersonPlatformer MSBuild binary log: ThirdPersonPlatformer_binary_log.zip (change file extension to
.binlogif necessary)
Additional context
- Issue #936 seems to report a similar problem.
- I searched through the MSBuild binlog and found that the
ssdepsfile forStride.Graphicsis only ever found if the graphics API is set toDirect3D11. The cause of this seems to be the absence of theStride.Graphics.ssdepsfile in the folders of the other APIs inside theStride.Graphicspackage.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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