- hw/nvme: Remove redundant dma_blk_write - tests/avocado/machine_s390_ccw_virtio: Adapt test to new default resolution - edid: set default resolution to 1280x800 (WXGA) - iotests/308: Fix for CAP_DAC_OVERRIDE - hvf: remove unused but set variable - vvfat: Fix vvfat_write() for writes before the root directory - hw/misc/nrf51_rng: Don't use BIT_MASK() when we mean BIT() - hw/pci: Remove unused pci_irq_pulse() method - ui/gtk: fix leaks found wtih fuzzing - target/i386: fix size of EBP writeback in gen_enter() - tests/qtest/fuzz: fix memleak in qos_fuzz.c - hw/core/loader: gunzip(): fix memory leak on error path - migration: fix a typo - scsi: fetch unit attention when creating the request - raw-format: Fix error message for invalid offset/size - tcg: Reset data_gen_ptr correctly - Fix calculation of minimum in colo_compare_tcp - hw/intc: Don't clear pending bits on IRQ lowering - target/arm: Drop user-only special case in sve_stN_r - usb-hub: Fix handling port power control messages - target/ppc: Set ctx->opcode for decode_insn32() - linux-user: Add proper strace format strings for getdents()/getdents64() - linux-user: Fix TARGET_PROT_SEM for XTENSA - linux-user/hppa: Set TASK_UNMAPPED_BASE to 0xfa000000 for hppa arch - linux-user/hppa: Dump IIR on register dump - tests: Fix typo in check-help output - qdev-core.h: Fix wrongly named reference to TYPE_SPLIT_IRQ - hw/scsi/megasas: Simplify using the ldst API - gqa-win: get_pci_info: Clean dev_info if handle is valid - target/ppc: Fix 7448 support - vvfat: Fix size of temporary qcow file - docs: Correct 'vhost-user-blk' spelling - jackaudio: use ifdefs to hide unavailable functions - simplebench: Fix Python syntax error (reported by LGTM) - python: update type hints for mypy 0.930 - Python/aqmp: fix type definitions for mypy 0.920 - tcg: Allow top bit of SIMD_DATA_BITS to be set in simd_desc() - hw/ppc/e500: Prefer QOM cast - hw/ppc/e500: Remove unused "irqs" parameter - hw/ppc/e500: Add missing device tree properties to i2c controller node - linux-user: Show timespec on strace for futex() - linux-user: Add strace for clock_nanosleep() - linux-user: Fix strace of chmod() if mode == 0 - linux-user: Log failing executable in EXCP_DUMP() - linux-user: Add pidfd_open(), pidfd_send_signal() and pidfd_getfd() syscalls Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com> (cherry picked from commit 87ebac5b5cfb97ddb7ac2af097703758fb0751c4)
115 lines
4.4 KiB
Diff
115 lines
4.4 KiB
Diff
From 33d5ea75f73c19ed9058fa700eb65a405c7c7bcc Mon Sep 17 00:00:00 2001
|
|
From: Luo Yifan <luoyifan_yewu@cmss.chinamobile.com>
|
|
Date: Wed, 20 Nov 2024 11:13:22 +0800
|
|
Subject: [PATCH] edid: set default resolution to 1280x800 (WXGA)
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
cherry picked from commit de72c4b7cdf6ec18bfe9fe714aa96e48db6fd895
|
|
|
|
Currently QEMU defaults to a resolution of 1024x768 when exposing EDID
|
|
info to the guest OS. The EDID default info is important as this will
|
|
influence what resolution many guest OS will configure the screen with
|
|
on boot. It can also potentially influence what resolution the firmware
|
|
will configure the screen with, though until very recently EDK2 would
|
|
not handle EDID info.
|
|
|
|
One important thing to bear in mind is that the default graphics card
|
|
driver provided by Windows will leave the display set to whatever
|
|
resolution was enabled by the firmware on boot. Even if sufficient
|
|
VRAM is available, the resolution can't be changed without installing
|
|
new drivers. IOW, the default resolution choice is quite important
|
|
for usability of Windows.
|
|
|
|
Modern real world monitor hardware for desktop/laptop has supported
|
|
resolutions higher than 1024x768 for a long time now, perhaps as long
|
|
as 15+ years. There are quite a wide variety of native resolutions in
|
|
use today, however, and in wide screen form factors the height may not
|
|
be all that tall.
|
|
|
|
None the less, it is considered that there is scope for making the
|
|
QEMU default resolution slightly larger.
|
|
|
|
In considering what possible new default could be suitable, choices
|
|
considered were 1280x720 (720p), 1280x800 (WXGA) and 1280x1024 (SXGA).
|
|
|
|
In many ways, vertical space is the most important, and so 720p was
|
|
discarded due to loosing vertical space, despite being 25% wider.
|
|
|
|
The SXGA resolution would be good, but when taking into account
|
|
window titlebars/toolbars and window manager desktop UI, this might
|
|
be a little too tall for some users to fit the guest on their physical
|
|
montior.
|
|
|
|
This patch thus suggests a modest change to 1280x800 (WXGA). This
|
|
only consumes 1 MB per colour channel, allowing double buffered
|
|
framebuffer in 8 MB of VRAM. Width wise this is 25% larger than
|
|
QEMU's current default, but height wise this only adds 5%, so the
|
|
difference isn't massive on the QEMU side.
|
|
|
|
Overall there doesn't appear to be a compelling reason to stick
|
|
with 1024x768 resolution.
|
|
|
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Message-Id: <20211129140508.1745130-1-berrange@redhat.com>
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Signed-off-by: Luo Yifan <luoyifan_yewu@cmss.chinamobile.com>
|
|
---
|
|
hw/display/edid-generate.c | 4 ++--
|
|
include/hw/virtio/virtio-gpu.h | 4 ++--
|
|
qemu-edid.c | 4 ++--
|
|
3 files changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/hw/display/edid-generate.c b/hw/display/edid-generate.c
|
|
index f2b874d5e3..6f5ac6a38a 100644
|
|
--- a/hw/display/edid-generate.c
|
|
+++ b/hw/display/edid-generate.c
|
|
@@ -401,10 +401,10 @@ void qemu_edid_generate(uint8_t *edid, size_t size,
|
|
info->name = "QEMU Monitor";
|
|
}
|
|
if (!info->prefx) {
|
|
- info->prefx = 1024;
|
|
+ info->prefx = 1280;
|
|
}
|
|
if (!info->prefy) {
|
|
- info->prefy = 768;
|
|
+ info->prefy = 800;
|
|
}
|
|
if (info->prefx >= 4096 || info->prefy >= 4096) {
|
|
large_screen = 1;
|
|
diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
|
|
index acfba7c76c..2179b75703 100644
|
|
--- a/include/hw/virtio/virtio-gpu.h
|
|
+++ b/include/hw/virtio/virtio-gpu.h
|
|
@@ -147,8 +147,8 @@ struct VirtIOGPUBaseClass {
|
|
DEFINE_PROP_UINT32("max_outputs", _state, _conf.max_outputs, 1), \
|
|
DEFINE_PROP_BIT("edid", _state, _conf.flags, \
|
|
VIRTIO_GPU_FLAG_EDID_ENABLED, true), \
|
|
- DEFINE_PROP_UINT32("xres", _state, _conf.xres, 1024), \
|
|
- DEFINE_PROP_UINT32("yres", _state, _conf.yres, 768)
|
|
+ DEFINE_PROP_UINT32("xres", _state, _conf.xres, 1280), \
|
|
+ DEFINE_PROP_UINT32("yres", _state, _conf.yres, 800)
|
|
|
|
typedef struct VGPUDMABuf {
|
|
QemuDmaBuf buf;
|
|
diff --git a/qemu-edid.c b/qemu-edid.c
|
|
index c3a9fba10d..20c958d9c7 100644
|
|
--- a/qemu-edid.c
|
|
+++ b/qemu-edid.c
|
|
@@ -10,8 +10,8 @@
|
|
#include "hw/display/edid.h"
|
|
|
|
static qemu_edid_info info = {
|
|
- .prefx = 1024,
|
|
- .prefy = 768,
|
|
+ .prefx = 1280,
|
|
+ .prefy = 800,
|
|
};
|
|
|
|
static void usage(FILE *out)
|
|
--
|
|
2.41.0.windows.1
|
|
|