Open mgmillani opened 4 years ago
Thank you for this bug report. This is highly appreciated considering that you have a Radeon card on an hybrid configuration, something I had never been able to test.
Could you share your NixOS setup regarding the opengl setup? Also, how to you switch between the integrated GPU and the discrete one?
The glibc stuff is expected. Right now, nixGL is not doing anything for radeon driver, so you basically hit the problem that the test binary is using an older version of nixos, so program uses an older glibc, probably 2.27, however your system drivers uses 2.29 or 2.30.
Could you share your NixOS setup regarding the opengl setup?
I think the only things opengl-related in my configuration are the following lines:
hardware.opengl.driSupport32Bit = true;
environment.systemPackages = [ pkgs.xorg.xf86videoamdgpu ];
I use the first line to be able to run games on wine.
Also, how to you switch between the integrated GPU and the discrete one?
This is done through the environment variable DRI_PRIME
. Setting it to 1 enables the discrete GPU. If it is unset, the program is run on the integrated GPU. As far as I know, the switch is made on kernel/driver level and is per application.
@mgmillani I can do attempt and ask you for test, but this may take time. If you can give me an access to your machine (tmate, or raw ssh session
), I may be able to live test.
Sure, I can run further tests when you got something ready.
Since this is my personal computer, I would rather not give anyone else access to it. (I'm sure you understand).
And thanks a lot for looking into this!
Since this is my personal computer, I would rather not give anyone else access to it. (I'm sure you understand).
Yes, I do, that's perfectly fine ;)
Could you give me a few details. On your nixos setup, with working opengl, could you give me the output of;
glxinfo | grep "OpenGL version string"
DRI_PRIME=1 glxInfo | grep "OpenGL version string"
vulkaninfo | grep "driverName"
DRI_PRIME=1 vulkaninfo | grep "driverName".
After analysis of your test results, nixGL seems to work fine for OpenGL on your configuration, using the mesa driver. But not for vulkan.
$ glxinfo | grep "OpenGL version string"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.2
$ DRI_PRIME=1 glxinfo | grep "OpenGL version string"
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.2
$ DRI_PRIME=1 vulkaninfo | grep "driverName"
driverName = radv
driverName = radv
driverName = radv
driverName = radv
$ vulkaninfo | grep "driverName"
driverName = radv
driverName = radv
driverName = radv
driverName = radv
As a sanity check (since the results are strangely the same for both cards):
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD RAVEN (DRM 3.35.0, 5.4.32, LLVM 9.0.1)
$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon (TM) RX Graphics (POLARIS11, DRM 3.35.0, 5.4.32, LLVM 9.0.1)
Thank you!
I do wonder now if my test must check for the OpenGL renderer
string or the OpenGL version
....
Vulkan is failing because the 64 bit loader is trying the 32 bit driver and the converse. I'm surprised.
I obtained the following output when running Test.hs:
Obviously, all Nvidia tests fails since I do not have an Nvidia graphics card, so I omitted the messages.
One particularly weird thing is the glibc version(s) mentioned: One place mentions 2.27, another says GLIBC_2.29, the driver seems to use 2.30 however:
System info: GPU: Radeon RX 560X Integrated GPU: Radeon Vega 8 OS: nixos unstable nixGL commit: 5f330c2185dc7816fed431d29c4249ab090deb00