We couple everything as one giant gfxstream capset, and also have
a renderControl path for versioning.
Long term, it makes sense to nuke renderControl path (which controls
many legacy GLES bits) and rely on a virtgpu-style versioning scheme
[each context type gets it's one capset].
Some capability sets are experimental. For example, GFXSTREAM_COMPOSER.
However, Fuchsia for example does rip out parts of HostConnection
and use in it's display controller. Probably have a cross-platform
API that performs that functions would a long-term clean solution.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit rewrites vkQueueSubmit as a template so that the
implementation can be used by vkQueueSubmit and vkQueueSubmit2.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... so that upcoming end2end tests can mock out AHBs.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... so that upcoming end2end tests can use the GL/VK ICDs.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... to avoid conflicts with
hardware/google/gfxstream/include/render-utils/IOStream.h
when the guest is built for the host
for end2end tests.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... to avoid conflicts when the guest is built for the host
for end2end tests.
In the future, the differences between libandroidemu and
hardware/google/aemu/base/ should be consolidated and there
should be a single shared library as there isn't really
anything guest/host specific about either of these copies.
cvd start --gpu_mode=gfxstream_guest_angle_host_swiftshader
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... so that upcoming end2end tests can set up a mock impl for
emulating sync fds in single process tests.
cvd start --gpu_mode=gfxstream_guest_angle_host_swiftshader
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... so that upcoming end2end tests can set up a mock impl that
interacts with the host within-process.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
Audio glitches are observed with gfxstream GLES if ASG is used.
ASG is a Vulkan thing anyways, so use pipe steams for Ranchu
HWC or gfxstream GLES.
Note this caused clang-format to over-format in a few places.
launch_cvd --gpu_mode=gfxstream_guest_angle
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit updates vk.xml and code generator to make them backward
compatible. The updates in code generator includes:
1. Parse "protect" properly.
2. Ignore "optional" if the "optional" was added in newer vk.xml.
- This is done by having an extra table for related fields.
3. Parse latexmath properly.
4. Parse "supported" properly.
5. Skip parameters and members if they are not for Vulkan API.
6. VkNativeBufferANDROID diverged from upstream, keep the old one.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
We need separate virtio-gpu capabilities for this features, for
separate versioning. As of right now, versioning is done via
rcGetHostExtensionsString, which calls rcGetGLString host side.
We should probably aim for separate versioning for GLES, Vulkan,
Magma -- with the possibilty of a common decoder agnostic values
for ASG.
The benefit of the virtio-gpu capabilities is they are also cached
per VM instance, so probably a bit faster than the
rcGetHostExtensionsString method.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
After the move, various fixes are needed.
- Need to re-order directories in top-level meson file
- Need to add certain include dirs
- Use internal Vulkan headers. These unforunately define
Android extensions even on Linux guests, so we need a
(LINUX_GUEST_BUILD) guard until we can fix that.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... as this is currently only used in the guest.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
... in order to help handle deferred AHB binding.
Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Merged-In: I3d5e65be8331980ce544078f81f1937cfbcf520f
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
With the information of the invalidated framebuffer we avoid the stores
of the results of tile buffer rendering that are not going to be used
again or the loads of the tile buffer when the buffer data can be ignored
as it would be never read.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30341>
The comment above says it all, only when queue is not protected that
it is possible to clear query pool with blorp but it was checking
the opposite.
Fixes: d5b0526507 ("anv: propagate protected information for blorp operations")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31239>
This were not causing any issues but better set end to the correct
value.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31239>
Commit 8f6fca89aa from !30952 by @zmike
renamed with_dri3 as with_dri in many places, but mistakenly deleted it
there, instead of renaming it. This causes the linking of gallium to fail
because of missing xcb_xfixes_destroy_region symbol from xcb-fixes.
This is basically replaying commit cf17d62516
from !7164 by @duncan.hopkins but with the new syntax.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31246>
Pass application provided damage region to the compositor instead
of damaging the entire display. This also gives us the possibility
in the future to have put image only copy the parts of the framebuffer
that were modified.
Fixes: fa465e34ca
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31210>
swapping buffers with damage is supposed to swap the entire buffer
and only pass the damage region as a hint to compositor as to what
updated. This change forces drisw to copy the entire buffer as there
is no method right now to check what was updated.
Fixes: cda627eb48
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31210>
For some reasons, this triggers only on VanGogh with some tests that
copy layered BCn images but they all pass in release build.
Suggested-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31226>