Godot: GLES2 crashes on Windows since 3.1 beta 8 (AMD R5 and R7) [Regression from a32b26d]

Created on 2 Mar 2019  Â·  40Comments  Â·  Source: godotengine/godot

Godot crash on Windows 8.1 with AMD R 7 200 series.

Using Godot_v3.1-beta10 :
Switch to OGL 2 or make a new project with OGL 2 - crash.
No crashing with build 7, but crash with build 8.

bug high priority windows rendering

Most helpful comment

Can anyone build from master and try again? I may have fixed this.

All 40 comments

Tested with beta 11 still crash.

To all those who reproduce this issue, please provide the following information:

  • OS version
  • Graphics card (as precise as you can)
  • Graphics driver version (check dxdiag)
  • Versions of 3.1 beta that you tested and the results on each. As I understand it, it worked fine in 3.1 beta 7 and started crashing in beta 8, please test and confirm that.
  • Try to run Godot from cmd.exe and see if any relevant errors are displayed, e.g. C:\path\to\Godot.exe -e -v --path C:\path\to\project

If you can confirm the regression happened in beta 8, and you are able to build Godot from source, bisecting between e30ce69 (beta 7) and a32b26d (beta 8) would be very welcome.

CC @Akira1San @MGeymer @BrockGod @ElMarck

Possibly related (different OSes/devices, but might be the same underlying GLES2 issue): #26651 and #26450.

OS: Win 8.1 64b
Graphics card: AMD R 7 200 series (260x)
Graphics driver: radeon-software-crimson-relive-17.7.1-win8.1-64bit-july17 ( 7/14/2017 - no more Win 8 new drvs )
OGL extensions: http://pasteall.org/1528161
I tryed this in the cmd.exe: Godot_v3.1-beta11_win64.exe --debug 1>out.txt 2>err.txt and its empty.
I will try to build and find the commit unless someone have already installed VS.

Windows 10 Home
8GB Ram
1TB Disk
1GB Vídeo AMD R7 Integrated.
3.2GHz

GODOT BETA 8/9/10/11

El mar., 5 de mar. de 2019 20:57, Akira1San notifications@github.com
escribió:

OS: Win 8.1 64b
Graphics card: AMD R 7 200 series (260x)
Graphics driver: radeon-software-crimson-relive-17.7.1-win8.1-64bit-july17
( 7/14/2017 - no more Win 8 new drvs )
OGL extensions: http://pasteall.org/1528161
I tryed this in the cmd.exe: Godot_v3.1-beta11_win64.exe --debug 1>out.txt
2>err.txt and its empty.
I will try to build and find the commit unless someone have already
installed VS.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/26500#issuecomment-469908501,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIo9MibH-SfS_N5aWXIXocGl7i2qKXUbks5vTwRtgaJpZM4bakNy
.

Windows 10
AMD Radeon(TM) R5 Graphics
15.200.1062.1004
Yes, it works only up to version Beta 7, it already crashes on 8,9,10,11.
I have no logs as well as @Akira1San .

Commits made to drivers/gles2 between beta 7 and beta 8 (git log e30ce69..a32b26d drivers/gles2)

  • commit a32b26dfa26f2a039bf9c84b90d10666bcf785c9
    Author: Juan Linietsky
    Date: Mon Feb 25 21:46:24 2019 -0300

    Several fixes to make GLES2 on HTML5 work much better.
    Changed math class error reporting to be a bit less paranoid.

  • commit 31656301b2cfe3710a1bfe8d636eb8206d31dd7b
    Author: Juan Linietsky
    Date: Sun Feb 24 23:12:27 2019 -0300

    Removed debug function.

  • commit 74d0ed2236b333d0a292e15b9c2a9380c2c122a1
    Author: Juan Linietsky
    Date: Sun Feb 24 22:34:12 2019 -0300

    Many separate fixes to ensure non power of 2 textures work on GLES2, closes #25897 and many others

  • commit a83e77fdedb235a5c3dea91530f9e2bd2cc23a56
    Author: Hein-Pieter van Braam
    Date: Sun Feb 24 23:55:37 2019 +0100

    Explicitly use floating point numbers in the our shaders

    We need to be explicit about using floating point numbers in our shaders
    for compatibility with mobile GLES drivers.

  • commit ab8f3d7842976b7fccc6df7abe11d13b44a134f9
    Author: Juan Linietsky
    Date: Sun Feb 24 00:32:34 2019 -0300

    Fixed issue with buffers being wrongly cleared, closes #25484

