linuxserver / docker-blender

Responsive web accessible Blender Docker container with hardware acceleration.
GNU General Public License v3.0
60 stars 14 forks source link

[question] Viewport is unresponsive if bigger than full hd, Does 4k 60fps is achievable ? #11

Closed erinorina closed 3 months ago

erinorina commented 3 months ago

Is there an existing issue for this?

Current Behavior

The blender viewport is responsive at full hd resolution, but not in 4k on localhost, I would like to understand if i miss-configured my launch parameters, or if it's a limitation of KASMvnc. cuda , optix, work fine in the container.

My HOST hardware :

NVIDIA RTX 3060 Driver Version: 525.147.05 CUDA Version: 12.0

$ xdpyinfo | grep -i "DRI"
    DRI2
    DRI3

In the Container: I am not sure if it's relevant, but i noticed xdpyinfo | grep -i "DRI" return nothing

Glx infos :

OpenGL vendor string: Mesa
OpenGL renderer string: zink Vulkan 1.3(llvmpipe (LLVM 15.0.7, 256 bits) (MESA_LLVMPIPE))
OpenGL core profile version string: 4.6 (Core Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 23.2.1-1ubuntu3.1~22.04.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

Expected Behavior

No response

Steps To Reproduce

docker run -d \
  --name=blender \
  --gpus all \
  --security-opt seccomp=unconfined `#optional` \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e SUBFOLDER=/ `#optional` \
  -e NVIDIA_VISIBLE_DEVICES=all \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /path/to/config:/config \
  --restart unless-stopped \
  --device=/dev/dri:/dev/dri lscr.io/linuxserver/blender:latest

Environment

- OS:  debian 12, Linux x99 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.38-2 (2023-07-27) x86_64 GNU/Linux
- How docker service was installed: via apt

CPU architecture

x86-64

Docker creation

$ docker run -d \
  --name=blender \
  --gpus all \
  --security-opt seccomp=unconfined `#optional` \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e SUBFOLDER=/ `#optional` \
  -e NVIDIA_VISIBLE_DEVICES=all \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /path/to/config:/config \
  --restart unless-stopped \
  --device=/dev/dri:/dev/dri lscr.io/linuxserver/blender:latest

Container logs

$ docker logs blender
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
GID/UID
───────────────────────────────────────

User UID:    1000
User GID:    1000
───────────────────────────────────────

**** adding /dev/dri/renderD128 to video group ssl-cert with id 105 ****
**** adding /dev/dri/card0 to video group video with id 44 ****
[custom-init] No custom files found, skipping...
/usr/bin/nvidia-smi
/usr/bin/nvidia-smi
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.

Xvnc KasmVNC 1.2.0 - built May 25 2024 18:57:36
Copyright (C) 1999-2018 KasmVNC Team and many others (see README.me)
See http://kasmweb.com for information on KasmVNC.
Underlying X server release 12014000, The X.Org Foundation

[ls.io-init] done.
Obt-Message: Xinerama extension is not present on the server
github-actions[bot] commented 3 months ago

Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.

thelamer commented 3 months ago

Kasmvnc limitation, you might want to try lossless if you have a bunch of spare CPU threads. It is still VNC, turbocharged VNC with more broad image format support but it is not a video codec.

erinorina commented 3 months ago

Thank's , sorry i overlook the cpu usage, 24 threads at 2.50GHz are not enough (XeonCPU E5-2678 v3), I will look into another protocol that use GPU encode/decode (moonlight/sunshine) which use nvenc.