On 4/14/25 17:47, Dmitry Osipenko wrote:
> On 4/11/25 04:42, 刘聪 wrote:
>>
>>
>>
>>> -----Original Messages-----
>>> From: "Dmitry Osipenko" <dmitry.osipe...@collabora.com>
>>> Send time:Friday, 04/11/2025 05:59:11
>>> To: "Cong Liu" <liucong2...@phytium.com.cn>
>>> Cc: jiqian.c...@amd.com, akihiko.od...@daynix.com, alex.ben...@linaro.org, 
>>> alexander.deuc...@amd.com, christian.koe...@amd.com, 
>>> gert.wol...@collabora.com, gurchetansi...@chromium.org, h...@alyssa.is, 
>>> honglei1.hu...@amd.com, julia.zh...@amd.com, kra...@redhat.com, 
>>> marcandre.lur...@redhat.com, m...@redhat.com, pbonz...@redhat.com, 
>>> phi...@linaro.org, pierre-eric.pelloux-pra...@amd.com, 
>>> qemu-devel@nongnu.org, ray.hu...@amd.com, robdcl...@gmail.com, 
>>> roger....@citrix.com, s...@redhat.com, stefano.stabell...@amd.com, 
>>> xenia.ragiada...@amd.com, zzyi...@chromium.org
>>> Subject: Re: [PATCH v11 04/10] virtio-gpu: Support asynchronous fencing
>>>
>>> 10.04.2025 12:54, Cong Liu пишет:
>>>> I discovered that on an ARM64 environment, the 'virtio-gpu: Support 
>>>> asynchronous fencing' patch causes the virtual machine GUI to fail to 
>>>> display. Rolling back this patch and using virgl allows the virtual 
>>>> machine to start normally. When the VM screen is black, I can see some 
>>>> errors in QEMU. I used QEMU's -serial stdio to enter the virtual machine's 
>>>> command line console but didn't see any errors inside the VM - the 
>>>> graphical interface seems to be stuck. I would greatly appreciate any 
>>>> suggestions regarding effective troubleshooting methods or specific areas 
>>>> I should investigate to resolve this issue.
>>>>
>>>> Here's my software and hardware environment:
>>>> - host and guest are ubuntu 24.04
>>>> - QEMU: https://gitlab.freedesktop.org/digetx/qemu.git native-context-v11 
>>>> branch
>>>> - virglrender: latest main branch 08eb12d00711370002e8f8fa6d620df9b79f9e27
>>>> - Mesa: Mesa 25.0~git2504031308.ff386e~oibaf~n (git-ff386eb 2025-04-03 
>>>> noble-oibaf-ppa)
>>>> - Kernel: Linux d3000 6.14.1-061401-generic #202504071048
>>>> - GPU: Radeon RX 6600/6600 XT/6600M
>>>> - CPU: phytium D3000 aarch64
>>>>
>>>> Here's the command I'm using to run the virtual machine, which displays a 
>>>> black frame with "Display output is not active" and fails to start the 
>>>> graphical interface normally:
>>>>
>>>>     phytium@d3000:~/working/qemu$ /usr/local/bin/qemu-system-aarch64 
>>>> --machine virt,accel=kvm -cpu host -smp 4 -m 4G -drive 
>>>> file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio
>>>>  -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device 
>>>> virtio-net-pci,netdev=net0 -device virtio-gpu-gl -display 
>>>> gtk,gl=on,show-cursor=on -device usb-ehci,id=usb -device 
>>>> usb-mouse,bus=usb.0 -device usb-kbd,bus=usb.0
>>>>
>>>>     (qemu:46029): Gdk-WARNING **: 16:43:53.715: eglMakeCurrent failed
>>>>     (qemu:46029): Gdk-WARNING **: 16:43:53.715: eglMakeCurrent failed
>>>>     (qemu:46029): Gdk-WARNING **: 16:43:53.715: eglMakeCurrent failed
>>>>     (qemu:46029): Gdk-WARNING **: 16:43:53.715: eglMakeCurrent failed
>>>>     (qemu:46029): Gdk-WARNING **: 16:43:53.716: eglMakeCurrent failed
>>>>
>>>> When using SDL, the error messages are slightly different:
>>>>
>>>>     phytium@d3000:~/working/qemu$ /usr/local/bin/qemu-system-aarch64 
>>>> --machine virt,accel=kvm -cpu host -smp 4 -m 4G -drive 
>>>> file=/home/phytium/working/ubuntu24.04-aarch64-native-context,format=raw,if=virtio
>>>>  -bios /usr/share/AAVMF/AAVMF_CODE.ms.fd -netdev user,id=net0 -device 
>>>> virtio-net-pci,netdev=net0 -device virtio-gpu-gl -display 
>>>> sdl,gl=on,show-cursor=on -device usb-ehci,id=usb -device 
>>>> usb-mouse,bus=usb.0 -device usb-kbd,bus=usb.0
>>>>
>>>>     vrend_renderer_fill_caps: Entering with stale GL error: 1286
>>>>
>>>
>>> Hi,
>>>
>>> 1. Please make sure that you're not only building QEMU against your
>>> virglrenderer version, but also setting LD_LIBRARY_PATH properly at
>>> runtime. Best to remove system version of virglrenderer if unsure,
>>
>> I built and installed virglrenderer with the --prefix=/usr option, so
>>  it replaces the system version as expected.
>>
>>>
>>> 2. Can you reproduce this problem using tcg instead of kvm?
>>>
>>
>>  yes, change qemu command '--machine virt,accel=kvm -cpu host' to
>> '--machine virt -cpu max' can reproduce this problem. 
>>> -- 
>>> Best regards,
>>> Dmitry
>>
>> diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
>> index f6df9dcb..f6e06842 100644
>> --- a/src/vrend_renderer.c
>> +++ b/src/vrend_renderer.c
>> @@ -12808,7 +12808,7 @@ void vrend_renderer_fill_caps(uint32_t set, uint32_t 
>> version,
>>                                union virgl_caps *caps)
>>  {
>>     int gl_ver, gles_ver;
>> -   GLenum err;
>> +   GLenum err = GL_NO_ERROR;
>>     bool fill_capset2 = false;
>>  
>>     if (!caps)
>>
>> phytium@d3000:~/working/qemu$ git log --oneline  -n 10
>> e0286f56c8 (HEAD -> native-context-v11, origin/native-context-v11) Revert 
>> "amd_iommu: Add support for pass though mode"
>> d6e9eb0f0d docs/system: virtio-gpu: Document host/guest requirements
>> 55db821ea5 docs/system: virtio-gpu: Update Venus link
>> 003940db9a docs/system: virtio-gpu: Add link to Mesa VirGL doc
>> 7674e82755 ui/gtk: Don't disable scanout when display is refreshed
>> 712fd024e3 ui/sdl2: Don't disable scanout when display is refreshed
>> 9003da356f virtio-gpu: Support DRM native context
>> e2ff4f4a48 virtio-gpu: Support asynchronous fencing
>> 25458c7625 virtio-gpu: Handle virgl fence creation errors
>>
>> I tried initializing GLenum err = GL_NO_ERROR in vrend_renderer_fill_caps, 
>> but it doesn’t seem to resolve the “Entering with stale GL error: 1286” 
>> message. However, this error might not be directly related to the VM black 
>> screen issue. I noticed that even when the VM was working 
>> correctly—specifically when I reset to commit 25458c7625—the same GL error 
>> still appeared.
> 
> Thanks for the report. I confirm that something is wrong with virgl when
> async fencing is used. Don't have this GL 1286 error, but getting a
> lockup on ARM VM and with one of my new x64 VM setups. Will investigate
> further and report back here.

Hi, Cong. Please give a test to [1]. It fixes the problem for me.

[1] https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1518

-- 
Best regards,
Dmitry

Reply via email to