From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 6E3B91FF0E9 for ; Thu, 16 Jul 2026 12:45:58 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 3B5CC21492; Thu, 16 Jul 2026 12:45:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784198713; x=1784803513; darn=lists.proxmox.com; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=kq6j+vU2w9UdDpeCOkYze02M4FyLMz61zk9DwKegmMw=; b=g3X/KEeZtJzZzuL1z5uD8tl1p6GgYRonX2i7d/qXFTgQOhrktnJlt9jaqlGC9IgDP4 BPuV1xWJHWGtW2htJS+VUdaVNR+PVMpcGHePcT0iG2/BjG9ue7yqIC1oSjENYk8GsM2X O3/KgzkmNJ3UeeVMARzuaYzSCOpfCoVCvY6KbeFqrBNh9rVwWQVMoKME/0is5NMmkTHg Ex9ZJV6skof9Ir4Wqtj0fib+GC3K7/DszT2cNfj5R0whhFtK97WjrSju078qx6/MotvX rYr+jWJFsi78ndwyKEbWSbENPl2ZfCeA3ymFDzAJxbxeoTOrOz2RPcgo3VsWkcT36Aje 0qeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784198713; x=1784803513; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=kq6j+vU2w9UdDpeCOkYze02M4FyLMz61zk9DwKegmMw=; b=B0lgRsRGPI8K7oQC1tiaOd3X43HZlmSPgoAjakdwkfGIAKIvWBZ12R4MNPvp+kOgyP y0eBy0ZdKPhxS8gXnLPXYRUl3IiIbI5VgFlQH50dFCnSmQfOm6Swfeqqln3jfuh84Qcv IwFJhaL7JVH9tRY8IRhd7tUGxD+36DBUpz1DX1H2WQqLS/7pa4tqa5TRw7IMekjXcZuV xGAJ+lAvdDowWj6rX9Px+NJNH1jyLd4jdVhAhM034R4sCRZa+MAu5dHnniNHQGzUYYUr A19yOJKszwk7/FO5SYRjI7a/kU26KvG7UAdlgbZONzo/WESNGJobt4Yf/EGypTlx8YdF 5jKQ== X-Gm-Message-State: AOJu0YyCmv/FapZIJhDjP3gioCl+iAMHyPJMoec+/VkeRoQcMBkFuXZa HPmxlKIPnRluWmRc/NreEgFki7FJqHAATD3xWarBv4xI2DhcwTzRjvfadTzkaUUW X-Gm-Gg: AfdE7cnFOBwjM872xmWwXj0lmEaFOU0Kbf8BGudMl7/dAa5GYhuGHuS6CvD2/iqb6bA UZX50EazvPTQvwcFPFYvtH22Qxh7MklI4yzr+3bDZ8fuypQ6VvN7DId1KLGUwJjfxRL5govXmor XfFDyK9fXGY6mCCL7bBYG3eOtu6u1WvOn9uG1f6sE+uuLfGNi/BbfE7CsBWh8FeK8rxScPtQh45 dKjXAVwf7kxv2SL5imoGpg7VuUp1VXWhCKPkfi3KZOUtRpqTvYTTos/m8+e5Ctp77CNSctZun40 5m0C+YUAo01IvkQdo2B/t9d5Vyf15Ud07CMF5Yf3vMi6qKNBfaVzVL/2uii++qf5yI+cvHLMy6W yRCpn7961IHXPaXsuxAoANiIdE0GZxgQWzoUmeO4GMGlpNxU0X+Zb1xWetZ/vXdGu5X/g6vPscU n69Pm9bNvny6MJPLrWbHr/8Y4KKh1BvESBNsdqP1M= X-Received: by 2002:a05:6a00:c587:10b0:84a:32a9:a5fd with SMTP id d2e1a72fcca58-84a32a9a786mr9620332b3a.59.1784198713087; Thu, 16 Jul 2026 03:45:13 -0700 (PDT) From: Kaiyang Wu X-Google-Original-From: Kaiyang Wu To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server v3 2/2] qemuserver: make vga model mapping architecture-aware Date: Thu, 16 Jul 2026 18:43:51 +0800 Message-ID: <20260716104440.302873-3-wukaiyang@loongfans.cn> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260716104440.302873-1-wukaiyang@loongfans.cn> References: <20260716104440.302873-1-wukaiyang@loongfans.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.000 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from domain DMARC_PASS -0.1 DMARC pass policy FREEMAIL_ENVFROM_END_DIGIT 1 Envelope-from freemail username ends in digit FREEMAIL_FROM 0.001 Sender email is commonly abused enduser mail provider RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: OBM6PTGHSKXJ2EPS7AEX7S6EHGWYUVRT X-Message-ID-Hash: OBM6PTGHSKXJ2EPS7AEX7S6EHGWYUVRT X-MailFrom: wukaiyang2003@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Kaiyang Wu X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Fix virtio-gpu not being available on aarch64. QEMU only provides the non-VGA variant of virtio-gpu-gl on aarch64. Add 'map_vga_model' subroutine to map VGA models to correct device names on different architectures accordingly, replacing the old 'vga_map' look up method. Suggested-by: Dominik Csapak Signed-off-by: Kaiyang Wu --- src/PVE/QemuServer.pm | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index c11351bb..e4e15f12 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -1475,21 +1475,29 @@ sub print_netdev_full { return $netdev; } -my $vga_map = { - 'cirrus' => 'cirrus-vga', - 'std' => 'VGA', - 'vmware' => 'vmware-svga', - 'virtio' => 'virtio-vga', - 'virtio-gl' => 'virtio-vga-gl', -}; +sub map_vga_model { + my ($vga_type, $arch) = @_; + my $vga_map = { + 'cirrus' => 'cirrus-vga', + 'std' => 'VGA', + 'vmware' => 'vmware-svga', + }; + + if ($arch eq 'x86_64') { + $vga_map->{'virtio'} = 'virtio-vga'; + $vga_map->{'virtio-gl'} = 'virtio-vga-gl'; + } elsif ($arch eq 'aarch64') { + $vga_map->{'virtio'} = 'virtio-gpu'; + $vga_map->{'virtio-gl'} = 'virtio-gpu-gl'; + } + + return $vga_map->{$vga_type}; +} sub print_vga_device { my ($conf, $vga, $arch, $machine_version, $id, $qxlnum, $bridges) = @_; - my $type = $vga_map->{ $vga->{type} }; - if ($arch eq 'aarch64' && defined($type) && $type eq 'virtio-vga') { - $type = 'virtio-gpu'; - } + my $type = map_vga_model($vga->{type}, $arch); my $vgamem_mb = $vga->{memory}; my $max_outputs = ''; -- 2.52.0