Is there an existing issue for this?
Current Behavior
This is not new but I've had this issue before and continue to have it, my iPhone gets really warm and battery drains fast when connected to webtop. Is the client side gpu acclerated?
I have the container GPU accelerated and in the firefox and chromium browsers I'm showing it's all hardware accelerated. Encoder is set to x264enc and default settings everywhere else in the side panel.
Expected Behavior
Because the encoder is set to x264enc, it should be hardware accelrated by the iPhone so the phone doesn't heat up. I suspect it's using CPU to decode the stream vs using the GPU.
Steps To Reproduce
Vanilla docker-compose config and attempt to connect with iPhone or iPad and watch for 30 mins, observe the battery drain and the back side of the device is warm.
If I want a long h264 encoded video for example with vlc player app on the phone, or if I stream netflix, etc, phone is cool to the touch and battery lasts a long time.
Environment
- OS: Ubuntu 24.04
- How docker service was installed: Official Docs
CPU architecture
x86-64
Docker creation
docker-compose.yml
services:
webtop:
image: linuxserver/webtop:ubuntu-xfce
container_name: webtop01
environment:
- DRINODE=/dev/dri/renderD128
- DRI_NODE=/dev/dri/renderD128
- PIXELFLUX_WAYLAND=true
- PUID=1000
- PGID=1000
- TZ=America/New_York
- SUBFOLDER=/
- TITLE=Webtop
volumes:
- webtop_config:/config
ports:
- 3001:3001
devices:
- /dev/dri:/dev/dri
shm_size: "2gb"
deploy:
resources:
limits:
memory: 4GB
restart: unless-stopped
networks:
z_vlan6ipvlan:
ipv4_address: 192.168.6.33
dns:
- 192.168.6.1
networks:
z_vlan6ipvlan:
external: true
volumes:
webtop_config:
Container logs
INFO:data_websocket:Legacy client ('127.0.0.1', 34878) connected. Role: controller, Slot: None
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 34878)
INFO:data_websocket:Sending last known cursor to new client ('127.0.0.1', 34878)
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Registering new client for display: primary
INFO:data_websocket:Applying and sanitizing client settings for 'primary' (initial=True)
INFO:data_websocket:DPI changed from None to 96. Applying system-level change.
INFO:data_websocket:Wayland Settings: Executing 'wlr-randr --output WL-1 --scale 1.0' on wayland-0
INFO:data_websocket:Initial setup or dimensional change detected for 'primary'. Performing full display reconfiguration.
INFO:data_websocket:Starting display reconfiguration...
INFO:data_websocket:Calculating new extended desktop layout from ALL clients...
INFO:data_websocket:Aligned total width from 1762 to 1768 for xrandr.
INFO:data_websocket:Layout calculated: Total Size=1768x1060. Layouts: {'primary': {'x': 0, 'y': 0, 'w': 1762, 'h': 1060}}
INFO:data_websocket:Starting separate capture instances for each ACTIVE display region...
INFO:data_websocket:Client 'primary' is active. Starting its capture.
INFO:data_websocket:Preparing to start capture for display='primary': Res=1762x1060, Offset=0x0
INFO:main:Parsed DRI node '/dev/dri/renderD128' to index 0.
INFO:data_websocket:Registered Wayland cursor callback for 'primary'
INFO:data_websocket:Video chunk sender started for display 'primary'.
[Wayland] Encode Node Index: 0 | Driver: ../../../bus/pci/drivers/i915
[Wayland] Initializing Unified VAAPI Encoder...
INFO:data_websocket:SUCCESS: Capture started for 'primary'.
INFO:data_websocket:Broadcasting primary stream resolution to all clients: {"type": "stream_resolution", "width": 1762, "height": 1060}
INFO:data_websocket:Broadcasting display config update: DISPLAY_CONFIG_UPDATE,{"type": "display_config_update", "displays": ["primary"]}
INFO:data_websocket:Display reconfiguration finished successfully.
INFO:data_websocket:Reconfiguration process complete (state unlocked).
INFO:data_websocket:Initial client settings message processed by ws_handler.
INFO:data_websocket:Initial setup: Primary client connected, audio not active, attempting start.
INFO:data_websocket:Starting pcmflux audio pipeline...
INFO:data_websocket:pcmflux settings: device='output.monitor', bitrate=320000, channels=2
[pcmflux] Attempting to connect to PulseAudio device: output.monitor with latency: 10ms
INFO:data_websocket:pcmflux audio capture started successfully.
INFO:data_websocket:pcmflux audio chunk broadcasting task started.
[pcmflux] SUCCESS: Connected to PulseAudio.
[pcmflux] SUCCESS: Opus encoder created.
[pcmflux] Capture loop started. Device: output.monitor, Rate: 48000, Channels: 2, Bitrate: 320 kbps, VBR: On, Silence Gate: Off, Debug Logging: Off, PCM Chunk: 3840 bytes
INFO:data_websocket:Received redundant resize request for primary (1762x1060). No action taken.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: pcmflux audio pipeline already active.
[Wayland] VAAPI Encoder initialized successfully.
[Wayland] Decision: Zero-Copy path active.
Stream settings active -> Res: 1762x1060 | FPS: 60.0 | Stripes: 1 | Mode: H264 (VAAPI) FullFrame | CRF: 25 | PaintOver CRF: 18 (Burst: 5f) | Colorspace: I420 (Limited Range) | Damage Thresh: 10f | Damage Dur: 20f
[pcmflux] First non-silent audio chunk detected! Encoding...
Is there an existing issue for this?
Current Behavior
This is not new but I've had this issue before and continue to have it, my iPhone gets really warm and battery drains fast when connected to webtop. Is the client side gpu acclerated?
I have the container GPU accelerated and in the firefox and chromium browsers I'm showing it's all hardware accelerated. Encoder is set to x264enc and default settings everywhere else in the side panel.
Expected Behavior
Because the encoder is set to x264enc, it should be hardware accelrated by the iPhone so the phone doesn't heat up. I suspect it's using CPU to decode the stream vs using the GPU.
Steps To Reproduce
Vanilla docker-compose config and attempt to connect with iPhone or iPad and watch for 30 mins, observe the battery drain and the back side of the device is warm.
If I want a long h264 encoded video for example with vlc player app on the phone, or if I stream netflix, etc, phone is cool to the touch and battery lasts a long time.
Environment
CPU architecture
x86-64
Docker creation
docker-compose.yml services: webtop: image: linuxserver/webtop:ubuntu-xfce container_name: webtop01 environment: - DRINODE=/dev/dri/renderD128 - DRI_NODE=/dev/dri/renderD128 - PIXELFLUX_WAYLAND=true - PUID=1000 - PGID=1000 - TZ=America/New_York - SUBFOLDER=/ - TITLE=Webtop volumes: - webtop_config:/config ports: - 3001:3001 devices: - /dev/dri:/dev/dri shm_size: "2gb" deploy: resources: limits: memory: 4GB restart: unless-stopped networks: z_vlan6ipvlan: ipv4_address: 192.168.6.33 dns: - 192.168.6.1 networks: z_vlan6ipvlan: external: true volumes: webtop_config:Container logs