If someone who can reproduce the bug has a build environment set up, I would advise to try those commits directly (from oldest to newest) and see where it starts failing.

I tryed this in the cmd.exe: Godot_v3.1-beta11_win64.exe --debug 1>out.txt 2>err.txt and its empty.

The --debug flag is for something else. You should use the --verbose or -v flag, as I mentioned initially. Then there should be OpenGL errors.

Gave it a try in 64923ff. No crashes yet for me.

Win10 OpenGL ES 2.0 Renderer: GeForce 9600 GT

image

beta 11 log: http://pasteall.org/1529690
Compiled with mingW64: (commit - 3165630 - Removed debug function.); log: out.txt - http://pasteall.org/1529693, err.txt is empty.
The compiled version dont crash when opening the gles2 project, but godot crashes when i quit it.
Do you want me to test with other commits?

Sorry guys, i cannot get any crash when starting a gles2 project.
i even tried running a 2d and a 3d scene with no issues.
Windows 10 Home 64 bit, build 17134
Intel i7
Gtx 1080 ti
grafik

Working for me in Godot 3.1 Beta 7, 8, 9, 11

I have a hunch that this problem is somehow related to AMD.

The problem is in AMD

El mié., 6 de mar. de 2019 16:21, MGeymer notifications@github.com
escribió:

I have a hunch that this problem is somehow related to AMD.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/26500#issuecomment-470240036,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIo9Mr1zUSEW51I6vhCeO9F4-D5_kDHvks5vUBUdgaJpZM4bakNy
.

Might help, might not:

Unhandled exception at 0x0000000069A58616 (atio6axx.dll) in Godot_v3.1-beta11_win64.exe: 0xC0000005: Access violation reading location 0x0000000000000045.

@xfixium: looks like a null pointer reference.. no way to get stdout like akien mentioned above right?

@reduz I have the same output, got it from gdb .. nothing else.

But the value of the pointer is clearly 45 in the message by xfixium, so not a _null_ pointer

OS: Win10 64 bit
GPU: AMD Vega 8 Mobile

GLES2 Crashes for me on Beta11, no output given via console just the regular this program has stopped working. Here's what the event log says:

Event Log:
Faulting application name: Godot_v3.1-beta11_win64.exe, version: 3.1.0.0, time stamp: 0x00000000
Faulting module name: atio6axx.dll, version: 25.20.15025.1002, time stamp: 0x5c6dbaef
Exception code: 0xc0000005
Fault offset: 0x00000000006a2843
Faulting process id: 0xdb8
Faulting application start time: 0x01d4d45be8278e72
Faulting application path: C:\Users\triverske\Downloads\Godot_v3.1-beta11_win64.exe\Godot_v3.1-beta11_win64.exe
Faulting module path: C:\Windows\System32\DriverStore\FileRepository\c0339583.inf_amd64_c5be1e62234928ae\B339442\atio6axx.dll
Report Id: 7e5a0cda-8adb-4a96-b4ba-25b399f2b2bd
Faulting package full name:
Faulting package-relative application ID:

Finally got a backtrace:

#0  0x5a3c88b4 in atioglxx!DrvPresentBuffers () from C:\Windows\SysWOW64\atioglxx.dll
#1  0x5a3f669f in atioglxx!DrvPresentBuffers () from C:\Windows\SysWOW64\atioglxx.dll
#2  0x5a3f603e in atioglxx!DrvPresentBuffers () from C:\Windows\SysWOW64\atioglxx.dll
#3  0x59b4c7bb in atioglxx!DrvPresentBuffers () from C:\Windows\SysWOW64\atioglxx.dll
#4  0x5d34c170 in glCopyTexImage2D () from C:\Windows\SysWOW64\opengl32.dll
#5  0x2dd3a750 in ?? ()
#6  0x01877ca9 in PhysicsServer::_bind_methods () at servers/physics_server.cpp:489
#7  0x0316bfb0 in List<PropertyInfo, DefaultAllocator>::_Data::erase(List<PropertyInfo, DefaultAllocator>::Element const*)::__FUNCTION__ ()
#8  0x2b8cdaf0 in ?? ()
#9  0x0317244b in Ref<TCP_Server>::ref_pointer(TCP_Server*)::__FUNCTION__ ()
#10 0x2b8cdaf0 in ?? ()
#11 0x025fbde5 in Object::cast_to<StaticBody2D> (p_object=0x2b8cdfa0) at ./core/object.h:588
#12 0x025fcedd in Object::cast_to<ParticlesMaterial> (
    p_object=0xbfd4d0 <FileSystemDock::_update_file_list(bool)+5468>) at ./core/object.h:602
