OpenGL version problem
My system reports that im using OpenGL 4.2: https://pastebin.com/uXu3BLxX But when i try to use that OpenGL vesion to write a program with it, it fails, the maximum version i can use for that is OpenGL 2.1, why does that happen?
is there a way to request glfw to use the software implementation (ps: yes, im using the same shitty computer)
Try compiling GLFW from source against GLX instead of EGL. If glxinfo is talking to a software implementation running on your system, I'd expect GLFW built to use GLX would use the same implementation on your computer.
im using the GLFW source code, and compiling it alongside my program, how i should compile it now?
GLFW_USE_WAYLAND
andGLFW_USE_OSMESA
turned off to get it to try to build against X11.GLFW_BUILD_DOCS
,GLFW_BUILD_EXAMPLES
,GLFW_BUILD_TESTS
CMAKE_INSTALL_PREFIX
if you don't want to use the /usr/local default install path.make
andmake install
pkg-config --cflags --libs --static glfw3
to get this info as part of your own build process (in a Makefile, for example) or else require glfw3 as part of a cmake-based build, but you can read what's generated in there if that program is not available to you for some reason. In case it's helpful for comparison, what I get with a custom build of the static library version of glfw3 installed into /usr/local on a slightly old version of Ubuntu is output like-I/usr/local/include -L/usr/local/lib -lglfw -lrt -lm -ldl -lX11 -lpthread -lxcb -lXau -lXdmcp
but you may need something different for your particular configuration.Basically, something like this, probably, to do the compilation and get the flags to pass to g++:
If you want to just compile a single cpp file after building and install, you can do something like
it worked! thank you
2.1 is ancient.
A heck of a lot of old stuff has been deprecated in the intervening years.. it's possible your drivers don't support emulating that old.. although I'd found most can still do 1.x (because it was relatively simple, fixed pipeline).
TBH though if you're writing anything new I'd start with vulkan, as it's really the next gen and nowadays supported everywhere.
It's more than likely that your hardware doesn't support OpenGL 4.2. While your system may be reporting that it's using version 4.2, llvmpipe is a software implementation of OpenGL rather than a hardware implementation.
Looking at your paste bin you can see it's using Core Profile & Compatibility Profile which means that it only supports the core features of OpenGL 4.2 and provides backward compatibility with older versions of OpenGL. If you want to use the compatibility profile, the highest version you can request is 3.0, however your hardware/driver probably only supports 3.0 as Core Profiles and to why you're stuck with OpenGL 2.1.