stride3d / stride3d/stride

DebugText.Print causes a GraphicsException at graphics profile Level_9_1

Open
#792 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area-Graphics bug priority-Low work-estimate-XS
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Release Type: GitHub

Version: master

Platform(s): Windows

Describe the bug
When targeting DX 9 via Level_9_1:
Calling DebugText.Print("Whatever", new Int2(10)); on the new project raises a Stride.Graphics.GraphicsException (details below).

To Reproduce
Steps to reproduce the behavior:

  1. Create new project, select graphics profile 9.1
  2. Add a SyncScript that tries to debug print something
  3. Observe the game crash

Expected behavior
The string is printed on the screen.

Log and callstacks

Stride.Graphics.GraphicsException: Unexpected error on Present (device status: InternalError)
---> SharpDX.SharpDXException: HRESULT: [0x887A0005], Module: [SharpDX.DXGI], ApiCode: [DXGI_ERROR_DEVICE_REMOVED/DeviceRemoved], 
Message: The GPU device instance has been suspended. Use GetDeviceRemovedReason to determine the appropriate action.

   at SharpDX.Result.CheckError()
   at SharpDX.DXGI.SwapChain.Present(Int32 syncInterval, PresentFlags flags)
   at Stride.Graphics.SwapChainGraphicsPresenter.Present()
   --- End of inner exception stack trace ---
   at Stride.Graphics.SwapChainGraphicsPresenter.Present()
   at Stride.Games.GraphicsDeviceManager.Stride.Games.IGraphicsDeviceManager.EndDraw(Boolean present)
   at Stride.Games.GameBase.EndDraw(Boolean present)
   at Stride.Engine.Game.EndDraw(Boolean present)
   at Stride.Games.GameBase.RawTick(TimeSpan elapsedTimePerUpdate, Int32 updateCount, Single drawInterpolationFactor, Boolean drawFrame)
   at Stride.Games.GameBase.RawTickProducer()

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 crash in a new Windows project using graphics profile Level_9_1 and a SyncScript calling DebugText.Print("Whatever", new Int2(10)). Start by tracing the call through SwapChainGraphicsPresenter.Present() and the reported DXGI device-removed error. Done means the text is rendered on screen without a GraphicsException at Present.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
computer-graphics, game-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.