#13 0x02de030e in _doc_data_compressed ()
#14 0x00bfd4d0 in FileSystemDock::_update_file_list (this=0x2, p_keep_selection=true)
    at editor/filesystem_dock.cpp:678
#15 0x02894468 in MethodBind0R<_OS::PowerState>::get_instance_class (this=0x2b8cde00)
    at ./core/method_bind.gen.inc:196
#16 0x02888a51 in VideoStream::_get_property_listv (this=0x1ef883e8, p_list=0x2b8cde00, p_reversed=200)
    at ./scene/resources/video_stream.h:78
#17 0x02888d65 in _TECategory::RefItem<Texture>::operator< (this=0x10, p=...)
    at editor/plugins/theme_editor_plugin.cpp:108
#18 0x020a1933 in MethodBind5<RID, float, float, float, float>::call (this=0x3c888889, p_object=0x3c,
    p_args=0xbfd908 <FileSystemDock::_update_file_list(bool)+6548>, p_arg_count=51554597, r_error=...)
    at ./core/method_bind.gen.inc:3669
#19 0x0129be62 in Control::_bind_methods () at scene/gui/control.cpp:2824
#20 0x0127da6c in ColorPicker::_screen_input (this=0x1276876 <CheckButton::get_minimum_size() const+882>, p_event=...)
    at scene/gui/color_picker.cpp:499
#21 0x01271959 in Button::_notification (this=0x76c67fdc <StrStrW+164476>, p_what=4) at scene/gui/button.cpp:189
#22 0x01271a95 in Button::_notification (
    this=0xc80000 <ProjectSettingsEditor::ProjectSettingsEditor(EditorData*)+1790>, p_what=519574432)
    at scene/gui/button.cpp:66
#23 0x01271abd in Button::_notification (this=0x77bb1f3e, p_what=4) at scene/gui/button.cpp:84
#24 0x012713e3 in Button::_notification (this=0x0, p_what=8634368) at scene/gui/button.cpp:171
#25 0x76e00179 in KERNEL32!BaseThreadInitThunk () from C:\Windows\SysWOW64\kernel32.dll
#26 0x77bd662d in ?? ()
#27 0x77bd65fd in ?? ()
#28 0x00000000 in ?? ()

I got an stdout, not sure if it'll help though:

Using GLES3 video driver
OpenGL ES 3.0 Renderer: AMD Radeon HD 8570
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 44100
WASAPI: nAvgBytesPerSec = 352800
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 896 calculated latency: 20ms
CORE API HASH: 1367609902302117358
EDITOR API HASH: -6311734254144060796
Loaded builtin certs
Loading resource: res://Game
ERROR: No loader found for resource: res://Game
At: core/io/resource_loader.cpp:285
ERROR: Failed loading scene: res://Game
At: main/main.cpp:1738
WARNING: cleanup: ObjectDB Instances still exist!
At: core/object.cpp:2093
Leaked instance: MultiplayerAPI:1113
Leaked instance: Physics2DDirectSpaceStateSW:1109
Leaked instance: BulletPhysicsDirectSpaceState:1112
Leaked instance: World2D:1108 - Resource name: Path:
Leaked instance: Viewport:1107 - Node name: root
Leaked instance: ViewportTexture:1110 - Resource name: Path:
Leaked instance: SceneTree:1106
Leaked instance: World:1111 - Resource name: Path:
Orphan StringName: tree_changed
Orphan StringName: _server_disconnected
Orphan StringName: network_peer_connected
Orphan StringName: World2D
Orphan StringName: BulletPhysicsDirectSpaceState
Orphan StringName: _network_peer_connected
Orphan StringName: _network_peer_disconnected
Orphan StringName: node_added
Orphan StringName: World
Orphan StringName: Viewport
Orphan StringName: _vp_gui_input1107
Orphan StringName: network_peer_disconnected
Orphan StringName: _vp_input1107
Orphan StringName: node_removed
Orphan StringName: Physics2DDirectSpaceStateSW
Orphan StringName: _vp_unhandled_key_input1107
Orphan StringName: root
Orphan StringName: MultiplayerAPI
Orphan StringName: _connection_failed
Orphan StringName: SceneTree
Orphan StringName: connected_to_server
Orphan StringName: _vp_unhandled_input1107
Orphan StringName: connection_failed
Orphan StringName: _connected_to_server
Orphan StringName: ViewportTexture
Orphan StringName: server_disconnected
StringName: 26 unclaimed string names at exit.

