Hi Brecht, thanks for an explanation. I use Blender 2.8 over X11 and after adding new GUI - View3D with Eevee is black using Mesa v17/v18 libraries (lvmpipe, swr). Do you know what was changed in OpenGL?
The entire OpenGL implementation changed in Blender 2.8. We still have a lot of work to do to test and make things works on various GPUs.
We would like to have it working but there is no specific date planned for it, it’s not even clear to what extent OpenGL drivers of the various graphics cards even support this well. Note we are talking here about rendering on a computer without any display connected, background rendering works if there is a display. And Eevee is so fast that usually you don’t need to run it on a render farm, a single desktop computer can render out animations.
Hi brecht, just to add a precision: Eevee is fast but nothing is ever fast enough in 3D animation and we will always need render farms, millions $$$ of them even with Eevee. Please don’t underestimate the need for Eevee to be able to render on a farm.
Just an example: I am currently rendering a very light and small short movie with Eevee and I hit the limit pretty fast and I would really like to use my 100k$ render farm that is doing nothing while I struggle to render everything on my multi titan xp gpu workstation (while only one of them is working with Eevee cause it also doesn’t suport multi-gpu). In short my movie could have been rendered in 1 hour but I already spent 48 hours trying to render it on 2 workstations and it’s not finished yet. I also have workstations without any monitor and because of that I can’t render with them in Eevee so I will need to find some cheap broken monitor to plug them just for the ws and gpu render farm nodes to be able to render ;).
Thanks for your work other than that Eevee is fantastic and has huge potential. I had so much fun playing with light, dof, bloom and fog!
If only there was a way to fake a monitor by pluging some kind of device in the gpu port, it would allow Eevee to render at least. How does Eevee choose the GPU? What exactly is telling Eevee: “ok this gpu has a monitor plugged in one of its ports, your can use it to render.” Or “there is no monitor so you are not allowed to render”.? If we knew it we could maybe fake it…
Just wondering, how related is this question / issue to the one of rendering through ssh connections? I am having some difficulty rendering through ssh connections, even though I have -X forwarding which should mean that I have a display on my remote machine.
I have a minimal working example provided in this StackExchange question. I don’t know if it makes sense to have essentially a duplicate post on devtalk but I’m happy to investigate more at this and to discuss here (or maybe in a new question?) if that makes more sense.
Why use X forwarding for background rendering? If all the rendering happens on the remote GPU nothing that needs to be forwarded to the local machine. If rendering happens on the local GPU there is no point to involve a remote machine.
Thanks for the reply. I suppose I might not be understanding the purpose of X forwarding. The goal here is to get rendering done on that remote GPU. I guess my question can be simplified as follows:
How may I successfully run this over an ssh connection to a headless research server that has state of the art NVIDIA GPUs and recent OpenGL versions? By “running this” I mean running the command:
blender --background --python example-script.py
where example-script.py contains just those four lines above.
Hopefully this makes the question clear! Please let me know if I can clarify and/or provide more information (or if it would be better to start a new question).
EDIT: fixed a typo in the script call, it should say --background, not --render as I had earlier.
I don’t know the steps to do it, just that X forwarding should not be needed since all computation should happen on the remote machine.
I would try what @vadimlobanov says above, install and run graphics drivers and Xorg on the remote machine, then see what glxinfo gives and go from there. There is no support yet for headless rendering in Eevee, so it may be necessary to do some configuration that makes it seem like there is a display even if there is no physical display.