ebiten: Steam Deck panic (windows binary using Proton)

In trying to run my project on a Steam Deck (using a Windows build run via either ‘GE-Proton7-20’ or ‘Proton 7.0’) I get this panic:

panic: glfwwin: SetProcessDpiAwarenessContext failed: Invalid parameter.

goroutine 1 [running]:
github.com/hajimehoshi/ebiten/v2/internal/ui.init.2()
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220529181715-c99b948df3da/internal/ui/ui_glfw.go:151 +0xa8

I’m new to using both Proton and Windows builds so maybe I’ve misconfigured something? Happy to try and debug, I’ve just got no idea where to start.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 31 (31 by maintainers)

Commits related to this issue

Most upvoted comments

Thanks. As an Ebitengine Window binary should work as it is on Steam Deck, this should be an issue. I’ll try to fix this.

On the other hand, you can use Docker to build a Linux binary from macOS. See https://ebiten.org/blog/steam.html#Linux

I think I could reproduce the issue after some refactoring. ID3D12Resource::Map returned a null mapped pointer. This is mysterious since my refactoring should not change any behaviors. I might misunderstand the usage of Map. I’ll take a look more. Thanks,

I have decided to ignore returning errors from DWM functions. Please take a look at 9ad87c0153b7815011e041fad688b0368d233cbb . I appreciate your cooperation.

@hajimehoshi opengl works now! 😃

Proton does support DX12 via VKD3D-Proton, so I’m not sure why it is failing - I’ll try one of the examples instead of my project (which has a custom shader).

@TheMightyGit I don’t think this was fixed, but could you try 0dc6e4e64ee1046ab6f832f0451e4d43a3f3b8e6? Thanks,

@hajimehoshi

directx:

2022/06/01 18:17:02 directx: ID3D12Resource::Unmap failed: winapi error #738656304

opengl:

panic: glfwwin: DwmFlush failed: Success.

goroutine 1 [running, locked to thread]:
github.com/hajimehoshi/ebiten/v2/internal/glfw.(*Window).SwapBuffers(...)
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/internal/glfw/glfw_windows.go:297
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).swapBuffers(0xcb0940)
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/internal/ui/ui_glfw.go:1134 +0x5a
github.com/hajimehoshi/ebiten/v2/internal/thread.(*OSThread).Loop.func1(0xc0003fbdd0?, 0xc0003fbdc0?)
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/internal/thread/thread.go:54 +0x53
github.com/hajimehoshi/ebiten/v2/internal/thread.(*OSThread).Loop(0xc0004820d8)
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/internal/thread/thread.go:55 +0x2e
github.com/hajimehoshi/ebiten/v2/internal/ui.(*userInterfaceImpl).Run(0xcb0940, {0xa59f40?, 0xc0004820c0})
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/internal/ui/run_notsinglethread.go:53 +0x22c
github.com/hajimehoshi/ebiten/v2.RunGame({0xa58e50?, 0xc00007e000})
        /Users/johnny/go/pkg/mod/github.com/hajimehoshi/ebiten/v2@v2.4.0-alpha.3.0.20220601162602-0dc6e4e64ee1/run.go:191 +0x12c
github.com/TheMightyGit/marv/marvlib.(*marvAPI).ConsoleBoot(0xcac578, {0x76c5a9, 0xa}, {0xa57180, 0xa5c280}, 0x6f7e40?, 0xc000054000?)
        /Users/johnny/marv300/marvlib/api.go:45 +0x10e
main.main()
        /Users/johnny/marv_cartridges/worldworlds/cmd/wordworlds/main.go:9 +0x50

Mixed success.

v2.3.3 in DirectX mode: gets past the previous panic but then (both Proton 7.0 and GE-7.20)…

2022/06/01 08:16:06 directx: ID3D12Resource1::Unmap failed: winapi error #710606896

v2.3.3 in OpenGL mode (via EBITEN_GRAPHICS_LIBRARY=opengl) : works!