Windows 10 64 bit

AMD Radeon R7 M265 Series
Driver 22.19.677.257

beta7 good, beta8 exits (not sure if it crashes, Windows says nothing) both on edit and on run from project manager; I can hear a couple of seconds of autoload music while looking at Godot logo, and then it closes

on Intel HD Graphics 4600 (same computer) beta8 runs OK

PS J:> .\Godot_v3.1-beta8_win64.exe -e -v
Using GLES3 video driver
OpenGL ES 3.0 Renderer: AMD Radeon R7 M265 Series
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 1962 calculated latency: 44ms
CORE API HASH: -5671646203089098971
EDITOR API HASH: -6889037709935730470
Loading resource: C:\Users/dns/AppData/Roaming/Godot/editor_settings-3.tres
EditorSettings: Load OK!
EditorSettings: Save OK!
Loaded builtin certs
Running project: J:/9-02-19 (J:::9-02-19)
OpenGL ES 2.0 Renderer: AMD Radeon R7 M265 Series

@starry-abyss The output you gave is only for the project manager itself, not for the running game (as you can see it stops when running the project). (Edit: @xfixium's is actually the output of running the project, my bad.)

You should run the project directly with the -v argument:

.\Godot_v3.1-beta8_win64.exe -e -v --path C:\path\to\project

or

cd C:\path\to\project
.\Godot_v3.1-beta8_win64.exe -e -v

Here is the new log:

PS J:> .\Godot_v3.1-beta8_win64.exe -e -v --path J:\9-02-19
Using GLES2 video driver
OpenGL ES 2.0 Renderer: AMD Radeon R7 M265 Series
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 1962 calculated latency: 44ms
CORE API HASH: -5671646203089098971
EDITOR API HASH: -6889037709935730470
Loading resource: res://default_env.tres
Loading resource: C:\Users/dns/AppData/Roaming/Godot/editor_settings-3.tres
EditorSettings: Load OK!
fixed path: J:/9-02-19/.import
unit: J:\
Loading resource: res://music.tscn
Loading resource: res://cake.ogg
Loading resource: res://fail.wav
Loaded builtin certs
EditorSettings: Save OK!
Loading resource: res://level.gd

@QbieShay's backtrace in https://github.com/godotengine/godot/issues/26500#issuecomment-470268662 seems consistent with the leaked instances reported by @xfixium in https://github.com/godotengine/godot/issues/26500#issuecomment-470271627
The bug itself might not necessarily be in drivers/gles2 then; though it can be that an early failure of the renderer causes an unclear exit that triggers these leaks/crash.

@QbieShay started bisecting but had to stop for the day. Last finding is that 74d0ed2236b333d0a292e15b9c2a9380c2c122a1 is a "good" commit (no regression yet).

@QbieShay started bisecting but had to stop for the day. Last finding is that 74d0ed2 is a "good" commit (no regression yet).

That narrows down the list of potential culprits a lot: https://github.com/godotengine/godot/compare/74d0ed2...a32b26d

The most probable culprit at this stage would be a32b26dfa26f2a039bf9c84b90d10666bcf785c9.
If someone can build both 51c1d55c (should be "good") and a32b26d ("bad") to confirm, that would be great.

@akien-mga Can confirm a32b26d is the first bad commit. Somehow it ran OK one time, but then started to crash.

So it crashes silently for me, outputing this backtrace:

OpenGL ES 3.0 Renderer: AMD Radeon R7 M265 Series
Running project: J:/9-02-19 (J:::9-02-19)
OpenGL ES 2.0 Renderer: AMD Radeon R7 M265 Series
CrashHandlerException: Program crashed
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[0] DllMain
[1] DllMain
[2] DrvPresentBuffers
[3] DrvPresentBuffers
[4] DrvPresentBuffers
[5] DrvPresentBuffers
[6] DrvPresentBuffers
[7] DrvPresentBuffers
[8] DrvPresentBuffers
[9] DrvPresentBuffers
[10] DrvPresentBuffers
[11] DrvPresentBuffers
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
[26]
[27]
[28] BaseThreadInitThunk
-- END OF BACKTRACE --

So i compiled 51c1d55 and no crash when opened the project, but crash when quit. And tested some of the old betas. It looks like beta 4 dont crash when quit, but beta 5 does crash when quit. So could the actual bug be between 4 and 5?

@QbieShay I hope the culprint is not glCopyTexImage2D, else it means driver bug :\

@Akira1San how do you see this trace format?

@Akira1San how do you see this trace format?
its here: https://github.com/apitrace/apitrace

Beta 11 crashed with the following HW:

Radeon Software Version - 19.2.3
Radeon Software Edition - Adrenalin 2019
Graphics Chipset - Radeon RX 580 Series
Memory Size - 4096 MB
Memory Type - GDDR5
Core Clock - 1077 MHz
Windows Version - Windows 10 (64 bit)
System Memory - 32 GB
CPU Type - AMD Ryzen 7 1700 Eight-Core Processor

Windows Event Log:
Faulting application name: Godot_v3.1-beta11_win64.exe, version: 3.1.0.0, time stamp: 0x00000000
Faulting module name: atio6axx.dll, version: 25.20.15025.1002, time stamp: 0x5c6dbaef
Exception code: 0xc0000005
Fault offset: 0x00000000006a2843
Faulting process id: 0x41ec
Faulting application start time: 0x01d4d48aa2886d84
Faulting application path: D:\w\Downloads\Godot_v3.1-beta11_win64.exe\Godot_v3.1-beta11_win64.exe
Faulting module path: C:\WINDOWS\System32\DriverStore\FileRepository\c0339583.inf_amd64_c5be1e62234928ae\B339442\atio6axx.dll
Report Id: 3595e5c4-e436-40c2-8b80-5f1cc8b532c2
Faulting package full name:
Faulting package-relative application ID:

Windows 10 Pro
RAM 16 GB 64 bits x64

Crash since beta 8

D:\Documents\Godot Proyects 3\Godot_v3.1-beta11_win64>Godot_v3.1-beta11_win64.exe -e -v
Using GLES3 video driver
OpenGL ES 3.0 Renderer: AMD Radeon HD 5700 Series
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 1962 calculated latency: 44ms
CORE API HASH: 1367609902302117358
EDITOR API HASH: -6311734254144060796
Loading resource: C:\Users/Pablo/AppData/Roaming/Godot/editor_settings-3.tres
EditorSettings: Load OK!
EditorSettings: Save OK!
Loaded builtin certs
Editing project: D:/Documents/Godot Proyects 3/Projects/NCKSamedsRevenge/Game (D:::Documents::Godot Proyects 3::Projects::NCKSamedsRevenge::Game)
EditorSettings: Save OK!
OpenGL ES 2.0 Renderer: AMD Radeon HD 5700 Series

Nombre de la aplicación con errores: Godot_v3.1-beta11_win64.exe, versión: 3.1.0.0, marca de tiempo: 0x00000000
Nombre del módulo con errores: atio6axx.dll, versión: 6.14.10.13399, marca de tiempo: 0x55c029a0
Código de excepción: 0xc0000005
Desplazamiento de errores: 0x00000000000fa353
Identificador del proceso con errores: 0x2af8
Hora de inicio de la aplicación con errores: 0x01d4d491bbdf25df
Ruta de acceso de la aplicación con errores: D:\Documents\Godot Proyects 3\Godot_v3.1-beta11_win64\Godot_v3.1-beta11_win64.exe
Ruta de acceso del módulo con errores: C:\WINDOWS\SYSTEM32\atio6axx.dll
Identificador del informe: 9631fde1-83df-41fa-8c31-f0af640704bd
Nombre completo del paquete con errores:
Identificador de aplicación relativa del paquete con errores:

Can anyone build from master and try again? I may have fixed this.

Just built from master and it's working now (where it was silently crashing) on my RX 460! Thank you!

Using GLES2 video driver
OpenGL ES 2.0 Renderer: Radeon(TM) RX 460 Graphics
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 1962 calculated latency: 44ms
CORE API HASH: -8014587356900230779
EDITOR API HASH: -7074180183955159205
Loading resource: res://default_env.tres
Loading resource: C:\Users/xxxx/AppData/Roaming/Godot/editor_settings-3.tres
EditorSettings: Load OK!
Loaded builtin certs
EditorSettings: Save OK!
Loading resource: res://icon.png

Just tested on an AMD R7 chipset (I can't say what it is but device manager gives me this device ID pci\ven_1002&dev_9874&subsys_18401002) on Windows 7.
GLES2 Beta 11: Segfault
GLES3 Beta 11: Works
GLES2 Master: Works
GLES3 Master: Works

Yey! Compiled the latest master and its fixed, no crashes. :)
Now i can try to export to Android. :)

This is fixed, so closing.

Works on my machine too!

Was this page helpful?
0 / 5 - 0 ratings