mesa/.gitlab-ci/container
Gert Wollny c9d99b7eec virgl: Fix texture transfers by using a staging resource
This commit fixes the following flaws in the implementation:

* when a resource was re-allocated, the guest side storage
  was also allocated
* when a source needs a readback before being written to, then
  the call would go through vws->transfer_get, thereby bypassing the
  staging resource, and this would fail on the host, because no
  the allocated IOV was too small (just one byte)
* if the texture write would need neither flush nor readback, the
  old code path would be used expecting that guest side backing stogage
  for the texture.

v2: - actually do a readback to the stageing resource when it is required
    - fix typo (Lepton)

v3: Don't use stageing transfers if the host can't read back the data
    by rendering to an FBO or calling getTexImage, because in this case
    we rely on the IOV to hold the date.

v4: Also don't use staging transfers if the format is no readback
    format. Otherwise we have to deal with the resolve blit, and
    this is currently not working correctly.

v5: add a new flag that indicates whether non-renderable textures can
    be read back (either via glGetTexImage or GBM)

v6: Restrict the use of staging texture transfers to textures that can
    be read back, and on GLES also if the they are bound to scanout and
    the host uses minigbm to allocate such textures.
    For that replace the flag indicating the capability to read back
    non-renderable textures with a cap that indicates whether scanout
    textures can be read back.

v7: update virglrenderer version in the CI

v8: update use of stageing (Chia-I)

v9: remove superflous check and assignment (Chia-I)

v10: disable stageing textures for arrays with stencil format. This is a
     workaround for failures of the CI.

Fixes: cdc480585c
    virgl/drm: New optimization for uploading textures

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14495>
2022-03-08 23:39:27 +01:00
..
debian ci: upgrade to libdrm 2.4.110 2022-02-21 11:16:11 +00:00
fedora ci: Consistently build Wayland and protocols 2021-11-26 16:06:09 +00:00
arm.config ci: include etnaviv support in ARMHF container. 2021-09-17 17:54:39 +00:00
arm64.config ci: Uprev Kernel to v5.16 2022-01-19 20:14:42 +00:00
baremetal_build.sh ci: include etnaviv support in ARMHF container. 2021-09-17 17:54:39 +00:00
build-apitrace.sh ci: Uprev apitrace to 170424754bb4 "retrace: Get --loop to work without rewinding" 2021-05-26 18:20:19 +00:00
build-crosvm.sh virgl: Fix texture transfers by using a staging resource 2022-03-08 23:39:27 +01:00
build-deqp-runner.sh ci: Bump VK-GL-CTS to 1.3.1.0. 2022-02-08 22:16:36 +00:00
build-deqp.sh ci: Bump VK-GL-CTS to 1.3.1.0. 2022-02-08 22:16:36 +00:00
build-fossilize.sh ci: Move docker images from Debian buster to bullseye 2021-04-14 13:05:08 +00:00
build-gfxreconstruct.sh ci: build gfxreconstruct v0.9.5 2021-02-17 19:10:42 +00:00
build-hang-detection.sh ci: build the hang-detection tool into x86_test-vk 2021-06-02 16:30:57 +00:00
build-kernel.sh ci: Move Kernel build tasks into its own file 2021-06-09 19:14:00 +00:00
build-libclc.sh ci: Install llvm-spirv from Debian bullseye 2021-04-14 13:05:08 +00:00
build-libdrm.sh ci: upgrade to libdrm 2.4.110 2022-02-21 11:16:11 +00:00
build-piglit.sh ci: bump piglit version 2022-02-21 21:42:04 +00:00
build-rust.sh ci: Increase the default Rust toolchain version 2021-08-03 14:24:08 +00:00
build-skqp.sh ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-skqp_BUILD.gn.patch ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-skqp_base.gn ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-skqp_fetch_gn.patch ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-skqp_git-sync-deps.patch ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-skqp_is_clang.py.patch ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
build-va-tools.sh ci: Enable testing radeonsi's libva using libva-util unit tests. 2021-10-28 23:17:19 +00:00
build-vkd3d-proton.sh ci: include VKD3D-Proton tests into the VK test container 2021-05-25 17:03:25 +00:00
build-wayland.sh ci: Consistently build Wayland and protocols 2021-11-26 16:06:09 +00:00
container_post_build.sh ci: Add Fedora 34 based x86 build docker image 2021-07-09 10:24:41 +00:00
container_pre_build.sh ci: Add Fedora 34 based x86 build docker image 2021-07-09 10:24:41 +00:00
create-android-cross-file.sh meson: Check arguments before adding. 2021-11-09 20:51:14 +00:00
create-android-ndk-pc.sh ci: Move container files into their own dir 2021-02-08 14:19:06 +00:00
create-cross-file.sh ci: Move container files into their own dir 2021-02-08 14:19:06 +00:00
create-rootfs.sh ci: skqp: Add Vulkan support for a630_skqp job 2022-02-25 05:50:06 +00:00
cross_build.sh ci: Move docker images from Debian buster to bullseye 2021-04-14 13:05:08 +00:00
lava_build.sh ci: skqp: Build skqp from android-cts-10.0_r11 tag with Clang 2022-02-25 05:50:06 +00:00
x86_64.config ci: Enable kernel virtio transport for Virtual Sockets 2022-02-17 06:32:30 +00:00