• NikkiNikkiNikki@kbin.social
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    It seems to have something to do with context creation, not the window, first thing I’d try to do is use a lower opengl version when creating the window and see if that works, Wayland uses EGL as far as I know, so the base compatibility will potentially be different? The error message isn’t very useful either, as it’s a one liner, it also could potentially be a GLFW bug itself too…

    • e0qdk@kbin.social
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I was digging around in the GLFW code a bit before I saw your comment, and the “Arguments are inconsistent” message seems to be how GLFW describes an EGL_BAD_MATCH error code. There’s a few places in egl_context.c where getEGLErrorString is called that could return that string, but it’s probably in _glfwCreateContextEGL given the “Failed to create context” part of the error quoted.

      The error handling there (if this is the right place – I would have also expected “EGL” in the message, but maybe OP dropped it) follows a failure of eglCreateContext. The reference documentation for that function here – https://registry.khronos.org/EGL/sdk/docs/man/html/eglCreateContext.xhtml – unfortunately doesn’t give much detail about the kinds of errors that can happen, but does talk about OpenGL versions so a mismatch on that makes sense; I think this is on the right track.

      Googling the OpenGL renderer string: llvmpipe (LLVM 16.0.6, 128 bits) line from the glxinfo output suggests that’s software rendering, so the OpenGL version shown there may differ from what is actually supported by hardware rendering. Is there an EGL equivalent to glxinfo? (eglinfo, maybe?)

      I’d personally comment out all the glfwWindowHint calls and see if a window shows up at all – then mess with the OpenGL version if needed.

    • prettydarknwild@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      It also throws an error code: 65543, i didnt add it because i thought it was an error in my code that i wasnt able to see, im sorry, anyway, do you need more info about my system?

      • e0qdk@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        65543 seems to be the constant defined for GLFW_VERSION_UNAVAILABLE passed back from the error handling code I was looking at in egl_context.c – that helps confirm I’m looking at the right chunk of code in GLFW’s guts, thanks.

        As I suggested in my other comment, try commenting out the hint lines and see if a window shows up at all. (Your program doesn’t do anything other than quit after making the window, so it should just flash a window briefly, I’d expect.)

          • NikkiNikkiNikki@kbin.social
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            That’s because you need to run an event loop, your window is being created successfully, but your program immediately exits after the fact because the line directly after glfwCreateWindow is return EXIT_SUCCESS. You’re probably good to follow the rest of the tutorial now

      • NikkiNikkiNikki@kbin.social
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        Try doing what e0qdk suggests in this comment as it seems to be an issue with how GLFW creates windows in wayland. You’re technically creating an eGL window through it and the profile version is different (egl2 is opengl4.x compatible while egl1 is opengl 3.x compatible I think?), so just remove the window calls to glfwWindowHint and see what version it tries to use by default

        • prettydarknwild@lemmy.worldOP
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          i commented all the calls to glfwWindowHint, and now it just exits inmediately with code 0, so i think it is working, although it doesnt create any window either, there is a way to see which version is using by default?