stride3d / stride3d/stride

CompilerApp cannot build textures in OpenGLES (Android)

Open
#2,520 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.2.0.2188+

Platform(s): Compiling for Android

Describe the bug
Building under Android, the CompilerApp throws errors like:

2>EXEC : error 11.839s: [AssetCompiler] Exception in command [Textures/stride_box_occlusion] Stride.Assets.Textures.TextureConvertParameters: System.NullReferenceException: Object reference not set to an instance of an object.
2>   at Stride.TextureConverter.TexLibraries.FITexLib.EndLibrary(TexImage image) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\tools\Stride.TextureConverter\Backend\TexLibraries\FITexLib.cs:line 101
2>   at Stride.TextureConverter.TexImage.Dispose() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\tools\Stride.TextureConverter\Frontend\TexImage.cs:line 352
2>   at Stride.Assets.Textures.TextureAssetCompiler.TextureConvertCommand.DoCommandOverride(ICommandContext commandContext) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\engine\Stride.Assets\Textures\TextureAssetCompiler.cs:line 87
2>   at Stride.Core.BuildEngine.CommandBuildStep.StartCommand(IExecuteContext executeContext, ListStore`1 commandResultEntries, BuilderContext builderContext) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\buildengine\Stride.Core.BuildEngine.Common\CommandBuildStep.cs:line 304
2>EXEC : error 11.839s: [AssetCompiler] BuildStep [Textures/stride_box_occlusion] Stride.Assets.Textures.TextureConvertParameters failed.
2>EXEC : error 11.839s: [AssetCompiler] Exception in command [Textures/stride_box_occlusion] Stride.Assets.Textures.TextureConvertParameters: System.NullReferenceException: Object reference not set to an instance of an object.
2>   at Stride.TextureConverter.TexLibraries.FITexLib.EndLibrary(TexImage image) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\tools\Stride.TextureConverter\Backend\TexLibraries\FITexLib.cs:line 101
2>   at Stride.TextureConverter.TexImage.Dispose() in C:\BuildAgent\work\b5f46e3c4829a09e\sources\tools\Stride.TextureConverter\Frontend\TexImage.cs:line 352
2>   at Stride.Assets.Textures.TextureAssetCompiler.TextureConvertCommand.DoCommandOverride(ICommandContext commandContext) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\engine\Stride.Assets\Textures\TextureAssetCompiler.cs:line 87
2>   at Stride.Core.BuildEngine.CommandBuildStep.StartCommand(IExecuteContext executeContext, ListStore`1 commandResultEntries, BuilderContext builderContext) in C:\BuildAgent\work\b5f46e3c4829a09e\sources\buildengine\Stride.Core.BuildEngine.Common\CommandBuildStep.cs:line 304
2>EXEC : error 11.839s: [AssetCompiler] BuildStep [Textures/stride_box_occlusion] Stride.Assets.Textures.TextureConvertParameters failed.
2>EXEC(1,1): error 11.840s: [AssetCompiler] Asset [Textures/stride_box_occlusion] failed to compile
2>EXEC : error 11.840s: [AssetCompiler] BuildStep Asset build steps [TextureAsset:'Textures/stride_box_occlusion'] (1 items) failed.

To Reproduce
Steps to reproduce the behavior:

  1. Create Top-Down RPG template
  2. Build for Android (must do build through Visual Studio, Game Studio is broken on detecting Android)

Expected behavior
Build

Additional context
Caused by #2342
Reverting this commit allows the texture(s) to build again

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

Start with Stride.TextureConverter/TexLibraries/FITexLib.cs at EndLibrary line 101 and trace the disposal path through TexImage.cs line 352. Reproduce the failure by building the Top-Down RPG template for Android through Visual Studio, then inspect TextureAssetCompiler.cs line 87. Done means the Android texture build completes without the reported NullReferenceException.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, csharp
Domain
build-system, game-dev, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.