qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: qemu-devel@nongnu.org, agl-dev-community@lists.automotivelinux.org
Subject: Re: Tips for debugging GPU acceleration.
Date: Fri, 23 Oct 2020 10:34:07 +0100	[thread overview]
Message-ID: <87imb1thf4.fsf@linaro.org> (raw)
In-Reply-To: <87o8kttj2e.fsf@linaro.org>


Alex Bennée <alex.bennee@linaro.org> writes:

(fix the qemu-devel address)

> Hi Gerd,
>
> I'm currently trying to get accelerated graphics working on an AArch64
> AGL distribution (both in KVM and TCG builds). As far as I can tell the
> device is being correctly created and I do get a working DRI based
> display. However the Weston based compositor falls back to the softpipe
> rendering:
>
>   Date: 2020-10-22 UTC
>   [19:37:22.296] Using config file '/etc/xdg/weston/weston.ini'.
>   [19:37:22.297] Output repaint window is 7 ms maximum.
>   [19:37:22.298] Loading module '/usr/lib/libweston-8/drm-backend.so'
>   [19:37:22.318] initializing drm backend
>   [19:37:22.323] logind: not running in a systemd session
>   [19:37:22.323] logind: cannot setup systemd-logind helper (-61), using legacy fallback
>   [19:37:22.370] using /dev/dri/card0
>   [19:37:22.370] DRM: supports universal planes
>   [19:37:22.370] DRM: supports atomic modesetting
>   [19:37:22.370] DRM: supports picture aspect ratio
>   [19:37:22.373] Loading module '/usr/lib/libweston-8/gl-renderer.so'
>   [19:37:22.540] EGL client extensions: EGL_EXT_client_extensions
>                  EGL_EXT_device_base EGL_EXT_device_enumeration
>                  EGL_EXT_device_query EGL_EXT_platform_base
>                  EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug
>                  EGL_EXT_platform_wayland EGL_MESA_platform_gbm
>                  EGL_MESA_platform_surfaceless EGL_EXT_platform_device
>   [19:37:22.542] EGL version: 1.4
>   [19:37:22.542] EGL vendor: Mesa Project
>   [19:37:22.542] EGL client APIs: OpenGL OpenGL_ES 
>   [19:37:22.542] EGL extensions: EGL_ANDROID_blob_cache EGL_EXT_buffer_age
>                  EGL_EXT_image_dma_buf_import EGL_KHR_cl_event2
>                  EGL_KHR_config_attribs EGL_KHR_create_context
>                  EGL_KHR_create_context_no_error EGL_KHR_fence_sync
>                  EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace
>                  EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image
>                  EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image
>                  EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap
>                  EGL_KHR_no_config_context EGL_KHR_reusable_sync
>                  EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float
>                  EGL_KHR_wait_sync EGL_MESA_configless_context
>                  EGL_MESA_image_dma_buf_export EGL_MESA_query_driver
>   [19:37:22.542] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
>   [19:37:22.542] EGL_KHR_surfaceless_context available
>   [19:37:22.819] GL version: OpenGL ES 3.1 Mesa 20.0.2
>   [19:37:22.819] GLSL version: OpenGL ES GLSL ES 3.10
>   [19:37:22.819] GL vendor: VMware, Inc.
>   [19:37:22.819] GL renderer: softpipe
>   [19:37:22.819] GL extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays
>
> I know the kernel has the right bits enabled (VIRTIO_DRM_GPU) but the
> kernel seems to think the host needs something else to support it:
>
>   [    2.743035] virtio-pci 0000:00:04.0: enabling device (0000 -> 0003)
>   [    2.746441] virtio-pci 0000:00:05.0: enabling device (0000 -> 0002)
>   [    2.778843] random: fast init done
>   [    2.780024] random: crng init done
>   [    2.781054] bochs-drm 0000:00:02.0: remove_conflicting_pci_framebuffers: bar 0: 0x10000000 -> 0x10ffffff
>   [    2.781597] bochs-drm 0000:00:02.0: remove_conflicting_pci_framebuffers: bar 2: 0x11014000 -> 0x11014fff
>   [    2.786609] bochs-drm 0000:00:02.0: enabling device (0000 -> 0002)
>   [    2.789259] [drm] Found bochs VGA, ID 0xb0c5.
>   [    2.789639] [drm] Framebuffer size 16384 kB @ 0x10000000, mmio @ 0x11014000.
>   [    2.791527] [TTM] Zone  kernel: Available graphics memory: 2015562 KiB
>   [    2.792300] [TTM] Initializing pool allocator
>   [    2.793275] [TTM] Initializing DMA pool allocator
>   [    2.801629] [drm] Found EDID data blob.
>   [    2.809735] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:02.0 on minor 0
>   [    2.903431] Console: switching to colour frame buffer device 128x48
>   [    2.928141] bochs-drm 0000:00:02.0: fb0: bochs-drmdrmfb frame buffer device
>   [    2.929844] [drm] pci: virtio-gpu-pci detected at 0000:00:05.0
>   [    2.930300] [drm] virgl 3d acceleration not supported by host
>   [    2.930484] [drm] EDID support available.
>   [    2.931193] [drm] number of scanouts: 1
>   [    2.931318] [drm] number of cap sets: 0
>   [    2.935329] [drm] Initialized virtio_gpu 0.1.0 0 for virtio4 on minor 1
>   [    3.058526] virtio_gpu virtio4: fb1: virtio_gpudrmfb frame buffer device
>
> I'm invoking QEMU on both systems with:
>
>   -device virtio-gpu-pci,virgl=true
>
> The full TCG command line is:
>
>   ./aarch64-softmmu/qemu-system-aarch64 -cpu cortex-a57 \
>     -machine type=virt,virtualization=on,gic-version=3 \
>     -serial mon:stdio \
>     -netdev user,id=unet,hostfwd=tcp::2222-:22 \
>     -device virtio-net-device,netdev=unet,id=virt-net \
>     -drive id=disk0,file=$HOME/images/agl/agl-demo-platform-crosssdk-qemuarm64.ext4,if=none,format=raw \
>     -device virtio-blk-device,drive=disk0 \
>     -soundhw hda \
>     -device qemu-xhci \
>     -device usb-tablet \
>     -device usb-kbd \
>     -object rng-random,filename=/dev/urandom,id=rng0 \
>     -device virtio-rng-pci,rng=rng0 \
>     -device virtio-serial-device \
>     -chardev null,id=virtcon \
>     -device virtconsole,chardev=virtcon \
>     -m 4096 \
>     -kernel ~/images/agl/Image \
>     -append "console=ttyAMA0 root=/dev/vda" \
>     -display gtk,show-cursor=on \
>     -smp 4 \
>     -device virtio-gpu-pci,virgl=true
>
> Any tips on how to track down where things are going wrong?


-- 
Alex Bennée


       reply	other threads:[~2020-10-23  9:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87o8kttj2e.fsf@linaro.org>
2020-10-23  9:34 ` Alex Bennée [this message]
2020-10-23 10:51 ` Tips for debugging GPU acceleration Gerd Hoffmann
2020-10-23 11:52   ` Alex Bennée
2020-10-23 12:32     ` [agl-dev-community] " Marius Vlad
2020-10-23 16:28       ` Alex Bennée
2020-10-23 17:46         ` Marius Vlad

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=87imb1thf4.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=agl-dev-community@lists.automotivelinux.org \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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;
as well as URLs for NNTP newsgroup(s).