-
Notifications
You must be signed in to change notification settings - Fork 73
problem with AMD Gallium/Mesa (open source) GPU driver on Linux #30
Comments
It shouldn't be this slow. For performance, the Curv 3D viewing window depends on access to a hardware GPU made by Intel, AMD or Nvidia, using the vendor-supplied GPU driver. Maybe you are running Curv inside a VM, and the GPU driver is simulating a GPU in software? |
I assume you are running Linux inside a VM on Windows. You need to enable GPU acceleration in the VM. I assume that any GPU intensive 3D software will have the same problem that Curv is having, in this Linux-on-VM environment, and that this problem is not Curv specific. VncViewer is just a way to view the video display on a remote machine over a network connection. I guess you'd use it for communicating with programs running inside a VM. I don't expect it to affect the frame rate reported by Curv, but I expect it would add latency and make animations look jumpy. |
In the latest version of Curv, |
Doug, I dont run in a VM. I run in native linux when I test it. EE r600_shader.c:182 r600_pipe_shader_create - translation from TGSI failed ! The new curv -version now outputs: Curv: 0.1-226-g12dcafe Cheers Guenther |
Thanks for the extra information. I'm playing with VNC now, but getting Curv working acceptably over VNC looks hard. I recommend using it in the "normal" way, using a display that is plugged directly into the GPU. You are using the open source Mesa/Gallium driver for your GPU, at least in the non-VNC case where it is failing. I checked the error message, there's a bug open on Mesa for this, at https://bugs.freedesktop.org/show_bug.cgi?id=99349. As I understand the bug, a workaround in Curv is months of work, since it requires rewriting a significant part of the compiler. It happens if the GLSL code that I generate uses too many registers, so I need to write an optimizing compiler to limit GPU register use. The VNC code path bypasses this bug, so maybe it's using a slow pure-software renderer instead of using the GPU? That would explain the low frame rate. My solution is to use the vendor supplied GPU driver, from AMD. Don't use Mesa. |
Hi Dough, |
I googled this, and yeah, installing AMDGPU-PRO on Fedora-24 is way too much work. You have to downgrade your kernel and X11, it seems. |
The Mesa bug I linked to was fixed last year in Mesa 17.3. You reported running Mesa 12.0.3, which must be quite old. After installing xorg-x11-drv-amdgpu, try running Fedora-24 is very old (June 2016) and reached end-of-life last year. If you can't run the latest AMDGPU-PRO, then running the latest Mesa might help. There is a xorg-x11-drv-amdgpu-18.0.1-1 package for Fedora 28, looks like it contains Mesa 18.0.1. |
Hi Dough, Thank you for your valuable inputs. Cheers Günther |
After downloading dozens of Gigabytes from the internet, I finally arrived @ with that, curv still only works with VNC @ 1FPS EE r600_shader.c:3933 r600_shader_from_tgsi - GPR limit exceeded - shader requires 133 registers It appears that the number of registers used is dependant on the design. When reducing my design, it works locally displaying "6FPS". However this cannot be true. Trying to be objective its still less than 1 FPS and the mouse does not even move smoothly anymore while the program is run What could be wrong in my place ? |
A few initial comments.
I read up on the difference between the Mesa and AMDGPU-PRO drivers.
You are running Fedora, which is a "bleeding edge" distro. The advantage is you get to use newer versions of packages. The disadvantage is a higher risk of things not working, and having to deal with that when things break. For example, you have a bad GPU driver. I personally run Ubuntu LTS, which has a strong emphasis on making everything work, with the disadvantage that packages are old. I either live with the older packages, or "side-load" up to date software and install it in /usr/local. I think you have four options:
|
I can't guarantee that the patch for Mesa bug #105371 will fix all of the problems that break Curv. I looked at the bug fix, and it is not AMD specific. In principle, I should be able to reproduce the problem on my machine using the Nvidia Nouveau driver, which also uses Mesa. (In practice, the Nouveau driver doesn't work, I just get a black screen. I need to upgrade my Nouveau driver before I can make progress on reproduction...) My ideal solution is for the Mesa project to fix all of the bugs that break Curv. I'm going to see if I can figure out how to install the latest GPU driver from mesa3d.org, without relying on Ubuntu repositories. Then maybe I can start filing bug reports against Mesa. |
Hi doug! As far as your previuos posts, I decided to recompile and patch the MESA driver. I could not yet find out, where curv includes the MESA driver from. 1st installed them in /usr/local, ... still trying ... |
It appears you have temporarily changed your focus and you are looking into the driver issue rather than implementing new feature which is more attractive. Just managed to get curv use the compiled mesa, curv -version now shows: when i try running curv with my capsule wireframe icosahedron, it outputs: EE r600_shader.c:183 r600_pipe_shader_create - translation from TGSI failed ! Now there is no error about too many variables, but the mouse cursor becomes quite unresponsive and there is nothing to see ... |
This weekend I had time to install my NVideo GTX 1050 Graphics card into my computer and connecting my display to the new card ultimately displays something useful. Guenther |
Thanks for the update. I don't run Fedora, and I had the impression that
installing the nvidia drivers was easier than that. Let me know what
happens.
…On 20 August 2018 at 09:26, gsohler ***@***.***> wrote:
This weekend I had time to install my NVideo GTX 1050 Graphics card into
my computer and connecting my display to the new card ultimately displays
something useful.
Next step is compile run the NVidia installer in my linux box. It compiles
some of their modules against
my linux kernel, which appearently fails. need to look how to proceed.
Guenther
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#30 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AFB6oeHVkyfWCuoEjWY9hBDq7AM6Io3Fks5uSrkOgaJpZM4Vif5j>
.
|
i cant comment on this anymore, as i got a good nvidia card now. |
This problem seems to be resolved. Curv 0.4 works with the AMD Mesa 19.0.2 driver, according to a report from @ivocavalcante. Here's the relevant output from
This bug was originally reported for Mesa 18.x. |
I tried to create a nice wire model cube like this, but it only renders @ 1 FPS
this is way slower then originator.
How to write fast curv code ?
union[
for (i in 0..1)
for (j in 0..1)
(
capsule{ d:0.3, from:[i,j,0], to:[i,j,1] } ;
capsule{ d:0.3, from:[i,0,j], to:[i,1,j] } ;
capsule{ d:0.3, from:[0,i,j], to:[1,i,j] }
)
]
The text was updated successfully, but these errors were encountered: