olive-editor / olive

Free open-source non-linear video editor
https://olivevideoeditor.org/
GNU General Public License v3.0
8.22k stars 556 forks source link

[CRASH] EGL context error 3005 with v0.2 / black boxes in v0.1 (Intel HD 3000) #1309

Closed Pipo321 closed 3 years ago

Pipo321 commented 4 years ago

Commit Hash de48eba7

Platform Windows 7 Pro 64bit, visual c++ 2019 for x64 and x86, newer there is not available GPU: Intel HD 3000 Lenovo x220 OpenGL 3.1 , DirectX 10.1 Newest Intel HD 3000 drivers from 2015, 15.28.24.4229 There is no possible to install never version of OpenGL because fucking Intel not relasesed newer.

Summary Olive 0.2 or 0.1 I have problem witch OpenGL For Olive 0.2 64bit installed: At Starting terminal window show Error crash, running program stop

https://imgur.com/a/Cpc9E3O and https://pastebin.com/knS9b7Ze

QWindowsEGLContext: failed to creat context egl error 3005 this 0x834e7a0 <<null>:0>
composeAndFlush: makecurrent failed null:0
QWindowsEGLcontext: ANGLE only partially support OpenGL ES >3.0 <<null11>:0>

Steps to Reproduce

  1. Download Olive 0.2 Nightly Builds Version: de48eba7 (Nov 2 2020 12:10:20)
  2. Run
  3. Crash

Additional Information

When I use 0.1 Olive and import media all is ok. After creating new session from imported media is crashed. One media like image or movie is imported good to time line, but after I would like to operate him in time line there are black boxes... many black boxes... and is crash

Simran-B commented 4 years ago

The minimum required OpenGL version for Olive 0.2 is 3.2, which could explain the issue. Although I'm not sure if any OpenGL 3.2 specific features are actually being used.

Olive 0.1 didn't have this requirement. But your CPU appears to be a Intel Core i5-2520M from 2011. That's pretty old hardware. The black boxes could very well indicate driver issues - OpenGL drivers are notoriously buggy.

If you want to verify that this is a driver issue, you may obtain a software OpenGL renderer like Mesa3D: https://fdossena.com/?p=mesa/index.frag It's expected to perform poorly, but there should be no more black boxes.

itsmattkc commented 4 years ago

Indeed, this is because your GPU only supports 3.1 and Olive requires 3.2. However, as @Simran-B says, it's likely we could drop it down to 3.0 (I believe we use features introduced in OpenGL ES 3.0 but no later than that).

Simran-B commented 4 years ago

Found some more information here: https://doc.qt.io/qt-5/windows-requirements.html Looks like Qt allows you to set an environment variable QT_OPENGL to control the render mode. You can try to set it to desktop, angle and software and see which of them work and which don't. software might expect there to be a opengl32sw.dll, so perhaps place the Mesa3D DLL next to the Olive binary and rename it.

Simran-B commented 4 years ago

BTW. EGL error 3005 is EGL_BAD_CONFIG:

An EGLConfig argument does not name a valid EGLConfig

https://www.khronos.org/files/egl-1-4-quick-reference-card.pdf

itsmattkc commented 4 years ago

Actually scratch that, macOS only supports OpenGL 2.1 (legacy) and OpenGL 3.2 (modern). Now I'm remembering that's why I chose 3.2 in the first place.

I do have some changes coming for the renderer which might help with this, but I'd recommend to not hold your breath.

Simran-B commented 4 years ago

FWIW, the earliest iGPU with support for Vulkan would be Intel HD Graphics 6000/5500, which also supports OpenGL 4.6.

https://www.intel.com/content/www/us/en/support/articles/000005524/graphics.html

Pipo321 commented 4 years ago

Hi Folks!

Thanks Simran-B, itsmattkc for response.

Thanks Simran-B for Mesa and Qt for windows solution I will check.. I am not programmer just geek fan of Olive. Thanks itsmattkc if you could do this it would be gift for old PC users..but also gift for security (description below)

I have checked working on x220 witch OpenGL 3.1/Directx 10.1 on Shotcut,Openshot,kdenlive.. Works good but they are not Olive:). In OpenShot is option to chose what library you want to use OpenGL/Direct X and works on DirectX in this my case.

Post scriptum Many older computers didn't have OpenGL 3.2 able to install. People dont wan't to use hardware witch uefi in newer PC so they use previos generation compiuters witch linux/windows 7. Older hardware is better secure not a lot of spyware inside. Holes are better already known in Linux but people use two OS in one Hdd. Linux is better:)everybody knows that but Windows 7 I think will go XP way and it will be free code..and it would be finally good:) for some time:)

Everyday I use Olive(intuitional,simple close to professional tool,simple. Good looking too:). I use Linux also but often I use Windows too because Linux some times can for no reason down..and reparing is horrible especially when distribution publishers change everything not necessarily for the better like Lubuntu LXDE to LXqt.

Best Regards

Simran-B commented 4 years ago

ANGLE can translate OpenGL ES 2.0 to DirectX: https://github.com/google/angle#readme

My interpretation of the log message QWindowsEGLcontext: ANGLE only partially support OpenGL ES >3.0 is that Qt somehow attempts to translate OpenGL ES 3.1+, which is not fully supported by ANGLE, and it only supports OpenGL ES 2.x with DirectX 9 as target (OpenGL ES 3.x translation requires DirectX 11). I wonder if there's a way to control what Qt uses as base line. Maybe it can be downgraded to OpenGL ES 2.x so that ANGLE can translate it to DirectX 9 to make Olive work on this particular hardware?

itsmattkc commented 4 years ago

Yep, there's really nothing we can do other than downgrade to GLES 2.0, which is likely doable.

itsmattkc commented 3 years ago

So I've dropped the minimum OpenGL requirement to 3.0 in 30b0af4f3a10b05dd02a2210bdeada606344547d, which should make it work on your system (and also brings it within ANGLE compliance), but I should warn you you'll need to configure a decent amount of VRAM. Olive utilizes a lot of GPU to speed up the rendering and naturally that consumes video memory.