From: Dominik Csapak <d.csapak@proxmox.com>
To: Markus Frank <m.frank@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [PATCH pve-manager v3 2/2] ui: qemu: add VirGl feature selection in DisplayEdit
Date: Fri, 3 Jul 2026 13:57:58 +0200 [thread overview]
Message-ID: <bd2480b4-f0cc-495b-b37f-2145ae4a3b82@proxmox.com> (raw)
In-Reply-To: <20260626141044.311778-3-m.frank@proxmox.com>
one nit inline, but not a blocker for me
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
On 6/26/26 4:12 PM, Markus Frank wrote:
> The user can choose which feature set to use:
> - the default option with OpenGL 4.3 support
> - a option with OpenGL 4.6 support
> - a option with both OpenGL 4.6 and Vulkan support
>
> As the feature sets other than the default require a VirGL memory
> window, the user can change the size of the default window in a
> different combo box.
>
> Add a controller to reset the combo boxes when they cannot be used and
> add formulars to disable them.
>
> Signed-off-by: Markus Frank <m.frank@proxmox.com>
> ---
> www/manager6/qemu/DisplayEdit.js | 72 +++++++++++++++++++++++++++++++-
> 1 file changed, 71 insertions(+), 1 deletion(-)
>
> diff --git a/www/manager6/qemu/DisplayEdit.js b/www/manager6/qemu/DisplayEdit.js
> index 3f583adb..e05f8f22 100644
> --- a/www/manager6/qemu/DisplayEdit.js
> +++ b/www/manager6/qemu/DisplayEdit.js
> @@ -11,12 +11,42 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
> return { vga: ret };
> },
>
> + controller: {
> + xclass: 'Ext.app.ViewController',
> +
> + onTypeChange: function (type) {
> + let me = this;
> + let vm = me.getViewModel();
> +
> + if (type.getValue() !== 'virtio-gl') {
> + vm.set('virglMemoryWindow', '__default__');
> + vm.set('virglFeatures', '__default__');
> + vm.notify();
> + }
> + },
> +
> + onFeaturesChange: function (features) {
> + let me = this;
> + let vm = me.getViewModel();
> +
> + if (features.getValue() === '__default__') {
> + vm.set('virglMemoryWindow', '__default__');
> + vm.notify();
> + }
> + },
> + },
> +
> viewModel: {
> data: {
> type: '__default__',
> clipboard: '__default__',
> + virglFeatures: '__default__',
> + virglMemoryWindow: '__default__',
> },
> formulas: {
> + isVirgl: function (get) {
> + return get('type') === 'virtio-gl';
> + },
this could be in the same one line style as the other below
isVirgl: (get) => get('type') === 'virtio-gl',
> matchNonGUIOption: function (get) {
> return get('type').match(/^(serial\d|none)$/);
> },
> @@ -35,6 +65,7 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
> return Proxmox.Utils.defaultText;
> }
> },
> + virglIsDefault: (get) => get('virglFeatures') === '__default__',
> isVNC: (get) => get('clipboard') === 'vnc',
> hideDefaultHint: (get) => get('isVNC') || get('matchNonGUIOption'),
> hideVNCHint: (get) => !get('isVNC') || get('matchNonGUIOption'),
> @@ -58,6 +89,7 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
> }
> return true;
> },
> + listeners: { change: 'onTypeChange' },
> bind: {
> value: '{type}',
> },
> @@ -78,6 +110,40 @@ Ext.define('PVE.qemu.DisplayInputPanel', {
> ],
>
> advancedItems: [
> + {
> + xtype: 'proxmoxKVComboBox',
> + name: 'virgl-features',
> + deleteEmpty: false,
> + fieldLabel: gettext('VirGL Features'),
> + listeners: { change: 'onFeaturesChange' },
> + comboItems: [
> + ['__default__', Proxmox.Utils.defaultText + ' (OpenGL 4.3)'],
> + ['opengl4.6', 'OpenGL 4.6 support'],
> + ['opengl4.6+vulkan', 'OpenGL 4.6 and Vulkan support'],
> + ],
> + bind: {
> + value: '{virglFeatures}',
> + disabled: '{!isVirgl}',
> + },
> + },
> + {
> + xtype: 'proxmoxKVComboBox',
> + name: 'virgl-memory-window',
> + deleteEmpty: false,
> + fieldLabel: gettext('VirGL Host Memory Window'),
> + comboItems: [
> + ['__default__', Proxmox.Utils.defaultText + ' (2048 MiB)'],
> + ['512', '512 MiB'],
> + ['1024', '1024 MiB'],
> + ['2048', '2048 MiB'],
> + ['4096', '4096 MiB'],
> + ['8192', '8192 MiB'],
> + ],
> + bind: {
> + value: '{virglMemoryWindow}',
> + disabled: '{virglIsDefault}',
> + },
> + },
> {
> xtype: 'proxmoxKVComboBox',
> name: 'clipboard',
> @@ -141,7 +207,11 @@ Ext.define('PVE.qemu.DisplayEdit', {
> vmconfig: undefined,
>
> subject: gettext('Display'),
> - width: 350,
> + width: 450,
> +
> + fieldDefaults: {
> + labelWidth: 180,
> + },
>
> items: [
> {
prev parent reply other threads:[~2026-07-03 11:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-26 14:07 [PATCH qemu-server/pve-manager v3 0/2] add virtio-vga-gl OpenGL 4.6 & Vulkan (venus) support Markus Frank
2026-06-26 14:07 ` [PATCH qemu-server v3 1/2] virtio-vga-gl: add OpenGL 4.6 and Vulkan (Venus) support Markus Frank
2026-07-03 11:52 ` Dominik Csapak
2026-06-26 14:07 ` [PATCH pve-manager v3 2/2] ui: qemu: add VirGl feature selection in DisplayEdit Markus Frank
2026-07-03 11:57 ` Dominik Csapak [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bd2480b4-f0cc-495b-b37f-2145ae4a3b82@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=m.frank@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox