On 2023/08/01 10:17, Gurchetan Singh wrote:
Latest iteration of rutabaga_gfx + gfxstream patches.  Previous versions
available here:

https://patchew.org/QEMU/20230711025649.708-1-gurchetansi...@chromium.org/

https://patchew.org/QEMU/20230421011223.718-1-gurchetansi...@chromium.org/

Changes since v1:
- New error callback hooked into QEMU error's handlers
- Incorporated review feedback
- goldfish-opengl repo is now gone: new unified repo for guest and host

How to build both rutabaga and gfxstream guest/host libs:

https://crosvm.dev/book/appendix/rutabaga_gfx.html

It's nice to see a documentation for this. The below are some comments:

Why not install dependencies in one command?
sudo apt install libdrm libglm-dev libstb-dev

The cmake command for AEMU is broken into two lines but the newline character between them are not escaped. It should be one line or the newline should be escaped.

It also gives a warning:
CMake Warning:
  Ignoring extra path from command line:

   "../"

And it's probably better to have a dedicated build directory. /build is in .gitignore so you may:
cmake -DAEMU_COMMON_GEN_PKGCONFIG=ON \
      -DAEMU_COMMON_BUILD_CONFIG=gfxstream \
      -DENABLE_VKCEREAL_TESTS=OFF -B build

It's also better to use the following commands to build and install it just in case the system has a different backend (like Ninja):
cmake --build build -j
sudo cmake --install build

The build directory of gfxstream may be named just "build" so that you can blindly copy the command on Arm64 or whatever and to ignore it with .gitignore.

You may build and install it with the following command:
meson install -C build
No need for separate build command and sudo. Meson takes care of that.

The documentation has one command for building and installing Rutabaga, but that may cause a problem. For example, you may have rustup configured for a normal user but not for the superuser. Perhaps it's better not to have "build" as a dependency of "install" and have two commands for each of the steps:
make
sudo make install


Branch containing this patch series:

https://gitlab.freedesktop.org/gurchetansingh/qemu-gfxstream/-/commits/qemu-gfxstream-v2

Next steps:
  - Will add a v0.1.2 release "commit" after this patch series is fully
    reviewed, but before it's merged

Antonio Caggiano (2):
   virtio-gpu: CONTEXT_INIT feature
   virtio-gpu: blob prep

Dr. David Alan Gilbert (1):
   virtio: Add shared memory capability

Gerd Hoffmann (1):
   virtio-gpu: hostmem

Gurchetan Singh (5):
   gfxstream + rutabaga prep: added need defintions, fields, and options
   gfxstream + rutabaga: add initial support for gfxstream
   gfxstream + rutabaga: meson support
   gfxstream + rutabaga: enable rutabaga
   docs/system: add basic virtio-gpu documentation

  docs/system/device-emulation.rst     |    1 +
  docs/system/devices/virtio-gpu.rst   |   98 +++
  hw/display/meson.build               |   22 +
  hw/display/virtio-gpu-base.c         |    6 +-
  hw/display/virtio-gpu-pci-rutabaga.c |   48 ++
  hw/display/virtio-gpu-pci.c          |   14 +
  hw/display/virtio-gpu-rutabaga.c     | 1077 ++++++++++++++++++++++++++
  hw/display/virtio-gpu.c              |   17 +-
  hw/display/virtio-vga-rutabaga.c     |   52 ++
  hw/display/virtio-vga.c              |   33 +-
  hw/virtio/virtio-pci.c               |   18 +
  include/hw/virtio/virtio-gpu-bswap.h |   18 +
  include/hw/virtio/virtio-gpu.h       |   41 +
  include/hw/virtio/virtio-pci.h       |    4 +
  meson.build                          |    7 +
  meson_options.txt                    |    2 +
  scripts/meson-buildoptions.sh        |    3 +
  softmmu/qdev-monitor.c               |    3 +
  softmmu/vl.c                         |    1 +
  19 files changed, 1445 insertions(+), 20 deletions(-)
  create mode 100644 docs/system/devices/virtio-gpu.rst
  create mode 100644 hw/display/virtio-gpu-pci-rutabaga.c
  create mode 100644 hw/display/virtio-gpu-rutabaga.c
  create mode 100644 hw/display/virtio-vga-rutabaga.c


Reply via email to