Mesa (master): vallium: initial import of the vulkan frontend

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Aug 17 05:01:07 UTC 2020


Module: Mesa
Branch: master
Commit: b38879f8c5f57b7f1802e433e33181bdf5e72aef
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b38879f8c5f57b7f1802e433e33181bdf5e72aef

Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Jun 19 16:40:27 2020 +1000

vallium: initial import of the vulkan frontend

This is the initial import of the vallium frontend for gallium.
This is only good enough to run the triangle and the gears demo
(wrongly) from Sascha demos.

Improvements are mostly on the llvmpipe side after this.

It contains an implementation of the Vulkan API which is mapped
onto the gallium API, and is suitable only for SOFTWARE drivers.

Command buffers are recordred into malloced memory, then later
they are played back against the gallium API. The command buffers
are mostly just Vulkan API marshalling but in some places the information is
processed before being put into the command buffer (renderpass stuff).

Execution happens on a separate "graphics" thread, againt the gallium API.

There is only a single queue which wraps a single gallium context.

Resources are allocated via the new resource/memory APIs.
Shaders are created via the context and bound/unbound in the
second thread.

(No HW for reasons - memory management, sw paths for lots of paths,
pointless CPU side queue)

v2: drop mesa_icd, drop cpp_args, drop extra flags, change meson config (Eric)
v2.1: use meson-gallium job

meson pieces:
Reviewed-by: Eric Engestrom <eric at engestrom.ch>

overall:

Acked-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6082>

---

 .gitlab-ci.yml                                     |    1 +
 meson.build                                        |    8 +-
 meson_options.txt                                  |    2 +-
 src/gallium/frontends/vallium/meson.build          |   66 +
 src/gallium/frontends/vallium/val_cmd_buffer.c     | 1419 +++++++++++
 src/gallium/frontends/vallium/val_conv.h           |  198 ++
 src/gallium/frontends/vallium/val_descriptor_set.c |  501 ++++
 src/gallium/frontends/vallium/val_device.c         | 1702 ++++++++++++++
 .../frontends/vallium/val_entrypoints_gen.py       |  816 +++++++
 src/gallium/frontends/vallium/val_execute.c        | 2471 ++++++++++++++++++++
 src/gallium/frontends/vallium/val_extensions.py    |  166 ++
 src/gallium/frontends/vallium/val_formats.c        |  442 ++++
 src/gallium/frontends/vallium/val_image.c          |  288 +++
 .../vallium/val_lower_input_attachments.c          |  109 +
 .../frontends/vallium/val_lower_vulkan_resource.c  |  176 ++
 .../frontends/vallium/val_lower_vulkan_resource.h  |   36 +
 src/gallium/frontends/vallium/val_pass.c           |  290 +++
 src/gallium/frontends/vallium/val_pipeline.c       |  943 ++++++++
 src/gallium/frontends/vallium/val_pipeline_cache.c |  103 +
 src/gallium/frontends/vallium/val_private.h        |  989 ++++++++
 src/gallium/frontends/vallium/val_query.c          |  136 ++
 src/gallium/frontends/vallium/val_util.c           |   58 +
 src/gallium/frontends/vallium/val_wsi.c            |  277 +++
 src/gallium/frontends/vallium/val_wsi.h            |   74 +
 src/gallium/frontends/vallium/val_wsi_wayland.c    |   55 +
 src/gallium/frontends/vallium/val_wsi_x11.c        |   93 +
 src/gallium/meson.build                            |    4 +
 src/gallium/targets/vallium/meson.build            |   27 +
 src/gallium/targets/vallium/target.c               |    3 +
 src/gallium/targets/vallium/val_icd.py             |   47 +
 30 files changed, 11497 insertions(+), 3 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=b38879f8c5f57b7f1802e433e33181bdf5e72aef


More information about the mesa-commit mailing list