hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.25k stars 895 forks source link

AQ HL doesn't start on my ancient Notebook [ERR] [EGL] Command eglCreateContext errored out with EGL_BAD_ATTRIBUTE (0x12292): eglCreateContext #6973

Closed romanstingler closed 3 months ago

romanstingler commented 3 months ago

Regression?

No

System Info and Version

System/Version info ```sh 5979ceb56b165ee35809a0eeda5f4be1aedbb7b6 ```

Description

I installed hyprland-git via AUR and on my old notebook it fails to start.

How to reproduce

It has only a dedicated GPU no intel GPU

Crash reports, logs, images, videos

hyprlandCrashReport635.txt

vaxerski commented 3 months ago

is this legacy_renderer?

vaxerski commented 3 months ago

patch.txt try this

romanstingler commented 3 months ago

Unfortunately, no hyprlandCrashReport12833.txt inxi.txt

vaxerski commented 3 months ago

again, is this legacy renderer?

also try this patch.txt

ShadowS0ng commented 3 months ago

again, is this legacy renderer?

also try this patch.txt

Hello vaxry, I tried both these patches on integrated and nvidia without success. i'm have a intel HD4000 and nvidia GT740m GPUs

vaxerski commented 3 months ago

can someone answer my damn question

romanstingler commented 3 months ago

in my case I didn't build with legacyrenderer, I can try

I just

git clone --recursive https://github.com/hyprwm/Hyprland
cd Hyprland
make all && sudo make install

build.log hyprlandCrashReport8735.txt

ShadowS0ng commented 3 months ago

can someone answer my damn question

ok , i tried the second patch with a manual legacyrenderer build and it worked

vaxerski commented 3 months ago

what if you comment out lines 137 and 138 in opengl.cpp?

Micovec commented 3 months ago

what if you comment out lines 137 and 138 in opengl.cpp?

I got very similar error on newer commit.

I can confirm that the second patch and commenting out those two lines works. I can run Hyprland. I still got some errors in the log about drm but nothing critical.

vaxerski commented 3 months ago

odd, why doesn't your EGL impl not support debug true? anyways, gpu drivers...

vaxerski commented 3 months ago

please check if it works now

romanstingler commented 3 months ago

without the patch and removing these 2 lines

    attrs.push_back(EGL_CONTEXT_OPENGL_DEBUG);
    attrs.push_back(ISDEBUG ? EGL_TRUE : EGL_FALSE);

it fails [ERR] [EGL] Command eglCreateContext errored out with EGL_BAD_MATCH (0x12297): dri2_create_context hyprlandCrashReport3406.txt

When I apply the second patch (patch-3.txt) and remove the 2 lines and build the legacyrenderer then HL starts.

strange, because hyperland-git from before AQ worked on this machine and there shouldn't be the legacyrenderer build as far as I know.

for now, it doesn't matter, Vaxry we still love you :P Appreciate your hard work

Micovec commented 3 months ago

I don't know what happened but commit 7c68236 doesn't work. I tried to rebuild it twice and the result is still the same.

hyprlandCrashReport569.txt

ShadowS0ng commented 3 months ago

please check if it works now

in my case it doesn't work when i comment out the mentioned lines. with the patch, it works but some things like blur doesn't work . also i get this error in logs when i exit hyprland:

IOT instruction (core dump) Hyprlandrom display: Broken pipeadd_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group) could not connect to wayland server

i think it may be related to AGS and not Hyprland

Micovec commented 3 months ago

I don't know what happened but commit 7c68236 doesn't work. I tried to rebuild it twice and the result is still the same.

hyprlandCrashReport569.txt

It seems like I commented different lines. I commented out these lines

vaxerski commented 3 months ago

legacyrenderer is broken thats why blur no work

@Micovec odd... does your driver support gles3.2?

Micovec commented 3 months ago

Not sure how to check that. glxinfo says:

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 24.1.4-arch1.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

If you could please direct me where to check that.

romanstingler commented 3 months ago

to add more info, my card /driver is 3.1, as I said for me, it is not crucial

vaxerski commented 3 months ago

yea both of you have drivers too old for gles3.2, I'm confused as to how it worked before

Micovec commented 3 months ago

I've had some problems with blurs not working. For example in hyprlock or special workspaces, there was no blur. But I didn't think much of it since I'm using arch only because I want to check out Hyprland (on which I'm almost a year on) and I'm not skilled in linux world.

vaxerski commented 3 months ago

both of you have GPUs too old to run hyprland without legacy_renderer, and on legacy IIRC blur is broken. Life is life. Closing as solved

ShadowS0ng commented 3 months ago

both of you have GPUs too old to run hyprland without legacy_renderer, and on legacy IIRC blur is broken. Life is life. Closing as solved

is there any chance you can make this work later? i mean it was working before moving to aquamarine :(

vaxerski commented 3 months ago

no clue.

ShadowS0ng commented 3 months ago

no clue.

ok , I hope you fine a way, ty for great work btw.

romanstingler commented 3 months ago

wlroots has a GLES2 renderer which was used, and on my machine it detected EGL1.4 correctly, sorry but I have no deep knowledge about wlroots internals. And on my side I am using my machines for work, so I have all animations and blur disabled. One could argue that I could use something else, but we love Vaxry. :P

hyprland.log

vaxerski commented 3 months ago

but hyprland always used GLES3.2, so I am confused as to how that worked.

romanstingler commented 3 months ago

Could it be that, for some reason, magically it fallbacks to GLES2 (legacy)? Is there a way to find out what renderer is used?

ShadowS0ng commented 3 months ago

Could it be that, for some reason, magically it fallbacks to GLES2 (legacy)? Is there a way to find out what renderer is used?

this or maybe there's some translation going on in wlroots?(i'm not familiar with rendering stuff so maybe the translation thing is stupid)

vaxerski commented 3 months ago

no, we use gles3 extensions...

maga-tama commented 3 months ago

Changing OpenGL.cpp L137

    attrs.push_back(EGL_CONTEXT_MINOR_VERSION);
    attrs.push_back(2);

to 0 works for me (3.0 support), I don't know how "correct" it is to do that, but i guess not specifying it before is how it worked? (Mesa/OpenGL fallbacks??)

ShadowS0ng commented 3 months ago

Changing OpenGL.cpp L137

    attrs.push_back(EGL_CONTEXT_MINOR_VERSION);
    attrs.push_back(2);

to 0 works for me (3.0 support), I don't know how "correct" it is to do that, but i guess not specifying it before is how it worked? (Mesa/OpenGL fallbacks??)

I commented out these two lines and normal release build now works without problem.(L136, L137). nice job @vaxerski

vaxerski commented 3 months ago

Generally, I always check what I use for compatibilty against GLES3.2. If anything breaks, you're on your own.

Dickby commented 3 months ago

@vaxerski before the switch to aquamarine, my laptop would run hyprland without problem. It's EGL version 3.0 Setting Minor version to 0 works, but if that's not garanteed for the future, do we really want to restrict hyprland to newer hardware?

vaxerski commented 3 months ago

EGL has no 3.0, pretty sure you mean GLES 3.0

3.2 is already almost 10 years old... I can roll back the needed ver to 3.0 but I am unsure about what might break due to this. I don't check extensions for 3.0 compat, only 3.2

vaxerski commented 3 months ago

there, rolled it back. For 3.2-compliant drivers this shouldn't change anything AFAIK

Dickby commented 3 months ago

Love you, thanks

Micovec commented 3 months ago

Thanks Vaxry, you're the best.