From e87e2b0255296c76858a328879ec134b5011035c Mon Sep 17 00:00:00 2001 From: xzl Date: Fri, 29 Nov 2024 10:26:00 +0800 Subject: [PATCH 1/2] feat: update mesa to 24.3 generic buffer management API -- runtime Issue: https://github.com/deepin-community/sig-deepin-sysdev-team/issues/552 Log: update repo --- .../austriancoder | 0 {.ci-farms => .ci-farms-disabled}/lima | 0 .ci-farms/{freedreno => google-freedreno} | 0 .clang-format-include | 1 + .gitignore | 6 - .gitlab-ci.yml | 351 - .gitlab-ci/all-skips.txt | 82 - .gitlab-ci/b2c/b2c.yml.jinja2.jinja2 | 67 - .gitlab-ci/b2c/generate_b2c.py | 55 - .gitlab-ci/bare-metal/.editorconfig | 2 - .gitlab-ci/bare-metal/bm-init.sh | 13 - .gitlab-ci/bare-metal/cisco-2960-poe-off.sh | 17 - .gitlab-ci/bare-metal/cisco-2960-poe-on.sh | 22 - .gitlab-ci/bare-metal/cros-servo.sh | 124 - .gitlab-ci/bare-metal/cros_servo_run.py | 168 - .gitlab-ci/bare-metal/eth008-power-down.sh | 10 - .gitlab-ci/bare-metal/eth008-power-relay.py | 28 - .gitlab-ci/bare-metal/eth008-power-up.sh | 12 - .gitlab-ci/bare-metal/expect-output.sh | 31 - .gitlab-ci/bare-metal/fastboot.sh | 167 - .gitlab-ci/bare-metal/fastboot_run.py | 159 - .gitlab-ci/bare-metal/google-power-down.sh | 10 - .gitlab-ci/bare-metal/google-power-relay.py | 19 - .gitlab-ci/bare-metal/google-power-up.sh | 12 - .gitlab-ci/bare-metal/mkbootimg.py | 569 - .gitlab-ci/bare-metal/poe-off | 16 - .gitlab-ci/bare-metal/poe-on | 19 - .gitlab-ci/bare-metal/poe-powered.sh | 229 - .gitlab-ci/bare-metal/poe_run.py | 127 - .gitlab-ci/bare-metal/rootfs-setup.sh | 37 - .gitlab-ci/bare-metal/serial_buffer.py | 185 - .gitlab-ci/bare-metal/telnet-buffer.py | 41 - .gitlab-ci/bin | 1 - .../build/compiler-wrapper-clang++-15.sh | 7 - .gitlab-ci/build/compiler-wrapper-clang++.sh | 7 - .gitlab-ci/build/compiler-wrapper-clang-15.sh | 7 - .gitlab-ci/build/compiler-wrapper-clang.sh | 7 - .gitlab-ci/build/compiler-wrapper-g++.sh | 7 - .gitlab-ci/build/compiler-wrapper-gcc.sh | 7 - .gitlab-ci/build/compiler-wrapper.sh | 21 - .gitlab-ci/build/gitlab-ci.yml | 713 - .gitlab-ci/common/capture-devcoredump.sh | 35 - .gitlab-ci/common/generate-env.sh | 137 - .gitlab-ci/common/init-stage1.sh | 25 - .gitlab-ci/common/init-stage2.sh | 235 - .gitlab-ci/common/intel-gpu-freq.sh | 768 - .gitlab-ci/common/kdl.sh | 24 - .gitlab-ci/common/start-x.sh | 21 - .gitlab-ci/container/alpine/x86_64_build.sh | 67 - .../alpine/x86_64_lava_ssh_client.sh | 29 - .gitlab-ci/container/baremetal_build.sh | 62 - .gitlab-ci/container/build-angle.sh | 58 - .gitlab-ci/container/build-apitrace.sh | 25 - .gitlab-ci/container/build-crosvm.sh | 44 - .gitlab-ci/container/build-deqp-runner.sh | 70 - .gitlab-ci/container/build-deqp.sh | 264 - .gitlab-ci/container/build-directx-headers.sh | 15 - .gitlab-ci/container/build-fossilize.sh | 19 - .gitlab-ci/container/build-gfxreconstruct.sh | 19 - .gitlab-ci/container/build-hang-detection.sh | 16 - .gitlab-ci/container/build-kdl.sh | 23 - .gitlab-ci/container/build-kernel.sh | 31 - .gitlab-ci/container/build-libclc.sh | 31 - .gitlab-ci/container/build-libdrm.sh | 16 - .gitlab-ci/container/build-llvm-spirv.sh | 22 - .gitlab-ci/container/build-mold.sh | 22 - .gitlab-ci/container/build-ninetests.sh | 25 - .gitlab-ci/container/build-piglit.sh | 33 - .gitlab-ci/container/build-rust.sh | 39 - .gitlab-ci/container/build-shader-db.sh | 14 - .gitlab-ci/container/build-skqp.sh | 89 - .gitlab-ci/container/build-skqp_base.gn | 59 - .gitlab-ci/container/build-va-tools.sh | 25 - .gitlab-ci/container/build-vkd3d-proton.sh | 43 - .../container/build-vulkan-validation.sh | 18 - .gitlab-ci/container/build-wayland.sh | 32 - .gitlab-ci/container/container_post_build.sh | 14 - .gitlab-ci/container/container_pre_build.sh | 52 - .../container/create-android-cross-file.sh | 37 - .gitlab-ci/container/create-android-ndk-pc.sh | 40 - .gitlab-ci/container/create-cross-file.sh | 54 - .gitlab-ci/container/cross_build.sh | 92 - .gitlab-ci/container/debian/android_build.sh | 93 - .gitlab-ci/container/debian/arm32_test.sh | 5 - .gitlab-ci/container/debian/arm64_build.sh | 91 - .gitlab-ci/container/debian/arm64_test.sh | 5 - .gitlab-ci/container/debian/arm_test.sh | 53 - .../container/debian/llvm-snapshot.gpg.key | 52 - .gitlab-ci/container/debian/ppc64el_build.sh | 5 - .gitlab-ci/container/debian/s390x_build.sh | 18 - .gitlab-ci/container/debian/winehq.gpg.key | 53 - .gitlab-ci/container/debian/x86_32_build.sh | 5 - .../container/debian/x86_64_build-base.sh | 107 - .gitlab-ci/container/debian/x86_64_build.sh | 104 - .../container/debian/x86_64_test-android.sh | 110 - .../container/debian/x86_64_test-base.sh | 160 - .gitlab-ci/container/debian/x86_64_test-gl.sh | 109 - .gitlab-ci/container/debian/x86_64_test-vk.sh | 129 - .gitlab-ci/container/fedora/x86_64_build.sh | 118 - .gitlab-ci/container/gitlab-ci.yml | 520 - .gitlab-ci/container/install-wine-apitrace.sh | 14 - .gitlab-ci/container/install-wine-dxvk.sh | 27 - .gitlab-ci/container/lava_build.sh | 372 - ..._config_select_group-extension-query.patch | 45 - ...ing-on-Android-from-the-command-line.patch | 182 - ...d-prints-to-stdout-instead-of-logcat.patch | 26 - ...ing-on-Android-from-the-command-line.patch | 182 - ...d-prints-to-stdout-instead-of-logcat.patch | 26 - ...ing-on-Android-from-the-command-line.patch | 173 - ...d-prints-to-stdout-instead-of-logcat.patch | 26 - .../patches/build-skqp_BUILD.gn.patch | 13 - .../patches/build-skqp_fetch_gn.patch | 68 - .../patches/build-skqp_git-sync-deps.patch | 142 - .../container/patches/build-skqp_gl.patch | 41 - .../patches/build-skqp_is_clang.py.patch | 13 - .../container/patches/build-skqp_nima.patch | 18 - .gitlab-ci/container/setup-rootfs.sh | 31 - .gitlab-ci/container/setup-wine.sh | 24 - .gitlab-ci/container/strip-rootfs.sh | 133 - .gitlab-ci/cross-xfail-ppc64el | 1 - .gitlab-ci/cross-xfail-s390x | 1 - .gitlab-ci/crosvm-init.sh | 46 - .gitlab-ci/crosvm-runner.sh | 126 - .gitlab-ci/cuttlefish-runner.sh | 118 - .gitlab-ci/deqp-runner.sh | 262 - .gitlab-ci/docs | 1 - .gitlab-ci/download-git-cache.sh | 36 - .gitlab-ci/farm-rules.yml | 341 - .gitlab-ci/fossilize-runner.sh | 20 - .gitlab-ci/fossils.yml | 10 - .gitlab-ci/fossils/fossils.sh | 79 - .gitlab-ci/fossils/query_fossils_yaml.py | 69 - .gitlab-ci/gbm-skips.txt | 7 - .gitlab-ci/gtest-runner.sh | 75 - .gitlab-ci/image-tags.yml | 46 - .gitlab-ci/lava/exceptions.py | 41 - .gitlab-ci/lava/lava-gitlab-ci.yml | 157 - .gitlab-ci/lava/lava-pytest.sh | 22 - .gitlab-ci/lava/lava-submit.sh | 63 - .gitlab-ci/lava/lava_job_submitter.py | 564 - .gitlab-ci/lava/requirements-test.txt | 6 - .gitlab-ci/lava/requirements.txt | 2 - .gitlab-ci/lava/utils/__init__.py | 18 - .gitlab-ci/lava/utils/console_format.py | 10 - .gitlab-ci/lava/utils/constants.py | 32 - .gitlab-ci/lava/utils/gitlab_section.py | 103 - .gitlab-ci/lava/utils/lava_farm.py | 35 - .gitlab-ci/lava/utils/lava_job.py | 191 - .gitlab-ci/lava/utils/lava_job_definition.py | 231 - .gitlab-ci/lava/utils/lava_log_hints.py | 106 - .gitlab-ci/lava/utils/lava_proxy.py | 44 - .gitlab-ci/lava/utils/log_follower.py | 332 - .gitlab-ci/lava/utils/log_section.py | 113 - .gitlab-ci/lava/utils/ssh_job_definition.py | 196 - .gitlab-ci/lava/utils/uart_job_definition.py | 181 - .gitlab-ci/meson/build.sh | 148 - .gitlab-ci/meson/time-strace.sh | 30 - .gitlab-ci/meson/time.sh | 17 - .gitlab-ci/piglit/disable-vs_in.diff | 36 - .gitlab-ci/piglit/piglit-runner.sh | 131 - .gitlab-ci/piglit/piglit-traces.sh | 241 - .gitlab-ci/prepare-artifacts.sh | 66 - .gitlab-ci/report-flakes.py | 151 - .gitlab-ci/run-shader-db.sh | 39 - .gitlab-ci/run-shellcheck.sh | 23 - .gitlab-ci/run-yamllint.sh | 5 - .gitlab-ci/setup-test-env.sh | 106 - .gitlab-ci/test-source-dep.yml | 253 - .gitlab-ci/test/gitlab-ci.yml | 426 - .gitlab-ci/tests/conftest.py | 74 - ...TBOOT_force_uart=False_job_definition.yaml | 142 - ...STBOOT_force_uart=True_job_definition.yaml | 96 - ...UBOOT_force_uart=False_job_definition.yaml | 114 - .../UBOOT_force_uart=True_job_definition.yaml | 70 - .gitlab-ci/tests/lava/helpers.py | 146 - .gitlab-ci/tests/test_lava_job_submitter.py | 476 - .gitlab-ci/tests/utils/__init__.py | 0 .gitlab-ci/tests/utils/test_lava_farm.py | 41 - .../tests/utils/test_lava_job_definition.py | 197 - .gitlab-ci/tests/utils/test_lava_log.py | 439 - .gitlab-ci/vkd3d-proton/run.sh | 88 - .gitlab-ci/windows/Dockerfile_build | 19 - .gitlab-ci/windows/Dockerfile_msvc | 27 - .gitlab-ci/windows/Dockerfile_test | 25 - .gitlab-ci/windows/README.md | 36 - .gitlab-ci/windows/deqp_runner_run.ps1 | 37 - .gitlab-ci/windows/mesa_build.ps1 | 89 - .gitlab-ci/windows/mesa_container.ps1 | 58 - .gitlab-ci/windows/mesa_deps_build.ps1 | 169 - .gitlab-ci/windows/mesa_deps_choco.ps1 | 77 - .gitlab-ci/windows/mesa_deps_d3d.ps1 | 49 - .gitlab-ci/windows/mesa_deps_libva.ps1 | 79 - .gitlab-ci/windows/mesa_deps_msvc.ps1 | 46 - .gitlab-ci/windows/mesa_deps_rust.ps1 | 17 - .gitlab-ci/windows/mesa_deps_test.ps1 | 29 - .gitlab-ci/windows/mesa_deps_test_deqp.ps1 | 88 - .gitlab-ci/windows/mesa_deps_test_piglit.ps1 | 103 - .gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 | 39 - .gitlab-ci/windows/mesa_init_msvc.ps1 | 17 - .gitlab-ci/windows/piglit_run.ps1 | 20 - .gitlab-ci/windows/spirv2dxil_check.ps1 | 46 - .gitlab-ci/windows/spirv2dxil_run.ps1 | 16 - .gitlab-ci/windows/vainfo_run.ps1 | 99 - .gitlab-ci/x11-skips.txt | 19 - .../Bug Report - AMD Radeon Vulkan.md | 75 - .gitlab/issue_templates/Bug Report.md | 58 - .gitlab/merge_request_templates/Default.md | 6 - .mailmap | 26 +- .mr-label-maker.yml | 450 +- .pick_status.json | 42244 +---------- .shellcheckrc | 10 + README.rst | 16 +- VERSION | 2 +- android/Android.mk | 22 +- android/mesa3d_cross.mk | 30 +- bin/ci/ci_post_gantt.py | 2 +- bin/ci/ci_run_n_monitor.py | 344 +- bin/ci/gitlab_common.py | 55 +- bin/ci/gitlab_gql.py | 40 +- bin/ci/nightly_compare.py | 175 + bin/ci/nightly_compare.sh | 11 + bin/ci/requirements.txt | 24 +- bin/ci/test/requirements.txt | 4 + bin/ci/update_traces_checksum.py | 26 +- bin/flamegraph_map_lp_jit.py | 142 + bin/gen_release_notes.py | 4 +- bin/install_megadrivers.py | 35 +- bin/khronos-update.py | 36 +- bin/meson.build | 19 +- bin/perf-annotate-jit.py | 2 +- bin/pick/core.py | 8 +- bin/renderdoc-update.py | 31 + bin/toml_lint.py | 58 + debian/changelog | 185 +- debian/control | 58 +- debian/control.in | 32 +- debian/libegl-mesa0.symbols | 1 - debian/libgbm1.install | 1 + debian/libgbm1.lintian-overrides | 2 +- debian/libgbm1.symbols | 3 +- debian/libglx-mesa0.symbols | 5 +- debian/mesa-drm-shim.lintian-overrides | 4 + debian/mesa-drm-shim.triggers | 1 + debian/mesa-libgallium.install | 1 + debian/mesa-libgallium.lintian-overrides | 1 + debian/mesa-opencl-icd.lintian-overrides | 6 +- debian/mesa-vulkan-drivers.lintian-overrides | 11 +- ...on-set-default-drivers-for-ppc-ppc64.patch | 35 - ...default-Vulkan-drivers-for-ppc-ppc64.patch | 25 - ...more-Gallium-Vulkan-drivers-for-on-a.patch | 82 - ...ontext_ref-for-combine-usage-of-LLVM.patch | 603 - ...vm-move-ppc-denorm-disable-to-inline.patch | 96 - ...split-some-code-out-from-init-module.patch | 304 - ...vm-make-lp_bld_coro.h-c-include-safe.patch | 38 - ...arget-init-code-for-orc-jit-to-reuse.patch | 52 - ...ivm-split-out-generating-LLVM-Mattrs.patch | 203 - ...allivm-create-a-pass-manager-wrapper.patch | 611 - ...mpipe-add-gallivm_add_global_mapping.patch | 79 - ...unnamed-global-have-internal-linkage.patch | 26 - ...0013-util-detect-RISC-V-architecture.patch | 51 - ...v-support-to-the-mattrs-setting-code.patch | 31 - ...unction-name-to-gallivm_jit_function.patch | 544 - ...dd-a-new-test-for-multiple-symbols-f.patch | 189 - ...d-an-implementation-with-llvm-orcjit.patch | 3285 - ...partial-mask-to-partial-fs_variant-f.patch | 32 - ...der-cache-support-for-ORCJIT-impleme.patch | 290 - ...0-util-detect-LoongArch-architecture.patch | 44 - ...gArch-support-to-the-mattrs-setting-.patch | 45 - ...pipe-add-LoongArch-support-in-ORCJIT.patch | 45 - ...ename-vk_meta_object_list-to-vk_obje.patch | 158 - ...plit-vk_object_list-into-separate-fi.patch | 306 - ...ination-proprietary-driver-w-o-geome.patch | 39 - ...to-mesa-s-driver-map-list-and-export.patch | 82 - debian/patches/path_max.diff | 2 +- debian/patches/series | 27 - debian/patches/src_glx_dri_common.h.diff | 4 +- debian/rules | 97 +- debian/upstream/metadata | 4 + debian/watch | 1 - docs/_exts/depfile.py | 34 + docs/android.rst | 251 +- docs/ci/bare-metal.rst | 4 +- docs/ci/index.rst | 4 +- docs/ci/local-traces.rst | 2 +- docs/codingstyle.rst | 4 +- docs/conf.py | 17 +- docs/drivers/amd/hang-debugging.rst | 80 + docs/drivers/anv.rst | 43 - docs/drivers/asahi.rst | 6 +- docs/drivers/freedreno.rst | 16 +- docs/drivers/freedreno/hw/lrz.rst | 35 +- docs/drivers/llvmpipe.rst | 94 +- docs/drivers/nvk.rst | 4 +- docs/drivers/panfrost.rst | 302 +- docs/drivers/panfrost/drm-shim.rst | 79 + docs/drivers/panfrost/instancing.rst | 117 + docs/drivers/panfrost/texcomp.rst | 17 + docs/drivers/panfrost/tiling.rst | 38 + docs/drivers/radv.rst | 2 + docs/drivers/svga3d.rst | 3 +- docs/drivers/vc4.rst | 17 +- docs/drivers/venus.rst | 2 +- docs/drivers/zink.rst | 4 +- docs/envvars.rst | 235 +- docs/features.txt | 185 +- docs/gallium/cso/rasterizer.rst | 8 +- docs/gallium/cso/velems.rst | 5 +- docs/gallium/screen.rst | 39 +- docs/gallium/tgsi.rst | 7 +- docs/gitlab-ci.yml | 58 +- docs/gpuvis.rst | 6 +- docs/header-stubs/compiler/spirv/spirv_info.h | 1 + .../header-stubs/util/format/u_format_gen.h | 0 .../header-stubs/vk_enum_to_str.h | 0 docs/index.rst | 4 +- docs/install.rst | 2 +- docs/isaspec.rst | 4 +- docs/mesa3d_theme/static/rst.css | 4 + docs/meson.build | 35 + docs/meson.rst | 85 +- docs/perfetto.rst | 6 +- docs/release-calendar.csv | 12 +- docs/releasing.rst | 2 - docs/relnotes.rst | 28 + docs/relnotes/24.0.6.rst | 159 + docs/relnotes/24.0.7.rst | 155 + docs/relnotes/24.0.8.rst | 155 + docs/relnotes/24.0.9.rst | 155 + docs/relnotes/24.1.0.rst | 2 +- docs/relnotes/24.1.5.rst | 2 +- docs/relnotes/24.1.6.rst | 184 + docs/relnotes/24.1.7.rst | 190 + docs/relnotes/24.2.0.rst | 4879 ++ docs/relnotes/24.2.1.rst | 274 + docs/relnotes/24.2.2.rst | 161 + docs/relnotes/24.2.3.rst | 188 + docs/relnotes/24.2.4.rst | 232 + docs/relnotes/24.2.5.rst | 174 + docs/relnotes/24.2.6.rst | 238 + docs/relnotes/24.3.0.rst | 6156 ++ docs/rust.rst | 25 + docs/rusticl.rst | 46 +- docs/shading.rst | 1 - docs/sourcetree.rst | 1 - docs/submittingpatches.rst | 2 +- docs/systems.rst | 2 +- docs/u_trace.rst | 7 +- include/GL/internal/dri_interface.h | 66 +- include/GL/internal/mesa_interface.h | 71 - .../android_stub/android/hardware_buffer.h | 7 + include/drm-uapi/README | 40 +- include/drm-uapi/amdgpu_drm.h | 18 +- include/drm-uapi/drm_fourcc.h | 18 + include/drm-uapi/i915_drm.h | 62 +- include/drm-uapi/msm_drm.h | 8 +- include/drm-uapi/panfrost_drm.h | 3 + include/drm-uapi/panthor_drm.h | 86 +- include/drm-uapi/v3d_drm.h | 48 + include/drm-uapi/xe_drm.h | 349 +- include/kopper_interface.h | 17 +- include/meson.build | 21 +- include/pci_ids/iris_pci_ids.h | 37 +- include/renderdoc_app.h | 684 + include/vulkan/vk_android_native_buffer.h | 65 +- include/vulkan/vulkan_core.h | 810 +- include/vulkan/vulkan_metal.h | 12 +- meson.build | 457 +- meson_options.txt | 101 +- src/.clang-format | 62 +- src/amd/addrlib/inc/addrinterface.h | 479 +- src/amd/addrlib/inc/addrtypes.h | 20 + src/amd/addrlib/meson.build | 29 +- src/amd/addrlib/src/addrinterface.cpp | 270 + src/amd/addrlib/src/amdgpu_asic_addr.h | 13 +- src/amd/addrlib/src/chip/gfx12/gfx12_gb_reg.h | 57 + src/amd/addrlib/src/core/addrcommon.h | 167 +- src/amd/addrlib/src/core/addrlib.cpp | 16 +- src/amd/addrlib/src/core/addrlib.h | 9 +- src/amd/addrlib/src/core/addrlib1.cpp | 2 +- src/amd/addrlib/src/core/addrlib2.cpp | 3 +- src/amd/addrlib/src/core/addrlib3.cpp | 893 + src/amd/addrlib/src/core/addrlib3.h | 475 + src/amd/addrlib/src/core/addrobject.cpp | 63 +- src/amd/addrlib/src/core/addrobject.h | 5 +- src/amd/addrlib/src/gfx10/gfx10addrlib.cpp | 3 - src/amd/addrlib/src/gfx11/gfx11addrlib.cpp | 49 +- src/amd/addrlib/src/gfx11/gfx11addrlib.h | 11 +- .../addrlib/src/gfx12/gfx12SwizzlePattern.h | 279 + src/amd/addrlib/src/gfx12/gfx12addrlib.cpp | 2000 + src/amd/addrlib/src/gfx12/gfx12addrlib.h | 253 + src/amd/addrlib/src/r800/ciaddrlib.cpp | 2 +- src/amd/addrlib/src/r800/egbaddrlib.cpp | 6 +- src/amd/ci/angle-radv-stoney-aco-fails.txt | 56 +- src/amd/ci/angle-radv-stoney-aco-skips.txt | 8 - src/amd/ci/deqp-radeonsi-raven-cdna.toml | 9 + src/amd/ci/gitlab-ci-inc.yml | 67 +- src/amd/ci/gitlab-ci.yml | 100 +- src/amd/ci/radeonsi-raven-cdna-skips.txt | 246 + src/amd/ci/radeonsi-raven-fails.txt | 60 - src/amd/ci/radeonsi-raven-flakes.txt | 4 + src/amd/ci/radeonsi-raven-skips.txt | 3 + src/amd/ci/radeonsi-raven-slow-skips.txt | 6 + src/amd/ci/radeonsi-stoney-fails.txt | 106 +- src/amd/ci/radeonsi-stoney-flakes.txt | 6 + src/amd/ci/radeonsi-vangogh-fails.txt | 1175 +- src/amd/ci/radv-navi10-aco-fails.txt | 15 +- src/amd/ci/radv-navi10-aco-flakes.txt | 8 - src/amd/ci/radv-navi21-aco-fails.txt | 15 +- src/amd/ci/radv-navi21-aco-flakes.txt | 15 +- src/amd/ci/radv-navi31-aco-fails.txt | 15 +- src/amd/ci/radv-navi31-aco-flakes.txt | 9 +- src/amd/ci/radv-polaris10-aco-fails.txt | 8 - src/amd/ci/radv-polaris10-aco-flakes.txt | 7 +- src/amd/ci/radv-raven-fails.txt | 0 src/amd/ci/radv-raven-flakes.txt | 1 - src/amd/ci/radv-renoir-aco-fails.txt | 16 +- src/amd/ci/radv-renoir-aco-flakes.txt | 9 - src/amd/ci/radv-skips.txt | 14 +- src/amd/ci/radv-stoney-aco-fails.txt | 41 - src/amd/ci/radv-stoney-aco-flakes.txt | 3 - src/amd/ci/radv-tahiti-aco-fails.txt | 24 - src/amd/ci/radv-tahiti-aco-flakes.txt | 15 + src/amd/ci/radv-tahiti-vkd3d-fails.txt | 1 + src/amd/ci/radv-tahiti-vkd3d-skips.txt | 2 + src/amd/ci/radv-tahiti-vkd3d.txt | 24 - src/amd/ci/radv-vangogh-aco-fails.txt | 83 +- src/amd/ci/radv-vangogh-aco-flakes.txt | 11 +- src/amd/ci/radv-vega10-aco-fails.txt | 16 +- src/amd/ci/radv-vega10-aco-flakes.txt | 5 - src/amd/ci/restricted-traces-amd.yml | 4 +- src/amd/ci/traces-amd.yml | 11 +- src/amd/common/ac_binary.c | 2 + src/amd/common/ac_cmdbuf.c | 757 + src/amd/common/ac_cmdbuf.h | 42 + src/amd/common/ac_debug.c | 85 +- src/amd/common/ac_debug.h | 3 + src/amd/common/ac_descriptors.c | 1496 + src/amd/common/ac_descriptors.h | 312 + src/amd/common/ac_drm_fourcc.h | 3 + src/amd/common/ac_formats.c | 802 + src/amd/common/ac_formats.h | 77 + src/amd/common/ac_gpu_info.c | 207 +- src/amd/common/ac_gpu_info.h | 19 +- src/amd/common/ac_nir.c | 476 +- src/amd/common/ac_nir.h | 68 +- src/amd/common/ac_nir_cull.c | 25 +- src/amd/common/ac_nir_helpers.h | 152 + src/amd/common/ac_nir_lower_esgs_io_to_mem.c | 97 +- src/amd/common/ac_nir_lower_global_access.c | 2 +- .../common/ac_nir_lower_image_opcodes_cdna.c | 46 +- src/amd/common/ac_nir_lower_ngg.c | 553 +- src/amd/common/ac_nir_lower_ps.c | 268 +- src/amd/common/ac_nir_lower_resinfo.c | 78 +- src/amd/common/ac_nir_lower_subdword_loads.c | 17 +- .../common/ac_nir_lower_taskmesh_io_to_mem.c | 2 +- src/amd/common/ac_nir_lower_tess_io_to_mem.c | 249 +- src/amd/common/ac_nir_lower_tex.c | 44 +- src/amd/common/ac_nir_meta.h | 200 + src/amd/common/ac_nir_meta_cs_blit.c | 1187 + .../common/ac_nir_meta_cs_clear_copy_buffer.c | 602 + src/amd/common/ac_nir_meta_ps_resolve.c | 166 + src/amd/common/ac_nir_opt_outputs.c | 3 +- src/amd/common/ac_nir_opt_shared_append.c | 56 + src/amd/common/ac_parse_ib.c | 1105 + src/amd/common/ac_pm4.c | 433 + src/amd/common/ac_pm4.h | 76 + src/amd/common/ac_rgp.c | 3 + src/amd/common/ac_shader_args.h | 23 +- src/amd/common/ac_shader_util.c | 159 +- src/amd/common/ac_shader_util.h | 112 +- src/amd/common/ac_shadowed_regs.c | 4 + src/amd/common/ac_spm.c | 16 +- src/amd/common/ac_spm.h | 2 +- src/amd/common/ac_sqtt.c | 367 +- src/amd/common/ac_sqtt.h | 20 +- src/amd/common/ac_surface.c | 1046 +- src/amd/common/ac_surface.h | 65 +- src/amd/common/ac_surface_meta_address_test.c | 7 +- src/amd/common/ac_surface_modifier_test.c | 70 +- src/amd/common/ac_surface_test_common.h | 16 + src/amd/common/ac_vcn.h | 14 + src/amd/common/ac_vcn_dec.c | 579 + src/amd/common/ac_vcn_dec.h | 17 +- src/amd/common/ac_vcn_enc.c | 129 + src/amd/common/ac_vcn_enc.h | 262 +- src/amd/common/amd_family.c | 22 +- src/amd/common/amd_family.h | 8 + src/amd/common/gfx10_format_table.h | 4 +- src/amd/common/meson.build | 43 +- src/amd/common/sid.h | 22 +- src/amd/compiler/README-ISA.md | 5 +- src/amd/compiler/README.md | 25 +- src/amd/compiler/aco_assembler.cpp | 409 +- src/amd/compiler/aco_builder_h.py | 22 +- src/amd/compiler/aco_dominance.cpp | 77 + src/amd/compiler/aco_insert_NOPs.cpp | 466 +- src/amd/compiler/aco_insert_delay_alu.cpp | 366 + src/amd/compiler/aco_insert_exec_mask.cpp | 314 +- src/amd/compiler/aco_insert_waitcnt.cpp | 721 +- .../compiler/aco_instruction_selection.cpp | 2640 +- src/amd/compiler/aco_instruction_selection.h | 37 +- .../aco_instruction_selection_setup.cpp | 278 +- src/amd/compiler/aco_interface.cpp | 47 +- src/amd/compiler/aco_ir.cpp | 438 +- src/amd/compiler/aco_ir.h | 519 +- src/amd/compiler/aco_jump_threading.cpp | 766 + src/amd/compiler/aco_live_var_analysis.cpp | 451 +- src/amd/compiler/aco_lower_phis.cpp | 141 +- src/amd/compiler/aco_lower_subdword.cpp | 322 + src/amd/compiler/aco_lower_to_cssa.cpp | 167 +- src/amd/compiler/aco_lower_to_hw_instr.cpp | 692 +- src/amd/compiler/aco_opcodes.py | 418 +- src/amd/compiler/aco_opcodes_cpp.py | 5 + src/amd/compiler/aco_opt_value_numbering.cpp | 53 +- src/amd/compiler/aco_optimizer.cpp | 863 +- src/amd/compiler/aco_optimizer_postRA.cpp | 5 +- src/amd/compiler/aco_print_asm.cpp | 20 +- src/amd/compiler/aco_print_ir.cpp | 486 +- src/amd/compiler/aco_reduce_assign.cpp | 12 +- src/amd/compiler/aco_register_allocation.cpp | 1022 +- src/amd/compiler/aco_reindex_ssa.cpp | 29 +- src/amd/compiler/aco_scheduler.cpp | 171 +- src/amd/compiler/aco_scheduler_ilp.cpp | 49 +- src/amd/compiler/aco_shader_info.h | 6 +- src/amd/compiler/aco_spill.cpp | 252 +- src/amd/compiler/aco_ssa_elimination.cpp | 564 +- src/amd/compiler/aco_statistics.cpp | 247 +- src/amd/compiler/aco_util.h | 361 +- src/amd/compiler/aco_validate.cpp | 285 +- src/amd/compiler/meson.build | 4 +- src/amd/compiler/tests/framework.h | 10 +- src/amd/compiler/tests/helpers.cpp | 111 +- src/amd/compiler/tests/helpers.h | 7 +- src/amd/compiler/tests/meson.build | 14 +- src/amd/compiler/tests/test_assembler.cpp | 1500 +- src/amd/compiler/tests/test_d3d11_derivs.cpp | 72 +- src/amd/compiler/tests/test_insert_nops.cpp | 1340 +- .../compiler/tests/test_insert_waitcnt.cpp | 355 +- src/amd/compiler/tests/test_isel.cpp | 389 +- .../compiler/tests/test_lower_subdword.cpp | 142 + src/amd/compiler/tests/test_optimizer.cpp | 500 +- .../compiler/tests/test_optimizer_postRA.cpp | 55 +- src/amd/compiler/tests/test_reduce_assign.cpp | 4 +- src/amd/compiler/tests/test_regalloc.cpp | 123 +- src/amd/compiler/tests/test_scheduler.cpp | 8 +- src/amd/compiler/tests/test_sdwa.cpp | 272 + src/amd/compiler/tests/test_to_hw_instr.cpp | 327 +- src/amd/drm-shim/amdgpu_devices.c | 129 + src/amd/drm-shim/amdgpu_dump_states.c | 1 + src/amd/drm-shim/meson.build | 20 +- src/amd/llvm/ac_llvm_build.c | 146 +- src/amd/llvm/ac_llvm_build.h | 12 +- src/amd/llvm/ac_llvm_helper.cpp | 214 +- src/amd/llvm/ac_llvm_util.c | 25 +- src/amd/llvm/ac_llvm_util.h | 23 +- src/amd/llvm/ac_nir_to_llvm.c | 410 +- src/amd/llvm/meson.build | 19 +- src/amd/meson.build | 21 +- src/amd/registers/gfx12-rsrc.json | 349 + src/amd/registers/gfx12.json | 13972 ++++ src/amd/registers/makeregheader.py | 1 + src/amd/registers/parse_kernel_headers.py | 9 + src/amd/registers/pkt3.json | 40 +- src/amd/vpelib/README.md | 255 +- src/amd/vpelib/asset/VPE10Diagram.png | Bin 0 -> 125528 bytes src/amd/vpelib/asset/VPE11Diagram.png | Bin 0 -> 249725 bytes src/amd/vpelib/asset/vpe_components.png | Bin 0 -> 114267 bytes src/amd/vpelib/docs/VPEDoxy.in | 2 + src/amd/vpelib/inc/vpe_hw_types.h | 170 +- src/amd/vpelib/inc/vpe_types.h | 731 +- src/amd/vpelib/inc/vpe_version.h | 7 +- src/amd/vpelib/inc/vpelib.h | 39 +- src/amd/vpelib/meson.build | 42 +- .../inc/asic/bringup_vpe_6_1_0_default.h | 1 + .../vpe10/inc/asic/bringup_vpe_6_1_0_offset.h | 1 + .../inc/asic/bringup_vpe_6_1_0_sh_mask.h | 2 + .../src/chip/vpe10/inc/asic/vpe_1_0_offset.h | 1 + .../vpelib/src/chip/vpe10/inc/vpe10_cdc_be.h | 98 + .../vpe10/inc/{vpe10_cdc.h => vpe10_cdc_fe.h} | 68 +- .../src/chip/vpe10/inc/vpe10_cm_common.h | 10 +- .../vpelib/src/chip/vpe10/inc/vpe10_command.h | 137 + .../src/chip/vpe10/inc/vpe10_config_writer.h | 3 + src/amd/vpelib/src/chip/vpe10/inc/vpe10_dpp.h | 168 +- src/amd/vpelib/src/chip/vpe10/inc/vpe10_mpc.h | 991 +- src/amd/vpelib/src/chip/vpe10/inc/vpe10_opp.h | 44 +- .../chip/vpe10/inc/vpe10_plane_desc_writer.h | 57 + .../src/chip/vpe10/inc/vpe10_resource.h | 12 +- .../chip/vpe10/inc/vpe10_vpe_desc_writer.h | 47 + .../vpelib/src/chip/vpe10/inc/vpe10_vpec.h | 3 - .../vpelib/src/chip/vpe10/vpe10_background.c | 5 + src/amd/vpelib/src/chip/vpe10/vpe10_cdc_be.c | 146 + .../vpe10/{vpe10_cdc.c => vpe10_cdc_fe.c} | 124 +- .../vpelib/src/chip/vpe10/vpe10_cm_common.c | 70 +- .../vpelib/src/chip/vpe10/vpe10_cmd_builder.c | 152 +- .../src/chip/vpe10/vpe10_config_writer.c | 6 + src/amd/vpelib/src/chip/vpe10/vpe10_dpp.c | 204 +- src/amd/vpelib/src/chip/vpe10/vpe10_dpp_cm.c | 28 +- .../vpelib/src/chip/vpe10/vpe10_dpp_dscl.c | 95 +- src/amd/vpelib/src/chip/vpe10/vpe10_mpc.c | 142 +- src/amd/vpelib/src/chip/vpe10/vpe10_opp.c | 2 +- .../vpe10/vpe10_plane_desc_writer.c} | 22 +- .../vpelib/src/chip/vpe10/vpe10_resource.c | 402 +- .../vpe10/vpe10_vpe_desc_writer.c} | 51 +- src/amd/vpelib/src/chip/vpe10/vpe10_vpec.c | 8 - .../src/chip/vpe11/inc/vpe11_cmd_builder.h | 3 +- .../vpelib/src/chip/vpe11/inc/vpe11_command.h | 49 + .../chip/vpe11/inc/vpe11_vpe_desc_writer.h | 40 + .../vpelib/src/chip/vpe11/vpe11_cmd_builder.c | 16 +- .../vpelib/src/chip/vpe11/vpe11_resource.c | 67 +- .../src/chip/vpe11/vpe11_vpe_desc_writer.c | 69 + src/amd/vpelib/src/core/3dlut_builder.c | 61 +- src/amd/vpelib/src/core/background.c | 91 +- src/amd/vpelib/src/core/color.c | 439 +- src/amd/vpelib/src/core/color_bg.c | 19 +- src/amd/vpelib/src/core/color_cs.c | 27 +- src/amd/vpelib/src/core/color_gamma.c | 24 +- src/amd/vpelib/src/core/color_gamut.c | 6 +- src/amd/vpelib/src/core/common.c | 204 +- src/amd/vpelib/src/core/config_writer.c | 65 +- src/amd/vpelib/src/core/geometric_scaling.c | 74 +- src/amd/vpelib/src/core/inc/3dlut_builder.h | 4 +- src/amd/vpelib/src/core/inc/cdc.h | 46 +- src/amd/vpelib/src/core/inc/cmd_builder.h | 5 +- src/amd/vpelib/src/core/inc/color.h | 63 +- src/amd/vpelib/src/core/inc/color_pwl.h | 2330 - src/amd/vpelib/src/core/inc/common.h | 8 +- src/amd/vpelib/src/core/inc/config_cache.h | 162 + src/amd/vpelib/src/core/inc/config_writer.h | 23 +- src/amd/vpelib/src/core/inc/dpp.h | 47 +- .../vpelib/src/core/inc/geometric_scaling.h | 11 +- src/amd/vpelib/src/core/inc/hw_shared.h | 14 +- src/amd/vpelib/src/core/inc/mpc.h | 17 +- src/amd/vpelib/src/core/inc/opp.h | 1 + .../vpelib/src/core/inc/plane_desc_writer.h | 66 +- src/amd/vpelib/src/core/inc/reg_helper.h | 2 +- src/amd/vpelib/src/core/inc/resource.h | 29 +- src/amd/vpelib/src/core/inc/vpe_command.h | 145 +- src/amd/vpelib/src/core/inc/vpe_desc_writer.h | 52 +- src/amd/vpelib/src/core/inc/vpe_priv.h | 67 +- .../vpelib/src/core/inc/vpe_visual_confirm.h | 2 +- src/amd/vpelib/src/core/inc/vpec.h | 3 - src/amd/vpelib/src/core/mpc.c | 3 +- src/amd/vpelib/src/core/resource.c | 250 +- src/amd/vpelib/src/core/shaper_builder.c | 33 - src/amd/vpelib/src/core/vpe_visual_confirm.c | 32 +- src/amd/vpelib/src/core/vpelib.c | 585 +- src/amd/vpelib/src/utils/fixpt31_32.c | 8 +- src/amd/vpelib/src/utils/inc/vector.h | 83 + src/amd/vpelib/src/utils/vector.c | 109 + src/amd/vulkan/bvh/meson.build | 11 +- src/amd/vulkan/bvh/ploc_internal.comp | 24 +- src/amd/vulkan/layers/meson.build | 1 - src/amd/vulkan/layers/radv_rra_layer.c | 104 +- src/amd/vulkan/layers/radv_sqtt_layer.c | 81 +- src/amd/vulkan/meson.build | 13 +- src/amd/vulkan/meta/radv_meta.c | 68 +- src/amd/vulkan/meta/radv_meta.h | 37 +- src/amd/vulkan/meta/radv_meta_astc_decode.c | 12 +- src/amd/vulkan/meta/radv_meta_blit.c | 259 +- src/amd/vulkan/meta/radv_meta_blit2d.c | 533 +- src/amd/vulkan/meta/radv_meta_buffer.c | 194 +- src/amd/vulkan/meta/radv_meta_bufimage.c | 1177 +- src/amd/vulkan/meta/radv_meta_clear.c | 565 +- src/amd/vulkan/meta/radv_meta_copy.c | 30 +- .../vulkan/meta/radv_meta_copy_vrs_htile.c | 130 +- src/amd/vulkan/meta/radv_meta_dcc_retile.c | 144 +- src/amd/vulkan/meta/radv_meta_decompress.c | 271 +- src/amd/vulkan/meta/radv_meta_etc_decode.c | 7 +- src/amd/vulkan/meta/radv_meta_fast_clear.c | 162 +- src/amd/vulkan/meta/radv_meta_fmask_copy.c | 148 +- src/amd/vulkan/meta/radv_meta_fmask_expand.c | 166 +- src/amd/vulkan/meta/radv_meta_resolve.c | 136 +- src/amd/vulkan/meta/radv_meta_resolve_cs.c | 324 +- src/amd/vulkan/meta/radv_meta_resolve_fs.c | 270 +- src/amd/vulkan/nir/radv_nir.h | 21 +- .../nir/radv_nir_apply_pipeline_layout.c | 87 +- .../vulkan/nir/radv_nir_export_multiview.c | 2 +- src/amd/vulkan/nir/radv_nir_lower_abi.c | 32 +- .../nir/radv_nir_lower_fs_barycentric.c | 11 +- .../vulkan/nir/radv_nir_lower_fs_intrinsics.c | 4 +- .../nir/radv_nir_lower_hit_attrib_derefs.c | 36 +- .../nir/radv_nir_lower_intrinsics_early.c | 2 +- src/amd/vulkan/nir/radv_nir_lower_io.c | 36 +- .../nir/radv_nir_lower_poly_line_smooth.c | 2 +- .../radv_nir_lower_primitive_shading_rate.c | 2 +- .../vulkan/nir/radv_nir_lower_view_index.c | 7 +- .../nir/radv_nir_lower_viewport_to_zero.c | 2 +- src/amd/vulkan/nir/radv_nir_lower_vs_inputs.c | 65 +- .../vulkan/nir/radv_nir_opt_tid_function.c | 560 + .../nir/radv_nir_remap_color_attachment.c | 75 + src/amd/vulkan/nir/radv_nir_rt_common.c | 39 +- src/amd/vulkan/nir/radv_nir_rt_shader.c | 190 +- src/amd/vulkan/radix_sort/meson.build | 1 - src/amd/vulkan/radix_sort/shaders/meson.build | 15 +- src/amd/vulkan/radv_acceleration_structure.c | 10 +- src/amd/vulkan/radv_aco_shader_info.h | 9 +- src/amd/vulkan/radv_buffer.c | 40 +- src/amd/vulkan/radv_buffer_view.c | 63 +- src/amd/vulkan/radv_cmd_buffer.c | 5124 +- src/amd/vulkan/radv_cmd_buffer.h | 255 +- src/amd/vulkan/radv_constants.h | 1 - src/amd/vulkan/radv_cp_reg_shadowing.c | 11 +- src/amd/vulkan/radv_cs.c | 9 +- src/amd/vulkan/radv_cs.h | 172 +- src/amd/vulkan/radv_debug.c | 312 +- src/amd/vulkan/radv_debug.h | 27 +- src/amd/vulkan/radv_descriptor_set.c | 52 +- src/amd/vulkan/radv_descriptor_set.h | 7 +- src/amd/vulkan/radv_device.c | 1081 +- src/amd/vulkan/radv_device.h | 70 +- .../vulkan/radv_device_generated_commands.c | 2303 - .../vulkan/radv_device_generated_commands.h | 68 - src/amd/vulkan/radv_dgc.c | 3358 + src/amd/vulkan/radv_dgc.h | 66 + src/amd/vulkan/radv_formats.c | 753 +- src/amd/vulkan/radv_formats.h | 68 +- src/amd/vulkan/radv_image.c | 132 +- src/amd/vulkan/radv_image.h | 36 +- src/amd/vulkan/radv_image_view.c | 748 +- src/amd/vulkan/radv_image_view.h | 5 +- src/amd/vulkan/radv_instance.c | 49 +- src/amd/vulkan/radv_instance.h | 10 +- src/amd/vulkan/radv_llvm_helper.cpp | 16 +- src/amd/vulkan/radv_nir_to_llvm.c | 9 +- src/amd/vulkan/radv_perfcounter.c | 9 +- src/amd/vulkan/radv_physical_device.c | 279 +- src/amd/vulkan/radv_physical_device.h | 12 +- src/amd/vulkan/radv_pipeline.c | 379 +- src/amd/vulkan/radv_pipeline.h | 13 +- src/amd/vulkan/radv_pipeline_binary.c | 453 + src/amd/vulkan/radv_pipeline_binary.h | 42 + src/amd/vulkan/radv_pipeline_cache.c | 266 +- src/amd/vulkan/radv_pipeline_cache.h | 19 +- src/amd/vulkan/radv_pipeline_compute.c | 162 +- src/amd/vulkan/radv_pipeline_compute.h | 29 +- src/amd/vulkan/radv_pipeline_graphics.c | 2281 +- src/amd/vulkan/radv_pipeline_graphics.h | 122 +- src/amd/vulkan/radv_pipeline_rt.c | 307 +- src/amd/vulkan/radv_pipeline_rt.h | 29 + src/amd/vulkan/radv_printf.c | 5 +- src/amd/vulkan/radv_query.c | 292 +- src/amd/vulkan/radv_queue.c | 813 +- src/amd/vulkan/radv_radeon_winsys.h | 15 +- src/amd/vulkan/radv_rra.c | 313 +- src/amd/vulkan/radv_rra.h | 16 +- src/amd/vulkan/radv_sampler.c | 56 +- src/amd/vulkan/radv_sdma.c | 23 +- src/amd/vulkan/radv_shader.c | 822 +- src/amd/vulkan/radv_shader.h | 39 +- src/amd/vulkan/radv_shader_args.c | 134 +- src/amd/vulkan/radv_shader_args.h | 26 +- src/amd/vulkan/radv_shader_info.c | 230 +- src/amd/vulkan/radv_shader_info.h | 94 +- src/amd/vulkan/radv_shader_object.c | 64 +- src/amd/vulkan/radv_spm.c | 68 +- src/amd/vulkan/radv_spm.h | 2 + src/amd/vulkan/radv_sqtt.c | 375 +- src/amd/vulkan/radv_video.c | 708 +- src/amd/vulkan/radv_video.h | 5 +- src/amd/vulkan/radv_video_enc.c | 183 +- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 264 +- .../winsys/amdgpu/radv_amdgpu_surface.c | 94 - .../winsys/amdgpu/radv_amdgpu_surface.h | 17 - .../vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 13 +- .../vulkan/winsys/amdgpu/radv_amdgpu_winsys.h | 1 - src/amd/vulkan/winsys/null/radv_null_cs.c | 6 + src/android_stub/nativewindow_stub.cpp | 6 + src/asahi/clc/asahi_clc.c | 260 +- src/asahi/clc/meson.build | 7 +- src/asahi/compiler/README.md | 21 +- src/asahi/compiler/agx_compile.c | 1079 +- src/asahi/compiler/agx_compile.h | 70 +- src/asahi/compiler/agx_compiler.h | 119 +- src/asahi/compiler/agx_dce.c | 38 +- src/asahi/compiler/agx_internal_formats.h | 45 - src/asahi/compiler/agx_ir.c | 13 + src/asahi/compiler/agx_liveness.c | 4 +- .../compiler/agx_lower_divergent_shuffle.c | 71 + src/asahi/compiler/agx_lower_parallel_copy.c | 66 +- src/asahi/compiler/agx_lower_pseudo.c | 31 + src/asahi/compiler/agx_lower_spill.c | 19 +- .../compiler/agx_lower_uniform_sources.c | 13 +- src/asahi/compiler/agx_nir.h | 3 +- src/asahi/compiler/agx_nir_algebraic.py | 16 +- src/asahi/compiler/agx_nir_lower_address.c | 4 +- .../compiler/agx_nir_lower_cull_distance.c | 41 +- .../compiler/agx_nir_lower_discard_zs_emit.c | 14 +- src/asahi/compiler/agx_nir_lower_fminmax.c | 77 + .../compiler/agx_nir_lower_frag_sidefx.c | 20 +- .../compiler/agx_nir_lower_interpolation.c | 12 +- .../compiler/agx_nir_lower_sample_mask.c | 18 +- .../compiler/agx_nir_lower_shared_bitsize.c | 4 +- src/asahi/compiler/agx_nir_lower_subgroups.c | 162 +- src/asahi/compiler/agx_nir_opt_preamble.c | 14 +- src/asahi/compiler/agx_opcodes.c.py | 3 +- src/asahi/compiler/agx_opcodes.h.py | 7 +- src/asahi/compiler/agx_opcodes.py | 172 +- src/asahi/compiler/agx_opt_jmp_none.c | 3 +- .../compiler/agx_opt_promote_constants.c | 18 +- src/asahi/compiler/agx_optimizer.c | 157 +- src/asahi/compiler/agx_pack.c | 101 +- src/asahi/compiler/agx_performance.c | 16 +- src/asahi/compiler/agx_print.c | 42 +- src/asahi/compiler/agx_register_allocate.c | 497 +- src/asahi/compiler/agx_repair_ssa.c | 14 +- src/asahi/compiler/agx_spill.c | 51 +- src/asahi/compiler/agx_validate.c | 110 +- src/asahi/compiler/agx_validate_ra.c | 304 + src/asahi/compiler/meson.build | 9 +- .../test/test-lower-parallel-copy.cpp | 52 +- src/asahi/compiler/test/test-lower-spill.cpp | 1 + src/asahi/compiler/test/test-optimizer.cpp | 137 +- src/asahi/drm-shim/asahi_noop.c | 108 +- src/asahi/drm-shim/meson.build | 4 +- src/asahi/genxml/agx_pack_header.h | 249 + src/asahi/genxml/cmdbuf.xml | 405 +- src/asahi/genxml/gen_pack.py | 427 +- src/asahi/genxml/meson.build | 2 +- src/asahi/layout/formats.c | 263 + src/asahi/layout/layout.c | 17 +- src/asahi/layout/layout.h | 234 +- src/asahi/layout/meson.build | 2 + src/asahi/layout/tiling.cc | 6 +- src/asahi/lib/agx_abi.h | 21 + src/asahi/lib/{agx_meta.c => agx_bg_eot.c} | 77 +- src/asahi/lib/agx_bg_eot.h | 44 + src/asahi/lib/agx_bo.c | 46 +- src/asahi/lib/agx_bo.h | 88 +- src/asahi/lib/agx_border.c | 2 +- src/asahi/lib/agx_device.c | 523 +- src/asahi/lib/agx_device.h | 104 +- src/asahi/lib/agx_device_virtio.c | 320 + src/asahi/lib/agx_device_virtio.h | 13 + src/asahi/lib/agx_formats.c | 262 - src/asahi/lib/agx_formats.h | 29 - src/asahi/lib/agx_helpers.h | 188 +- src/asahi/lib/agx_linker.c | 51 +- src/asahi/lib/agx_linker.h | 82 +- src/asahi/lib/agx_meta.h | 44 - src/asahi/lib/agx_nir_lower_alpha.c | 6 +- src/asahi/lib/agx_nir_lower_gs.c | 521 +- src/asahi/lib/agx_nir_lower_gs.h | 60 +- src/asahi/lib/agx_nir_lower_ia.c | 96 +- src/asahi/lib/agx_nir_lower_msaa.c | 11 +- .../lib/agx_nir_lower_sample_intrinsics.c | 52 +- src/asahi/lib/agx_nir_lower_tess.c | 69 +- src/asahi/lib/agx_nir_lower_texture.c | 286 +- src/asahi/lib/agx_nir_lower_tilebuffer.c | 127 +- src/asahi/lib/agx_nir_lower_uvs.c | 115 +- src/asahi/lib/agx_nir_lower_vbo.c | 75 +- src/asahi/lib/agx_nir_lower_vbo.h | 30 +- src/asahi/lib/agx_nir_passes.h | 11 +- src/asahi/lib/agx_nir_prolog_epilog.c | 287 +- src/asahi/lib/agx_ppp.h | 50 +- src/asahi/lib/agx_scratch.c | 31 +- src/asahi/lib/agx_tilebuffer.c | 73 +- src/asahi/lib/agx_tilebuffer.h | 18 +- src/asahi/lib/agx_usc.h | 82 +- src/asahi/lib/agx_uvs.h | 34 +- src/asahi/lib/agx_va.c | 64 + src/asahi/lib/asahi_proto.h | 142 + src/asahi/lib/decode.c | 663 +- src/asahi/lib/decode.h | 40 +- src/asahi/lib/meson.build | 43 +- src/asahi/lib/pool.c | 8 +- src/asahi/lib/shaders/compression.cl | 126 + src/asahi/lib/shaders/compression.h | 19 + src/asahi/lib/shaders/draws.cl | 25 + src/asahi/lib/shaders/draws.h | 14 + src/asahi/lib/shaders/geometry.cl | 252 +- src/asahi/lib/shaders/geometry.h | 167 +- src/asahi/lib/shaders/libagx.h | 39 +- src/asahi/lib/shaders/query.cl | 114 + src/asahi/lib/shaders/query.h | 74 + src/asahi/lib/shaders/tessellation.cl | 161 +- src/asahi/lib/shaders/tessellator.cl | 1644 +- src/asahi/lib/shaders/tessellator.h | 140 + src/asahi/lib/shaders/texture.cl | 112 +- src/asahi/lib/unstable_asahi_drm.h | 693 + src/asahi/lib/wrap.c | 13 +- src/asahi/meson.build | 8 +- src/asahi/vulkan/hk_buffer.c | 271 + src/asahi/vulkan/hk_buffer.h | 49 + src/asahi/vulkan/hk_buffer_view.c | 198 + src/asahi/vulkan/hk_buffer_view.h | 27 + src/asahi/vulkan/hk_cmd_buffer.c | 842 + src/asahi/vulkan/hk_cmd_buffer.h | 802 + src/asahi/vulkan/hk_cmd_clear.c | 200 + src/asahi/vulkan/hk_cmd_dispatch.c | 260 + src/asahi/vulkan/hk_cmd_draw.c | 3980 ++ src/asahi/vulkan/hk_cmd_meta.c | 1515 + src/asahi/vulkan/hk_cmd_pool.c | 165 + src/asahi/vulkan/hk_cmd_pool.h | 51 + src/asahi/vulkan/hk_descriptor_set.c | 798 + src/asahi/vulkan/hk_descriptor_set.h | 107 + src/asahi/vulkan/hk_descriptor_set_layout.c | 423 + src/asahi/vulkan/hk_descriptor_set_layout.h | 75 + src/asahi/vulkan/hk_descriptor_table.c | 179 + src/asahi/vulkan/hk_descriptor_table.h | 49 + src/asahi/vulkan/hk_device.c | 568 + src/asahi/vulkan/hk_device.h | 161 + src/asahi/vulkan/hk_device_memory.c | 330 + src/asahi/vulkan/hk_device_memory.h | 31 + src/asahi/vulkan/hk_event.c | 131 + src/asahi/vulkan/hk_event.h | 22 + src/asahi/vulkan/hk_format.c | 144 + src/asahi/vulkan/hk_image.c | 1611 + src/asahi/vulkan/hk_image.h | 131 + src/asahi/vulkan/hk_image_view.c | 657 + src/asahi/vulkan/hk_image_view.h | 66 + src/asahi/vulkan/hk_instance.c | 213 + src/asahi/vulkan/hk_instance.h | 28 + src/asahi/vulkan/hk_nir_lower_descriptors.c | 868 + src/asahi/vulkan/hk_nir_passthrough_gs.c | 112 + src/asahi/vulkan/hk_physical_device.c | 1428 + src/asahi/vulkan/hk_physical_device.h | 79 + src/asahi/vulkan/hk_private.h | 59 + src/asahi/vulkan/hk_query_pool.c | 642 + src/asahi/vulkan/hk_query_pool.h | 28 + src/asahi/vulkan/hk_queue.c | 613 + src/asahi/vulkan/hk_queue.h | 42 + src/asahi/vulkan/hk_sampler.c | 321 + src/asahi/vulkan/hk_sampler.h | 33 + src/asahi/vulkan/hk_shader.c | 1519 + src/asahi/vulkan/hk_shader.h | 418 + src/asahi/vulkan/hk_wsi.c | 44 + src/asahi/vulkan/hk_wsi.h | 13 + src/asahi/vulkan/meson.build | 144 + src/broadcom/ci/broadcom-rpi3-fails.txt | 50 +- src/broadcom/ci/broadcom-rpi3-flakes.txt | 7 + src/broadcom/ci/broadcom-rpi3-skips.txt | 11 +- src/broadcom/ci/broadcom-rpi4-fails.txt | 389 +- src/broadcom/ci/broadcom-rpi4-flakes.txt | 251 +- src/broadcom/ci/broadcom-rpi4-skips.txt | 61 +- src/broadcom/ci/broadcom-rpi5-fails.txt | 609 +- src/broadcom/ci/broadcom-rpi5-flakes.txt | 87 +- src/broadcom/ci/broadcom-rpi5-skips.txt | 71 +- src/broadcom/ci/deqp-broadcom-rpi3-arm32.toml | 27 + src/broadcom/ci/deqp-broadcom-rpi3-asan.toml | 27 + src/broadcom/ci/deqp-broadcom-rpi3.toml | 2 +- src/broadcom/ci/deqp-broadcom-rpi4-arm32.toml | 40 + src/broadcom/ci/deqp-broadcom-rpi4-asan.toml | 39 + .../ci/deqp-broadcom-rpi4-vk-asan.toml | 6 + src/broadcom/ci/deqp-broadcom-rpi4-vk.toml | 5 + src/broadcom/ci/deqp-broadcom-rpi4.toml | 2 +- src/broadcom/ci/deqp-broadcom-rpi5-vk.toml | 5 + src/broadcom/ci/deqp-broadcom-rpi5.toml | 89 + src/broadcom/ci/deqp-v3d-rusticl.toml | 7 + src/broadcom/ci/gitlab-ci-inc.yml | 56 +- src/broadcom/ci/gitlab-ci.yml | 154 +- src/broadcom/ci/traces-broadcom.yml | 154 +- src/broadcom/cle/meson.build | 19 +- src/broadcom/cle/v3d_packet.xml | 63 + src/broadcom/common/v3d_debug.c | 2 - src/broadcom/common/v3d_debug.h | 1 - src/broadcom/common/v3d_device_info.c | 39 +- src/broadcom/common/v3d_device_info.h | 45 +- src/broadcom/common/v3d_limits.h | 2 + src/broadcom/compiler/meson.build | 34 +- src/broadcom/compiler/nir_to_vir.c | 307 +- src/broadcom/compiler/qpu_schedule.c | 32 +- src/broadcom/compiler/qpu_validate.c | 20 + src/broadcom/compiler/v3d_compiler.h | 17 +- .../compiler/v3d_nir_lower_algebraic.py | 48 + .../compiler/v3d_nir_lower_image_load_store.c | 11 +- src/broadcom/compiler/v3d_nir_lower_io.c | 57 +- .../compiler/v3d_nir_lower_line_smooth.c | 3 +- .../v3d_nir_lower_load_store_bitsize.c | 254 +- .../compiler/v3d_nir_lower_logic_ops.c | 10 +- src/broadcom/compiler/v3d_nir_lower_scratch.c | 78 +- src/broadcom/compiler/v3d_tex.c | 73 +- src/broadcom/compiler/vir.c | 98 +- .../compiler/vir_opt_copy_propagate.c | 8 + src/broadcom/compiler/vir_opt_dead_code.c | 16 + .../compiler/vir_opt_small_immediates.c | 16 +- src/broadcom/compiler/vir_register_allocate.c | 31 +- src/broadcom/drm-shim/meson.build | 19 +- src/broadcom/meson.build | 30 +- src/broadcom/qpu/meson.build | 19 +- src/broadcom/qpu/qpu_disasm.c | 8 +- src/broadcom/qpu/qpu_instr.c | 6 + src/broadcom/qpu/qpu_instr.h | 7 + src/broadcom/qpu/qpu_pack.c | 299 +- src/broadcom/qpu/tests/qpu_disasm.c | 106 +- src/broadcom/simulator/meson.build | 35 +- src/broadcom/simulator/v3d_simulator.c | 37 +- .../simulator/v3d_simulator_wrapper.cpp | 8 +- src/broadcom/simulator/v3dx_simulator.c | 32 +- src/broadcom/simulator/v3dx_simulator.h | 4 + src/broadcom/vulkan/meson.build | 30 +- src/broadcom/vulkan/v3dv_android.c | 446 +- src/broadcom/vulkan/v3dv_cl.c | 15 +- src/broadcom/vulkan/v3dv_cl.h | 11 +- src/broadcom/vulkan/v3dv_cmd_buffer.c | 548 +- src/broadcom/vulkan/v3dv_debug.c | 61 - src/broadcom/vulkan/v3dv_debug.h | 4 - src/broadcom/vulkan/v3dv_device.c | 1486 +- src/broadcom/vulkan/v3dv_event.c | 15 +- src/broadcom/vulkan/v3dv_formats.c | 6 +- src/broadcom/vulkan/v3dv_image.c | 196 +- src/broadcom/vulkan/v3dv_limits.h | 3 + src/broadcom/vulkan/v3dv_meta_clear.c | 176 +- src/broadcom/vulkan/v3dv_meta_copy.c | 291 +- src/broadcom/vulkan/v3dv_pass.c | 81 +- src/broadcom/vulkan/v3dv_pipeline.c | 656 +- src/broadcom/vulkan/v3dv_private.h | 262 +- src/broadcom/vulkan/v3dv_query.c | 40 +- src/broadcom/vulkan/v3dv_uniforms.c | 16 +- src/broadcom/vulkan/v3dv_wsi.c | 10 +- src/broadcom/vulkan/v3dvx_cmd_buffer.c | 401 +- src/broadcom/vulkan/v3dvx_device.c | 8 +- src/broadcom/vulkan/v3dvx_formats.c | 13 + src/broadcom/vulkan/v3dvx_meta_common.c | 14 +- src/broadcom/vulkan/v3dvx_pipeline.c | 190 +- src/broadcom/vulkan/v3dvx_private.h | 15 +- src/broadcom/vulkan/v3dvx_query.c | 44 +- src/c11/impl/meson.build | 19 +- src/compiler/builtin_types.py | 28 +- src/compiler/clc/clc.h | 5 + src/compiler/clc/clc_helpers.cpp | 35 +- src/compiler/clc/mesa_clc.c | 216 + src/compiler/clc/meson.build | 36 +- src/compiler/glsl/ast.h | 14 + src/compiler/glsl/ast_function.cpp | 33 +- src/compiler/glsl/ast_to_hir.cpp | 29 +- src/compiler/glsl/ast_type.cpp | 45 +- src/compiler/glsl/builtin_functions.cpp | 1004 +- src/compiler/glsl/builtin_variables.cpp | 26 +- src/compiler/glsl/float64.glsl | 29 +- src/compiler/glsl/gl_nir_link_atomics.c | 1 - src/compiler/glsl/gl_nir_link_functions.c | 566 + .../glsl/gl_nir_link_interface_blocks.c | 315 +- .../glsl/gl_nir_link_uniform_blocks.c | 35 +- .../glsl/gl_nir_link_uniform_initializers.c | 1 - src/compiler/glsl/gl_nir_link_uniforms.c | 1 - src/compiler/glsl/gl_nir_link_varyings.c | 73 +- src/compiler/glsl/gl_nir_link_varyings.h | 3 + src/compiler/glsl/gl_nir_linker.c | 1248 +- src/compiler/glsl/gl_nir_linker.h | 16 +- src/compiler/glsl/gl_nir_lower_atomics.c | 4 +- src/compiler/glsl/gl_nir_lower_buffers.c | 4 +- src/compiler/glsl/gl_nir_lower_discard_flow.c | 9 +- src/compiler/glsl/gl_nir_lower_images.c | 3 +- .../gl_nir_lower_named_interface_blocks.c | 3 +- .../glsl/gl_nir_lower_samplers_as_deref.c | 4 +- src/compiler/glsl/glcpp/glcpp-parse.y | 14 +- src/compiler/glsl/glcpp/meson.build | 19 +- src/compiler/glsl/glsl_parser.yy | 5 + src/compiler/glsl/glsl_parser_extras.cpp | 230 +- src/compiler/glsl/glsl_parser_extras.h | 60 +- src/compiler/glsl/glsl_symbol_table.cpp | 8 - src/compiler/glsl/glsl_symbol_table.h | 8 +- src/compiler/glsl/glsl_to_nir.cpp | 504 +- src/compiler/glsl/glsl_to_nir.h | 5 +- src/compiler/glsl/ir.cpp | 3 +- src/compiler/glsl/ir.h | 72 +- src/compiler/glsl/ir_array_refcount.h | 2 + .../glsl/ir_builder_print_visitor.cpp | 775 - src/compiler/glsl/ir_builder_print_visitor.h | 31 - src/compiler/glsl/ir_function.cpp | 41 +- src/compiler/glsl/ir_function_can_inline.cpp | 75 - .../glsl/ir_function_detect_recursion.cpp | 48 +- src/compiler/glsl/ir_function_inlining.h | 35 - src/compiler/glsl/ir_optimization.h | 1 - src/compiler/glsl/ir_print_visitor.h | 2 + src/compiler/glsl/ir_reader.cpp | 5 +- src/compiler/glsl/ir_uniform.h | 233 - src/compiler/glsl/ir_validate.cpp | 3 + src/compiler/glsl/ir_variable_refcount.h | 2 + src/compiler/glsl/link_functions.cpp | 339 - src/compiler/glsl/link_interface_blocks.cpp | 314 - src/compiler/glsl/linker.cpp | 2024 - src/compiler/glsl/linker.h | 57 - src/compiler/glsl/linker_util.cpp | 125 +- src/compiler/glsl/linker_util.h | 46 + src/compiler/glsl/lower_jumps.cpp | 7 +- src/compiler/glsl/lower_packing_builtins.cpp | 3 + src/compiler/glsl/lower_precision.cpp | 5 + src/compiler/glsl/main.cpp | 1 - src/compiler/glsl/meson.build | 51 +- src/compiler/glsl/opt_add_neg_to_sub.h | 61 - src/compiler/glsl/opt_dead_code_local.cpp | 8 +- src/compiler/glsl/opt_function_inlining.cpp | 78 - src/compiler/glsl/opt_tree_grafting.cpp | 17 +- src/compiler/glsl/program.h | 3 +- src/compiler/glsl/serialize.cpp | 74 +- src/compiler/glsl/shader_cache.cpp | 5 +- src/compiler/glsl/standalone.cpp | 148 +- src/compiler/glsl/standalone.h | 1 - src/compiler/glsl/standalone_scaffolding.cpp | 19 +- src/compiler/glsl/string_to_uint_map.h | 3 + src/compiler/glsl/test_optpass.cpp | 2 - src/compiler/glsl/tests/meson.build | 29 +- .../glsl/tests/opt_add_neg_to_sub_test.cpp | 214 - .../glsl/tests/standalone_dump-builder.frag | 12 - .../glsl/tests/test_gl_lower_mediump.cpp | 67 +- .../glsl/tests/warnings/000-basic-test.vert | 2 + .../001-use-undefined-then-define.vert | 2 + .../glsl/tests/warnings/002-loop.vert | 2 + .../glsl/tests/warnings/003-less.vert | 2 + .../glsl/tests/warnings/004-greater.vert | 2 + .../glsl/tests/warnings/005-lequal.vert | 2 + .../glsl/tests/warnings/006-gequal.vert | 2 + .../glsl/tests/warnings/007-test-mod.vert | 2 + .../glsl/tests/warnings/008-mulassign.vert | 2 + .../glsl/tests/warnings/009-div-assign.vert | 2 + .../glsl/tests/warnings/010-add-assign.vert | 2 + .../glsl/tests/warnings/011-sub-assign.vert | 2 + .../glsl/tests/warnings/012-modassign.vert | 2 + .../glsl/tests/warnings/013-lsassign.vert | 2 + .../glsl/tests/warnings/014-rsassign.vert | 2 + .../glsl/tests/warnings/015-andassign.vert | 2 + .../glsl/tests/warnings/016-orassign.vert | 2 + .../glsl/tests/warnings/017-xorassign.vert | 2 + .../glsl/tests/warnings/018-bitand.vert | 2 + .../glsl/tests/warnings/019-array.vert | 2 + .../glsl/tests/warnings/020-array-length.vert | 2 + .../glsl/tests/warnings/021-lshift.vert | 2 + .../glsl/tests/warnings/022-rshift.vert | 2 + .../glsl/tests/warnings/023-switch.vert | 2 + .../glsl/tests/warnings/024-shaderout.vert | 2 + .../warnings/025-function-parameters.vert | 2 + .../glsl/tests/warnings/028-conditional.vert | 2 + .../tests/warnings/029-fieldselection.vert | 2 + src/compiler/glsl/tests/warnings_test.py | 2 +- src/compiler/glsl_types.c | 6 +- src/compiler/glsl_types.h | 3 + src/compiler/isaspec/isa.py | 7 +- src/compiler/isaspec/meson.build | 19 +- src/compiler/meson.build | 24 +- src/compiler/nir/meson.build | 38 +- src/compiler/nir/nir.c | 143 +- src/compiler/nir/nir.h | 468 +- src/compiler/nir/nir_algebraic.py | 28 +- src/compiler/nir/nir_builder.c | 19 +- src/compiler/nir/nir_builder.h | 132 +- src/compiler/nir/nir_builtin_builder.c | 197 +- src/compiler/nir/nir_builtin_builder.h | 27 +- src/compiler/nir/nir_clone.c | 56 +- src/compiler/nir/nir_constant_expressions.py | 19 +- src/compiler/nir/nir_deref.c | 50 +- src/compiler/nir/nir_divergence_analysis.c | 456 +- src/compiler/nir/nir_format_convert.c | 764 + src/compiler/nir/nir_format_convert.h | 450 +- src/compiler/nir/nir_from_ssa.c | 8 +- src/compiler/nir/nir_functions.c | 52 +- src/compiler/nir/nir_gather_info.c | 69 +- src/compiler/nir/nir_gather_tcs_info.c | 334 + src/compiler/nir/nir_group_loads.c | 10 +- src/compiler/nir/nir_inline_helpers.h | 16 + src/compiler/nir/nir_inline_uniforms.c | 11 +- src/compiler/nir/nir_instr_set.c | 153 +- src/compiler/nir/nir_instr_set.h | 15 +- src/compiler/nir/nir_intrinsics.py | 244 +- src/compiler/nir/nir_legacy.c | 3 +- src/compiler/nir/nir_linking_helpers.c | 184 +- src/compiler/nir/nir_loop_analyze.c | 43 +- src/compiler/nir/nir_lower_alpha_test.c | 3 +- src/compiler/nir/nir_lower_alu.c | 65 +- src/compiler/nir/nir_lower_alu_width.c | 36 +- src/compiler/nir/nir_lower_amul.c | 17 +- .../nir/nir_lower_array_deref_of_vec.c | 13 +- src/compiler/nir/nir_lower_atomics.c | 127 + src/compiler/nir/nir_lower_atomics_to_ssbo.c | 3 +- src/compiler/nir/nir_lower_bit_size.c | 9 +- src/compiler/nir/nir_lower_bitmap.c | 3 +- src/compiler/nir/nir_lower_blend.c | 10 +- src/compiler/nir/nir_lower_bool_to_bitsize.c | 3 +- src/compiler/nir/nir_lower_bool_to_float.c | 6 +- src/compiler/nir/nir_lower_bool_to_int32.c | 3 +- src/compiler/nir/nir_lower_cl_images.c | 6 +- .../nir/nir_lower_clamp_color_outputs.c | 3 +- .../nir/nir_lower_clip_cull_distance_arrays.c | 7 +- src/compiler/nir/nir_lower_clip_disable.c | 42 +- src/compiler/nir/nir_lower_clip_halfz.c | 3 +- .../nir/nir_lower_const_arrays_to_uniforms.c | 6 +- .../nir/nir_lower_convert_alu_types.c | 6 +- src/compiler/nir/nir_lower_discard_if.c | 11 +- .../nir/nir_lower_discard_or_demote.c | 187 - src/compiler/nir/nir_lower_double_ops.c | 38 +- src/compiler/nir/nir_lower_drawpixels.c | 3 +- src/compiler/nir/nir_lower_fb_read.c | 3 +- src/compiler/nir/nir_lower_flatshade.c | 3 +- src/compiler/nir/nir_lower_flrp.c | 23 +- .../nir/nir_lower_frag_coord_to_pixel_coord.c | 10 +- src/compiler/nir/nir_lower_fragcolor.c | 3 +- src/compiler/nir/nir_lower_fragcoord_wtrans.c | 54 +- src/compiler/nir/nir_lower_frexp.c | 3 +- .../nir/nir_lower_global_vars_to_local.c | 3 +- src/compiler/nir/nir_lower_goto_ifs.c | 4 +- src/compiler/nir/nir_lower_image.c | 15 +- .../nir/nir_lower_image_atomics_to_global.c | 3 +- .../nir/nir_lower_input_attachments.c | 13 +- src/compiler/nir/nir_lower_int64.c | 41 +- src/compiler/nir/nir_lower_int_to_float.c | 6 +- src/compiler/nir/nir_lower_interpolation.c | 3 +- src/compiler/nir/nir_lower_io.c | 94 +- src/compiler/nir/nir_lower_io_to_scalar.c | 65 +- .../nir/nir_lower_io_to_temporaries.c | 6 +- src/compiler/nir/nir_lower_io_to_vector.c | 112 +- .../nir/nir_lower_is_helper_invocation.c | 6 +- .../nir/nir_lower_load_const_to_scalar.c | 6 +- src/compiler/nir/nir_lower_locals_to_regs.c | 3 +- src/compiler/nir/nir_lower_mediump.c | 224 +- .../nir/nir_lower_mem_access_bit_sizes.c | 32 +- src/compiler/nir/nir_lower_memcpy.c | 3 +- src/compiler/nir/nir_lower_memory_model.c | 2 +- src/compiler/nir/nir_lower_multiview.c | 2 + .../nir/nir_lower_non_uniform_access.c | 3 + src/compiler/nir/nir_lower_packing.c | 68 +- .../nir/nir_lower_passthrough_edgeflags.c | 6 +- src/compiler/nir/nir_lower_patch_vertices.c | 7 +- src/compiler/nir/nir_lower_phis_to_scalar.c | 9 +- src/compiler/nir/nir_lower_pntc_ytransform.c | 3 +- src/compiler/nir/nir_lower_point_size.c | 27 +- src/compiler/nir/nir_lower_point_size_mov.c | 2 +- src/compiler/nir/nir_lower_point_smooth.c | 2 +- src/compiler/nir/nir_lower_printf.c | 108 +- .../nir/nir_lower_readonly_images_to_tex.c | 42 +- .../nir/nir_lower_reg_intrinsics_to_ssa.c | 9 +- src/compiler/nir/nir_lower_robust_access.c | 43 +- src/compiler/nir/nir_lower_samplers.c | 3 +- src/compiler/nir/nir_lower_scratch.c | 12 +- src/compiler/nir/nir_lower_shader_calls.c | 29 +- src/compiler/nir/nir_lower_single_sampled.c | 6 +- src/compiler/nir/nir_lower_ssbo.c | 40 +- src/compiler/nir/nir_lower_subgroups.c | 420 +- src/compiler/nir/nir_lower_system_values.c | 65 +- src/compiler/nir/nir_lower_tess_coord_z.c | 3 +- src/compiler/nir/nir_lower_tex.c | 31 +- src/compiler/nir/nir_lower_texcoord_replace.c | 3 +- .../nir/nir_lower_texcoord_replace_late.c | 2 +- src/compiler/nir/nir_lower_two_sided_color.c | 3 +- src/compiler/nir/nir_lower_undef_to_zero.c | 3 +- src/compiler/nir/nir_lower_uniforms_to_ubo.c | 7 +- src/compiler/nir/nir_lower_var_copies.c | 3 +- .../nir/nir_lower_variable_initializers.c | 45 +- src/compiler/nir/nir_lower_vars_to_ssa.c | 6 +- src/compiler/nir/nir_lower_vec3_to_vec4.c | 3 +- src/compiler/nir/nir_lower_vec_to_regs.c | 3 +- .../nir_lower_view_index_to_device_index.c | 24 + .../nir/nir_lower_viewport_transform.c | 3 +- src/compiler/nir/nir_lower_wpos_center.c | 48 +- src/compiler/nir/nir_lower_wpos_ytransform.c | 251 +- src/compiler/nir/nir_lower_wrmasks.c | 3 +- .../nir/nir_move_vec_src_uses_to_dest.c | 3 +- .../nir/nir_normalize_cubemap_coords.c | 3 +- src/compiler/nir/nir_opcodes.py | 126 +- src/compiler/nir/nir_opt_access.c | 14 +- src/compiler/nir/nir_opt_algebraic.py | 460 +- src/compiler/nir/nir_opt_barriers.c | 6 +- src/compiler/nir/nir_opt_combine_stores.c | 3 +- src/compiler/nir/nir_opt_comparison_pre.c | 3 +- .../nir/nir_opt_conditional_discard.c | 4 - src/compiler/nir/nir_opt_constant_folding.c | 70 +- src/compiler/nir/nir_opt_copy_prop_vars.c | 3 +- src/compiler/nir/nir_opt_copy_propagate.c | 3 +- src/compiler/nir/nir_opt_cse.c | 11 +- src/compiler/nir/nir_opt_dce.c | 13 +- src/compiler/nir/nir_opt_dead_cf.c | 30 +- src/compiler/nir/nir_opt_dead_write_vars.c | 3 +- src/compiler/nir/nir_opt_find_array_copies.c | 3 +- .../nir/nir_opt_frag_coord_to_pixel_coord.c | 89 + src/compiler/nir/nir_opt_fragdepth.c | 3 +- src/compiler/nir/nir_opt_gcm.c | 17 +- src/compiler/nir/nir_opt_generate_bfi.c | 160 + src/compiler/nir/nir_opt_idiv_const.c | 16 +- src/compiler/nir/nir_opt_if.c | 217 +- src/compiler/nir/nir_opt_intrinsics.c | 18 +- src/compiler/nir/nir_opt_large_constants.c | 10 +- src/compiler/nir/nir_opt_licm.c | 144 + .../nir/nir_opt_load_store_vectorize.c | 287 +- src/compiler/nir/nir_opt_loop.c | 389 +- src/compiler/nir/nir_opt_loop_unroll.c | 43 + src/compiler/nir/nir_opt_memcpy.c | 3 +- src/compiler/nir/nir_opt_move.c | 3 +- .../nir/nir_opt_move_discards_to_top.c | 22 +- src/compiler/nir/nir_opt_mqsad.c | 2 +- src/compiler/nir/nir_opt_non_uniform_access.c | 9 +- src/compiler/nir/nir_opt_offsets.c | 37 +- src/compiler/nir/nir_opt_peephole_select.c | 42 +- src/compiler/nir/nir_opt_phi_precision.c | 3 +- src/compiler/nir/nir_opt_preamble.c | 26 +- src/compiler/nir/nir_opt_ray_queries.c | 3 +- src/compiler/nir/nir_opt_reassociate_bfi.c | 15 +- .../nir/nir_opt_rematerialize_compares.c | 6 +- src/compiler/nir/nir_opt_remove_phis.c | 120 +- src/compiler/nir/nir_opt_reuse_constants.c | 49 - src/compiler/nir/nir_opt_shrink_stores.c | 3 +- src/compiler/nir/nir_opt_shrink_vectors.c | 47 +- src/compiler/nir/nir_opt_sink.c | 91 +- src/compiler/nir/nir_opt_undef.c | 36 +- src/compiler/nir/nir_opt_uniform_atomics.c | 92 +- src/compiler/nir/nir_opt_uniform_subgroup.c | 4 +- src/compiler/nir/nir_opt_varyings.c | 362 +- src/compiler/nir/nir_opt_vectorize.c | 412 +- src/compiler/nir/nir_opt_vectorize_io.c | 584 + src/compiler/nir/nir_phi_builder.c | 3 +- src/compiler/nir/nir_print.c | 190 +- src/compiler/nir/nir_propagate_invariant.c | 4 +- src/compiler/nir/nir_range_analysis.c | 20 +- src/compiler/nir/nir_remove_dead_variables.c | 3 +- src/compiler/nir/nir_repair_ssa.c | 6 +- src/compiler/nir/nir_scale_fdiv.c | 13 +- src/compiler/nir/nir_schedule.c | 16 +- src/compiler/nir/nir_search.c | 15 +- src/compiler/nir/nir_search.h | 9 + src/compiler/nir/nir_search_helpers.h | 122 +- src/compiler/nir/nir_serialize.c | 123 +- .../nir/nir_split_per_member_structs.c | 9 +- src/compiler/nir/nir_split_var_copies.c | 3 +- src/compiler/nir/nir_split_vars.c | 9 +- src/compiler/nir/nir_to_lcssa.c | 42 +- src/compiler/nir/nir_validate.c | 103 +- src/compiler/nir/tests/control_flow_tests.cpp | 35 + .../nir/tests/format_convert_tests.cpp | 464 + .../nir/tests/load_store_vectorizer_tests.cpp | 254 +- src/compiler/nir/tests/opt_if_tests.cpp | 169 + src/compiler/nir/tests/opt_loop_tests.cpp | 306 + .../opt_varyings_tests_bicm_binary_alu.cpp | 20 +- .../tests/opt_varyings_tests_dead_output.cpp | 6 +- src/compiler/rust/.clang-format | 6 + src/compiler/rust/.rustfmt.toml | 1 + src/compiler/rust/as_slice.rs | 28 + src/compiler/rust/bindings.h | 8 + src/compiler/rust/bindings.rs | 4 + .../compiler/nak => compiler/rust}/bitset.rs | 54 +- .../compiler/nak => compiler/rust}/cfg.rs | 1 - src/compiler/rust/lib.rs | 11 + src/compiler/rust/memstream.rs | 171 + src/compiler/rust/meson.build | 142 + .../compiler/nak => compiler/rust}/nir.rs | 441 +- src/compiler/rust/nir_instr_printer.rs | 27 + src/compiler/rust/proc/as_slice.rs | 220 + src/compiler/rust/proc/lib.rs | 10 + src/compiler/rust/rust_helpers.c | 35 + src/compiler/rust/rust_helpers.h | 13 + src/compiler/rust/smallvec.rs | 83 + src/compiler/shader_enums.c | 2 + src/compiler/shader_enums.h | 76 +- src/compiler/shader_info.h | 141 +- src/compiler/spirv/GLSL.std.450.h | 2 +- src/compiler/spirv/OpenCL.std.h | 2 +- src/compiler/spirv/gl_spirv.c | 6 +- src/compiler/spirv/meson.build | 39 +- src/compiler/spirv/nir_spirv.h | 20 +- src/compiler/spirv/spir-v.xml | 50 +- src/compiler/spirv/spirv.core.grammar.json | 1346 +- src/compiler/spirv/spirv.h | 1888 +- src/compiler/spirv/spirv2nir.c | 9 +- src/compiler/spirv/spirv_info.h | 44 - .../{spirv_info_c.py => spirv_info_gen.py} | 130 +- src/compiler/spirv/spirv_to_nir.c | 1113 +- src/compiler/spirv/tests/helpers.h | 9 +- src/compiler/spirv/vtn_alu.c | 127 +- src/compiler/spirv/vtn_cfg.c | 3 +- src/compiler/spirv/vtn_debug.c | 65 + src/compiler/spirv/vtn_gather_types_c.py | 10 +- src/compiler/spirv/vtn_glsl450.c | 51 +- src/compiler/spirv/vtn_opencl.c | 20 +- src/compiler/spirv/vtn_private.h | 37 +- src/compiler/spirv/vtn_structured_cfg.c | 17 +- src/compiler/spirv/vtn_variables.c | 148 +- src/drm-shim/device.c | 3 + src/drm-shim/drm_shim.c | 18 + src/drm-shim/meson.build | 19 +- src/egl/drivers/dri2/egl_dri2.c | 875 +- src/egl/drivers/dri2/egl_dri2.h | 141 +- src/egl/drivers/dri2/platform_android.c | 193 +- src/egl/drivers/dri2/platform_android.h | 3 +- src/egl/drivers/dri2/platform_device.c | 38 +- src/egl/drivers/dri2/platform_drm.c | 57 +- src/egl/drivers/dri2/platform_surfaceless.c | 37 +- src/egl/drivers/dri2/platform_wayland.c | 594 +- src/egl/drivers/dri2/platform_x11.c | 435 +- src/egl/drivers/dri2/platform_x11.h | 2 +- src/egl/drivers/dri2/platform_x11_dri3.c | 148 +- src/egl/drivers/dri2/platform_x11_dri3.h | 2 +- src/egl/drivers/haiku/egl_haiku.cpp | 3 + src/egl/drivers/wgl/egl_wgl.c | 7 +- src/egl/generate/eglFunctionList.py | 3 + src/egl/main/eglapi.c | 53 +- src/egl/main/eglcontext.c | 49 + src/egl/main/egldevice.c | 2 +- src/egl/main/egldisplay.h | 10 +- src/egl/main/egldriver.h | 8 + src/egl/main/eglentrypoint.h | 1 + src/egl/main/egllog.c | 3 +- src/egl/main/eglsurface.c | 16 + src/egl/main/eglsurface.h | 5 + src/egl/meson.build | 41 +- src/egl/wayland/wayland-drm/meson.build | 21 +- src/egl/wayland/wayland-drm/wayland-drm.c | 1 + .../ci/deqp-etnaviv-gc2000-piglit.toml | 8 + src/etnaviv/ci/etnaviv-gc2000-fails.txt | 1 - src/etnaviv/ci/etnaviv-gc2000-flakes.txt | 7 + src/etnaviv/ci/etnaviv-gc2000-skips.txt | 8 + src/etnaviv/ci/gitlab-ci.yml | 20 +- src/etnaviv/common/etna_core_info.h | 5 + src/etnaviv/common/meson.build | 2 - src/etnaviv/drm-shim/meson.build | 20 +- src/etnaviv/drm/etnaviv_bo_cache.c | 2 +- src/etnaviv/drm/etnaviv_cmd_stream.c | 3 +- src/etnaviv/drm/etnaviv_gpu.c | 34 +- src/etnaviv/drm/etnaviv_priv.h | 2 +- src/etnaviv/drm/meson.build | 20 +- src/etnaviv/drm/tests/meson.build | 19 +- src/etnaviv/hw/cmdstream.xml.h | 6 +- src/etnaviv/hw/common.xml.h | 8 +- src/etnaviv/hw/common_3d.xml.h | 10 +- src/etnaviv/hw/state.xml.h | 63 +- src/etnaviv/hw/state_3d.xml.h | 30 +- src/etnaviv/hw/state_blt.xml.h | 27 +- src/etnaviv/hw/texdesc_3d.xml.h | 10 +- src/etnaviv/hwdb/etna_hwdb.c | 3 + src/etnaviv/hwdb/meson.build | 2 - src/etnaviv/isa/api.rs | 77 + src/etnaviv/isa/asm.h | 25 +- src/etnaviv/isa/assembler.c | 127 + src/etnaviv/isa/bindings.h | 8 + src/etnaviv/isa/enums.h.py | 25 +- src/etnaviv/isa/etnaviv.xml | 279 +- src/etnaviv/isa/isa.h | 13 + src/etnaviv/isa/isa.rs | 217 + src/etnaviv/isa/isa_proc.rs | 551 + src/etnaviv/isa/lib.rs | 6 + src/etnaviv/isa/meson.build | 112 +- src/etnaviv/isa/parser.rs | 289 + src/etnaviv/isa/static_rules.pest | 43 + src/etnaviv/isa/tests/disasm.cpp | 92 +- src/etnaviv/isa/tests/meson.build | 8 +- src/etnaviv/isa/util.rs | 58 + src/etnaviv/meson.build | 19 +- .../.gitlab-ci/reference/afuc_test.asm | 2 +- .../.gitlab-ci/reference/afuc_test_a7xx.asm | 6 +- src/freedreno/.gitlab-ci/reference/crash.log | 18 +- .../.gitlab-ci/reference/crash_prefetch.log | 1102 +- ...exed.indirect_draw_count.triangle_list.log | 20 +- .../.gitlab-ci/reference/fd-clouds.log | 44 +- .../.gitlab-ci/reference/prefetch-test.log | 8720 +-- src/freedreno/.gitlab-ci/reference/shadow.log | 4 +- src/freedreno/.gitlab-ci/traces/afuc_test.asm | 2 +- .../.gitlab-ci/traces/afuc_test_a7xx.asm | 6 +- src/freedreno/afuc/afuc.h | 22 +- src/freedreno/afuc/asm.c | 22 +- src/freedreno/afuc/asm.h | 22 +- src/freedreno/afuc/disasm.c | 22 +- src/freedreno/afuc/emu-ds.c | 20 +- src/freedreno/afuc/emu-regs.c | 20 +- src/freedreno/afuc/emu-ui.c | 20 +- src/freedreno/afuc/emu.c | 20 +- src/freedreno/afuc/emu.h | 20 +- src/freedreno/afuc/isa.h | 20 +- src/freedreno/afuc/meson.build | 19 +- src/freedreno/afuc/util.c | 20 +- src/freedreno/afuc/util.h | 20 +- .../deqp-freedreno-a306-piglit-quick-gl.toml | 8 + ...qp-freedreno-a306-piglit-quick-shader.toml | 8 + .../ci/deqp-freedreno-a306-piglit.toml | 6 + src/freedreno/ci/deqp-freedreno-a530.toml | 3 + src/freedreno/ci/deqp-freedreno-a618-egl.toml | 4 +- .../ci/deqp-freedreno-a618-piglit-cl.toml | 7 + .../ci/deqp-freedreno-a618-piglit-full.toml | 7 + .../ci/deqp-freedreno-a618-piglit.toml | 8 + src/freedreno/ci/deqp-freedreno-a618-vk.toml | 6 +- src/freedreno/ci/deqp-freedreno-a618.toml | 26 +- .../deqp-freedreno-a630-gles-asan-full.toml | 14 + .../ci/deqp-freedreno-a630-gles-asan.toml | 14 + .../ci/deqp-freedreno-a630-piglit-full.toml | 7 + .../ci/deqp-freedreno-a630-piglit.toml | 2 + .../ci/deqp-freedreno-a630-vk-asan.toml | 4 +- .../ci/deqp-freedreno-a630-vk-full.toml | 3 + src/freedreno/ci/deqp-freedreno-a630-vk.toml | 14 +- src/freedreno/ci/deqp-freedreno-a630.toml | 30 +- .../ci/deqp-freedreno-a660-piglit-cl.toml | 8 + .../ci/deqp-freedreno-a660-vk-full.toml | 4 + src/freedreno/ci/deqp-freedreno-a660-vk.toml | 8 +- src/freedreno/ci/deqp-freedreno-a660.toml | 26 +- .../ci/deqp-freedreno-a750-piglit-cl.toml | 8 + src/freedreno/ci/deqp-freedreno-a750-vk.toml | 82 + src/freedreno/ci/deqp-freedreno-a750.toml | 61 + src/freedreno/ci/freedreno-a307-fails.txt | 358 +- src/freedreno/ci/freedreno-a307-skips.txt | 14 + src/freedreno/ci/freedreno-a420-fails.txt | 15 - src/freedreno/ci/freedreno-a420-skips.txt | 8 + src/freedreno/ci/freedreno-a530-fails.txt | 199 +- src/freedreno/ci/freedreno-a530-skips.txt | 12 + src/freedreno/ci/freedreno-a618-fails.txt | 256 +- src/freedreno/ci/freedreno-a618-flakes.txt | 79 +- src/freedreno/ci/freedreno-a618-skips.txt | 51 - ...kips.txt => freedreno-a618-slow-skips.txt} | 5 + .../ci/freedreno-a630-asan-fails.txt | 1 - src/freedreno/ci/freedreno-a630-fails.txt | 167 +- src/freedreno/ci/freedreno-a630-flakes.txt | 80 +- src/freedreno/ci/freedreno-a630-skips.txt | 66 +- .../ci/freedreno-a630-slow-skips.txt | 14 + src/freedreno/ci/freedreno-a660-fails.txt | 1019 +- src/freedreno/ci/freedreno-a660-flakes.txt | 22 + src/freedreno/ci/freedreno-a660-skips.txt | 6 +- ...kips.txt => freedreno-a660-slow-skips.txt} | 6 +- src/freedreno/ci/freedreno-a6xx-skips.txt | 92 + src/freedreno/ci/freedreno-a750-fails.txt | 100 + src/freedreno/ci/freedreno-a750-flakes.txt | 305 + src/freedreno/ci/freedreno-a750-skips.txt | 7 + ...kips.txt => freedreno-a750-slow-skips.txt} | 5 - .../ci/freedreno-a750-vkd3d-fails.txt | 16 + src/freedreno/ci/gitlab-ci-inc.yml | 203 +- src/freedreno/ci/gitlab-ci.yml | 238 +- .../ci/restricted-traces-freedreno.yml | 2 +- src/freedreno/ci/traces-freedreno.yml | 71 +- src/freedreno/common/disasm.h | 20 +- src/freedreno/common/fd6_pack.h | 20 +- src/freedreno/common/freedreno_common.h | 49 +- src/freedreno/common/freedreno_dev_info.c | 20 +- src/freedreno/common/freedreno_dev_info.h | 110 +- src/freedreno/common/freedreno_devices.py | 451 +- src/freedreno/common/freedreno_gpu_event.h | 38 +- src/freedreno/common/freedreno_guardband.h | 20 +- src/freedreno/common/freedreno_lrz.h | 95 + src/freedreno/common/freedreno_pm4.h | 23 +- src/freedreno/common/freedreno_rd_output.c | 7 +- src/freedreno/common/freedreno_rd_output.h | 2 +- src/freedreno/common/freedreno_ubwc.h | 115 + src/freedreno/common/freedreno_uuid.c | 20 +- src/freedreno/common/freedreno_uuid.h | 20 +- src/freedreno/common/meson.build | 19 +- src/freedreno/common/redump.h | 20 +- src/freedreno/computerator/a6xx.cc | 43 +- .../computerator/examples/localmem.asm | 18 + src/freedreno/computerator/ir3_asm.cc | 4 +- src/freedreno/computerator/ir3_asm.h | 20 +- src/freedreno/computerator/main.h | 20 +- src/freedreno/computerator/meson.build | 19 +- src/freedreno/decode/buffers.c | 22 +- src/freedreno/decode/buffers.h | 22 +- src/freedreno/decode/cffdec.c | 125 +- src/freedreno/decode/cffdec.h | 23 +- src/freedreno/decode/cffdump.c | 24 +- src/freedreno/decode/crashdec-hfi.c | 20 +- src/freedreno/decode/crashdec-mempool.c | 61 +- src/freedreno/decode/crashdec-prefetch.c | 20 +- src/freedreno/decode/crashdec.c | 98 +- src/freedreno/decode/crashdec.h | 32 +- src/freedreno/decode/io.c | 22 +- src/freedreno/decode/io.h | 22 +- src/freedreno/decode/meson.build | 19 +- src/freedreno/decode/pager.c | 22 +- src/freedreno/decode/pager.h | 22 +- src/freedreno/decode/pgmdump.c | 22 +- src/freedreno/decode/pgmdump2.c | 22 +- src/freedreno/decode/rdcompiler-utils.h | 8 +- src/freedreno/decode/replay.c | 2 +- src/freedreno/decode/rnnutil.c | 22 +- src/freedreno/decode/rnnutil.h | 22 +- src/freedreno/decode/script.c | 22 +- src/freedreno/decode/script.h | 22 +- .../decode/scripts/parse-submits.lua | 27 +- src/freedreno/decode/util.h | 22 +- src/freedreno/drm-shim/freedreno_noop.c | 20 +- src/freedreno/drm-shim/meson.build | 20 +- src/freedreno/drm/freedreno_bo.c | 27 +- src/freedreno/drm/freedreno_bo_cache.c | 32 +- src/freedreno/drm/freedreno_bo_heap.c | 20 +- src/freedreno/drm/freedreno_device.c | 34 +- src/freedreno/drm/freedreno_drm_perfetto.h | 20 +- src/freedreno/drm/freedreno_drmif.h | 22 +- src/freedreno/drm/freedreno_pipe.c | 35 +- src/freedreno/drm/freedreno_priv.h | 27 +- src/freedreno/drm/freedreno_ringbuffer.c | 22 +- src/freedreno/drm/freedreno_ringbuffer.h | 22 +- src/freedreno/drm/freedreno_ringbuffer_sp.c | 24 +- src/freedreno/drm/freedreno_ringbuffer_sp.h | 22 +- .../drm/freedreno_ringbuffer_sp_reloc.h | 20 +- src/freedreno/drm/meson.build | 20 +- src/freedreno/drm/msm/msm_bo.c | 22 +- src/freedreno/drm/msm/msm_device.c | 24 +- src/freedreno/drm/msm/msm_pipe.c | 47 +- src/freedreno/drm/msm/msm_priv.h | 109 +- src/freedreno/drm/msm/msm_ringbuffer.c | 22 +- src/freedreno/drm/msm/msm_ringbuffer_sp.c | 27 +- src/freedreno/drm/virtio/virtio_bo.c | 22 +- src/freedreno/drm/virtio/virtio_device.c | 20 +- src/freedreno/drm/virtio/virtio_pipe.c | 45 +- src/freedreno/drm/virtio/virtio_priv.h | 23 +- src/freedreno/drm/virtio/virtio_ringbuffer.c | 20 +- src/freedreno/ds/fd_pps_driver.cc | 1 - src/freedreno/ds/fd_pps_driver.h | 1 - src/freedreno/ds/meson.build | 1 - src/freedreno/fdl/fd5_layout.c | 22 +- src/freedreno/fdl/fd5_layout_test.c | 20 +- src/freedreno/fdl/fd6_format_table.c | 35 +- src/freedreno/fdl/fd6_format_table.h | 22 +- src/freedreno/fdl/fd6_layout.c | 26 +- src/freedreno/fdl/fd6_layout_test.c | 20 +- src/freedreno/fdl/fd6_tiled_memcpy.cc | 971 + src/freedreno/fdl/fd6_view.c | 40 +- src/freedreno/fdl/fd_layout_test.c | 20 +- src/freedreno/fdl/fd_layout_test.h | 20 +- src/freedreno/fdl/freedreno_layout.c | 22 +- src/freedreno/fdl/freedreno_layout.h | 56 +- src/freedreno/fdl/meson.build | 20 +- src/freedreno/ir2/disasm-a2xx.c | 22 +- src/freedreno/ir2/instr-a2xx.h | 22 +- src/freedreno/ir2/meson.build | 19 +- src/freedreno/ir3/disasm-a3xx.c | 24 +- src/freedreno/ir3/instr-a3xx.h | 52 +- src/freedreno/ir3/ir3.c | 246 +- src/freedreno/ir3/ir3.h | 749 +- src/freedreno/ir3/ir3_a4xx.c | 22 +- src/freedreno/ir3/ir3_a6xx.c | 172 +- src/freedreno/ir3/ir3_array_to_ssa.c | 22 +- src/freedreno/ir3/ir3_assembler.c | 22 +- src/freedreno/ir3/ir3_assembler.h | 20 +- src/freedreno/ir3/ir3_cf.c | 37 +- src/freedreno/ir3/ir3_compiler.c | 82 +- src/freedreno/ir3/ir3_compiler.h | 77 +- src/freedreno/ir3/ir3_compiler_nir.c | 1447 +- src/freedreno/ir3/ir3_context.c | 145 +- src/freedreno/ir3/ir3_context.h | 39 +- src/freedreno/ir3/ir3_cp.c | 74 +- src/freedreno/ir3/ir3_cse.c | 22 +- src/freedreno/ir3/ir3_dce.c | 24 +- src/freedreno/ir3/ir3_delay.c | 55 +- src/freedreno/ir3/ir3_disk_cache.c | 24 +- src/freedreno/ir3/ir3_dominance.c | 20 +- src/freedreno/ir3/ir3_image.c | 22 +- src/freedreno/ir3/ir3_image.h | 22 +- src/freedreno/ir3/ir3_legalize.c | 365 +- src/freedreno/ir3/ir3_lexer.l | 16 +- src/freedreno/ir3/ir3_liveness.c | 22 +- src/freedreno/ir3/ir3_lower_parallelcopy.c | 119 +- src/freedreno/ir3/ir3_lower_shared_phi.c | 116 + src/freedreno/ir3/ir3_lower_spill.c | 26 +- src/freedreno/ir3/ir3_lower_subgroups.c | 318 +- src/freedreno/ir3/ir3_merge_regs.c | 74 +- src/freedreno/ir3/ir3_nir.c | 539 +- src/freedreno/ir3/ir3_nir.h | 68 +- .../ir3/ir3_nir_analyze_ubo_ranges.c | 184 +- .../ir3/ir3_nir_branch_and_or_not.py | 2 +- src/freedreno/ir3/ir3_nir_imul.py | 21 +- src/freedreno/ir3/ir3_nir_lower_64b.c | 33 +- .../ir3/ir3_nir_lower_driver_params_to_ubo.c | 87 +- src/freedreno/ir3/ir3_nir_lower_io_offsets.c | 107 +- src/freedreno/ir3/ir3_nir_lower_layer_id.c | 2 +- ...ir3_nir_lower_load_barycentric_at_offset.c | 28 +- ...ir3_nir_lower_load_barycentric_at_sample.c | 20 +- src/freedreno/ir3/ir3_nir_lower_tess.c | 25 +- .../ir3/ir3_nir_lower_tex_prefetch.c | 22 +- .../ir3/ir3_nir_lower_wide_load_store.c | 118 - .../ir3/ir3_nir_move_varying_inputs.c | 22 +- src/freedreno/ir3/ir3_nir_opt_preamble.c | 438 +- src/freedreno/ir3/ir3_nir_trig.py | 21 +- src/freedreno/ir3/ir3_opt_predicates.c | 21 +- src/freedreno/ir3/ir3_parser.y | 162 +- src/freedreno/ir3/ir3_postsched.c | 221 +- src/freedreno/ir3/ir3_print.c | 107 +- src/freedreno/ir3/ir3_ra.c | 159 +- src/freedreno/ir3/ir3_ra.h | 28 +- src/freedreno/ir3/ir3_ra_validate.c | 40 +- src/freedreno/ir3/ir3_reconvergence.c | 176 +- src/freedreno/ir3/ir3_remove_unreachable.c | 22 +- src/freedreno/ir3/ir3_rpt.c | 322 + src/freedreno/ir3/ir3_sched.c | 60 +- src/freedreno/ir3/ir3_shader.c | 100 +- src/freedreno/ir3/ir3_shader.h | 190 +- src/freedreno/ir3/ir3_shared_folding.c | 132 + src/freedreno/ir3/ir3_shared_ra.c | 85 +- src/freedreno/ir3/ir3_spill.c | 43 +- src/freedreno/ir3/ir3_validate.c | 158 +- src/freedreno/ir3/meson.build | 23 +- src/freedreno/ir3/tests/delay.c | 20 +- src/freedreno/ir3/tests/disasm.c | 136 +- src/freedreno/isa/encode.c | 20 +- src/freedreno/isa/ir3-cat1.xml | 10 +- src/freedreno/isa/ir3-cat5.xml | 52 +- src/freedreno/isa/ir3-cat6.xml | 149 +- src/freedreno/isa/ir3-common.xml | 16 +- src/freedreno/isa/ir3-disasm.c | 20 +- src/freedreno/isa/isa.h | 20 +- src/freedreno/isa/meson.build | 19 +- src/freedreno/meson.build | 24 +- src/freedreno/perfcntrs/fd2_perfcntr.c | 22 +- src/freedreno/perfcntrs/fd5_perfcntr.c | 22 +- src/freedreno/perfcntrs/fd6_perfcntr.c | 22 +- src/freedreno/perfcntrs/fd7_perfcntr.c | 1267 + src/freedreno/perfcntrs/fdperf.c | 300 +- src/freedreno/perfcntrs/freedreno_dt.c | 20 +- src/freedreno/perfcntrs/freedreno_dt.h | 20 +- src/freedreno/perfcntrs/freedreno_perfcntr.c | 28 +- src/freedreno/perfcntrs/freedreno_perfcntr.h | 36 +- src/freedreno/perfcntrs/meson.build | 20 +- src/freedreno/registers/adreno/a6xx.xml | 1249 +- src/freedreno/registers/adreno/adreno_pm4.xml | 108 +- src/freedreno/registers/adreno/meson.build | 19 +- src/freedreno/registers/dsi/dsi.xml | 390 - src/freedreno/registers/dsi/dsi_phy_10nm.xml | 102 - src/freedreno/registers/dsi/dsi_phy_14nm.xml | 135 - src/freedreno/registers/dsi/dsi_phy_20nm.xml | 100 - src/freedreno/registers/dsi/dsi_phy_28nm.xml | 180 - .../registers/dsi/dsi_phy_28nm_8960.xml | 134 - src/freedreno/registers/dsi/dsi_phy_7nm.xml | 230 - src/freedreno/registers/dsi/dsi_phy_v2.xml | 75 - src/freedreno/registers/dsi/mmss_cc.xml | 48 - src/freedreno/registers/dsi/sfpb.xml | 17 - src/freedreno/registers/edp/edp.xml | 239 - src/freedreno/registers/gen_header.py | 75 +- src/freedreno/registers/hdmi/hdmi.xml | 1015 - src/freedreno/registers/hdmi/qfprom.xml | 18 - src/freedreno/registers/mdp/mdp4.xml | 504 - src/freedreno/registers/mdp/mdp5.xml | 806 - src/freedreno/registers/mdp/mdp_common.xml | 89 - src/freedreno/registers/meson.build | 19 +- src/freedreno/registers/msm.xml | 34 - src/freedreno/rnn/colors.c | 22 +- src/freedreno/rnn/colors.h | 22 +- src/freedreno/rnn/meson.build | 19 +- src/freedreno/rnn/path.c | 22 +- src/freedreno/rnn/rnn.c | 30 +- src/freedreno/rnn/rnn.h | 24 +- src/freedreno/rnn/rnndec.c | 26 +- src/freedreno/rnn/rnndec.h | 22 +- src/freedreno/rnn/util.h | 24 +- src/freedreno/vulkan/ion/ion.h | 70 + src/freedreno/vulkan/ion/ion_4.19.h | 55 + src/freedreno/vulkan/meson.build | 7 +- src/freedreno/vulkan/tu_android.cc | 380 +- src/freedreno/vulkan/tu_android.h | 12 - src/freedreno/vulkan/tu_buffer.cc | 188 + src/freedreno/vulkan/tu_buffer.h | 29 + src/freedreno/vulkan/tu_buffer_view.cc | 52 + src/freedreno/vulkan/tu_buffer_view.h | 25 + src/freedreno/vulkan/tu_clear_blit.cc | 1494 +- src/freedreno/vulkan/tu_clear_blit.h | 5 + src/freedreno/vulkan/tu_cmd_buffer.cc | 1745 +- src/freedreno/vulkan/tu_cmd_buffer.h | 47 +- src/freedreno/vulkan/tu_common.h | 34 +- src/freedreno/vulkan/tu_cs.cc | 25 +- src/freedreno/vulkan/tu_cs.h | 10 +- src/freedreno/vulkan/tu_descriptor_set.cc | 199 +- src/freedreno/vulkan/tu_descriptor_set.h | 21 +- src/freedreno/vulkan/tu_device.cc | 1044 +- src/freedreno/vulkan/tu_device.h | 90 +- src/freedreno/vulkan/tu_event.cc | 156 + src/freedreno/vulkan/tu_event.h | 23 + src/freedreno/vulkan/tu_formats.cc | 418 +- src/freedreno/vulkan/tu_formats.h | 2 - src/freedreno/vulkan/tu_image.cc | 582 +- src/freedreno/vulkan/tu_image.h | 55 +- src/freedreno/vulkan/tu_knl.cc | 175 +- src/freedreno/vulkan/tu_knl.h | 48 +- src/freedreno/vulkan/tu_knl_drm.cc | 100 +- src/freedreno/vulkan/tu_knl_drm.h | 12 - src/freedreno/vulkan/tu_knl_drm_msm.cc | 106 +- src/freedreno/vulkan/tu_knl_drm_virtio.cc | 174 +- src/freedreno/vulkan/tu_knl_kgsl.cc | 339 +- src/freedreno/vulkan/tu_lrz.cc | 210 +- src/freedreno/vulkan/tu_lrz.h | 12 + .../vulkan/tu_nir_lower_multiview.cc | 3 +- src/freedreno/vulkan/tu_pass.cc | 79 +- src/freedreno/vulkan/tu_pass.h | 12 + src/freedreno/vulkan/tu_perfetto.cc | 35 +- src/freedreno/vulkan/tu_pipeline.cc | 347 +- src/freedreno/vulkan/tu_pipeline.h | 5 +- .../vulkan/{tu_query.cc => tu_query_pool.cc} | 277 +- .../vulkan/{tu_query.h => tu_query_pool.h} | 17 +- src/freedreno/vulkan/tu_rmv.cc | 6 +- src/freedreno/vulkan/tu_sampler.cc | 135 + src/freedreno/vulkan/tu_sampler.h | 23 + src/freedreno/vulkan/tu_shader.cc | 315 +- src/freedreno/vulkan/tu_shader.h | 14 + src/freedreno/vulkan/tu_suballoc.cc | 6 +- src/freedreno/vulkan/tu_tracepoints.py | 51 +- src/freedreno/vulkan/tu_util.cc | 1 + src/freedreno/vulkan/tu_util.h | 1 + src/freedreno/vulkan/tu_wsi.cc | 5 +- src/gallium/auxiliary/draw/draw_context.c | 8 +- src/gallium/auxiliary/draw/draw_context.h | 3 + src/gallium/auxiliary/draw/draw_llvm.c | 75 +- src/gallium/auxiliary/draw/draw_llvm.h | 9 +- src/gallium/auxiliary/draw/draw_private.h | 2 + src/gallium/auxiliary/draw/draw_pt.c | 4 +- .../auxiliary/driver_ddebug/dd_context.c | 17 +- src/gallium/auxiliary/driver_ddebug/dd_draw.c | 2 +- .../auxiliary/driver_ddebug/dd_public.h | 2 +- .../auxiliary/driver_ddebug/dd_screen.c | 40 + src/gallium/auxiliary/driver_ddebug/dd_util.h | 2 +- src/gallium/auxiliary/driver_noop/noop_pipe.c | 36 + .../auxiliary/driver_noop/noop_public.h | 2 +- .../auxiliary/driver_trace/tr_context.c | 23 +- .../auxiliary/driver_trace/tr_public.h | 2 +- .../auxiliary/driver_trace/tr_screen.c | 83 +- .../auxiliary/driver_trace/tr_screen.h | 3 - src/gallium/auxiliary/driver_trace/tr_video.c | 37 +- src/gallium/auxiliary/gallivm/lp_bld.h | 65 +- src/gallium/auxiliary/gallivm/lp_bld_conv.c | 13 +- src/gallium/auxiliary/gallivm/lp_bld_coro.c | 6 +- src/gallium/auxiliary/gallivm/lp_bld_coro.h | 8 + .../auxiliary/gallivm/lp_bld_debug.cpp | 74 +- src/gallium/auxiliary/gallivm/lp_bld_gather.c | 4 +- src/gallium/auxiliary/gallivm/lp_bld_init.c | 289 +- src/gallium/auxiliary/gallivm/lp_bld_init.h | 69 +- .../auxiliary/gallivm/lp_bld_init_common.c | 127 + .../auxiliary/gallivm/lp_bld_init_orc.cpp | 689 + .../auxiliary/gallivm/lp_bld_ir_common.c | 39 +- .../auxiliary/gallivm/lp_bld_jit_sample.c | 47 +- .../auxiliary/gallivm/lp_bld_jit_types.c | 61 +- .../auxiliary/gallivm/lp_bld_jit_types.h | 17 +- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 186 +- src/gallium/auxiliary/gallivm/lp_bld_misc.h | 9 + src/gallium/auxiliary/gallivm/lp_bld_nir.c | 71 +- src/gallium/auxiliary/gallivm/lp_bld_nir.h | 10 +- .../auxiliary/gallivm/lp_bld_nir_soa.c | 288 +- .../auxiliary/gallivm/lp_bld_passmgr.c | 235 + .../gallivm/lp_bld_passmgr.h} | 36 +- src/gallium/auxiliary/gallivm/lp_bld_printf.c | 19 +- src/gallium/auxiliary/gallivm/lp_bld_sample.c | 145 +- src/gallium/auxiliary/gallivm/lp_bld_sample.h | 50 +- .../auxiliary/gallivm/lp_bld_sample_soa.c | 208 +- .../auxiliary/gallivm/lp_bld_tgsi_soa.c | 2 +- src/gallium/auxiliary/hud/hud_context.c | 12 +- src/gallium/auxiliary/indices/u_primconvert.c | 7 +- src/gallium/auxiliary/meson.build | 43 +- src/gallium/auxiliary/nir/nir_to_tgsi.c | 40 +- src/gallium/auxiliary/nir/tgsi_to_nir.c | 23 +- .../auxiliary/pipe-loader/driinfo_gallium.h | 1 + src/gallium/auxiliary/pipe-loader/meson.build | 19 +- .../auxiliary/pipe-loader/pipe_loader.c | 2 +- .../auxiliary/pipe-loader/pipe_loader_drm.c | 78 +- .../auxiliary/pipe-loader/pipe_loader_sw.c | 4 +- src/gallium/auxiliary/rtasm/rtasm_execmem.c | 2 +- src/gallium/auxiliary/rtasm/rtasm_x86sse.c | 5 +- .../auxiliary/target-helpers/drm_helper.h | 58 +- .../target-helpers/drm_helper_public.h | 1 - .../target-helpers/inline_debug_helper.h | 2 + .../auxiliary/target-helpers/sw_helper.h | 2 +- src/gallium/auxiliary/util/u_blitter.c | 98 +- src/gallium/auxiliary/util/u_blitter.h | 6 +- src/gallium/auxiliary/util/u_draw.c | 8 +- src/gallium/auxiliary/util/u_draw.h | 1 + src/gallium/auxiliary/util/u_driconf.c | 1 + src/gallium/auxiliary/util/u_file.h | 4 +- src/gallium/auxiliary/util/u_framebuffer.c | 8 + src/gallium/auxiliary/util/u_helpers.c | 38 - src/gallium/auxiliary/util/u_helpers.h | 3 - src/gallium/auxiliary/util/u_inlines.h | 3 +- src/gallium/auxiliary/util/u_range.h | 6 + src/gallium/auxiliary/util/u_screen.c | 22 +- src/gallium/auxiliary/util/u_tests.h | 2 +- .../auxiliary/util/u_threaded_context.c | 69 +- .../auxiliary/util/u_threaded_context.h | 8 + src/gallium/auxiliary/util/u_trace_gallium.c | 18 +- src/gallium/auxiliary/util/u_trace_gallium.h | 4 + .../auxiliary/util/u_transfer_helper.c | 6 +- src/gallium/auxiliary/util/u_vbuf.c | 58 +- src/gallium/auxiliary/util/u_vbuf.h | 8 +- src/gallium/auxiliary/vl/vl_compositor.c | 28 +- src/gallium/auxiliary/vl/vl_compositor.h | 2 + src/gallium/auxiliary/vl/vl_mpeg12_decoder.c | 3 +- src/gallium/auxiliary/vl/vl_video_buffer.c | 7 + src/gallium/auxiliary/vl/vl_video_buffer.h | 2 + src/gallium/auxiliary/vl/vl_winsys.h | 16 +- src/gallium/auxiliary/vl/vl_winsys_dri.c | 22 + src/gallium/auxiliary/vl/vl_winsys_dri3.c | 16 +- src/gallium/auxiliary/vl/vl_winsys_drm.c | 17 +- src/gallium/auxiliary/vl/vl_winsys_kopper.c | 260 + src/gallium/auxiliary/vl/vl_winsys_win32.c | 8 +- src/gallium/drivers/asahi/agx_batch.c | 442 +- src/gallium/drivers/asahi/agx_blit.c | 289 +- src/gallium/drivers/asahi/agx_disk_cache.c | 27 +- .../drivers/asahi/agx_nir_lower_bindings.c | 3 +- .../drivers/asahi/agx_nir_lower_point_size.c | 14 +- .../drivers/asahi/agx_nir_lower_sysvals.c | 67 +- src/gallium/drivers/asahi/agx_pipe.c | 717 +- src/gallium/drivers/asahi/agx_query.c | 44 +- src/gallium/drivers/asahi/agx_state.c | 1965 +- src/gallium/drivers/asahi/agx_state.h | 160 +- src/gallium/drivers/asahi/agx_streamout.c | 4 +- src/gallium/drivers/asahi/agx_uniforms.c | 67 +- src/gallium/drivers/asahi/meson.build | 2 +- .../drivers/crocus/ci/traces-crocus.yml | 13 +- src/gallium/drivers/crocus/crocus_blit.c | 4 +- src/gallium/drivers/crocus/crocus_clear.c | 19 +- src/gallium/drivers/crocus/crocus_context.c | 3 + src/gallium/drivers/crocus/crocus_program.c | 7 +- src/gallium/drivers/crocus/crocus_resolve.c | 9 +- src/gallium/drivers/crocus/crocus_resource.c | 3 +- src/gallium/drivers/crocus/crocus_resource.h | 3 +- src/gallium/drivers/crocus/crocus_screen.c | 3 + src/gallium/drivers/crocus/crocus_state.c | 7 +- src/gallium/drivers/crocus/meson.build | 23 +- src/gallium/drivers/d3d12/ci/gitlab-ci.yml | 2 +- src/gallium/drivers/d3d12/d3d12_blit.cpp | 14 +- src/gallium/drivers/d3d12/d3d12_bufmgr.cpp | 2 +- src/gallium/drivers/d3d12/d3d12_common.h | 12 + src/gallium/drivers/d3d12/d3d12_compiler.cpp | 8 +- .../drivers/d3d12/d3d12_dxcore_screen.cpp | 8 +- .../drivers/d3d12/d3d12_dxgi_screen.cpp | 12 +- .../drivers/d3d12/d3d12_dxgi_xbox_screen.cpp | 6 +- src/gallium/drivers/d3d12/d3d12_format.c | 5 +- .../drivers/d3d12/d3d12_lower_image_casts.c | 2 +- .../drivers/d3d12/d3d12_lower_point_sprite.c | 3 +- src/gallium/drivers/d3d12/d3d12_nir_passes.c | 39 +- src/gallium/drivers/d3d12/d3d12_residency.cpp | 9 + src/gallium/drivers/d3d12/d3d12_resource.cpp | 17 +- src/gallium/drivers/d3d12/d3d12_screen.cpp | 58 +- src/gallium/drivers/d3d12/d3d12_screen.h | 13 +- src/gallium/drivers/d3d12/d3d12_surface.cpp | 2 +- .../drivers/d3d12/d3d12_video_buffer.cpp | 202 +- .../drivers/d3d12/d3d12_video_buffer.h | 36 + src/gallium/drivers/d3d12/d3d12_video_dec.cpp | 11 +- src/gallium/drivers/d3d12/d3d12_video_dec.h | 8 +- .../drivers/d3d12/d3d12_video_dec_av1.h | 2 +- .../drivers/d3d12/d3d12_video_dec_hevc.h | 2 +- .../drivers/d3d12/d3d12_video_dec_vp9.h | 2 +- src/gallium/drivers/d3d12/d3d12_video_enc.cpp | 577 +- src/gallium/drivers/d3d12/d3d12_video_enc.h | 62 +- .../drivers/d3d12/d3d12_video_enc_av1.cpp | 284 +- .../drivers/d3d12/d3d12_video_enc_h264.cpp | 456 +- .../drivers/d3d12/d3d12_video_enc_h264.h | 9 +- .../drivers/d3d12/d3d12_video_enc_hevc.cpp | 743 +- .../drivers/d3d12/d3d12_video_enc_hevc.h | 2 - ...2_video_encoder_bitstream_builder_h264.cpp | 41 +- ...d12_video_encoder_bitstream_builder_h264.h | 16 +- ...2_video_encoder_bitstream_builder_hevc.cpp | 125 +- ...d12_video_encoder_bitstream_builder_hevc.h | 14 +- .../d3d12_video_encoder_nalu_writer_h264.cpp | 201 +- .../d3d12_video_encoder_nalu_writer_h264.h | 54 +- .../d3d12_video_encoder_nalu_writer_hevc.cpp | 190 +- .../d3d12_video_encoder_nalu_writer_hevc.h | 49 +- ..._video_encoder_references_manager_h264.cpp | 704 +- ...12_video_encoder_references_manager_h264.h | 49 +- ..._video_encoder_references_manager_hevc.cpp | 607 +- ...12_video_encoder_references_manager_hevc.h | 63 +- .../drivers/d3d12/d3d12_video_proc.cpp | 11 +- src/gallium/drivers/d3d12/d3d12_video_proc.h | 8 +- .../drivers/d3d12/d3d12_video_screen.cpp | 145 +- src/gallium/drivers/d3d12/d3d12_video_types.h | 18 +- src/gallium/drivers/d3d12/meson.build | 24 +- src/gallium/drivers/etnaviv/etnaviv_blend.c | 203 +- src/gallium/drivers/etnaviv/etnaviv_blend.h | 14 +- src/gallium/drivers/etnaviv/etnaviv_blt.c | 22 +- .../drivers/etnaviv/etnaviv_clear_blit.c | 2 +- .../drivers/etnaviv/etnaviv_compiler.c | 18 +- .../drivers/etnaviv/etnaviv_compiler.h | 5 +- .../drivers/etnaviv/etnaviv_compiler_nir.c | 120 +- .../drivers/etnaviv/etnaviv_compiler_nir.h | 7 +- .../etnaviv/etnaviv_compiler_nir_emit.c | 175 +- .../etnaviv/etnaviv_compiler_nir_liveness.c | 3 +- .../drivers/etnaviv/etnaviv_compiler_nir_ra.c | 3 + src/gallium/drivers/etnaviv/etnaviv_context.c | 73 +- src/gallium/drivers/etnaviv/etnaviv_context.h | 4 +- src/gallium/drivers/etnaviv/etnaviv_emit.c | 104 +- src/gallium/drivers/etnaviv/etnaviv_emit.h | 20 + .../drivers/etnaviv/etnaviv_internal.h | 62 +- src/gallium/drivers/etnaviv/etnaviv_ml.c | 11 +- src/gallium/drivers/etnaviv/etnaviv_ml.h | 5 +- src/gallium/drivers/etnaviv/etnaviv_ml_nn.c | 33 +- src/gallium/drivers/etnaviv/etnaviv_ml_tp.c | 8 +- src/gallium/drivers/etnaviv/etnaviv_nir.c | 23 +- .../etnaviv/etnaviv_nir_lower_source_mods.c | 3 +- .../etnaviv/etnaviv_nir_lower_texture.c | 2 +- .../drivers/etnaviv/etnaviv_query_acc.c | 34 +- .../drivers/etnaviv/etnaviv_query_acc.h | 1 - .../etnaviv/etnaviv_query_acc_perfmon.c | 3 - src/gallium/drivers/etnaviv/etnaviv_rs.c | 44 +- src/gallium/drivers/etnaviv/etnaviv_screen.c | 155 +- src/gallium/drivers/etnaviv/etnaviv_screen.h | 4 +- src/gallium/drivers/etnaviv/etnaviv_shader.c | 38 +- src/gallium/drivers/etnaviv/etnaviv_shader.h | 6 +- src/gallium/drivers/etnaviv/etnaviv_state.c | 315 +- src/gallium/drivers/etnaviv/etnaviv_state.h | 19 + src/gallium/drivers/etnaviv/etnaviv_texture.c | 4 +- .../drivers/etnaviv/etnaviv_texture_state.c | 33 +- .../drivers/etnaviv/etnaviv_transfer.c | 2 + .../drivers/etnaviv/etnaviv_uniforms.c | 11 +- src/gallium/drivers/etnaviv/meson.build | 23 +- .../drivers/freedreno/a2xx/fd2_blend.c | 22 +- .../drivers/freedreno/a2xx/fd2_blend.h | 22 +- .../drivers/freedreno/a2xx/fd2_context.c | 22 +- .../drivers/freedreno/a2xx/fd2_context.h | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_draw.c | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_draw.h | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_emit.c | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_emit.h | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_gmem.c | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_gmem.h | 22 +- .../drivers/freedreno/a2xx/fd2_program.c | 22 +- .../drivers/freedreno/a2xx/fd2_program.h | 22 +- .../drivers/freedreno/a2xx/fd2_query.c | 24 +- .../drivers/freedreno/a2xx/fd2_query.h | 22 +- .../drivers/freedreno/a2xx/fd2_rasterizer.c | 22 +- .../drivers/freedreno/a2xx/fd2_rasterizer.h | 22 +- .../drivers/freedreno/a2xx/fd2_resource.c | 22 +- .../drivers/freedreno/a2xx/fd2_resource.h | 22 +- .../drivers/freedreno/a2xx/fd2_screen.c | 22 +- .../drivers/freedreno/a2xx/fd2_screen.h | 22 +- .../drivers/freedreno/a2xx/fd2_texture.c | 22 +- .../drivers/freedreno/a2xx/fd2_texture.h | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_util.c | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_util.h | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_zsa.c | 22 +- src/gallium/drivers/freedreno/a2xx/fd2_zsa.h | 22 +- src/gallium/drivers/freedreno/a2xx/ir2.c | 22 +- src/gallium/drivers/freedreno/a2xx/ir2.h | 22 +- .../drivers/freedreno/a2xx/ir2_assemble.c | 22 +- src/gallium/drivers/freedreno/a2xx/ir2_cp.c | 22 +- src/gallium/drivers/freedreno/a2xx/ir2_nir.c | 29 +- .../drivers/freedreno/a2xx/ir2_private.h | 22 +- src/gallium/drivers/freedreno/a2xx/ir2_ra.c | 22 +- .../drivers/freedreno/a3xx/fd3_blend.c | 22 +- .../drivers/freedreno/a3xx/fd3_blend.h | 22 +- .../drivers/freedreno/a3xx/fd3_context.c | 22 +- .../drivers/freedreno/a3xx/fd3_context.h | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_draw.c | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_draw.h | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_emit.c | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_emit.h | 22 +- .../drivers/freedreno/a3xx/fd3_format.c | 22 +- .../drivers/freedreno/a3xx/fd3_format.h | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_gmem.c | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_gmem.h | 22 +- .../drivers/freedreno/a3xx/fd3_program.c | 22 +- .../drivers/freedreno/a3xx/fd3_program.h | 22 +- .../drivers/freedreno/a3xx/fd3_query.c | 22 +- .../drivers/freedreno/a3xx/fd3_query.h | 22 +- .../drivers/freedreno/a3xx/fd3_rasterizer.c | 22 +- .../drivers/freedreno/a3xx/fd3_rasterizer.h | 22 +- .../drivers/freedreno/a3xx/fd3_resource.c | 24 +- .../drivers/freedreno/a3xx/fd3_resource.h | 24 +- .../drivers/freedreno/a3xx/fd3_screen.c | 22 +- .../drivers/freedreno/a3xx/fd3_screen.h | 22 +- .../drivers/freedreno/a3xx/fd3_texture.c | 22 +- .../drivers/freedreno/a3xx/fd3_texture.h | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_zsa.c | 22 +- src/gallium/drivers/freedreno/a3xx/fd3_zsa.h | 22 +- .../drivers/freedreno/a4xx/fd4_blend.c | 22 +- .../drivers/freedreno/a4xx/fd4_blend.h | 22 +- .../drivers/freedreno/a4xx/fd4_compute.c | 32 +- .../drivers/freedreno/a4xx/fd4_compute.h | 22 +- .../drivers/freedreno/a4xx/fd4_context.c | 22 +- .../drivers/freedreno/a4xx/fd4_context.h | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_draw.c | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_draw.h | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_emit.c | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_emit.h | 22 +- .../drivers/freedreno/a4xx/fd4_format.c | 22 +- .../drivers/freedreno/a4xx/fd4_format.h | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_gmem.c | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_gmem.h | 22 +- .../drivers/freedreno/a4xx/fd4_image.c | 22 +- .../drivers/freedreno/a4xx/fd4_image.h | 22 +- .../drivers/freedreno/a4xx/fd4_program.c | 22 +- .../drivers/freedreno/a4xx/fd4_program.h | 22 +- .../drivers/freedreno/a4xx/fd4_query.c | 22 +- .../drivers/freedreno/a4xx/fd4_query.h | 22 +- .../drivers/freedreno/a4xx/fd4_rasterizer.c | 22 +- .../drivers/freedreno/a4xx/fd4_rasterizer.h | 22 +- .../drivers/freedreno/a4xx/fd4_resource.c | 22 +- .../drivers/freedreno/a4xx/fd4_resource.h | 22 +- .../drivers/freedreno/a4xx/fd4_screen.c | 22 +- .../drivers/freedreno/a4xx/fd4_screen.h | 22 +- .../drivers/freedreno/a4xx/fd4_texture.c | 22 +- .../drivers/freedreno/a4xx/fd4_texture.h | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_zsa.c | 22 +- src/gallium/drivers/freedreno/a4xx/fd4_zsa.h | 22 +- .../drivers/freedreno/a5xx/fd5_blend.c | 22 +- .../drivers/freedreno/a5xx/fd5_blend.h | 22 +- .../drivers/freedreno/a5xx/fd5_blitter.c | 22 +- .../drivers/freedreno/a5xx/fd5_blitter.h | 22 +- .../drivers/freedreno/a5xx/fd5_compute.c | 22 +- .../drivers/freedreno/a5xx/fd5_compute.h | 22 +- .../drivers/freedreno/a5xx/fd5_context.c | 22 +- .../drivers/freedreno/a5xx/fd5_context.h | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_draw.c | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_draw.h | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_emit.c | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_emit.h | 22 +- .../drivers/freedreno/a5xx/fd5_format.c | 22 +- .../drivers/freedreno/a5xx/fd5_format.h | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_gmem.c | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_gmem.h | 22 +- .../drivers/freedreno/a5xx/fd5_image.c | 22 +- .../drivers/freedreno/a5xx/fd5_image.h | 22 +- .../drivers/freedreno/a5xx/fd5_program.c | 22 +- .../drivers/freedreno/a5xx/fd5_program.h | 22 +- .../drivers/freedreno/a5xx/fd5_query.c | 24 +- .../drivers/freedreno/a5xx/fd5_query.h | 22 +- .../drivers/freedreno/a5xx/fd5_rasterizer.c | 22 +- .../drivers/freedreno/a5xx/fd5_rasterizer.h | 22 +- .../drivers/freedreno/a5xx/fd5_resource.c | 22 +- .../drivers/freedreno/a5xx/fd5_resource.h | 22 +- .../drivers/freedreno/a5xx/fd5_screen.c | 24 +- .../drivers/freedreno/a5xx/fd5_screen.h | 22 +- .../drivers/freedreno/a5xx/fd5_texture.c | 22 +- .../drivers/freedreno/a5xx/fd5_texture.h | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_zsa.c | 22 +- src/gallium/drivers/freedreno/a5xx/fd5_zsa.h | 22 +- .../drivers/freedreno/a6xx/fd6_barrier.cc | 76 +- .../drivers/freedreno/a6xx/fd6_barrier.h | 22 +- .../drivers/freedreno/a6xx/fd6_blend.cc | 49 +- .../drivers/freedreno/a6xx/fd6_blend.h | 30 +- .../drivers/freedreno/a6xx/fd6_blitter.cc | 363 +- .../drivers/freedreno/a6xx/fd6_blitter.h | 22 +- .../drivers/freedreno/a6xx/fd6_compute.cc | 199 +- .../drivers/freedreno/a6xx/fd6_compute.h | 22 +- .../drivers/freedreno/a6xx/fd6_const.cc | 363 +- .../drivers/freedreno/a6xx/fd6_const.h | 35 +- .../drivers/freedreno/a6xx/fd6_context.cc | 43 +- .../drivers/freedreno/a6xx/fd6_context.h | 27 +- .../drivers/freedreno/a6xx/fd6_draw.cc | 38 +- src/gallium/drivers/freedreno/a6xx/fd6_draw.h | 22 +- .../drivers/freedreno/a6xx/fd6_emit.cc | 411 +- src/gallium/drivers/freedreno/a6xx/fd6_emit.h | 122 +- .../drivers/freedreno/a6xx/fd6_gmem.cc | 604 +- src/gallium/drivers/freedreno/a6xx/fd6_gmem.h | 25 +- .../drivers/freedreno/a6xx/fd6_image.cc | 60 +- .../drivers/freedreno/a6xx/fd6_image.h | 22 +- .../drivers/freedreno/a6xx/fd6_program.cc | 314 +- .../drivers/freedreno/a6xx/fd6_program.h | 30 +- .../drivers/freedreno/a6xx/fd6_query.cc | 263 +- .../drivers/freedreno/a6xx/fd6_query.h | 24 +- .../drivers/freedreno/a6xx/fd6_rasterizer.cc | 71 +- .../drivers/freedreno/a6xx/fd6_rasterizer.h | 22 +- .../drivers/freedreno/a6xx/fd6_resource.cc | 125 +- .../drivers/freedreno/a6xx/fd6_resource.h | 27 +- .../drivers/freedreno/a6xx/fd6_screen.cc | 67 +- .../drivers/freedreno/a6xx/fd6_screen.h | 22 +- .../drivers/freedreno/a6xx/fd6_texture.cc | 25 +- .../drivers/freedreno/a6xx/fd6_texture.h | 22 +- src/gallium/drivers/freedreno/a6xx/fd6_vsc.cc | 20 +- src/gallium/drivers/freedreno/a6xx/fd6_vsc.h | 20 +- src/gallium/drivers/freedreno/a6xx/fd6_zsa.cc | 46 +- src/gallium/drivers/freedreno/a6xx/fd6_zsa.h | 27 +- .../drivers/freedreno/freedreno_autotune.c | 20 +- .../drivers/freedreno/freedreno_autotune.h | 22 +- .../drivers/freedreno/freedreno_batch.c | 22 +- .../drivers/freedreno/freedreno_batch.h | 29 +- .../drivers/freedreno/freedreno_batch_cache.c | 149 +- .../drivers/freedreno/freedreno_batch_cache.h | 25 +- .../drivers/freedreno/freedreno_blitter.c | 86 +- .../drivers/freedreno/freedreno_blitter.h | 22 +- .../drivers/freedreno/freedreno_context.c | 71 +- .../drivers/freedreno/freedreno_context.h | 31 +- .../drivers/freedreno/freedreno_draw.c | 24 +- .../drivers/freedreno/freedreno_draw.h | 22 +- .../drivers/freedreno/freedreno_fence.c | 22 +- .../drivers/freedreno/freedreno_fence.h | 22 +- .../drivers/freedreno/freedreno_gmem.c | 26 +- .../drivers/freedreno/freedreno_gmem.h | 22 +- .../drivers/freedreno/freedreno_perfetto.cc | 86 +- .../drivers/freedreno/freedreno_perfetto.h | 20 +- .../drivers/freedreno/freedreno_program.c | 22 +- .../drivers/freedreno/freedreno_program.h | 22 +- .../drivers/freedreno/freedreno_query.c | 22 +- .../drivers/freedreno/freedreno_query.h | 22 +- .../drivers/freedreno/freedreno_query_acc.c | 24 +- .../drivers/freedreno/freedreno_query_acc.h | 22 +- .../drivers/freedreno/freedreno_query_hw.c | 22 +- .../drivers/freedreno/freedreno_query_hw.h | 22 +- .../drivers/freedreno/freedreno_query_sw.c | 22 +- .../drivers/freedreno/freedreno_query_sw.h | 22 +- .../drivers/freedreno/freedreno_resource.c | 31 +- .../drivers/freedreno/freedreno_resource.h | 23 +- .../drivers/freedreno/freedreno_screen.c | 44 +- .../drivers/freedreno/freedreno_screen.h | 41 +- .../drivers/freedreno/freedreno_state.c | 26 +- .../drivers/freedreno/freedreno_state.h | 31 +- .../drivers/freedreno/freedreno_surface.c | 22 +- .../drivers/freedreno/freedreno_surface.h | 22 +- .../drivers/freedreno/freedreno_texture.c | 22 +- .../drivers/freedreno/freedreno_texture.h | 22 +- .../freedreno/freedreno_tracepoints.py | 21 +- .../drivers/freedreno/freedreno_util.c | 22 +- .../drivers/freedreno/freedreno_util.h | 27 +- src/gallium/drivers/freedreno/gmemtool.c | 20 +- src/gallium/drivers/freedreno/ir3/ir3_cache.c | 22 +- src/gallium/drivers/freedreno/ir3/ir3_cache.h | 22 +- .../drivers/freedreno/ir3/ir3_cmdline.c | 55 +- src/gallium/drivers/freedreno/ir3/ir3_const.h | 210 +- .../drivers/freedreno/ir3/ir3_descriptor.c | 20 +- .../drivers/freedreno/ir3/ir3_descriptor.h | 21 +- .../drivers/freedreno/ir3/ir3_gallium.c | 55 +- .../drivers/freedreno/ir3/ir3_gallium.h | 22 +- src/gallium/drivers/freedreno/meson.build | 21 +- src/gallium/drivers/i915/i915_batchbuffer.h | 11 + src/gallium/drivers/i915/i915_blit.c | 71 +- src/gallium/drivers/i915/i915_fpc.h | 4 - src/gallium/drivers/i915/i915_fpc_translate.c | 11 - .../drivers/i915/i915_resource_texture.c | 51 +- src/gallium/drivers/i915/i915_screen.c | 2 + src/gallium/drivers/i915/i915_state_emit.c | 7 - src/gallium/drivers/i915/i915_state_sampler.c | 38 +- src/gallium/drivers/i915/i915_surface.c | 5 +- src/gallium/drivers/i915/i915_winsys.h | 13 + src/gallium/drivers/i915/meson.build | 21 +- src/gallium/drivers/iris/driinfo_iris.h | 1 + .../drivers/iris/i915/iris_kmd_backend.c | 1 + src/gallium/drivers/iris/iris_batch.h | 3 + src/gallium/drivers/iris/iris_bufmgr.c | 86 +- src/gallium/drivers/iris/iris_bufmgr.h | 12 +- src/gallium/drivers/iris/iris_clear.c | 208 +- src/gallium/drivers/iris/iris_context.c | 6 + src/gallium/drivers/iris/iris_context.h | 14 +- src/gallium/drivers/iris/iris_draw.c | 2 +- src/gallium/drivers/iris/iris_genx_macros.h | 1 + src/gallium/drivers/iris/iris_indirect_gen.c | 2 + src/gallium/drivers/iris/iris_measure.c | 1 + src/gallium/drivers/iris/iris_program.c | 52 +- src/gallium/drivers/iris/iris_program_cache.c | 9 +- src/gallium/drivers/iris/iris_resolve.c | 100 +- src/gallium/drivers/iris/iris_resource.c | 448 +- src/gallium/drivers/iris/iris_resource.h | 13 +- src/gallium/drivers/iris/iris_screen.c | 12 +- src/gallium/drivers/iris/iris_state.c | 325 +- src/gallium/drivers/iris/iris_utrace.c | 78 +- src/gallium/drivers/iris/meson.build | 26 +- src/gallium/drivers/iris/xe/iris_batch.c | 44 +- .../drivers/iris/xe/iris_kmd_backend.c | 1 + src/gallium/drivers/lima/ci/gitlab-ci.yml | 3 +- src/gallium/drivers/lima/ci/lima-fails.txt | 484 +- src/gallium/drivers/lima/ci/lima-skips.txt | 24 + src/gallium/drivers/lima/drm-shim/meson.build | 22 +- src/gallium/drivers/lima/ir/lima_ir.h | 2 + .../drivers/lima/ir/lima_nir_algebraic.py | 7 + .../lima/ir/lima_nir_duplicate_consts.c | 3 +- .../lima/ir/lima_nir_duplicate_intrinsic.c | 3 +- .../drivers/lima/ir/lima_nir_lower_txp.c | 3 +- .../ir/lima_nir_lower_uniform_to_scalar.c | 4 +- .../lima/ir/lima_nir_split_load_input.c | 7 +- src/gallium/drivers/lima/ir/pp/lower.c | 170 +- src/gallium/drivers/lima/ir/pp/nir.c | 139 +- src/gallium/drivers/lima/ir/pp/node.c | 6 + src/gallium/drivers/lima/ir/pp/ppir.h | 1 + src/gallium/drivers/lima/lima_program.c | 10 +- src/gallium/drivers/lima/lima_program.h | 7 - src/gallium/drivers/lima/lima_resource.c | 2 +- src/gallium/drivers/lima/meson.build | 44 +- src/gallium/drivers/lima/standalone/glsl.cpp | 41 - src/gallium/drivers/lima/standalone/glsl.h | 36 - .../lima/standalone/lima_compiler_cmdline.c | 248 - .../llvmpipe/ci/deqp-llvmpipe-rusticl.toml | 2 + .../drivers/llvmpipe/ci/gitlab-ci-inc.yml | 51 +- src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml | 10 +- .../drivers/llvmpipe/ci/llvmpipe-fails.txt | 31 +- .../llvmpipe/ci/llvmpipe-rusticl-fails.txt | 20 +- .../drivers/llvmpipe/ci/llvmpipe-skips.txt | 1 + .../drivers/llvmpipe/ci/traces-llvmpipe.yml | 8 +- src/gallium/drivers/llvmpipe/lp_bld_blend.c | 2 +- src/gallium/drivers/llvmpipe/lp_context.c | 27 +- src/gallium/drivers/llvmpipe/lp_context.h | 2 +- src/gallium/drivers/llvmpipe/lp_draw_arrays.c | 2 +- src/gallium/drivers/llvmpipe/lp_fence.c | 261 +- src/gallium/drivers/llvmpipe/lp_fence.h | 16 + src/gallium/drivers/llvmpipe/lp_jit.c | 30 +- src/gallium/drivers/llvmpipe/lp_limits.h | 2 +- src/gallium/drivers/llvmpipe/lp_query.c | 8 +- src/gallium/drivers/llvmpipe/lp_screen.c | 54 +- src/gallium/drivers/llvmpipe/lp_screen.h | 13 +- src/gallium/drivers/llvmpipe/lp_state_cs.c | 26 +- src/gallium/drivers/llvmpipe/lp_state_cs.h | 1 + src/gallium/drivers/llvmpipe/lp_state_fs.c | 111 +- src/gallium/drivers/llvmpipe/lp_state_fs.h | 2 + .../drivers/llvmpipe/lp_state_fs_linear.c | 9 - .../llvmpipe/lp_state_fs_linear_llvm.c | 6 +- src/gallium/drivers/llvmpipe/lp_state_setup.c | 7 +- src/gallium/drivers/llvmpipe/lp_state_setup.h | 1 + .../drivers/llvmpipe/lp_state_surface.c | 1 + src/gallium/drivers/llvmpipe/lp_surface.c | 2 +- src/gallium/drivers/llvmpipe/lp_test_arit.c | 13 +- src/gallium/drivers/llvmpipe/lp_test_blend.c | 13 +- src/gallium/drivers/llvmpipe/lp_test_conv.c | 13 +- src/gallium/drivers/llvmpipe/lp_test_format.c | 40 +- .../llvmpipe/lp_test_lookup_multiple.c | 155 + src/gallium/drivers/llvmpipe/lp_test_printf.c | 13 +- src/gallium/drivers/llvmpipe/lp_texture.c | 474 +- src/gallium/drivers/llvmpipe/lp_texture.h | 37 +- .../drivers/llvmpipe/lp_texture_handle.c | 154 +- .../drivers/llvmpipe/lp_texture_handle.h | 8 +- src/gallium/drivers/llvmpipe/meson.build | 29 +- .../drivers/nouveau/ci/gitlab-ci-inc.yml | 33 +- src/gallium/drivers/nouveau/ci/gitlab-ci.yml | 14 +- src/gallium/drivers/nouveau/meson.build | 30 +- src/gallium/drivers/nouveau/nouveau_fence.c | 2 +- src/gallium/drivers/nouveau/nouveau_screen.c | 43 +- src/gallium/drivers/nouveau/nouveau_screen.h | 4 +- src/gallium/drivers/nouveau/nouveau_video.c | 3 +- .../drivers/nouveau/nouveau_vp3_video.c | 3 +- src/gallium/drivers/nouveau/nouveau_winsys.h | 3 +- .../drivers/nouveau/nv30/nv30_miptree.c | 2 +- .../drivers/nouveau/nv30/nv30_screen.c | 31 +- .../drivers/nouveau/nv50/nv50_context.h | 6 +- .../drivers/nouveau/nv50/nv50_screen.c | 17 +- src/gallium/drivers/nouveau/nv50/nv50_vbo.c | 126 +- src/gallium/drivers/nouveau/nv50/nv84_video.c | 6 +- .../drivers/nouveau/nvc0/nvc0_resource.c | 8 +- .../drivers/nouveau/nvc0/nvc0_screen.c | 22 +- src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c | 233 +- src/gallium/drivers/nouveau/nvc0/nvc0_video.c | 3 +- src/gallium/drivers/panfrost/meson.build | 27 +- src/gallium/drivers/panfrost/pan_blit.c | 6 +- src/gallium/drivers/panfrost/pan_bo.c | 32 +- src/gallium/drivers/panfrost/pan_cmdstream.c | 319 +- src/gallium/drivers/panfrost/pan_cmdstream.h | 6 +- src/gallium/drivers/panfrost/pan_context.c | 217 +- src/gallium/drivers/panfrost/pan_context.h | 9 +- src/gallium/drivers/panfrost/pan_csf.c | 546 +- src/gallium/drivers/panfrost/pan_csf.h | 49 +- src/gallium/drivers/panfrost/pan_device.c | 27 +- src/gallium/drivers/panfrost/pan_device.h | 22 +- .../drivers/panfrost/pan_fb_preload.c} | 822 +- src/gallium/drivers/panfrost/pan_fb_preload.h | 69 + src/gallium/drivers/panfrost/pan_jm.c | 121 +- src/gallium/drivers/panfrost/pan_jm.h | 14 +- src/gallium/drivers/panfrost/pan_job.c | 5 +- src/gallium/drivers/panfrost/pan_job.h | 12 + src/gallium/drivers/panfrost/pan_mempool.c | 1 + .../panfrost/pan_nir_lower_res_indices.c | 20 +- .../drivers/panfrost/pan_nir_lower_sysvals.c | 18 +- .../pan_nir_remove_fragcolor_stores.c | 2 +- src/gallium/drivers/panfrost/pan_resource.c | 197 +- src/gallium/drivers/panfrost/pan_resource.h | 8 +- src/gallium/drivers/panfrost/pan_screen.c | 183 +- src/gallium/drivers/panfrost/pan_screen.h | 12 +- src/gallium/drivers/panfrost/pan_shader.c | 6 +- .../drivers/r300/ci/deqp-r300-rv410.toml | 28 + src/gallium/drivers/r300/ci/gitlab-ci-inc.yml | 8 +- src/gallium/drivers/r300/ci/gitlab-ci.yml | 30 +- .../drivers/r300/ci/r300-r480-fails.txt | 444 - .../drivers/r300/ci/r300-rv380-fails.txt | 9 +- .../drivers/r300/ci/r300-rv410-fails.txt | 1327 + .../drivers/r300/ci/r300-rv410-flakes.txt | 33 + .../drivers/r300/ci/r300-rv410-skips.txt | 13 + .../r300/ci/r300-rv530-nohiz-fails.txt | 80 +- .../r300/ci/r300-rv530-nohiz-flakes.txt | 8 + .../drivers/r300/compiler/.clang-format | 6 + .../drivers/r300/compiler/memory_pool.c | 85 +- .../drivers/r300/compiler/memory_pool.h | 43 +- src/gallium/drivers/r300/compiler/nir_to_rc.c | 474 +- src/gallium/drivers/r300/compiler/nir_to_rc.h | 3 +- .../drivers/r300/compiler/r300_fragprog.c | 501 +- .../drivers/r300/compiler/r300_fragprog.h | 1 - .../r300/compiler/r300_fragprog_emit.c | 861 +- .../r300/compiler/r300_fragprog_swizzle.c | 319 +- src/gallium/drivers/r300/compiler/r300_nir.c | 145 +- src/gallium/drivers/r300/compiler/r300_nir.h | 50 +- .../r300/compiler/r300_nir_algebraic.py | 5 +- .../drivers/r300/compiler/r3xx_fragprog.c | 233 +- .../drivers/r300/compiler/r3xx_vertprog.c | 1416 +- .../r300/compiler/r3xx_vertprog_dump.c | 345 +- .../drivers/r300/compiler/r500_fragprog.c | 870 +- .../drivers/r300/compiler/r500_fragprog.h | 4 +- .../r300/compiler/r500_fragprog_emit.c | 1121 +- .../r300/compiler/r500_nir_lower_fcsel.c | 53 +- .../drivers/r300/compiler/radeon_code.c | 254 +- .../drivers/r300/compiler/radeon_code.h | 373 +- .../drivers/r300/compiler/radeon_compiler.c | 810 +- .../drivers/r300/compiler/radeon_compiler.h | 180 +- .../r300/compiler/radeon_compiler_util.c | 1075 +- .../r300/compiler/radeon_compiler_util.h | 93 +- .../drivers/r300/compiler/radeon_dataflow.c | 1276 +- .../drivers/r300/compiler/radeon_dataflow.h | 138 +- .../r300/compiler/radeon_dataflow_deadcode.c | 550 +- .../r300/compiler/radeon_dataflow_swizzles.c | 1053 +- .../r300/compiler/radeon_inline_literals.c | 239 +- .../drivers/r300/compiler/radeon_list.c | 82 +- .../drivers/r300/compiler/radeon_list.h | 17 +- .../drivers/r300/compiler/radeon_opcodes.c | 984 +- .../drivers/r300/compiler/radeon_opcodes.h | 280 +- .../drivers/r300/compiler/radeon_optimize.c | 2459 +- .../r300/compiler/radeon_pair_dead_sources.c | 83 +- .../r300/compiler/radeon_pair_regalloc.c | 656 +- .../r300/compiler/radeon_pair_schedule.c | 2224 +- .../r300/compiler/radeon_pair_translate.c | 633 +- .../drivers/r300/compiler/radeon_program.c | 139 +- .../drivers/r300/compiler/radeon_program.h | 228 +- .../r300/compiler/radeon_program_alu.c | 559 +- .../r300/compiler/radeon_program_alu.h | 32 +- .../r300/compiler/radeon_program_constants.h | 247 +- .../r300/compiler/radeon_program_pair.c | 349 +- .../r300/compiler/radeon_program_pair.h | 88 +- .../r300/compiler/radeon_program_print.c | 834 +- .../r300/compiler/radeon_program_tex.c | 804 +- .../r300/compiler/radeon_program_tex.h | 5 +- .../drivers/r300/compiler/radeon_regalloc.c | 865 +- .../drivers/r300/compiler/radeon_regalloc.h | 129 +- .../r300/compiler/radeon_remove_constants.c | 372 +- .../r300/compiler/radeon_rename_regs.c | 65 +- .../drivers/r300/compiler/radeon_swizzle.h | 28 +- .../drivers/r300/compiler/radeon_variable.c | 938 +- .../drivers/r300/compiler/radeon_variable.h | 65 +- .../drivers/r300/compiler/radeon_vert_fc.c | 437 +- src/gallium/drivers/r300/driinfo_r300.h | 6 + src/gallium/drivers/r300/meson.build | 2 +- src/gallium/drivers/r300/r300_blit.c | 6 +- src/gallium/drivers/r300/r300_chipset.c | 30 - src/gallium/drivers/r300/r300_context.h | 3 +- src/gallium/drivers/r300/r300_debug.c | 2 + src/gallium/drivers/r300/r300_debug_options.h | 6 + src/gallium/drivers/r300/r300_emit.c | 27 +- src/gallium/drivers/r300/r300_fs.c | 5 +- src/gallium/drivers/r300/r300_reg.h | 3 +- src/gallium/drivers/r300/r300_screen.c | 25 +- src/gallium/drivers/r300/r300_screen.h | 7 + src/gallium/drivers/r300/r300_state.c | 1 + src/gallium/drivers/r300/r300_tgsi_to_rc.c | 4 +- src/gallium/drivers/r300/r300_vs.c | 8 +- .../drivers/r600/compute_memory_pool.c | 3 +- src/gallium/drivers/r600/meson.build | 5 +- src/gallium/drivers/r600/r600_blit.c | 6 +- src/gallium/drivers/r600/r600_buffer_common.c | 3 +- src/gallium/drivers/r600/r600_formats.h | 1 + src/gallium/drivers/r600/r600_pipe.c | 6 +- src/gallium/drivers/r600/r600_pipe_common.c | 4 +- src/gallium/drivers/r600/r600_shader.c | 16 - src/gallium/drivers/r600/r600_state_common.c | 3 + src/gallium/drivers/r600/r600_texture.c | 7 + src/gallium/drivers/r600/radeon_uvd.c | 18 +- src/gallium/drivers/r600/radeon_vce.c | 3 +- .../drivers/r600/sfn/sfn_instr_alu.cpp | 55 +- src/gallium/drivers/r600/sfn/sfn_nir.cpp | 17 +- .../sfn/sfn_nir_legalize_image_load_store.cpp | 7 + .../drivers/r600/sfn/sfn_nir_lower_64bit.cpp | 5 +- .../sfn/sfn_nir_lower_fs_out_to_vector.cpp | 2 +- .../r600/sfn/sfn_nir_lower_tess_io.cpp | 3 +- .../r600/sfn/sfn_nir_vectorize_vs_inputs.c | 7 +- src/gallium/drivers/r600/sfn/sfn_shader.cpp | 51 + src/gallium/drivers/r600/sfn/sfn_shader.h | 10 +- .../drivers/r600/sfn/sfn_shader_fs.cpp | 4 +- .../drivers/r600/sfn/sfn_valuefactory.cpp | 2 +- .../drivers/r600/sfn/sfn_valuefactory.h | 4 +- .../drivers/r600/sfn/tests/meson.build | 6 +- .../drivers/radeonsi/ci/gfx10-navi10-fail.csv | 113 +- .../radeonsi/ci/gfx10_3-navi21-fail.csv | 193 +- .../radeonsi/ci/gfx11-gfx1100-fail.csv | 972 +- .../drivers/radeonsi/ci/gfx6-tahiti-fail.csv | 85 +- .../drivers/radeonsi/ci/gfx7-hawaii-fail.csv | 177 + .../radeonsi/ci/gfx8-polaris11-fail.csv | 101 +- .../drivers/radeonsi/ci/gfx9-raven-fail.csv | 85 +- .../drivers/radeonsi/ci/gfx9-vega20-fail.csv | 119 +- .../drivers/radeonsi/ci/radeonsi-flakes.csv | 18 +- .../drivers/radeonsi/ci/radeonsi-run-tests.py | 46 +- src/gallium/drivers/radeonsi/gfx11_query.c | 21 +- .../drivers/radeonsi/glsl_tests/meson.build | 20 +- src/gallium/drivers/radeonsi/meson.build | 32 +- .../drivers/radeonsi/radeon_temporal.h | 213 - src/gallium/drivers/radeonsi/radeon_uvd.c | 23 +- src/gallium/drivers/radeonsi/radeon_uvd_enc.c | 93 +- .../drivers/radeonsi/radeon_uvd_enc_1_1.c | 30 +- src/gallium/drivers/radeonsi/radeon_vce.c | 114 +- src/gallium/drivers/radeonsi/radeon_vce.h | 1 - .../drivers/radeonsi/radeon_vce_40_2_2.c | 22 +- src/gallium/drivers/radeonsi/radeon_vce_50.c | 34 +- src/gallium/drivers/radeonsi/radeon_vce_52.c | 37 +- src/gallium/drivers/radeonsi/radeon_vcn_dec.c | 810 +- src/gallium/drivers/radeonsi/radeon_vcn_dec.h | 5 + .../drivers/radeonsi/radeon_vcn_dec_jpeg.c | 1 + src/gallium/drivers/radeonsi/radeon_vcn_enc.c | 1511 +- src/gallium/drivers/radeonsi/radeon_vcn_enc.h | 229 +- .../drivers/radeonsi/radeon_vcn_enc_1_2.c | 1409 +- .../drivers/radeonsi/radeon_vcn_enc_2_0.c | 438 +- .../drivers/radeonsi/radeon_vcn_enc_3_0.c | 397 +- .../drivers/radeonsi/radeon_vcn_enc_4_0.c | 1107 +- .../drivers/radeonsi/radeon_vcn_enc_5_0.c | 1015 + src/gallium/drivers/radeonsi/radeon_video.c | 63 +- src/gallium/drivers/radeonsi/radeon_video.h | 3 +- src/gallium/drivers/radeonsi/si_barrier.c | 872 + src/gallium/drivers/radeonsi/si_blit.c | 243 +- src/gallium/drivers/radeonsi/si_buffer.c | 32 +- src/gallium/drivers/radeonsi/si_build_pm4.h | 148 +- src/gallium/drivers/radeonsi/si_clear.c | 203 +- src/gallium/drivers/radeonsi/si_compute.c | 410 +- .../drivers/radeonsi/si_compute_blit.c | 1312 +- src/gallium/drivers/radeonsi/si_cp_dma.c | 275 +- .../drivers/radeonsi/si_cp_reg_shadowing.c | 17 +- src/gallium/drivers/radeonsi/si_cp_utils.c | 203 + src/gallium/drivers/radeonsi/si_debug.c | 2 +- .../drivers/radeonsi/si_debug_options.h | 2 +- src/gallium/drivers/radeonsi/si_descriptors.c | 646 +- src/gallium/drivers/radeonsi/si_fence.c | 2 +- src/gallium/drivers/radeonsi/si_get.c | 341 +- src/gallium/drivers/radeonsi/si_gfx_cs.c | 631 +- src/gallium/drivers/radeonsi/si_gpu_load.c | 3 +- .../drivers/radeonsi/si_nir_lower_abi.c | 204 +- .../drivers/radeonsi/si_nir_lower_resource.c | 74 +- .../drivers/radeonsi/si_nir_lower_vs_inputs.c | 5 +- src/gallium/drivers/radeonsi/si_nir_optim.c | 3 +- src/gallium/drivers/radeonsi/si_perfcounter.c | 23 +- src/gallium/drivers/radeonsi/si_perfetto.cpp | 11 +- src/gallium/drivers/radeonsi/si_pipe.c | 211 +- src/gallium/drivers/radeonsi/si_pipe.h | 492 +- src/gallium/drivers/radeonsi/si_pm4.c | 310 +- src/gallium/drivers/radeonsi/si_pm4.h | 29 +- src/gallium/drivers/radeonsi/si_query.c | 103 +- src/gallium/drivers/radeonsi/si_query.h | 13 - .../drivers/radeonsi/si_sdma_copy_image.c | 71 +- src/gallium/drivers/radeonsi/si_shader.c | 322 +- src/gallium/drivers/radeonsi/si_shader.h | 120 +- src/gallium/drivers/radeonsi/si_shader_aco.c | 8 +- src/gallium/drivers/radeonsi/si_shader_info.c | 75 +- src/gallium/drivers/radeonsi/si_shader_llvm.c | 20 +- .../drivers/radeonsi/si_shader_llvm_gs.c | 16 +- src/gallium/drivers/radeonsi/si_shader_nir.c | 45 +- .../drivers/radeonsi/si_shaderlib_nir.c | 679 +- src/gallium/drivers/radeonsi/si_sqtt.c | 523 +- src/gallium/drivers/radeonsi/si_state.c | 3532 +- src/gallium/drivers/radeonsi/si_state.h | 56 +- .../drivers/radeonsi/si_state_binning.c | 35 +- .../drivers/radeonsi/si_state_draw.cpp | 342 +- src/gallium/drivers/radeonsi/si_state_msaa.c | 52 +- .../drivers/radeonsi/si_state_shaders.cpp | 928 +- .../drivers/radeonsi/si_state_streamout.c | 131 +- .../drivers/radeonsi/si_state_viewport.c | 222 +- .../drivers/radeonsi/si_test_blit_perf.c | 706 + .../drivers/radeonsi/si_test_dma_perf.c | 913 +- .../radeonsi/si_test_image_copy_region.c | 20 +- src/gallium/drivers/radeonsi/si_texture.c | 448 +- .../drivers/radeonsi/si_tracepoints.py | 4 +- src/gallium/drivers/radeonsi/si_utrace.c | 34 +- src/gallium/drivers/radeonsi/si_uvd.c | 30 +- src/gallium/drivers/radeonsi/si_vpe.c | 56 +- src/gallium/drivers/radeonsi/si_vpe.h | 2 - .../drivers/softpipe/ci/gitlab-ci-inc.yml | 2 +- src/gallium/drivers/softpipe/ci/gitlab-ci.yml | 4 +- .../softpipe/ci/softpipe-asan-fails.txt | 1 - .../drivers/softpipe/ci/softpipe-fails.txt | 44 +- .../drivers/softpipe/ci/softpipe-skips.txt | 4 + src/gallium/drivers/softpipe/meson.build | 23 +- src/gallium/drivers/softpipe/sp_draw_arrays.c | 2 +- src/gallium/drivers/softpipe/sp_surface.c | 2 +- src/gallium/drivers/softpipe/sp_tex_sample.c | 4 +- src/gallium/drivers/svga/ci/gitlab-ci-inc.yml | 2 +- src/gallium/drivers/svga/ci/gitlab-ci.yml | 7 +- src/gallium/drivers/svga/ci/svga-fails.txt | 720 - src/gallium/drivers/svga/ci/svga-flakes.txt | 4 + src/gallium/drivers/svga/ci/svga-skips.txt | 8 + src/gallium/drivers/svga/ci/traces-vmware.yml | 2 +- src/gallium/drivers/svga/include/README | 4 +- .../drivers/svga/include/VGPU10ShaderTokens.h | 1142 +- .../drivers/svga/include/includeCheck.h | 1 - .../drivers/svga/include/svga3d_caps.h | 114 - src/gallium/drivers/svga/include/svga3d_cmd.h | 2882 +- .../drivers/svga/include/svga3d_devcaps.h | 770 +- src/gallium/drivers/svga/include/svga3d_dx.h | 1844 +- .../drivers/svga/include/svga3d_limits.h | 61 +- src/gallium/drivers/svga/include/svga3d_reg.h | 25 +- .../drivers/svga/include/svga3d_shaderdefs.h | 484 +- .../drivers/svga/include/svga3d_surfacedefs.h | 2661 +- .../drivers/svga/include/svga3d_types.h | 2511 +- .../drivers/svga/include/svga_escape.h | 58 +- .../drivers/svga/include/svga_overlay.h | 147 +- src/gallium/drivers/svga/include/svga_reg.h | 2099 +- src/gallium/drivers/svga/include/svga_types.h | 57 - .../drivers/svga/include/vm_basic_types.h | 44 + .../drivers/svga/include/vmw_surf_defs.h | 196 + .../drivers/svga/include/vmware_pack_begin.h | 1 - .../drivers/svga/include/vmware_pack_end.h | 1 - src/gallium/drivers/svga/meson.build | 19 +- src/gallium/drivers/svga/svga_cmd.c | 30 +- src/gallium/drivers/svga/svga_cmd.h | 73 +- src/gallium/drivers/svga/svga_cmd_vgpu10.c | 164 +- src/gallium/drivers/svga/svga_context.c | 30 +- src/gallium/drivers/svga/svga_context.h | 39 +- src/gallium/drivers/svga/svga_debug.h | 30 +- src/gallium/drivers/svga/svga_draw.c | 30 +- src/gallium/drivers/svga/svga_draw.h | 30 +- src/gallium/drivers/svga/svga_draw_arrays.c | 30 +- src/gallium/drivers/svga/svga_draw_elements.c | 30 +- src/gallium/drivers/svga/svga_draw_private.h | 30 +- src/gallium/drivers/svga/svga_format.c | 30 +- src/gallium/drivers/svga/svga_format.h | 31 +- src/gallium/drivers/svga/svga_hw_reg.h | 32 +- src/gallium/drivers/svga/svga_image_view.c | 30 +- src/gallium/drivers/svga/svga_image_view.h | 30 +- src/gallium/drivers/svga/svga_link.c | 27 +- src/gallium/drivers/svga/svga_link.h | 6 + src/gallium/drivers/svga/svga_mksstats.h | 30 +- src/gallium/drivers/svga/svga_pipe_blend.c | 32 +- src/gallium/drivers/svga/svga_pipe_blit.c | 40 +- src/gallium/drivers/svga/svga_pipe_clear.c | 30 +- .../drivers/svga/svga_pipe_constants.c | 30 +- src/gallium/drivers/svga/svga_pipe_cs.c | 30 +- .../drivers/svga/svga_pipe_depthstencil.c | 30 +- src/gallium/drivers/svga/svga_pipe_draw.c | 32 +- src/gallium/drivers/svga/svga_pipe_flush.c | 30 +- src/gallium/drivers/svga/svga_pipe_fs.c | 30 +- src/gallium/drivers/svga/svga_pipe_gs.c | 30 +- src/gallium/drivers/svga/svga_pipe_misc.c | 30 +- src/gallium/drivers/svga/svga_pipe_query.c | 30 +- .../drivers/svga/svga_pipe_rasterizer.c | 30 +- src/gallium/drivers/svga/svga_pipe_sampler.c | 30 +- .../drivers/svga/svga_pipe_streamout.c | 30 +- src/gallium/drivers/svga/svga_pipe_ts.c | 30 +- src/gallium/drivers/svga/svga_pipe_vertex.c | 30 +- src/gallium/drivers/svga/svga_pipe_vs.c | 30 +- src/gallium/drivers/svga/svga_public.h | 30 +- src/gallium/drivers/svga/svga_resource.c | 30 +- src/gallium/drivers/svga/svga_resource.h | 32 +- .../drivers/svga/svga_resource_buffer.c | 30 +- .../drivers/svga/svga_resource_buffer.h | 30 +- .../svga/svga_resource_buffer_upload.c | 36 +- .../svga/svga_resource_buffer_upload.h | 30 +- .../drivers/svga/svga_resource_texture.c | 59 +- .../drivers/svga/svga_resource_texture.h | 30 +- src/gallium/drivers/svga/svga_sampler_view.c | 30 +- src/gallium/drivers/svga/svga_sampler_view.h | 30 +- src/gallium/drivers/svga/svga_screen.c | 49 +- src/gallium/drivers/svga/svga_screen.h | 30 +- src/gallium/drivers/svga/svga_screen_cache.c | 30 +- src/gallium/drivers/svga/svga_screen_cache.h | 33 +- src/gallium/drivers/svga/svga_shader.c | 30 +- src/gallium/drivers/svga/svga_shader.h | 30 +- src/gallium/drivers/svga/svga_shader_buffer.c | 30 +- src/gallium/drivers/svga/svga_shader_buffer.h | 30 +- src/gallium/drivers/svga/svga_state.c | 30 +- src/gallium/drivers/svga/svga_state.h | 30 +- .../drivers/svga/svga_state_constants.c | 32 +- src/gallium/drivers/svga/svga_state_cs.c | 30 +- .../drivers/svga/svga_state_framebuffer.c | 32 +- src/gallium/drivers/svga/svga_state_fs.c | 30 +- src/gallium/drivers/svga/svga_state_gs.c | 30 +- .../drivers/svga/svga_state_need_swtnl.c | 30 +- src/gallium/drivers/svga/svga_state_rss.c | 30 +- src/gallium/drivers/svga/svga_state_sampler.c | 25 +- .../drivers/svga/svga_state_tgsi_transform.c | 30 +- src/gallium/drivers/svga/svga_state_ts.c | 30 +- src/gallium/drivers/svga/svga_state_tss.c | 30 +- src/gallium/drivers/svga/svga_state_uav.c | 30 +- src/gallium/drivers/svga/svga_state_vdecl.c | 30 +- src/gallium/drivers/svga/svga_state_vs.c | 30 +- src/gallium/drivers/svga/svga_streamout.h | 30 +- src/gallium/drivers/svga/svga_surface.c | 30 +- src/gallium/drivers/svga/svga_surface.h | 30 +- src/gallium/drivers/svga/svga_swtnl.h | 30 +- src/gallium/drivers/svga/svga_swtnl_backend.c | 31 +- src/gallium/drivers/svga/svga_swtnl_draw.c | 30 +- src/gallium/drivers/svga/svga_swtnl_private.h | 31 +- src/gallium/drivers/svga/svga_swtnl_state.c | 30 +- src/gallium/drivers/svga/svga_tgsi.c | 30 +- src/gallium/drivers/svga/svga_tgsi.h | 30 +- .../drivers/svga/svga_tgsi_decl_sm30.c | 30 +- src/gallium/drivers/svga/svga_tgsi_emit.h | 31 +- src/gallium/drivers/svga/svga_tgsi_insn.c | 34 +- src/gallium/drivers/svga/svga_tgsi_vgpu10.c | 34 +- src/gallium/drivers/svga/svga_winsys.h | 31 +- src/gallium/drivers/svga/svgadump/svga_dump.c | 31 +- src/gallium/drivers/svga/svgadump/svga_dump.h | 30 +- .../drivers/svga/svgadump/svga_dump.py | 4 +- .../drivers/svga/svgadump/svga_shader.h | 30 +- .../drivers/svga/svgadump/svga_shader_dump.c | 32 +- .../drivers/svga/svgadump/svga_shader_dump.h | 30 +- .../drivers/svga/svgadump/svga_shader_op.c | 30 +- .../drivers/svga/svgadump/svga_shader_op.h | 30 +- src/gallium/drivers/tegra/meson.build | 19 +- src/gallium/drivers/v3d/meson.build | 30 +- src/gallium/drivers/v3d/v3d_blit.c | 194 +- src/gallium/drivers/v3d/v3d_bufmgr.c | 12 +- src/gallium/drivers/v3d/v3d_cl.c | 21 +- src/gallium/drivers/v3d/v3d_cl.h | 19 +- src/gallium/drivers/v3d/v3d_context.c | 18 +- src/gallium/drivers/v3d/v3d_context.h | 91 +- src/gallium/drivers/v3d/v3d_disk_cache.c | 15 +- src/gallium/drivers/v3d/v3d_fence.c | 11 +- src/gallium/drivers/v3d/v3d_job.c | 26 +- src/gallium/drivers/v3d/v3d_program.c | 82 +- src/gallium/drivers/v3d/v3d_resource.c | 21 +- src/gallium/drivers/v3d/v3d_resource.h | 6 + src/gallium/drivers/v3d/v3d_screen.c | 223 +- src/gallium/drivers/v3d/v3d_screen.h | 7 + src/gallium/drivers/v3d/v3d_uniforms.c | 24 +- src/gallium/drivers/v3d/v3dx_draw.c | 475 +- src/gallium/drivers/v3d/v3dx_emit.c | 11 +- src/gallium/drivers/v3d/v3dx_query_perfcnt.c | 42 +- src/gallium/drivers/v3d/v3dx_rcl.c | 45 +- src/gallium/drivers/v3d/v3dx_state.c | 36 +- src/gallium/drivers/v3d/v3dx_tfu.c | 3 + src/gallium/drivers/vc4/kernel/vc4_packet.h | 2 +- src/gallium/drivers/vc4/meson.build | 34 +- src/gallium/drivers/vc4/vc4_blit.c | 7 +- src/gallium/drivers/vc4/vc4_bufmgr.c | 10 +- src/gallium/drivers/vc4/vc4_cl.h | 8 - src/gallium/drivers/vc4/vc4_context.h | 15 +- src/gallium/drivers/vc4/vc4_fence.c | 10 +- src/gallium/drivers/vc4/vc4_job.c | 8 + src/gallium/drivers/vc4/vc4_nir_lower_blend.c | 28 +- src/gallium/drivers/vc4/vc4_nir_lower_io.c | 41 +- .../drivers/vc4/vc4_opt_constant_folding.c | 4 + src/gallium/drivers/vc4/vc4_program.c | 125 +- src/gallium/drivers/vc4/vc4_resource.c | 3 + src/gallium/drivers/vc4/vc4_screen.c | 3 + src/gallium/drivers/vc4/vc4_screen.h | 2 + src/gallium/drivers/vc4/vc4_state.c | 6 +- src/gallium/drivers/vc4/vc4_tiling_lt.c | 16 +- src/gallium/drivers/vc4/vc4_tiling_lt_neon.c | 30 - src/gallium/drivers/vc4/vc4_uniforms.c | 4 +- .../drivers/virgl/ci/gitlab-ci-inc.yml | 21 +- src/gallium/drivers/virgl/ci/traces-virgl.yml | 4 +- .../drivers/virgl/ci/virgl-gl-fails.txt | 12 +- .../drivers/virgl/ci/virgl-gles-fails.txt | 5 +- .../drivers/virgl/ci/virpipe-gl-fails.txt | 128 +- .../drivers/virgl/ci/virpipe-gl-flakes.txt | 1 - src/gallium/drivers/virgl/meson.build | 19 +- src/gallium/drivers/virgl/tests/meson.build | 19 +- src/gallium/drivers/virgl/virgl_driinfo.h.in | 15 - src/gallium/drivers/virgl/virgl_screen.c | 4 +- src/gallium/drivers/virgl/virgl_video.c | 45 +- .../drivers/zink/VP_ZINK_requirements.json | 20 +- .../zink/ci/deqp-zink-anv-adl-full.toml | 136 + .../drivers/zink/ci/deqp-zink-anv-adl.toml | 101 + .../drivers/zink/ci/deqp-zink-anv-tgl.toml | 3 - .../drivers/zink/ci/deqp-zink-nvk.toml | 28 + .../drivers/zink/ci/deqp-zink-tu-a750.toml | 67 + src/gallium/drivers/zink/ci/gitlab-ci-inc.yml | 79 +- src/gallium/drivers/zink/ci/gitlab-ci.yml | 81 +- src/gallium/drivers/zink/ci/traces-zink.yml | 4 +- .../drivers/zink/ci/zink-anv-adl-fails.txt | 685 + .../drivers/zink/ci/zink-anv-adl-flakes.txt | 837 + .../drivers/zink/ci/zink-anv-adl-skips.txt | 8 + .../zink/ci/zink-anv-adl-slow-skips.txt | 33 + .../drivers/zink/ci/zink-anv-tgl-fails.txt | 187 +- .../drivers/zink/ci/zink-anv-tgl-flakes.txt | 3 +- .../drivers/zink/ci/zink-anv-tgl-skips.txt | 1 + ...-skips.txt => zink-anv-tgl-slow-skips.txt} | 8 +- .../ci/zink-anv-tgl-validation-settings.txt | 5 +- .../zink/ci/zink-freedreno-a618-fails.txt | 16 + .../zink/ci/zink-freedreno-a618-flakes.txt | 2 +- .../drivers/zink/ci/zink-lvp-fails.txt | 18 +- .../drivers/zink/ci/zink-lvp-flakes.txt | 3 + .../zink/ci/zink-lvp-validation-settings.txt | 8 +- .../drivers/zink/ci/zink-nvk-fails.txt | 902 - .../drivers/zink/ci/zink-nvk-flakes.txt | 10 - .../drivers/zink/ci/zink-nvk-ga106-fails.txt | 475 + .../drivers/zink/ci/zink-nvk-ga106-flakes.txt | 181 + .../drivers/zink/ci/zink-nvk-ga106-skips.txt | 11 + .../drivers/zink/ci/zink-nvk-skips.txt | 0 .../zink/ci/zink-radv-navi10-fails.txt | 11 - .../zink/ci/zink-radv-navi10-flakes.txt | 18 +- .../zink/ci/zink-radv-navi31-fails.txt | 11 - .../zink/ci/zink-radv-navi31-flakes.txt | 30 +- .../zink/ci/zink-radv-navi31-skips.txt | 3 +- .../zink/ci/zink-radv-polaris10-fails.txt | 7 - .../zink/ci/zink-radv-polaris10-flakes.txt | 15 + .../zink/ci/zink-radv-polaris10-skips.txt | 2 - .../zink/ci/zink-radv-validation-settings.txt | 11 + .../zink/ci/zink-radv-vangogh-fails.txt | 16 +- .../zink/ci/zink-radv-vangogh-flakes.txt | 26 +- .../zink/ci/zink-radv-vangogh-skips.txt | 3 +- .../drivers/zink/ci/zink-tu-a750-fails.txt | 26 +- .../drivers/zink/ci/zink-tu-a750-flakes.txt | 6 +- .../drivers/zink/ci/zink-tu-a750-skips.txt | 6 + .../drivers/zink/ci/zink-venus-lvp-fails.txt | 5 - .../drivers/zink/ci/zink-venus-lvp-flakes.txt | 1 + src/gallium/drivers/zink/meson.build | 21 +- .../drivers/zink/nir_to_spirv/nir_to_spirv.c | 231 +- .../drivers/zink/nir_to_spirv/nir_to_spirv.h | 2 +- .../drivers/zink/nir_to_spirv/spirv_builder.h | 3 +- src/gallium/drivers/zink/zink_batch.c | 212 +- src/gallium/drivers/zink/zink_batch.h | 17 +- src/gallium/drivers/zink/zink_blit.c | 73 +- src/gallium/drivers/zink/zink_bo.c | 121 +- src/gallium/drivers/zink/zink_clear.c | 33 +- src/gallium/drivers/zink/zink_compiler.c | 909 +- src/gallium/drivers/zink/zink_compiler.h | 6 +- src/gallium/drivers/zink/zink_context.c | 836 +- src/gallium/drivers/zink/zink_context.h | 20 +- src/gallium/drivers/zink/zink_descriptors.c | 74 +- src/gallium/drivers/zink/zink_device_info.py | 42 +- src/gallium/drivers/zink/zink_draw.cpp | 438 +- src/gallium/drivers/zink/zink_fence.c | 16 +- src/gallium/drivers/zink/zink_format.c | 73 +- src/gallium/drivers/zink/zink_format.h | 3 +- src/gallium/drivers/zink/zink_instance.py | 16 +- src/gallium/drivers/zink/zink_kopper.c | 39 +- src/gallium/drivers/zink/zink_kopper.h | 7 + .../zink/zink_lower_cubemap_to_array.c | 22 +- src/gallium/drivers/zink/zink_pipeline.c | 28 +- src/gallium/drivers/zink/zink_pipeline.h | 3 +- src/gallium/drivers/zink/zink_program.c | 386 +- src/gallium/drivers/zink/zink_program.h | 5 +- .../drivers/zink/zink_program_state.hpp | 11 +- src/gallium/drivers/zink/zink_public.h | 2 + src/gallium/drivers/zink/zink_query.c | 116 +- src/gallium/drivers/zink/zink_query.h | 4 +- src/gallium/drivers/zink/zink_render_pass.c | 123 +- src/gallium/drivers/zink/zink_render_pass.h | 2 + src/gallium/drivers/zink/zink_resource.c | 406 +- src/gallium/drivers/zink/zink_resource.h | 12 +- src/gallium/drivers/zink/zink_screen.c | 556 +- src/gallium/drivers/zink/zink_screen.h | 30 +- src/gallium/drivers/zink/zink_state.c | 8 +- src/gallium/drivers/zink/zink_surface.c | 16 +- .../drivers/zink/zink_synchronization.cpp | 44 +- src/gallium/drivers/zink/zink_types.h | 110 +- .../frontends/clover/llvm/codegen/common.cpp | 4 + src/gallium/frontends/clover/meson.build | 19 +- .../frontends/clover/nir/invocation.cpp | 37 +- src/gallium/frontends/d3d10umd/Resource.cpp | 6 +- src/gallium/frontends/dri/dri2.c | 1028 +- src/gallium/frontends/dri/dri_context.c | 3 + src/gallium/frontends/dri/dri_context.h | 12 - src/gallium/frontends/dri/dri_drawable.c | 65 +- src/gallium/frontends/dri/dri_drawable.h | 40 +- src/gallium/frontends/dri/dri_helpers.c | 173 +- src/gallium/frontends/dri/dri_helpers.h | 26 +- .../frontends/dri/dri_query_renderer.c | 19 +- .../frontends/dri/dri_query_renderer.h | 3 - src/gallium/frontends/dri/dri_screen.c | 78 +- src/gallium/frontends/dri/dri_screen.h | 51 +- src/gallium/frontends/dri/dri_util.c | 533 +- src/gallium/frontends/dri/dri_util.h | 264 +- src/gallium/frontends/dri/drisw.c | 298 +- src/gallium/frontends/dri/kopper.c | 418 +- src/gallium/frontends/dri/kopper_stubs.c | 42 + .../frontends/dri}/loader_dri3_helper.c | 465 +- .../frontends/dri}/loader_dri3_helper.h | 95 +- src/gallium/frontends/dri/meson.build | 31 +- src/gallium/frontends/glx/xlib/meson.build | 19 +- src/gallium/frontends/hgl/meson.build | 25 +- .../frontends/lavapipe/ci/gitlab-ci-inc.yml | 25 +- .../frontends/lavapipe/ci/gitlab-ci.yml | 8 +- .../frontends/lavapipe/ci/lvp-asan-fails.txt | 4 +- .../frontends/lavapipe/ci/lvp-asan-skips.txt | 3 + .../frontends/lavapipe/ci/lvp-fails.txt | 840 +- .../frontends/lavapipe/ci/lvp-flakes.txt | 7 + .../frontends/lavapipe/ci/lvp-skips.txt | 30 +- .../frontends/lavapipe/ci/traces-lavapipe.yml | 2 +- src/gallium/frontends/lavapipe/lvp_android.c | 222 + .../frontends/lavapipe/lvp_cmd_buffer.c | 241 - .../frontends/lavapipe/lvp_descriptor_set.c | 105 +- src/gallium/frontends/lavapipe/lvp_device.c | 460 +- .../lavapipe/lvp_device_generated_commands.c | 445 + src/gallium/frontends/lavapipe/lvp_execute.c | 354 +- src/gallium/frontends/lavapipe/lvp_formats.c | 126 +- src/gallium/frontends/lavapipe/lvp_image.c | 206 +- .../frontends/lavapipe/lvp_inline_uniforms.c | 11 +- .../frontends/lavapipe/lvp_lower_exec_graph.c | 10 +- .../lavapipe/lvp_lower_vulkan_resource.c | 2 +- .../lavapipe/lvp_nir_lower_sparse_residency.c | 31 + .../frontends/lavapipe/lvp_nir_ray_tracing.c | 2 +- .../frontends/lavapipe/lvp_pipe_sync.c | 47 + src/gallium/frontends/lavapipe/lvp_pipeline.c | 91 +- src/gallium/frontends/lavapipe/lvp_private.h | 143 +- .../lavapipe/lvp_ray_tracing_pipeline.c | 35 +- src/gallium/frontends/lavapipe/meson.build | 6 + src/gallium/frontends/nine/nine_state.c | 1 - .../frontends/omx/bellagio/entrypoint.c | 69 - src/gallium/frontends/omx/bellagio/vid_dec.c | 550 - src/gallium/frontends/omx/bellagio/vid_dec.h | 91 - .../frontends/omx/bellagio/vid_dec_av1.c | 2471 - .../frontends/omx/bellagio/vid_dec_av1.h | 459 - .../frontends/omx/bellagio/vid_dec_h264.c | 55 - .../frontends/omx/bellagio/vid_dec_h265.c | 1015 - .../frontends/omx/bellagio/vid_dec_mpeg12.c | 383 - src/gallium/frontends/omx/bellagio/vid_enc.c | 935 - src/gallium/frontends/omx/bellagio/vid_enc.h | 48 - src/gallium/frontends/omx/meson.build | 72 - .../frontends/omx/tizonia/entrypoint.c | 158 - .../frontends/omx/tizonia/entrypoint.h | 35 - src/gallium/frontends/omx/tizonia/h264d.c | 176 - src/gallium/frontends/omx/tizonia/h264d.h | 40 - .../frontends/omx/tizonia/h264dinport.c | 147 - .../frontends/omx/tizonia/h264dinport.h | 31 - .../frontends/omx/tizonia/h264dinport_decls.h | 48 - src/gallium/frontends/omx/tizonia/h264dprc.c | 614 - src/gallium/frontends/omx/tizonia/h264dprc.h | 31 - src/gallium/frontends/omx/tizonia/h264e.c | 184 - src/gallium/frontends/omx/tizonia/h264e.h | 55 - .../frontends/omx/tizonia/h264einport.c | 216 - .../frontends/omx/tizonia/h264einport.h | 31 - .../frontends/omx/tizonia/h264einport_decls.h | 48 - .../frontends/omx/tizonia/h264eoutport.c | 143 - .../frontends/omx/tizonia/h264eoutport.h | 31 - .../omx/tizonia/h264eoutport_decls.h | 48 - src/gallium/frontends/omx/tizonia/h264eprc.c | 699 - src/gallium/frontends/omx/tizonia/h264eprc.h | 31 - src/gallium/frontends/omx/tizonia/names.h | 30 - src/gallium/frontends/omx/vid_dec_common.c | 157 - src/gallium/frontends/omx/vid_dec_common.h | 201 - .../frontends/omx/vid_dec_h264_common.c | 1137 - .../frontends/omx/vid_dec_h264_common.h | 99 - src/gallium/frontends/omx/vid_enc_common.c | 556 - src/gallium/frontends/omx/vid_enc_common.h | 179 - src/gallium/frontends/omx/vid_omx_common.c | 112 - src/gallium/frontends/omx/vid_omx_common.h | 36 - src/gallium/frontends/osmesa/meson.build | 19 +- src/gallium/frontends/rusticl/api/context.rs | 14 +- src/gallium/frontends/rusticl/api/device.rs | 70 +- src/gallium/frontends/rusticl/api/event.rs | 16 +- src/gallium/frontends/rusticl/api/icd.rs | 350 +- src/gallium/frontends/rusticl/api/kernel.rs | 63 +- src/gallium/frontends/rusticl/api/memory.rs | 167 +- src/gallium/frontends/rusticl/api/platform.rs | 6 +- src/gallium/frontends/rusticl/api/program.rs | 26 +- src/gallium/frontends/rusticl/api/queue.rs | 49 +- src/gallium/frontends/rusticl/api/util.rs | 2 +- .../frontends/rusticl/ci/gitlab-ci.yml | 14 + src/gallium/frontends/rusticl/core/context.rs | 4 +- src/gallium/frontends/rusticl/core/device.rs | 360 +- src/gallium/frontends/rusticl/core/event.rs | 2 +- src/gallium/frontends/rusticl/core/kernel.rs | 1488 +- src/gallium/frontends/rusticl/core/memory.rs | 265 +- .../frontends/rusticl/core/platform.rs | 52 +- src/gallium/frontends/rusticl/core/program.rs | 137 +- src/gallium/frontends/rusticl/core/queue.rs | 144 +- .../rusticl/mesa/compiler/clc/spirv.rs | 238 +- .../frontends/rusticl/mesa/compiler/nir.rs | 49 +- .../frontends/rusticl/mesa/pipe/context.rs | 88 +- .../frontends/rusticl/mesa/pipe/device.rs | 68 +- .../frontends/rusticl/mesa/pipe/resource.rs | 21 +- .../frontends/rusticl/mesa/pipe/screen.rs | 32 +- .../frontends/rusticl/mesa/pipe/transfer.rs | 51 +- src/gallium/frontends/rusticl/meson.build | 132 +- src/gallium/frontends/rusticl/proc/lib.rs | 6 +- .../frontends/rusticl/rusticl_mesa_bindings.h | 6 +- .../rusticl_mesa_inline_bindings_wrapper.c | 104 - .../rusticl_mesa_inline_bindings_wrapper.h | 57 - src/gallium/frontends/rusticl/rusticl_nir.c | 10 +- src/gallium/frontends/rusticl/rusticl_nir.h | 3 + .../rusticl/rusticl_system_bindings.c | 8 + .../rusticl/rusticl_system_bindings.h | 2 + src/gallium/frontends/rusticl/util/math.rs | 33 - .../frontends/rusticl/util/serialize.rs | 29 +- src/gallium/frontends/va/buffer.c | 84 +- src/gallium/frontends/va/config.c | 40 +- src/gallium/frontends/va/context.c | 117 +- src/gallium/frontends/va/image.c | 69 +- src/gallium/frontends/va/meson.build | 19 +- src/gallium/frontends/va/picture.c | 381 +- src/gallium/frontends/va/picture_av1.c | 23 +- src/gallium/frontends/va/picture_av1_enc.c | 574 +- src/gallium/frontends/va/picture_h264.c | 66 +- src/gallium/frontends/va/picture_h264_enc.c | 545 +- src/gallium/frontends/va/picture_hevc.c | 76 +- src/gallium/frontends/va/picture_hevc_enc.c | 804 +- src/gallium/frontends/va/postproc.c | 91 +- src/gallium/frontends/va/surface.c | 319 +- src/gallium/frontends/va/va_private.h | 82 +- src/gallium/frontends/vdpau/device.c | 8 + src/gallium/frontends/vdpau/meson.build | 19 +- src/gallium/frontends/wgl/meson.build | 21 +- src/gallium/frontends/wgl/stw_device.c | 15 +- src/gallium/frontends/wgl/stw_framebuffer.c | 5 + src/gallium/frontends/wgl/stw_winsys.h | 4 + src/gallium/frontends/xa/meson.build | 19 +- src/gallium/include/frontend/api.h | 1 + src/gallium/include/frontend/drm_driver.h | 7 + src/gallium/include/mesa_interface.h | 1579 + src/gallium/include/pipe/p_context.h | 1 + src/gallium/include/pipe/p_defines.h | 63 +- src/gallium/include/pipe/p_screen.h | 52 + src/gallium/include/pipe/p_state.h | 36 +- src/gallium/include/pipe/p_video_codec.h | 51 +- src/gallium/include/pipe/p_video_enums.h | 19 +- src/gallium/include/pipe/p_video_state.h | 581 +- src/gallium/include/winsys/radeon_winsys.h | 36 +- src/gallium/meson.build | 75 +- src/gallium/targets/d3d10umd/meson.build | 21 +- src/gallium/targets/d3dadapter9/meson.build | 2 +- src/gallium/targets/dri/dri.sym.in | 66 + .../targets/{xa/target.c => dri/dri_target.c} | 2 + src/gallium/targets/dri/meson.build | 176 +- src/gallium/targets/dri/target.c | 159 - src/gallium/targets/dril/dri.sym.in | 7 + src/gallium/targets/dril/dril_target.c | 631 + src/gallium/targets/dril/meson.build | 152 + .../lavapipe/{target.c => lavapipe_target.c} | 0 src/gallium/targets/lavapipe/meson.build | 15 +- src/gallium/targets/libgl-gdi/meson.build | 20 +- src/gallium/targets/libgl-xlib/meson.build | 25 +- src/gallium/targets/omx/meson.build | 52 - src/gallium/targets/omx/omx.sym.in | 13 - src/gallium/targets/opencl/meson.build | 71 +- src/gallium/targets/osmesa/meson.build | 25 +- src/gallium/targets/osmesa/osmesa-symbols.txt | 4 + .../osmesa/{target.c => osmesa_target.c} | 0 src/gallium/targets/osmesa/test-render.cpp | 2 +- src/gallium/targets/pipe-loader/meson.build | 25 +- src/gallium/targets/rusticl/meson.build | 24 +- .../target.c => rusticl/rusticl_target.c} | 0 src/gallium/targets/teflon/meson.build | 5 +- .../target.c => teflon/teflon_target.c} | 0 src/gallium/targets/va/meson.build | 40 +- .../{teflon/target.c => va/va_target.c} | 0 src/gallium/targets/vdpau/meson.build | 38 +- .../{va/target.c => vdpau/vdpau_target.c} | 0 src/gallium/targets/wgl/meson.build | 22 +- src/gallium/targets/wgl/wgl.c | 2 +- src/gallium/targets/xa/meson.build | 21 +- .../{vdpau/target.c => xa/xa_target.c} | 0 src/gallium/tests/meson.build | 21 +- src/gallium/tests/trivial/meson.build | 19 +- src/gallium/tests/unit/meson.build | 19 +- src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 14 +- src/gallium/winsys/amdgpu/drm/amdgpu_cs.cpp | 3 +- src/gallium/winsys/amdgpu/drm/meson.build | 19 +- src/gallium/winsys/crocus/drm/meson.build | 21 +- .../d3d12/wgl/d3d12_wgl_framebuffer.cpp | 40 +- src/gallium/winsys/d3d12/wgl/meson.build | 22 +- .../winsys/etnaviv/drm/etnaviv_drm_winsys.c | 43 +- src/gallium/winsys/etnaviv/drm/meson.build | 21 +- .../freedreno/drm/freedreno_drm_public.h | 6 + .../freedreno/drm/freedreno_drm_winsys.c | 43 +- src/gallium/winsys/freedreno/drm/meson.build | 19 +- .../winsys/i915/drm/i915_drm_batchbuffer.c | 24 +- src/gallium/winsys/i915/drm/meson.build | 21 +- src/gallium/winsys/iris/drm/meson.build | 20 +- src/gallium/winsys/kmsro/drm/meson.build | 19 +- src/gallium/winsys/lima/drm/meson.build | 20 +- src/gallium/winsys/nouveau/drm/.editorconfig | 2 - src/gallium/winsys/nouveau/drm/meson.build | 21 +- src/gallium/winsys/nouveau/drm/nouveau.c | 103 +- src/gallium/winsys/nouveau/drm/nouveau.h | 9 + .../winsys/nouveau/drm/nouveau_drm_public.h | 2 + .../winsys/nouveau/drm/nouveau_drm_winsys.c | 199 +- src/gallium/winsys/panfrost/drm/meson.build | 19 +- src/gallium/winsys/radeon/drm/meson.build | 19 +- src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 11 +- .../winsys/radeon/drm/radeon_drm_winsys.c | 1 + src/gallium/winsys/svga/drm/meson.build | 19 +- .../winsys/svga/drm/pb_buffer_simple_fenced.c | 32 +- src/gallium/winsys/svga/drm/svga_drm_public.h | 30 +- src/gallium/winsys/svga/drm/vmw_buffer.c | 30 +- src/gallium/winsys/svga/drm/vmw_buffer.h | 30 +- src/gallium/winsys/svga/drm/vmw_context.c | 94 +- src/gallium/winsys/svga/drm/vmw_context.h | 39 +- src/gallium/winsys/svga/drm/vmw_fence.c | 31 +- src/gallium/winsys/svga/drm/vmw_fence.h | 30 +- src/gallium/winsys/svga/drm/vmw_msg.c | 27 +- src/gallium/winsys/svga/drm/vmw_msg.h | 31 +- src/gallium/winsys/svga/drm/vmw_query.c | 30 +- src/gallium/winsys/svga/drm/vmw_query.h | 30 +- src/gallium/winsys/svga/drm/vmw_screen.c | 32 +- src/gallium/winsys/svga/drm/vmw_screen.h | 42 +- src/gallium/winsys/svga/drm/vmw_screen_dri.c | 39 +- .../winsys/svga/drm/vmw_screen_ioctl.c | 79 +- .../winsys/svga/drm/vmw_screen_pools.c | 30 +- src/gallium/winsys/svga/drm/vmw_screen_svga.c | 189 +- src/gallium/winsys/svga/drm/vmw_shader.c | 30 +- src/gallium/winsys/svga/drm/vmw_shader.h | 30 +- src/gallium/winsys/svga/drm/vmw_surface.c | 46 +- src/gallium/winsys/svga/drm/vmw_surface.h | 38 +- src/gallium/winsys/svga/drm/vmwgfx_drm.h | 36 +- src/gallium/winsys/sw/dri/dri_sw_winsys.c | 46 +- src/gallium/winsys/sw/dri/meson.build | 19 +- src/gallium/winsys/sw/gdi/meson.build | 20 +- src/gallium/winsys/sw/hgl/meson.build | 20 +- src/gallium/winsys/sw/kms-dri/meson.build | 20 +- src/gallium/winsys/sw/null/meson.build | 19 +- src/gallium/winsys/sw/null/null_sw_winsys.h | 7 + src/gallium/winsys/sw/wrapper/meson.build | 19 +- src/gallium/winsys/sw/xlib/meson.build | 21 +- src/gallium/winsys/tegra/drm/meson.build | 19 +- src/gallium/winsys/v3d/drm/meson.build | 19 +- src/gallium/winsys/vc4/drm/meson.build | 19 +- src/gallium/winsys/virgl/common/meson.build | 20 +- src/gallium/winsys/virgl/drm/meson.build | 19 +- .../winsys/virgl/drm/virgl_drm_winsys.c | 6 +- src/gallium/winsys/virgl/vtest/meson.build | 19 +- src/gbm/backends/dri/gbm_dri.c | 517 +- src/gbm/backends/dri/gbm_driint.h | 40 +- src/gbm/backends/dri/meson.build | 24 + src/gbm/main/backend.c | 108 +- src/gbm/main/gbm.h | 73 + src/gbm/meson.build | 36 +- src/getopt/meson.build | 19 +- src/gfxstream/.clang-format | 15 + .../codegen/generate-gfxstream-vulkan.sh | 42 + .../codegen/scripts/cereal/__init__.py | 20 + .../codegen/scripts/cereal/api_log_decoder.py | 343 + .../codegen/scripts/cereal/common/__init__.py | 4 + .../codegen/scripts/cereal/common/codegen.py | 1087 + .../scripts/cereal/common/vulkantypes.py | 1310 + .../codegen/scripts/cereal/counting.py | 679 + .../codegen/scripts/cereal/decoder.py | 970 + .../codegen/scripts/cereal/decodersnapshot.py | 442 + .../codegen/scripts/cereal/deepcopy.py | 371 + .../codegen/scripts/cereal/dispatch.py | 482 + .../codegen/scripts/cereal/encoder.py | 686 + .../scripts/cereal/extensionstructs.py | 125 + .../codegen/scripts/cereal/frontend.py | 90 + .../codegen/scripts/cereal/functable.py | 570 + .../codegen/scripts/cereal/handlemap.py | 252 + .../codegen/scripts/cereal/marshaling.py | 1020 + .../codegen/scripts/cereal/marshalingdefs.py | 511 + .../scripts/cereal/reservedmarshaling.py | 1046 + .../codegen/scripts/cereal/subdecode.py | 410 + .../codegen/scripts/cereal/testing.py | 387 + .../codegen/scripts/cereal/transform.py | 336 + src/gfxstream/codegen/scripts/cereal/unbox.py | 69 + .../cereal/vkextensionstructuretype.py | 34 + .../codegen/scripts/cereal/wrapperdefs.py | 96 + .../codegen/scripts/cerealgenerator.py | 872 + src/gfxstream/codegen/scripts/cgenerator.py | 292 + src/gfxstream/codegen/scripts/generator.py | 803 + src/gfxstream/codegen/scripts/genvk.py | 230 + src/gfxstream/codegen/scripts/reg.py | 910 + src/gfxstream/codegen/xml/vk_gfxstream.xml | 286 + .../AddressSpaceStream.cpp | 584 + .../GoldfishAddressSpaceStream.cpp | 120 + .../VirtioGpuAddressSpaceStream.cpp | 141 + .../goldfish_address_space.cpp | 538 + .../include/AddressSpaceStream.h | 85 + .../include/GoldfishAddressSpaceStream.h | 10 + .../include/VirtioGpuAddressSpaceStream.h | 10 + .../include/address_space.h | 70 + .../include/address_space_graphics_types.h | 353 + .../include/goldfish_address_space.h | 130 + .../guest/GoldfishAddressSpace/meson.build | 24 + .../guest/android/ANativeWindowAndroid.cpp | 217 + .../guest/android/ANativeWindowAndroid.h | 48 + .../guest/android/ANativeWindowEmulated.cpp | 188 + .../guest/android/ANativeWindowEmulated.h | 86 + .../guest/android/GfxStreamGralloc.cpp | 29 + .../guest/android/GrallocEmulated.cpp | 571 + src/gfxstream/guest/android/GrallocEmulated.h | 100 + .../guest/android/GrallocGoldfish.cpp | 116 + src/gfxstream/guest/android/GrallocGoldfish.h | 49 + .../guest/android/GrallocMinigbm.cpp | 190 + src/gfxstream/guest/android/GrallocMinigbm.h | 59 + .../include/gfxstream/guest/ANativeWindow.h | 61 + .../gfxstream/guest/GfxStreamGralloc.h | 189 + .../include/gfxstream/guest/goldfish_sync.h | 80 + .../GfxStreamConnection.cpp | 10 + .../connection-manager/GfxStreamConnection.h | 17 + .../GfxStreamConnectionManager.cpp | 146 + .../GfxStreamConnectionManager.h | 56 + .../connection-manager/QemuPipeStream.cpp | 247 + .../guest/connection-manager/QemuPipeStream.h | 48 + .../connection-manager/QemuPipeStreamStub.cpp | 62 + .../VirtioGpuPipeStream.cpp | 330 + .../connection-manager/VirtioGpuPipeStream.h | 57 + .../guest/connection-manager/meson.build | 23 + .../include/gfxstream/guest/IOStream.h | 139 + src/gfxstream/guest/iostream/meson.build | 11 + src/gfxstream/guest/meson.build | 61 + src/gfxstream/guest/platform/VirtGpu.cpp | 60 + .../guest/platform/fuchsia/FuchsiaVirtGpu.h | 59 + .../platform/fuchsia/FuchsiaVirtGpuBlob.cpp | 49 + .../fuchsia/FuchsiaVirtGpuBlobMapping.cpp | 13 + .../platform/fuchsia/FuchsiaVirtGpuDevice.cpp | 143 + .../platform/fuchsia/os_dirent_fuchsia.cpp | 94 + src/gfxstream/guest/platform/include/Sync.h | 31 + .../guest/platform/include/VirtGpu.h | 221 + .../include/virtgpu_gfxstream_protocol.h | 146 + .../guest/platform/kumquat/VirtGpuKumquat.h | 82 + .../platform/kumquat/VirtGpuKumquatBlob.cpp | 126 + .../kumquat/VirtGpuKumquatBlobMapping.cpp | 21 + .../platform/kumquat/VirtGpuKumquatDevice.cpp | 243 + .../platform/kumquat/VirtGpuKumquatStub.cpp | 19 + .../platform/kumquat/VirtGpuKumquatSync.cpp | 43 + .../platform/kumquat/VirtGpuKumquatSync.h | 25 + .../guest/platform/kumquat/meson.build | 21 + .../guest/platform/linux/LinuxSync.cpp | 47 + .../guest/platform/linux/LinuxSync.h | 25 + .../guest/platform/linux/LinuxVirtGpu.h | 72 + .../guest/platform/linux/LinuxVirtGpuBlob.cpp | 150 + .../linux/LinuxVirtGpuBlobMapping.cpp | 17 + .../platform/linux/LinuxVirtGpuDevice.cpp | 252 + .../guest/platform/linux/meson.build | 17 + src/gfxstream/guest/platform/meson.build | 19 + src/gfxstream/guest/vulkan/gfxstream_icd.json | 7 + .../guest/vulkan/gfxstream_vk_android.cpp | 68 + .../guest/vulkan/gfxstream_vk_cmd.cpp | 213 + .../guest/vulkan/gfxstream_vk_device.cpp | 748 + .../guest/vulkan/gfxstream_vk_fuchsia.cpp | 189 + .../guest/vulkan/gfxstream_vk_wsi.cpp | 38 + .../guest/vulkan/gfxstream_vk_wsi_stub.cpp | 13 + src/gfxstream/guest/vulkan/meson.build | 72 + .../vulkan/stubs/GfxStreamRenderControl.cpp | 13 + .../vulkan/stubs/GfxStreamRenderControl.h | 17 + src/gfxstream/guest/vulkan/stubs/meson.build | 15 + .../vulkan_enc/AndroidHardwareBuffer.cpp | 403 + .../guest/vulkan_enc/AndroidHardwareBuffer.h | 47 + .../vulkan_enc/CommandBufferStagingStream.cpp | 239 + .../vulkan_enc/CommandBufferStagingStream.h | 108 + .../DescriptorSetVirtualization.cpp | 549 + .../vulkan_enc/DescriptorSetVirtualization.h | 143 + .../vulkan_enc/GfxStreamVulkanConnection.cpp | 14 + .../vulkan_enc/GfxStreamVulkanConnection.h | 24 + .../HostVisibleMemoryVirtualization.cpp | 61 + .../HostVisibleMemoryVirtualization.h | 64 + .../guest/vulkan_enc/ResourceTracker.cpp | 7692 ++ .../guest/vulkan_enc/ResourceTracker.h | 931 + src/gfxstream/guest/vulkan_enc/Resources.cpp | 270 + src/gfxstream/guest/vulkan_enc/Resources.h | 149 + src/gfxstream/guest/vulkan_enc/Validation.cpp | 42 + src/gfxstream/guest/vulkan_enc/Validation.h | 23 + .../guest/vulkan_enc/VkEncoder.cpp.inl | 95 + .../guest/vulkan_enc/VkEncoder.h.inl | 14 + .../guest/vulkan_enc/VulkanHandleMapping.cpp | 30 + .../guest/vulkan_enc/VulkanHandleMapping.h | 43 + .../guest/vulkan_enc/VulkanHandles.h | 162 + .../guest/vulkan_enc/VulkanStreamGuest.cpp | 154 + .../guest/vulkan_enc/VulkanStreamGuest.h | 92 + .../guest/vulkan_enc/gfxstream_vk_private.cpp | 60 + .../guest/vulkan_enc/gfxstream_vk_private.h | 141 + .../vulkan_enc/goldfish_vk_private_defs.h | 35 + src/gfxstream/guest/vulkan_enc/meson.build | 66 + ...eueFlushCommandsGOOGLE_encode_impl.cpp.inl | 58 + .../vk_android_native_buffer_gfxstream.h | 251 + .../guest/vulkan_enc/vk_format_info.h | 198 + .../guest/vulkan_enc/vk_platform_compat.h | 21 + src/gfxstream/guest/vulkan_enc/vk_struct_id.h | 140 + src/gfxstream/guest/vulkan_enc/vk_util.h | 237 + src/gfxstream/meson.build | 7 + src/glx/apple/meson.build | 21 +- src/glx/clientinfo.c | 78 +- src/glx/create_context.c | 4 +- src/glx/dri2.c | 46 +- src/glx/dri2_glx.c | 584 +- src/glx/dri2_priv.h | 40 +- src/glx/dri3_glx.c | 655 +- src/glx/dri3_priv.h | 56 +- src/glx/dri_common.c | 420 +- src/glx/dri_common.h | 44 +- src/glx/dri_common_interop.c | 114 - src/glx/dri_common_query_renderer.c | 115 +- src/glx/drisw_glx.c | 525 +- src/glx/drisw_priv.h | 30 +- src/glx/driwindows_glx.c | 93 +- src/glx/glx_error.h | 6 +- src/glx/glx_pbuffer.c | 37 +- src/glx/glxclient.h | 84 +- src/glx/glxcmds.c | 136 +- src/glx/glxconfig.c | 10 +- src/glx/glxconfig.h | 12 +- src/glx/glxext.c | 278 +- src/glx/glxhash.c | 18 +- src/glx/indirect_glx.c | 18 +- src/glx/meson.build | 42 +- src/glx/renderpix.c | 18 +- src/glx/tests/clientinfo_unittest.cpp | 716 - src/glx/tests/create_context_unittest.cpp | 523 - src/glx/tests/dispatch-index-check | 30 - src/glx/tests/enum_sizes.cpp | 556 - src/glx/tests/fake_glx_screen.cpp | 101 - src/glx/tests/fake_glx_screen.h | 133 - src/glx/tests/indirect_api.cpp | 1526 - src/glx/tests/mock_xdisplay.h | 32 - ...query_renderer_implementation_unittest.cpp | 313 - src/glx/tests/query_renderer_unittest.cpp | 436 - src/glx/vertarr.c | 20 +- src/glx/windows/meson.build | 19 +- src/gtest/meson.build | 19 +- src/imagination/common/device_info/bxs-4-64.h | 1 + src/imagination/common/meson.build | 20 +- src/imagination/common/pvr_device_info.h | 1 + src/imagination/csbgen/meson.build | 20 +- src/imagination/csbgen/rogue_cr.xml | 8 + src/imagination/meson.build | 20 +- src/imagination/rogue/meson.build | 20 +- .../rogue/nir/rogue_nir_lower_io.c | 7 +- src/imagination/rogue/tools/meson.build | 20 +- src/imagination/vulkan/meson.build | 24 +- src/imagination/vulkan/pds/meson.build | 21 +- src/imagination/vulkan/pds/pvr_pds.c | 115 +- src/imagination/vulkan/pds/pvr_pds.h | 22 +- src/imagination/vulkan/pvr_blit.c | 39 +- src/imagination/vulkan/pvr_cmd_buffer.c | 81 +- src/imagination/vulkan/pvr_csb_enum_helpers.h | 10 +- src/imagination/vulkan/pvr_descriptor_set.c | 8 +- src/imagination/vulkan/pvr_device.c | 27 +- src/imagination/vulkan/pvr_formats.c | 32 +- src/imagination/vulkan/pvr_formats.h | 3 +- src/imagination/vulkan/pvr_hw_pass.c | 84 +- src/imagination/vulkan/pvr_image.c | 81 +- src/imagination/vulkan/pvr_job_common.h | 3 +- src/imagination/vulkan/pvr_job_compute.c | 6 + src/imagination/vulkan/pvr_job_render.c | 1 + src/imagination/vulkan/pvr_job_render.h | 1 + src/imagination/vulkan/pvr_job_transfer.c | 15 +- src/imagination/vulkan/pvr_pass.c | 4 +- src/imagination/vulkan/pvr_pipeline.c | 12 +- src/imagination/vulkan/pvr_private.h | 46 +- src/imagination/vulkan/pvr_query_compute.c | 5 +- src/imagination/vulkan/pvr_queue.c | 18 +- .../vulkan/winsys/powervr/pvr_drm.c | 20 +- .../vulkan/winsys/powervr/pvr_drm.h | 26 + .../vulkan/winsys/powervr/pvr_drm_bo.c | 96 +- .../winsys/powervr/pvr_drm_job_render.c | 3 + src/imagination/vulkan/winsys/pvr_winsys.h | 3 +- .../vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c | 10 +- .../winsys/pvrsrvkm/pvr_srv_job_compute.c | 6 +- .../winsys/pvrsrvkm/pvr_srv_job_render.c | 4 + src/intel/blorp/blorp.h | 22 +- src/intel/blorp/blorp_blit.c | 139 +- src/intel/blorp/blorp_brw.c | 18 +- src/intel/blorp/blorp_clear.c | 204 +- src/intel/blorp/blorp_elk.c | 18 +- src/intel/blorp/blorp_genX_exec_brw.h | 329 +- src/intel/blorp/blorp_genX_exec_elk.h | 53 +- src/intel/blorp/blorp_nir_builder.h | 8 +- src/intel/blorp/blorp_priv.h | 3 + src/intel/blorp/meson.build | 21 +- src/intel/ci/angle-anv-adl-fails.txt | 55 + src/intel/ci/angle-anv-jsl-fails.txt | 60 +- src/intel/ci/angle-anv-jsl-flakes.txt | 5 + src/intel/ci/angle-anv-jsl-skips.txt | 7 - src/intel/ci/angle-anv-tgl-fails.txt | 63 +- src/intel/ci/angle-anv-tgl-flakes.txt | 1 + src/intel/ci/angle-anv-tgl-skips.txt | 7 - src/intel/ci/anv-adl-fails.txt | 4 + src/intel/ci/anv-adl-flakes.txt | 4 + src/intel/ci/anv-adl-skips.txt | 9 + src/intel/ci/anv-jsl-fails.txt | 2 + ...merge-skips.txt => anv-jsl-slow-skips.txt} | 2 +- src/intel/ci/anv-tgl-skips.txt | 2 + src/intel/ci/deqp-anv-adl-angle-full.toml | 66 + src/intel/ci/deqp-anv-adl-angle.toml | 68 + src/intel/ci/deqp-anv-adl-full.toml | 6 + src/intel/ci/deqp-anv-adl.toml | 41 + src/intel/ci/deqp-anv-jsl.toml | 1 - src/intel/ci/deqp-anv-tgl-full.toml | 1 + src/intel/ci/deqp-anv-tgl.toml | 1 + src/intel/ci/deqp-intel-adl-cl.toml | 9 + src/intel/ci/deqp-intel-adl-skqp.toml | 4 + src/intel/ci/gitlab-ci-inc.yml | 79 +- src/intel/ci/gitlab-ci.yml | 74 +- src/intel/ci/intel-adl-fails.txt | 33 + src/intel/ci/intel-adl-flakes.txt | 8 + src/intel/ci/iris-amly-flakes.txt | 1 + src/intel/ci/iris-apl-flakes.txt | 1 - src/intel/ci/iris-jsl-skips.txt | 3 + src/intel/ci/iris-kbl-fails.txt | 3 - src/intel/ci/iris-kbl-flakes.txt | 2 + src/intel/ci/traces-iris.yml | 24 +- src/intel/common/i915/intel_gem.c | 12 + src/intel/common/intel_aux_map.c | 18 +- src/intel/common/intel_aux_map.h | 42 +- src/intel/common/intel_common.c | 32 + src/intel/common/intel_common.h | 10 + src/intel/common/intel_compute_slm.c | 184 + src/intel/common/intel_compute_slm.h | 17 + src/intel/common/intel_debug_identifier.c | 141 + src/intel/common/intel_debug_identifier.h | 62 + src/intel/common/intel_engine.c | 7 +- src/intel/common/intel_gem.h | 1 + src/intel/common/intel_genX_state_brw.h | 51 +- src/intel/common/intel_l3_config.c | 3 + src/intel/common/intel_measure.c | 44 +- src/intel/common/intel_measure.h | 6 + src/intel/common/meson.build | 29 +- src/intel/common/mi_builder.h | 301 +- src/intel/common/tests/mi_builder_test.cpp | 73 +- src/intel/common/xe/intel_queue.c | 57 + src/intel/common/xe/intel_queue.h | 10 + src/intel/compiler/brw_asm.c | 166 + src/intel/compiler/brw_asm.h | 123 +- src/intel/compiler/brw_asm_internal.h | 107 + src/intel/compiler/brw_asm_tool.c | 145 +- src/intel/compiler/brw_cfg.cpp | 18 +- src/intel/compiler/brw_cfg.h | 18 +- src/intel/compiler/brw_compile_bs.cpp | 227 + src/intel/compiler/brw_compile_cs.cpp | 226 + src/intel/compiler/brw_compile_fs.cpp | 1791 + src/intel/compiler/brw_compile_gs.cpp | 112 +- .../{brw_mesh.cpp => brw_compile_mesh.cpp} | 191 +- src/intel/compiler/brw_compile_tcs.cpp | 148 +- src/intel/compiler/brw_compile_tes.cpp | 187 + src/intel/compiler/brw_compile_vs.cpp | 55 +- src/intel/compiler/brw_compiler.c | 43 +- src/intel/compiler/brw_compiler.h | 94 +- src/intel/compiler/brw_dead_control_flow.cpp | 121 - src/intel/compiler/brw_debug_recompile.c | 2 +- src/intel/compiler/brw_def_analysis.cpp | 217 + src/intel/compiler/brw_disasm.c | 199 +- src/intel/compiler/brw_disasm.h | 4 + src/intel/compiler/brw_disasm_info.cpp | 13 +- src/intel/compiler/brw_disasm_info.h | 3 +- src/intel/compiler/brw_eu.c | 8 +- src/intel/compiler/brw_eu.h | 32 +- src/intel/compiler/brw_eu_compact.c | 120 +- src/intel/compiler/brw_eu_defines.h | 259 +- src/intel/compiler/brw_eu_emit.c | 438 +- src/intel/compiler/brw_eu_validate.c | 1882 +- src/intel/compiler/brw_fs.cpp | 3272 +- src/intel/compiler/brw_fs.h | 289 +- src/intel/compiler/brw_fs_bank_conflicts.cpp | 10 +- src/intel/compiler/brw_fs_builder.h | 482 +- .../compiler/brw_fs_cmod_propagation.cpp | 62 +- .../compiler/brw_fs_combine_constants.cpp | 190 +- .../compiler/brw_fs_copy_propagation.cpp | 631 +- src/intel/compiler/brw_fs_cse.cpp | 483 +- .../compiler/brw_fs_dead_code_eliminate.cpp | 45 +- src/intel/compiler/brw_fs_generator.cpp | 193 +- src/intel/compiler/brw_fs_live_variables.cpp | 26 +- src/intel/compiler/brw_fs_live_variables.h | 6 +- src/intel/compiler/brw_fs_lower.cpp | 283 +- src/intel/compiler/brw_fs_lower_dpas.cpp | 137 +- .../brw_fs_lower_integer_multiplication.cpp | 94 +- src/intel/compiler/brw_fs_lower_pack.cpp | 8 +- src/intel/compiler/brw_fs_lower_regioning.cpp | 140 +- .../compiler/brw_fs_lower_simd_width.cpp | 104 +- src/intel/compiler/brw_fs_nir.cpp | 4972 +- src/intel/compiler/brw_fs_opt.cpp | 65 +- src/intel/compiler/brw_fs_opt_algebraic.cpp | 472 +- .../compiler/brw_fs_opt_virtual_grfs.cpp | 14 +- src/intel/compiler/brw_fs_reg_allocate.cpp | 390 +- .../compiler/brw_fs_register_coalesce.cpp | 6 +- .../compiler/brw_fs_saturate_propagation.cpp | 125 +- src/intel/compiler/brw_fs_scoreboard.cpp | 37 +- src/intel/compiler/brw_fs_sel_peephole.cpp | 229 - src/intel/compiler/brw_fs_thread_payload.cpp | 32 +- src/intel/compiler/brw_fs_validate.cpp | 234 +- src/intel/compiler/brw_fs_visitor.cpp | 723 +- src/intel/compiler/brw_fs_workaround.cpp | 98 +- src/intel/compiler/brw_gram.y | 404 +- src/intel/compiler/brw_inst.h | 168 +- src/intel/compiler/brw_ir_fs.h | 495 +- src/intel/compiler/brw_ir_performance.cpp | 38 +- src/intel/compiler/brw_kernel.c | 110 +- src/intel/compiler/brw_lex.l | 12 +- .../compiler/brw_lower_logical_sends.cpp | 1608 +- src/intel/compiler/brw_lower_subgroup_ops.cpp | 546 + src/intel/compiler/brw_nir.c | 217 +- src/intel/compiler/brw_nir.h | 35 +- .../brw_nir_lower_alpha_to_coverage.c | 3 +- .../brw_nir_lower_cooperative_matrix.c | 210 +- .../compiler/brw_nir_lower_cs_intrinsics.c | 184 +- src/intel/compiler/brw_nir_lower_fsign.py | 63 + .../brw_nir_lower_intersection_shader.c | 43 +- .../compiler/brw_nir_lower_ray_queries.c | 5 +- .../compiler/brw_nir_lower_rt_intrinsics.c | 45 +- .../compiler/brw_nir_lower_shader_calls.c | 6 +- .../compiler/brw_nir_lower_storage_image.c | 343 +- src/intel/compiler/brw_nir_opt_fsat.c | 259 + src/intel/compiler/brw_nir_rt.c | 22 +- src/intel/compiler/brw_nir_rt_builder.h | 43 +- src/intel/compiler/brw_predicated_break.cpp | 243 - src/intel/compiler/brw_print.cpp | 661 + src/intel/compiler/brw_private.h | 2 + src/intel/compiler/brw_reg.h | 714 +- src/intel/compiler/brw_reg_type.c | 607 +- src/intel/compiler/brw_reg_type.h | 239 +- .../compiler/brw_schedule_instructions.cpp | 83 +- src/intel/compiler/brw_shader.cpp | 339 +- src/intel/compiler/brw_simd_selection.cpp | 8 + src/intel/compiler/brw_vue_map.c | 2 +- src/intel/compiler/elk/elk_asm.h | 1 + src/intel/compiler/elk/elk_cfg.h | 5 + src/intel/compiler/elk/elk_compiler.c | 1 + src/intel/compiler/elk/elk_compiler.h | 43 +- src/intel/compiler/elk/elk_disasm.c | 29 +- src/intel/compiler/elk/elk_eu.c | 2 +- src/intel/compiler/elk/elk_eu.h | 1 + src/intel/compiler/elk/elk_eu_compact.c | 12 +- src/intel/compiler/elk/elk_fs.cpp | 106 +- src/intel/compiler/elk/elk_fs.h | 12 +- .../compiler/elk/elk_fs_combine_constants.cpp | 4 + src/intel/compiler/elk/elk_fs_generator.cpp | 2 +- .../compiler/elk/elk_fs_live_variables.cpp | 14 +- .../compiler/elk/elk_fs_live_variables.h | 2 + src/intel/compiler/elk/elk_fs_nir.cpp | 177 +- .../compiler/elk/elk_fs_reg_allocate.cpp | 11 +- .../elk/elk_fs_saturate_propagation.cpp | 15 +- src/intel/compiler/elk/elk_gram.y | 30 +- src/intel/compiler/elk/elk_ir_allocator.h | 4 + src/intel/compiler/elk/elk_ir_analysis.h | 3 + src/intel/compiler/elk/elk_lex.l | 3 + src/intel/compiler/elk/elk_nir.c | 43 +- src/intel/compiler/elk/elk_nir.h | 7 - .../elk/elk_nir_attribute_workarounds.c | 3 +- .../elk/elk_nir_lower_alpha_to_coverage.c | 3 +- .../elk/elk_nir_lower_cs_intrinsics.c | 11 +- src/intel/compiler/elk/elk_nir_options.c | 2 + src/intel/compiler/elk/elk_reg.h | 12 +- src/intel/compiler/elk/elk_shader.cpp | 2 +- .../compiler/elk/elk_vec4_live_variables.h | 2 + src/intel/compiler/elk/elk_vec4_nir.cpp | 43 +- src/intel/compiler/elk/meson.build | 19 +- src/intel/compiler/intel_clc.c | 78 +- src/intel/compiler/intel_gfx_ver_enum.h | 2 + src/intel/compiler/intel_nir.h | 2 + .../intel_nir_blockify_uniform_loads.c | 21 +- .../intel_nir_clamp_image_1d_2d_array_sizes.c | 3 +- .../intel_nir_clamp_per_vertex_loads.c | 6 +- .../compiler/intel_nir_lower_conversions.c | 6 +- ..._lower_non_uniform_barycentric_at_sample.c | 4 +- ...tel_nir_lower_non_uniform_resource_intel.c | 6 +- src/intel/compiler/intel_nir_lower_printf.c | 66 + .../intel_nir_lower_shading_rate_output.c | 3 +- src/intel/compiler/intel_nir_lower_sparse.c | 3 +- .../compiler/intel_nir_opt_peephole_ffma.c | 3 +- .../intel_nir_opt_peephole_imul32x16.c | 3 +- .../compiler/intel_nir_tcs_workarounds.c | 1 + src/intel/compiler/meson.build | 86 +- src/intel/compiler/test_eu_compact.cpp | 15 +- src/intel/compiler/test_eu_validate.cpp | 1058 +- .../compiler/test_fs_cmod_propagation.cpp | 840 +- .../compiler/test_fs_combine_constants.cpp | 18 +- .../compiler/test_fs_copy_propagation.cpp | 104 +- src/intel/compiler/test_fs_cse.cpp | 136 + .../compiler/test_fs_saturate_propagation.cpp | 231 +- src/intel/compiler/test_fs_scoreboard.cpp | 379 +- src/intel/compiler/test_predicated_break.cpp | 340 - src/intel/decoder/intel_batch_decoder.c | 91 +- src/intel/decoder/intel_decoder.c | 16 +- src/intel/decoder/intel_decoder.h | 18 +- src/intel/dev/gen_wa_helpers.py | 2 + src/intel/dev/i915/intel_device_info.c | 18 +- src/intel/dev/intel_debug.c | 133 +- src/intel/dev/intel_debug.h | 51 +- src/intel/dev/intel_device_info.c | 355 +- src/intel/dev/intel_device_info.h | 11 +- src/intel/dev/intel_device_info.py | 38 +- src/intel/dev/intel_device_info_test.c | 8 +- src/intel/dev/intel_hwconfig.c | 101 +- src/intel/dev/mesa_defs.json | 573 +- src/intel/dev/meson.build | 21 +- src/intel/dev/xe/intel_device_info.c | 31 +- src/intel/ds/intel_driver_ds.cc | 48 +- src/intel/ds/intel_driver_ds.h | 15 + src/intel/ds/intel_pps_driver.cc | 24 +- src/intel/ds/intel_pps_driver.h | 2 +- src/intel/ds/intel_pps_perf.cc | 15 +- src/intel/ds/intel_pps_perf.h | 3 - src/intel/ds/intel_tracepoints.py | 62 +- src/intel/ds/meson.build | 2 +- src/intel/executor/examples/bfi.lua | 41 + src/intel/executor/examples/dp4a.lua | 41 + src/intel/executor/examples/help_example.lua | 18 + src/intel/executor/examples/nop.lua | 6 + src/intel/executor/examples/test.lua | 20 + src/intel/executor/executor.h | 94 + src/intel/executor/executor_genx.c | 189 + src/intel/executor/executor_genx.h | 10 + src/intel/executor/executor_macros.c | 407 + src/intel/executor/executor_main.c | 858 + src/intel/executor/meson.build | 58 + src/intel/genxml/gen11.xml | 75 +- src/intel/genxml/gen12.xml | 285 +- src/intel/genxml/gen125.xml | 88 +- src/intel/genxml/gen20.xml | 581 +- src/intel/genxml/gen30.xml | 4 + src/intel/genxml/gen30_rt.xml | 4 + src/intel/genxml/gen8.xml | 10 +- src/intel/genxml/gen9.xml | 100 +- src/intel/genxml/genX_cl_pack.h | 2 + src/intel/genxml/genX_pack.h | 2 + src/intel/genxml/genX_rt_pack.h | 2 + src/intel/genxml/gen_bits_header.py | 1 + src/intel/genxml/gen_macros.h | 3 + src/intel/genxml/intel_genxml.py | 2 + src/intel/genxml/meson.build | 21 +- src/intel/isl/isl.c | 654 +- src/intel/isl/isl.h | 54 +- src/intel/isl/isl_drm.c | 1 - src/intel/isl/isl_emit_cpb.c | 7 + src/intel/isl/isl_emit_depth_stencil.c | 18 +- src/intel/isl/isl_format.c | 12 +- src/intel/isl/isl_genX_helpers.h | 240 + src/intel/isl/isl_gfx12.c | 108 +- src/intel/isl/isl_gfx12.h | 4 +- src/intel/isl/isl_gfx20.c | 265 + src/intel/isl/isl_gfx20.h | 49 + src/intel/isl/isl_gfx9.c | 13 +- src/intel/isl/isl_gfx9.h | 2 +- src/intel/isl/isl_priv.h | 10 + src/intel/isl/isl_surface_state.c | 93 +- src/intel/isl/isl_tiled_memcpy.c | 473 +- src/intel/isl/meson.build | 40 +- .../isl_surf_get_image_range_B_tile_test.c | 164 + .../tests/isl_tilememcpy_tiled_unittest.cpp | 306 +- src/intel/meson.build | 20 +- src/intel/nullhw-layer/meson.build | 19 +- src/intel/perf/gen_perf.py | 16 +- src/intel/perf/i915/intel_perf.c | 295 + src/intel/perf/i915/intel_perf.h | 34 + src/intel/perf/intel_perf.c | 541 +- src/intel/perf/intel_perf.h | 96 +- src/intel/perf/intel_perf_common.c | 32 + src/intel/perf/intel_perf_common.h | 11 + src/intel/perf/intel_perf_mdapi.c | 7 +- src/intel/perf/intel_perf_query.c | 110 +- src/intel/perf/intel_perf_query.h | 4 +- src/intel/perf/intel_perf_query_layout.c | 4 +- src/intel/perf/intel_perf_setup.h | 24 +- src/intel/perf/meson.build | 9 + src/intel/perf/oa-arlgt1.xml | 34793 +++++++++ src/intel/perf/oa-arlgt2.xml | 58762 ++++++++++++++++ src/intel/perf/oa-bmg.xml | 7000 ++ src/intel/perf/oa-lnl.xml | 6772 ++ src/intel/perf/xe/intel_perf.c | 371 + src/intel/perf/xe/intel_perf.h | 33 + src/intel/shaders/meson.build | 7 +- src/intel/tools/README.md | 91 + src/intel/tools/aubinator_error_decode.c | 1 + src/intel/tools/intel_dev_info.c | 8 +- src/intel/tools/intel_dump_gpu.c | 1 + src/intel/tools/intel_hang_replay.c | 154 +- src/intel/tools/intel_noop_drm_shim.c | 2 +- src/intel/tools/meson.build | 19 +- src/intel/vulkan/anv_allocator.c | 12 +- src/intel/vulkan/anv_android.c | 85 +- src/intel/vulkan/anv_android.h | 7 + src/intel/vulkan/anv_android_stubs.c | 8 + src/intel/vulkan/anv_api_version.h | 22 + src/intel/vulkan/anv_batch_chain.c | 277 +- src/intel/vulkan/anv_blorp.c | 763 +- src/intel/vulkan/anv_buffer.c | 334 + src/intel/vulkan/anv_buffer_view.c | 106 + src/intel/vulkan/anv_cmd_buffer.c | 74 +- src/intel/vulkan/anv_descriptor_set.c | 26 +- src/intel/vulkan/anv_device.c | 4009 +- src/intel/vulkan/anv_event.c | 85 + src/intel/vulkan/anv_formats.c | 120 +- src/intel/vulkan/anv_gem_stubs.c | 24 +- src/intel/vulkan/anv_genX.h | 69 +- src/intel/vulkan/anv_image.c | 1707 +- src/intel/vulkan/anv_image_host_copy.c | 504 + src/intel/vulkan/anv_image_view.c | 427 + src/intel/vulkan/anv_instance.c | 280 + src/intel/vulkan/anv_internal_kernels.c | 68 +- src/intel/vulkan/anv_kmd_backend.h | 20 +- src/intel/vulkan/anv_measure.c | 14 +- src/intel/vulkan/anv_nir.h | 24 +- .../vulkan/anv_nir_apply_pipeline_layout.c | 204 +- .../vulkan/anv_nir_compute_push_layout.c | 110 +- .../anv_nir_lower_load_patch_vertices_in.c | 9 +- src/intel/vulkan/anv_nir_lower_multiview.c | 9 +- .../vulkan/anv_nir_lower_resource_intel.c | 3 +- src/intel/vulkan/anv_nir_lower_ubo_loads.c | 24 +- src/intel/vulkan/anv_perf.c | 154 +- src/intel/vulkan/anv_physical_device.c | 3151 + src/intel/vulkan/anv_pipeline.c | 442 +- src/intel/vulkan/anv_pipeline_cache.c | 263 +- src/intel/vulkan/anv_private.h | 828 +- src/intel/vulkan/anv_queue.c | 43 +- src/intel/vulkan/anv_sampler.c | 49 + src/intel/vulkan/anv_sparse.c | 1005 +- src/intel/vulkan/anv_util.c | 71 + src/intel/vulkan/anv_utrace.c | 394 +- src/intel/vulkan/anv_va.c | 24 +- src/intel/vulkan/anv_video.c | 231 +- src/intel/vulkan/anv_wsi.c | 2 + .../vulkan/genX_acceleration_structure.c | 2 +- src/intel/vulkan/genX_blorp_exec.c | 81 +- src/intel/vulkan/genX_cmd_buffer.c | 2111 +- src/intel/vulkan/genX_cmd_compute.c | 430 +- src/intel/vulkan/genX_cmd_draw.c | 736 +- .../vulkan/genX_cmd_draw_generated_indirect.h | 19 +- src/intel/vulkan/genX_cmd_video.c | 45 +- src/intel/vulkan/genX_cmd_video_enc.c | 2459 + src/intel/vulkan/genX_gfx_state.c | 537 +- src/intel/vulkan/genX_gpu_memcpy.c | 179 +- src/intel/vulkan/genX_init_state.c | 454 +- src/intel/vulkan/genX_internal_kernels.c | 4 +- src/intel/vulkan/genX_mi_builder.h | 24 + src/intel/vulkan/genX_pipeline.c | 143 +- src/intel/vulkan/genX_query.c | 267 +- src/intel/vulkan/genX_simple_shader.c | 79 +- src/intel/vulkan/grl/grl_metakernel_gen.py | 10 +- src/intel/vulkan/grl/meson.build | 22 +- src/intel/vulkan/i915/anv_batch_chain.c | 364 +- src/intel/vulkan/i915/anv_batch_chain.h | 19 +- src/intel/vulkan/i915/anv_kmd_backend.c | 4 +- src/intel/vulkan/i915/anv_queue.c | 7 + src/intel/vulkan/layers/anv_rmv_layer.c | 15 +- src/intel/vulkan/meson.build | 39 +- src/intel/vulkan/tests/block_pool_no_free.c | 4 +- src/intel/vulkan/tests/state_pool.c | 2 +- src/intel/vulkan/tests/state_pool_max_size.c | 2 +- src/intel/vulkan/tests/state_pool_no_free.c | 4 +- src/intel/vulkan/xe/anv_batch_chain.c | 237 +- src/intel/vulkan/xe/anv_batch_chain.h | 17 +- src/intel/vulkan/xe/anv_device.c | 21 +- src/intel/vulkan/xe/anv_kmd_backend.c | 21 +- src/intel/vulkan/xe/anv_queue.c | 39 + src/intel/vulkan/xe/anv_queue.h | 3 + src/intel/vulkan_hasvk/anv_batch_chain.c | 13 +- src/intel/vulkan_hasvk/anv_blorp.c | 106 +- src/intel/vulkan_hasvk/anv_device.c | 2406 +- src/intel/vulkan_hasvk/anv_formats.c | 6 +- src/intel/vulkan_hasvk/anv_genX.h | 6 + src/intel/vulkan_hasvk/anv_image.c | 38 +- src/intel/vulkan_hasvk/anv_measure.c | 14 - .../anv_nir_apply_pipeline_layout.c | 21 +- .../vulkan_hasvk/anv_nir_lower_multiview.c | 9 +- .../vulkan_hasvk/anv_nir_lower_ubo_loads.c | 24 +- .../anv_nir_lower_ycbcr_textures.c | 6 +- src/intel/vulkan_hasvk/anv_perf.c | 68 +- src/intel/vulkan_hasvk/anv_pipeline.c | 70 +- src/intel/vulkan_hasvk/anv_private.h | 50 +- src/intel/vulkan_hasvk/anv_utrace.c | 92 +- src/intel/vulkan_hasvk/anv_wsi.c | 2 + src/intel/vulkan_hasvk/genX_cmd_buffer.c | 234 +- src/intel/vulkan_hasvk/genX_pipeline.c | 4 +- src/intel/vulkan_hasvk/genX_query.c | 64 +- src/intel/vulkan_hasvk/genX_state.c | 5 +- src/intel/vulkan_hasvk/meson.build | 22 +- src/loader/loader.c | 69 +- src/loader/loader.h | 12 +- src/loader/loader_dri_helper.c | 122 +- src/loader/loader_dri_helper.h | 25 +- src/loader/loader_wayland_helper.c | 22 + src/loader/loader_wayland_helper.h | 5 + src/loader/meson.build | 44 +- src/mapi/es1api/meson.build | 19 +- src/mapi/es2api/meson.build | 19 +- .../gen/EXT_texture_storage_compression.xml | 52 + src/mapi/glapi/gen/KHR_shader_subgroup.xml | 38 + src/mapi/glapi/gen/OES_fixed_point.xml | 2 +- src/mapi/glapi/gen/OVR_multiview.xml | 26 + ...ltiview_multisampled_render_to_texture.xml | 18 + src/mapi/glapi/gen/es_EXT.xml | 10 +- src/mapi/glapi/gen/gl_API.xml | 10 +- src/mapi/glapi/gen/meson.build | 22 +- src/mapi/glapi/gen/static_data.py | 9 + src/mapi/glapi/meson.build | 29 +- src/mapi/meson.build | 19 +- src/mapi/shared-glapi/meson.build | 21 +- src/mesa/main/arbprogram.c | 70 +- src/mesa/main/attrib.c | 8 +- src/mesa/main/blend.c | 2 +- src/mesa/main/compute.c | 4 +- src/mesa/main/config.h | 3 + src/mesa/main/consts_exts.h | 27 +- src/mesa/main/context.c | 15 +- src/mesa/main/context.h | 28 + src/mesa/main/dd.h | 2 - src/mesa/main/debug_output.c | 1 + src/mesa/main/draw.c | 7 - src/mesa/main/enable.c | 4 +- src/mesa/main/errors.c | 65 +- src/mesa/main/errors.h | 9 - src/mesa/main/extensions.c | 1 + src/mesa/main/extensions_table.h | 10 +- src/mesa/main/fbobject.c | 190 +- src/mesa/main/fbobject.h | 2 +- src/mesa/main/format_utils.c | 121 - src/mesa/main/format_utils.h | 4 - src/mesa/main/formatquery.c | 49 +- src/mesa/main/formats.c | 562 +- src/mesa/main/formats.h | 5 +- src/mesa/main/framebuffer.c | 32 +- src/mesa/main/get.c | 9 + src/mesa/main/get_hash_params.py | 6 + src/mesa/main/glformats.c | 666 +- src/mesa/main/glspirv.c | 16 +- src/mesa/main/hash.c | 18 +- src/mesa/main/hash.h | 4 +- src/mesa/main/meson.build | 19 +- src/mesa/main/mipmap.c | 1536 +- src/mesa/main/mtypes.h | 10 +- src/mesa/main/performance_monitor.c | 27 +- src/mesa/main/pipelineobj.c | 1 - src/mesa/main/program_resource.c | 1 - src/mesa/main/renderbuffer.c | 30 +- src/mesa/main/shader_query.cpp | 1 - src/mesa/main/shader_types.h | 238 +- src/mesa/main/shaderapi.c | 74 +- src/mesa/main/shaderapi.h | 6 +- src/mesa/main/shaderimage.c | 71 + src/mesa/main/shaderimage.h | 6 + src/mesa/main/shaderobj.c | 6 +- src/mesa/main/shaderobj.h | 2 +- src/mesa/main/spirv_capabilities.c | 118 + src/mesa/main/spirv_capabilities.h | 50 + src/mesa/main/spirv_extensions.c | 34 - src/mesa/main/spirv_extensions.h | 3 - src/mesa/main/tests/mesa_formats.cpp | 5 +- src/mesa/main/tests/meson.build | 19 +- src/mesa/main/texcompress.c | 2 +- src/mesa/main/teximage.c | 59 +- src/mesa/main/texobj.c | 2 + src/mesa/main/texparam.c | 26 + src/mesa/main/texstorage.c | 150 +- src/mesa/main/uniform_query.cpp | 1 - src/mesa/main/uniforms.c | 1 - src/mesa/main/uniforms.h | 2 +- src/mesa/main/version.c | 9 +- src/mesa/meson.build | 26 +- src/mesa/program/arbprogparse.c | 13 - src/mesa/program/meson.build | 19 +- src/mesa/program/prog_to_nir.c | 13 +- src/mesa/program/program.c | 3 + src/mesa/program/program_parse.y | 10 - src/mesa/program/symbol_table.c | 54 - src/mesa/program/symbol_table.h | 5 - src/mesa/state_tracker/st_atifs_to_nir.c | 4 +- src/mesa/state_tracker/st_atom_atomicbuf.c | 1 - src/mesa/state_tracker/st_atom_framebuffer.c | 11 +- src/mesa/state_tracker/st_atom_image.c | 2 +- src/mesa/state_tracker/st_atom_shader.c | 1 - src/mesa/state_tracker/st_atom_storagebuf.c | 1 - src/mesa/state_tracker/st_cb_bitmap.c | 6 +- src/mesa/state_tracker/st_cb_drawpixels.c | 4 +- src/mesa/state_tracker/st_cb_drawtex.c | 1 - src/mesa/state_tracker/st_cb_eglimage.c | 28 +- src/mesa/state_tracker/st_cb_eglimage.h | 7 +- src/mesa/state_tracker/st_cb_readpixels.c | 7 + src/mesa/state_tracker/st_cb_texture.c | 66 +- src/mesa/state_tracker/st_cb_texture.h | 3 + src/mesa/state_tracker/st_context.c | 2 - src/mesa/state_tracker/st_draw.c | 2 - src/mesa/state_tracker/st_extensions.c | 187 +- src/mesa/state_tracker/st_format.c | 61 + src/mesa/state_tracker/st_glsl_to_nir.cpp | 92 +- src/mesa/state_tracker/st_interop.c | 9 + src/mesa/state_tracker/st_manager.c | 35 +- src/mesa/state_tracker/st_nir.h | 6 +- src/mesa/state_tracker/st_nir_builtins.c | 13 +- src/mesa/state_tracker/st_nir_lower_builtin.c | 12 +- src/mesa/state_tracker/st_nir_lower_fog.c | 6 +- .../st_nir_lower_position_invariant.c | 3 +- .../st_nir_lower_tex_src_plane.c | 3 +- src/mesa/state_tracker/st_pbo.c | 11 + src/mesa/state_tracker/st_pbo_compute.c | 2 +- src/mesa/state_tracker/st_program.c | 35 +- src/mesa/state_tracker/st_program.h | 2 +- src/mesa/state_tracker/st_sampler_view.c | 16 + .../state_tracker/st_texcompress_compute.c | 18 +- src/mesa/state_tracker/st_texture.c | 7 +- src/mesa/state_tracker/st_texture.h | 3 +- src/mesa/state_tracker/tests/meson.build | 19 +- src/mesa/vbo/vbo.h | 3 + src/mesa/vbo/vbo_exec_api.c | 16 +- src/meson.build | 48 +- src/microsoft/ci/gitlab-ci.yml | 4 +- src/microsoft/ci/spirv2dxil_reference.txt | 9 +- src/microsoft/ci/warp-fails.txt | 3 + src/microsoft/ci/warp-skips.txt | 2 + src/microsoft/clc/clc_compiler.c | 60 +- src/microsoft/clc/clc_nir.c | 18 +- src/microsoft/clc/meson.build | 20 +- src/microsoft/compiler/dxil_nir.c | 76 +- src/microsoft/compiler/dxil_nir_tess.c | 8 +- src/microsoft/compiler/meson.build | 20 +- src/microsoft/compiler/nir_to_dxil.c | 47 +- src/microsoft/meson.build | 21 +- src/microsoft/spirv_to_dxil/dxil_spirv_nir.c | 111 +- .../dxil_spirv_nir_lower_bindless.c | 8 +- src/microsoft/spirv_to_dxil/meson.build | 20 +- src/microsoft/vulkan/dzn_device.c | 19 +- src/microsoft/vulkan/dzn_image.c | 4 +- src/microsoft/vulkan/dzn_pipeline.c | 38 +- src/microsoft/vulkan/dzn_private.h | 4 +- src/microsoft/vulkan/meson.build | 21 +- src/nouveau/ci/deqp-nvk.toml | 4 + src/nouveau/ci/gitlab-ci-inc.yml | 65 + src/nouveau/ci/gitlab-ci.yml | 27 + src/nouveau/ci/nvk-ga106-fails.txt | 6 + src/nouveau/ci/nvk-ga106-flakes.txt | 27 + src/nouveau/ci/nvk-ga106-skips.txt | 8 + src/nouveau/ci/nvk-ga106-vkd3d-fails.txt | 17 + src/nouveau/codegen/meson.build | 19 +- src/nouveau/codegen/nv50_ir_from_nir.cpp | 405 +- src/nouveau/codegen/nv50_ir_peephole.cpp | 11 +- src/nouveau/compiler/acorn/lib.rs | 81 + src/nouveau/compiler/meson.build | 143 +- src/nouveau/compiler/nak.h | 79 +- src/nouveau/compiler/nak/api.rs | 372 +- src/nouveau/compiler/nak/assign_regs.rs | 463 +- src/nouveau/compiler/nak/builder.rs | 291 +- src/nouveau/compiler/nak/calc_instr_deps.rs | 286 +- src/nouveau/compiler/nak/encode_sm50.rs | 2256 - src/nouveau/compiler/nak/encode_sm70.rs | 2459 - src/nouveau/compiler/nak/from_nir.rs | 865 +- src/nouveau/compiler/nak/hw_runner.rs | 424 + src/nouveau/compiler/nak/hw_tests.rs | 1190 + src/nouveau/compiler/nak/ir.rs | 1785 +- src/nouveau/compiler/nak/ir_proc.rs | 237 +- src/nouveau/compiler/nak/legalize.rs | 1064 +- src/nouveau/compiler/nak/lib.rs | 17 +- src/nouveau/compiler/nak/liveness.rs | 14 +- src/nouveau/compiler/nak/lower_copy_swap.rs | 88 +- src/nouveau/compiler/nak/lower_par_copies.rs | 6 +- src/nouveau/compiler/nak/nir_instr_printer.rs | 53 - src/nouveau/compiler/nak/opt_bar_prop.rs | 4 +- src/nouveau/compiler/nak/opt_copy_prop.rs | 283 +- src/nouveau/compiler/nak/opt_crs.rs | 44 + src/nouveau/compiler/nak/opt_dce.rs | 8 +- src/nouveau/compiler/nak/opt_jump_thread.rs | 4 +- src/nouveau/compiler/nak/opt_lop.rs | 2 +- src/nouveau/compiler/nak/opt_out.rs | 2 +- src/nouveau/compiler/nak/opt_prmt.rs | 283 + .../compiler/nak/opt_uniform_instrs.rs | 109 + src/nouveau/compiler/nak/qmd.rs | 58 +- src/nouveau/compiler/nak/repair_ssa.rs | 42 +- src/nouveau/compiler/nak/sm50.rs | 3233 + src/nouveau/compiler/nak/sm70.rs | 3523 + src/nouveau/compiler/nak/sph.rs | 173 +- src/nouveau/compiler/nak/spill_values.rs | 257 +- src/nouveau/compiler/nak/to_cssa.rs | 49 +- src/nouveau/compiler/nak_bindings.h | 14 + src/nouveau/compiler/nak_memstream.c | 39 - src/nouveau/compiler/nak_nir.c | 218 +- src/nouveau/compiler/nak_nir_algebraic.py | 8 +- src/nouveau/compiler/nak_nir_lower_cf.c | 96 +- .../compiler/nak_nir_lower_fs_inputs.c | 148 +- .../compiler/nak_nir_lower_non_uniform_ldcx.c | 482 + .../compiler/nak_nir_lower_scan_reduce.c | 3 +- src/nouveau/compiler/nak_nir_lower_tex.c | 15 +- src/nouveau/compiler/nak_nir_lower_vtg_io.c | 10 +- .../nak_nir_split_64bit_conversions.c | 105 + src/nouveau/compiler/nak_private.h | 47 +- src/nouveau/compiler/nvfuzz/main.rs | 107 - src/nouveau/drm-shim/meson.build | 20 +- src/nouveau/drm-shim/nouveau_noop.c | 3 + src/nouveau/drm/meson.build | 2 +- src/nouveau/headers/class_parser.py | 263 +- src/nouveau/headers/lib_rs_gen.py | 25 + src/nouveau/headers/meson.build | 49 +- src/nouveau/headers/nv_device_info.h | 26 +- src/nouveau/headers/nv_push.c | 61 +- src/nouveau/headers/nv_push.h | 80 +- src/nouveau/headers/nv_push_dump.c | 1 - src/nouveau/headers/nv_push_rs/lib.rs | 222 + src/nouveau/headers/nvidia/classes/cla040.h | 311 + .../headers/nvidia/classes/cla097sph.h | 638 + src/nouveau/headers/nvidia/classes/cla140.h | 313 + src/nouveau/headers/nvidia/classes/clb197.h | 5 + src/nouveau/headers/nvidia/classes/clc097.h | 5 + src/nouveau/headers/nvidia/classes/clc197.h | 12 + src/nouveau/headers/nvidia/classes/clc397.h | 36 + src/nouveau/headers/nvidia/classes/clc597.h | 338 + src/nouveau/headers/nvidia/classes/clc697.h | 338 + src/nouveau/headers/nvidia/classes/clc797.h | 346 + .../headers/nvidia/classes/clc797sph.h | 878 + src/nouveau/headers/nvidia/classes/clc997.h | 346 + src/nouveau/headers/nvidia/classes/clcb97.h | 345 + .../headers/nvidia/classes/clcb97sph.h | 878 + src/nouveau/headers/struct_parser.py | 2 + .../headers/update-from-open-gpu-doc.py | 3 +- src/nouveau/meson.build | 21 +- src/nouveau/mme/meson.build | 2 + src/nouveau/mme/mme_builder.h | 78 + src/nouveau/mme/mme_fermi.c | 12 +- src/nouveau/mme/mme_fermi_builder.c | 125 +- src/nouveau/mme/mme_fermi_builder.h | 23 +- src/nouveau/mme/mme_fermi_sim.c | 282 +- src/nouveau/mme/mme_fermi_sim.h | 6 + src/nouveau/mme/mme_sim.c | 40 + src/nouveau/mme/mme_sim.h | 31 + src/nouveau/mme/mme_tu104.c | 4 +- src/nouveau/mme/mme_tu104_builder.c | 87 +- src/nouveau/mme/mme_tu104_sim.c | 380 +- src/nouveau/mme/mme_tu104_sim.h | 6 + src/nouveau/mme/tests/mme_builder_test.cpp | 178 +- .../mme/tests/mme_fermi_sim_hw_test.cpp | 111 +- src/nouveau/mme/tests/mme_runner.cpp | 16 +- src/nouveau/mme/tests/mme_runner.h | 2 +- .../mme/tests/mme_tu104_sim_hw_test.cpp | 37 +- src/nouveau/nil/cbindgen.toml | 2 + src/nouveau/nil/copy.rs | 594 + src/nouveau/nil/extent.rs | 83 +- src/nouveau/nil/image.rs | 162 +- src/nouveau/nil/lib.rs | 1 + src/nouveau/nil/meson.build | 15 +- src/nouveau/nil/modifiers.rs | 14 +- src/nouveau/nil/tic.rs | 111 +- src/nouveau/nil/tiling.rs | 77 +- src/nouveau/vulkan/meson.build | 22 +- .../vulkan/nvk_acceleration_structure.c | 15 + src/nouveau/vulkan/nvk_buffer.c | 157 +- src/nouveau/vulkan/nvk_buffer.h | 14 +- src/nouveau/vulkan/nvk_buffer_view.c | 60 +- src/nouveau/vulkan/nvk_buffer_view.h | 11 +- src/nouveau/vulkan/nvk_cmd_buffer.c | 488 +- src/nouveau/vulkan/nvk_cmd_buffer.h | 177 +- src/nouveau/vulkan/nvk_cmd_clear.c | 33 +- src/nouveau/vulkan/nvk_cmd_copy.c | 54 +- src/nouveau/vulkan/nvk_cmd_dispatch.c | 394 +- src/nouveau/vulkan/nvk_cmd_draw.c | 2420 +- src/nouveau/vulkan/nvk_cmd_indirect.c | 1104 + src/nouveau/vulkan/nvk_cmd_meta.c | 92 +- src/nouveau/vulkan/nvk_cmd_pool.c | 92 +- src/nouveau/vulkan/nvk_cmd_pool.h | 30 +- src/nouveau/vulkan/nvk_codegen.c | 9 +- src/nouveau/vulkan/nvk_debug.h | 40 + src/nouveau/vulkan/nvk_descriptor_set.c | 442 +- src/nouveau/vulkan/nvk_descriptor_set.h | 62 +- .../vulkan/nvk_descriptor_set_layout.c | 126 +- .../vulkan/nvk_descriptor_set_layout.h | 18 + src/nouveau/vulkan/nvk_descriptor_table.c | 201 +- src/nouveau/vulkan/nvk_descriptor_table.h | 33 +- src/nouveau/vulkan/nvk_descriptor_types.h | 119 + src/nouveau/vulkan/nvk_device.c | 175 +- src/nouveau/vulkan/nvk_device.h | 25 +- src/nouveau/vulkan/nvk_device_memory.c | 208 +- src/nouveau/vulkan/nvk_device_memory.h | 10 +- src/nouveau/vulkan/nvk_edb_bview_cache.c | 259 + src/nouveau/vulkan/nvk_edb_bview_cache.h | 67 + src/nouveau/vulkan/nvk_event.c | 4 +- src/nouveau/vulkan/nvk_format.c | 17 +- src/nouveau/vulkan/nvk_format.h | 23 + src/nouveau/vulkan/nvk_heap.c | 162 +- src/nouveau/vulkan/nvk_heap.h | 27 +- src/nouveau/vulkan/nvk_host_copy.c | 567 + src/nouveau/vulkan/nvk_image.c | 646 +- src/nouveau/vulkan/nvk_image.h | 24 +- src/nouveau/vulkan/nvk_image_view.c | 55 +- src/nouveau/vulkan/nvk_image_view.h | 7 + .../vulkan/nvk_indirect_execution_set.c | 382 + .../vulkan/nvk_indirect_execution_set.h | 79 + src/nouveau/vulkan/nvk_instance.c | 26 +- src/nouveau/vulkan/nvk_instance.h | 3 + src/nouveau/vulkan/nvk_mme.c | 134 +- src/nouveau/vulkan/nvk_mme.h | 147 +- .../vulkan/nvk_nir_lower_descriptors.c | 619 +- src/nouveau/vulkan/nvk_physical_device.c | 490 +- src/nouveau/vulkan/nvk_physical_device.h | 26 +- src/nouveau/vulkan/nvk_private.h | 23 +- src/nouveau/vulkan/nvk_query_pool.c | 316 +- src/nouveau/vulkan/nvk_query_pool.h | 5 +- src/nouveau/vulkan/nvk_queue.c | 625 +- src/nouveau/vulkan/nvk_queue.h | 58 +- src/nouveau/vulkan/nvk_queue_drm_nouveau.c | 662 - src/nouveau/vulkan/nvk_sampler.c | 74 +- src/nouveau/vulkan/nvk_sampler.h | 6 + src/nouveau/vulkan/nvk_shader.c | 553 +- src/nouveau/vulkan/nvk_shader.h | 65 +- src/nouveau/vulkan/nvk_upload_queue.c | 296 +- src/nouveau/vulkan/nvk_upload_queue.h | 28 +- src/nouveau/vulkan/nvk_wsi.c | 5 +- .../vulkan/nvkmd/nouveau/nvkmd_nouveau.h | 138 + .../vulkan/nvkmd/nouveau/nvkmd_nouveau_ctx.c | 443 + .../vulkan/nvkmd/nouveau/nvkmd_nouveau_dev.c | 99 + .../vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c | 269 + .../vulkan/nvkmd/nouveau/nvkmd_nouveau_pdev.c | 189 + .../vulkan/nvkmd/nouveau/nvkmd_nouveau_va.c | 252 + src/nouveau/vulkan/nvkmd/nvkmd.c | 343 + src/nouveau/vulkan/nvkmd/nvkmd.h | 593 + src/nouveau/vulkan/test_nvk_mme.c | 16 +- src/nouveau/winsys/nouveau_bo.c | 204 +- src/nouveau/winsys/nouveau_bo.h | 32 +- src/nouveau/winsys/nouveau_context.c | 2 +- src/nouveau/winsys/nouveau_device.c | 45 +- src/nouveau/winsys/nouveau_device.h | 34 +- src/panfrost/.clang-format | 70 + src/panfrost/ci/deqp-panfrost-g52-vk.toml | 48 +- src/panfrost/ci/deqp-panfrost-g610.toml | 57 + src/panfrost/ci/deqp-panfrost-t860-cl.toml | 6 + src/panfrost/ci/gitlab-ci.yml | 153 +- src/panfrost/ci/panfrost-g52-fails.txt | 2017 +- src/panfrost/ci/panfrost-g52-flakes.txt | 11 +- src/panfrost/ci/panfrost-g52-skips.txt | 157 +- src/panfrost/ci/panfrost-g57-fails.txt | 48 +- src/panfrost/ci/panfrost-g57-skips.txt | 4 +- src/panfrost/ci/panfrost-t760-fails.txt | 15 + src/panfrost/ci/panfrost-t860-fails.txt | 560 + src/panfrost/ci/panfrost-t860-skips.txt | 6 + src/panfrost/ci/traces-panfrost.yml | 15 +- src/panfrost/compiler/IR_pseudo.xml | 195 + src/panfrost/compiler/bi_builder.h.py | 6 +- src/panfrost/compiler/bi_helper_invocations.c | 69 +- .../compiler/bi_lower_divergent_indirects.c | 2 +- src/panfrost/compiler/bi_opcodes.c.py | 6 +- src/panfrost/compiler/bi_opcodes.h.py | 6 +- src/panfrost/compiler/bi_opt_cse.c | 5 +- src/panfrost/compiler/bi_opt_dce.c | 85 +- src/panfrost/compiler/bi_packer.c.py | 8 +- src/panfrost/compiler/bi_printer.c.py | 6 +- src/panfrost/compiler/bifrost.h | 88 +- src/panfrost/compiler/{ => bifrost}/ISA.xml | 724 +- src/panfrost/compiler/bifrost/bi_disasm.h | 53 + src/panfrost/compiler/bifrost/disassemble.c | 10 +- src/panfrost/compiler/bifrost/disassemble.h | 23 +- src/panfrost/compiler/bifrost_compile.c | 710 +- src/panfrost/compiler/bifrost_compile.h | 3 + src/panfrost/compiler/bifrost_isa.py | 118 +- .../compiler/bifrost_nir_algebraic.py | 14 +- src/panfrost/compiler/bir.c | 1 + src/panfrost/compiler/compiler.h | 15 +- src/panfrost/compiler/gen_disasm.py | 2 + src/panfrost/compiler/meson.build | 31 +- src/panfrost/compiler/test/test-optimizer.cpp | 2 +- src/panfrost/compiler/valhall/ISA.xml | 493 +- src/panfrost/compiler/valhall/asm.py | 4 +- src/panfrost/compiler/valhall/disasm.py | 71 +- src/panfrost/compiler/valhall/disassemble.h | 65 +- src/panfrost/compiler/valhall/meson.build | 19 +- .../compiler/valhall/test/assembler-cases.txt | 1 + src/panfrost/compiler/valhall/va_pack.c | 18 +- src/panfrost/compiler/valhall/valhall.c.py | 7 +- src/panfrost/compiler/valhall/valhall.py | 166 +- .../compiler/valhall/valhall_enums.h.py | 5 +- src/panfrost/drm-shim/meson.build | 20 +- src/panfrost/drm-shim/panfrost_noop.c | 23 +- src/panfrost/ds/meson.build | 1 - src/panfrost/lib/genxml/cs_builder.h | 1071 +- src/panfrost/lib/genxml/decode.c | 9 + src/panfrost/lib/genxml/decode_common.c | 1 + src/panfrost/lib/genxml/decode_csf.c | 123 +- src/panfrost/lib/genxml/gen_macros.h | 23 - src/panfrost/lib/genxml/gen_pack.py | 26 +- src/panfrost/lib/genxml/meson.build | 21 +- src/panfrost/lib/genxml/v10.xml | 88 +- src/panfrost/lib/genxml/v6.xml | 10 +- src/panfrost/lib/genxml/v7.xml | 8 +- src/panfrost/lib/genxml/v9.xml | 8 +- src/panfrost/lib/kmod/meson.build | 19 +- src/panfrost/lib/kmod/pan_kmod.h | 36 + src/panfrost/lib/kmod/panfrost_kmod.c | 18 +- src/panfrost/lib/kmod/panthor_kmod.c | 124 +- src/panfrost/lib/meson.build | 33 +- src/panfrost/lib/pan_afrc.c | 218 + src/panfrost/lib/pan_blend.c | 37 +- src/panfrost/lib/pan_blend.h | 8 +- src/panfrost/lib/pan_blitter.h | 139 - src/panfrost/lib/pan_desc.c | 172 +- src/panfrost/lib/pan_desc.h | 28 +- src/panfrost/lib/pan_earlyzs.c | 9 +- src/panfrost/lib/pan_format.c | 306 +- src/panfrost/lib/pan_format.h | 10 +- src/panfrost/lib/pan_indirect_dispatch.c | 4 +- src/panfrost/lib/pan_jc.h | 5 +- src/panfrost/lib/pan_layout.c | 175 +- src/panfrost/lib/pan_props.c | 10 + src/panfrost/lib/pan_props.h | 25 + src/panfrost/lib/pan_shader.c | 7 +- src/panfrost/lib/pan_shader.h | 17 +- src/panfrost/lib/pan_texture.c | 324 +- src/panfrost/lib/pan_texture.h | 82 +- src/panfrost/lib/pan_util.c | 10 +- src/panfrost/lib/pan_util.h | 1 + src/panfrost/lib/tests/test-earlyzs.cpp | 8 +- src/panfrost/meson.build | 19 +- src/panfrost/midgard/compiler.h | 3 +- src/panfrost/midgard/disassemble.c | 14 +- src/panfrost/midgard/disassemble.h | 2 +- src/panfrost/midgard/helpers.h | 4 +- src/panfrost/midgard/meson.build | 22 +- src/panfrost/midgard/midgard_compile.c | 120 +- src/panfrost/midgard/midgard_compile.h | 2 + src/panfrost/midgard/midgard_derivatives.c | 20 +- src/panfrost/midgard/midgard_errata_lod.c | 2 +- src/panfrost/midgard/midgard_nir_algebraic.py | 6 +- .../midgard/midgard_nir_lower_image_bitsize.c | 2 +- src/panfrost/midgard/midgard_nir_type_csel.c | 11 +- src/panfrost/midgard/midgard_ra.c | 4 +- src/panfrost/midgard/nir_fuse_io_16.c | 2 +- src/panfrost/perf/meson.build | 19 +- src/panfrost/shared/meson.build | 21 +- src/panfrost/tools/meson.build | 19 +- src/panfrost/util/meson.build | 21 +- src/panfrost/util/pan_ir.h | 1 - src/panfrost/util/pan_lower_framebuffer.c | 4 +- .../util/pan_lower_helper_invocation.c | 2 +- src/panfrost/util/pan_lower_image_index.c | 2 +- src/panfrost/util/pan_lower_image_ms.c | 60 +- src/panfrost/util/pan_lower_sample_position.c | 5 +- src/panfrost/util/pan_lower_store_component.c | 2 +- src/panfrost/util/pan_lower_writeout.c | 23 +- src/panfrost/util/pan_lower_xfb.c | 2 +- .../vulkan/bifrost/panvk_vX_meta_desc_copy.c | 402 + src/panfrost/vulkan/csf/panvk_cmd_buffer.h | 473 + src/panfrost/vulkan/csf/panvk_event.h | 28 + src/panfrost/vulkan/csf/panvk_queue.h | 72 + src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c | 819 + .../vulkan/csf/panvk_vX_cmd_dispatch.c | 408 + src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c | 2634 + src/panfrost/vulkan/csf/panvk_vX_cmd_event.c | 152 + src/panfrost/vulkan/csf/panvk_vX_event.c | 96 + src/panfrost/vulkan/csf/panvk_vX_queue.c | 756 + src/panfrost/vulkan/jm/panvk_cmd_buffer.h | 258 + src/panfrost/vulkan/{ => jm}/panvk_event.h | 0 src/panfrost/vulkan/{ => jm}/panvk_queue.h | 12 +- src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c | 457 + .../vulkan/jm/panvk_vX_cmd_dispatch.c | 180 + src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c | 2013 + src/panfrost/vulkan/jm/panvk_vX_cmd_event.c | 116 + .../{panvk_event.c => jm/panvk_vX_event.c} | 22 +- src/panfrost/vulkan/{ => jm}/panvk_vX_queue.c | 40 +- src/panfrost/vulkan/meson.build | 116 +- src/panfrost/vulkan/panvk_android.c | 4 + src/panfrost/vulkan/panvk_blend.h | 39 + src/panfrost/vulkan/panvk_buffer.c | 11 +- src/panfrost/vulkan/panvk_buffer.h | 4 +- src/panfrost/vulkan/panvk_buffer_view.h | 10 +- src/panfrost/vulkan/panvk_cmd_alloc.h | 51 + src/panfrost/vulkan/panvk_cmd_buffer.h | 222 - src/panfrost/vulkan/panvk_cmd_desc_state.h | 85 + src/panfrost/vulkan/panvk_cmd_draw.h | 43 + src/panfrost/vulkan/panvk_cmd_fb_preload.h | 13 + src/panfrost/vulkan/panvk_cmd_meta.h | 78 + src/panfrost/vulkan/panvk_cmd_pool.c | 11 +- src/panfrost/vulkan/panvk_cmd_pool.h | 6 + src/panfrost/vulkan/panvk_cmd_push_constant.h | 25 + src/panfrost/vulkan/panvk_descriptor_set.h | 137 +- .../vulkan/panvk_descriptor_set_layout.h | 107 +- src/panfrost/vulkan/panvk_device.h | 32 +- src/panfrost/vulkan/panvk_device_memory.c | 90 +- src/panfrost/vulkan/panvk_device_memory.h | 6 + src/panfrost/vulkan/panvk_image.c | 350 +- src/panfrost/vulkan/panvk_image_view.h | 7 +- src/panfrost/vulkan/panvk_instance.c | 61 +- src/panfrost/vulkan/panvk_instance.h | 8 +- src/panfrost/vulkan/panvk_macros.h | 33 + src/panfrost/vulkan/panvk_mempool.c | 182 +- src/panfrost/vulkan/panvk_mempool.h | 155 +- src/panfrost/vulkan/panvk_meta.h | 199 +- src/panfrost/vulkan/panvk_physical_device.c | 739 +- src/panfrost/vulkan/panvk_physical_device.h | 15 +- src/panfrost/vulkan/panvk_pipeline.h | 157 - src/panfrost/vulkan/panvk_pipeline_layout.h | 62 - src/panfrost/vulkan/panvk_priv_bo.c | 77 +- src/panfrost/vulkan/panvk_priv_bo.h | 23 +- src/panfrost/vulkan/panvk_shader.h | 223 +- src/panfrost/vulkan/panvk_vX_blend.c | 408 + src/panfrost/vulkan/panvk_vX_buffer_view.c | 105 +- src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 2395 - src/panfrost/vulkan/panvk_vX_cmd_desc_state.c | 453 + src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c | 757 + src/panfrost/vulkan/panvk_vX_cmd_meta.c | 374 + .../vulkan/panvk_vX_cmd_push_constant.c | 44 + src/panfrost/vulkan/panvk_vX_descriptor_set.c | 1248 +- .../vulkan/panvk_vX_descriptor_set_layout.c | 319 +- src/panfrost/vulkan/panvk_vX_device.c | 256 +- src/panfrost/vulkan/panvk_vX_image_view.c | 139 +- src/panfrost/vulkan/panvk_vX_meta.c | 68 - src/panfrost/vulkan/panvk_vX_meta_blit.c | 258 - src/panfrost/vulkan/panvk_vX_meta_clear.c | 527 - src/panfrost/vulkan/panvk_vX_meta_copy.c | 1959 - .../vulkan/panvk_vX_nir_lower_descriptors.c | 972 +- src/panfrost/vulkan/panvk_vX_pipeline.c | 1180 - .../vulkan/panvk_vX_pipeline_layout.c | 144 - src/panfrost/vulkan/panvk_vX_sampler.c | 13 +- src/panfrost/vulkan/panvk_vX_shader.c | 1478 +- src/panfrost/vulkan/panvk_varyings.h | 133 - src/panfrost/vulkan/panvk_wsi.c | 3 +- .../panfrost/vulkan/valhall/.gitkeep | 0 src/tool/dlclose-skip/meson.build | 20 +- src/tool/meson.build | 1 - src/tool/pps/cfg/intel_xe.cfg | 74 + src/tool/pps/cfg/system.cfg | 9 + src/tool/pps/meson.build | 1 - src/tool/pps/pps_driver.cc | 1 + src/util/00-mesa-defaults.conf | 120 +- src/util/00-radv-defaults.conf | 28 +- src/util/blake3/README | 6 +- src/util/blake3/blake3.c | 21 +- src/util/blake3/blake3.h | 2 +- src/util/blake3/blake3_avx2.c | 326 + .../blake3/blake3_avx2_x86-64_windows_gnu.S | 2 +- src/util/blake3/blake3_avx512.c | 1220 + .../blake3/blake3_avx512_x86-64_windows_gnu.S | 2 +- src/util/blake3/blake3_dispatch.c | 44 +- src/util/blake3/blake3_impl.h | 14 +- src/util/blake3/blake3_neon.c | 37 +- src/util/blake3/blake3_sse2.c | 566 + .../blake3/blake3_sse2_x86-64_windows_gnu.S | 2 +- src/util/blake3/blake3_sse41.c | 560 + .../blake3/blake3_sse41_x86-64_windows_gnu.S | 2 +- src/util/cnd_monotonic.c | 156 + src/util/cnd_monotonic.h | 109 +- src/util/detect_arch.h | 35 + src/util/detect_os.h | 39 +- src/util/disk_cache.c | 12 +- src/util/disk_cache_os.c | 82 +- src/util/disk_cache_os.h | 3 + src/util/driconf.h | 67 +- src/util/format/meson.build | 36 +- src/util/format/texcompress_etc_tmp.h | 5 +- src/util/format/u_format.c | 23 + src/util/format/u_format.csv | 596 - src/util/format/u_format.h | 220 +- src/util/format/u_format.yaml | 2984 + src/util/format/u_format_pack.py | 27 +- src/util/format/u_format_parse.py | 335 +- src/util/format/u_format_table.py | 90 +- src/util/format/u_formats.h | 87 +- src/util/format_r11g11b10f.h | 68 +- src/util/format_rgb9e5.h | 3 +- src/util/format_srgb.h | 7 + src/util/fossilize_db.c | 6 +- src/util/glsl2spirv.py | 48 +- src/util/half_float.h | 10 + src/util/hash_table.c | 4 +- src/util/hash_table.h | 11 +- src/util/helpers.c | 46 + src/util/helpers.h | 17 + src/util/libsync.h | 37 + src/util/log.c | 55 +- src/util/log.h | 11 + src/util/macros.h | 6 + src/util/memstream.c | 44 +- src/util/memstream.h | 3 + src/util/mesa-blake3.c | 33 +- src/util/mesa-blake3.h | 13 +- src/util/mesa_cache_db.c | 165 +- src/util/mesa_cache_db_multipart.c | 130 +- src/util/mesa_cache_db_multipart.h | 6 +- src/util/meson.build | 35 +- src/util/os_memory_fd.c | 2 +- src/util/os_memory_stdc.h | 2 +- src/util/os_misc.c | 49 +- src/util/os_misc.h | 4 +- src/util/os_mman.h | 2 +- src/util/os_time.c | 16 +- src/util/perf/cpu_trace.h | 56 +- src/util/perf/u_perfetto.cc | 73 + src/util/perf/u_perfetto.h | 50 + src/util/perf/u_trace.c | 191 +- src/util/perf/u_trace.h | 108 +- src/util/perf/u_trace.py | 278 +- src/util/perf/u_trace_priv.h | 29 +- src/util/ralloc.c | 25 + src/util/ralloc.h | 10 + src/util/tests/cache_test.cpp | 174 +- src/util/tests/hash_table/meson.build | 19 +- src/util/tests/os_mman_test.cpp | 2 +- src/util/tests/perf/u_trace_test.cpp | 3 +- src/util/tests/sparse_array_test.cpp | 2 +- src/util/tests/u_debug_stack_test.cpp | 3 +- src/util/tests/u_memstream_test.cpp | 99 + src/util/tests/vma/meson.build | 19 +- src/util/u_cpu_detect.c | 62 +- src/util/u_cpu_detect.h | 8 +- src/util/u_debug.c | 46 +- src/util/u_dl.c | 10 +- src/util/u_gralloc/meson.build | 15 +- src/util/u_gralloc/u_gralloc.h | 2 +- src/util/u_gralloc/u_gralloc_fallback.c | 21 +- src/util/u_gralloc/u_gralloc_imapper5_api.cpp | 218 + src/util/u_hash_table.c | 6 +- src/util/u_hexdump.h | 23 +- src/util/u_idalloc.c | 91 +- src/util/u_idalloc.h | 74 +- src/util/u_math.h | 15 + src/util/u_pack_color.h | 38 +- src/util/u_printf.c | 7 +- src/util/u_process.c | 2 +- src/util/u_queue.c | 39 +- src/util/u_queue.h | 3 +- src/util/u_thread.c | 4 +- src/util/vl_bitstream.h | 2 +- src/util/vl_rbsp.h | 5 +- src/util/vl_vlc.h | 6 - src/util/vma.c | 9 +- src/virtio/ci/gitlab-ci-inc.yml | 28 + src/virtio/ci/gitlab-ci.yml | 38 +- src/virtio/ci/venus-fails.txt | 4 + src/virtio/ci/venus-flakes.txt | 8 +- src/virtio/ci/venus-skips.txt | 20 + src/virtio/meson.build | 19 +- src/virtio/vdrm/meson.build | 1 + src/virtio/vdrm/vdrm.h | 7 +- src/virtio/vdrm/vdrm_virtgpu.c | 20 +- .../venus-protocol/vn_protocol_driver.h | 2 +- .../vn_protocol_driver_buffer.h | 20 +- .../vn_protocol_driver_buffer_view.h | 41 +- .../vn_protocol_driver_command_buffer.h | 313 +- .../vn_protocol_driver_defines.h | 12 + .../vn_protocol_driver_device.h | 384 +- .../vn_protocol_driver_framebuffer.h | 4 +- .../venus-protocol/vn_protocol_driver_image.h | 430 +- .../venus-protocol/vn_protocol_driver_info.h | 8 +- .../vn_protocol_driver_pipeline.h | 85 + .../vn_protocol_driver_render_pass.h | 171 + .../vn_protocol_driver_structs.h | 53 + .../vn_protocol_driver_transport.h | 65 + .../venus-protocol/vn_protocol_driver_types.h | 42 + src/virtio/virtio-gpu/drm_hw.h | 17 +- src/virtio/virtio-gpu/virglrenderer_hw.h | 2 - src/virtio/vulkan/vn_android.c | 171 +- src/virtio/vulkan/vn_android.h | 15 +- src/virtio/vulkan/vn_buffer.c | 19 +- src/virtio/vulkan/vn_command_buffer.c | 417 +- src/virtio/vulkan/vn_common.c | 4 +- src/virtio/vulkan/vn_common.h | 1 - src/virtio/vulkan/vn_device.c | 25 +- src/virtio/vulkan/vn_device.h | 2 - src/virtio/vulkan/vn_device_memory.c | 257 +- src/virtio/vulkan/vn_device_memory.h | 13 - src/virtio/vulkan/vn_feedback.c | 11 +- src/virtio/vulkan/vn_image.c | 291 +- src/virtio/vulkan/vn_instance.c | 3 +- src/virtio/vulkan/vn_physical_device.c | 662 +- src/virtio/vulkan/vn_physical_device.h | 35 +- src/virtio/vulkan/vn_pipeline.c | 7 +- src/virtio/vulkan/vn_query_pool.c | 42 +- src/virtio/vulkan/vn_query_pool.h | 7 + src/virtio/vulkan/vn_queue.c | 15 +- src/virtio/vulkan/vn_queue.h | 1 + src/virtio/vulkan/vn_render_pass.c | 12 + src/virtio/vulkan/vn_renderer.h | 12 +- src/virtio/vulkan/vn_renderer_virtgpu.c | 55 +- src/virtio/vulkan/vn_renderer_vtest.c | 7 - src/virtio/vulkan/vn_ring.c | 19 +- src/virtio/vulkan/vn_ring.h | 3 +- .../device-select-layer/device_select_layer.c | 30 +- .../device-select-layer/device_select_x11.c | 4 +- src/vulkan/device-select-layer/meson.build | 19 +- src/vulkan/meson.build | 28 +- src/vulkan/overlay-layer/meson.build | 31 +- src/vulkan/registry/vk.xml | 2093 +- src/vulkan/runtime/meson.build | 44 +- src/vulkan/runtime/rmv/vk_rmv_exporter.c | 4 +- src/vulkan/runtime/vk_android.c | 533 + src/vulkan/runtime/vk_android.h | 82 + src/vulkan/runtime/vk_buffer.c | 7 +- src/vulkan/runtime/vk_cmd_enqueue.c | 416 +- src/vulkan/runtime/vk_command_buffer.h | 2 +- src/vulkan/runtime/vk_debug_utils.c | 10 +- .../runtime/vk_descriptor_update_template.c | 16 +- .../runtime/vk_descriptor_update_template.h | 26 + src/vulkan/runtime/vk_device.c | 273 +- src/vulkan/runtime/vk_device.h | 10 +- .../runtime/vk_device_generated_commands.c | 177 + .../runtime/vk_device_generated_commands.h | 109 + src/vulkan/runtime/vk_graphics_state.c | 107 +- src/vulkan/runtime/vk_graphics_state.h | 61 +- src/vulkan/runtime/vk_image.c | 46 +- src/vulkan/runtime/vk_image.h | 58 + src/vulkan/runtime/vk_instance.h | 6 +- src/vulkan/runtime/vk_log.c | 27 +- src/vulkan/runtime/vk_log.h | 22 + src/vulkan/runtime/vk_meta.c | 104 +- src/vulkan/runtime/vk_meta.h | 197 +- src/vulkan/runtime/vk_meta_blit_resolve.c | 7 +- src/vulkan/runtime/vk_meta_clear.c | 6 + src/vulkan/runtime/vk_meta_copy_fill_update.c | 2501 + src/vulkan/runtime/vk_meta_draw_rects.c | 2 +- src/vulkan/runtime/vk_meta_object_list.c | 69 + src/vulkan/runtime/vk_meta_object_list.h | 45 + src/vulkan/runtime/vk_meta_private.h | 24 +- src/vulkan/runtime/vk_nir.c | 6 + src/vulkan/runtime/vk_nir_convert_ycbcr.c | 14 +- src/vulkan/runtime/vk_object.h | 10 +- src/vulkan/runtime/vk_physical_device.h | 5 + src/vulkan/runtime/vk_pipeline.c | 63 +- src/vulkan/runtime/vk_pipeline.h | 20 +- src/vulkan/runtime/vk_pipeline_cache.c | 5 + src/vulkan/runtime/vk_queue.c | 693 +- src/vulkan/runtime/vk_queue.h | 14 + src/vulkan/runtime/vk_render_pass.c | 59 + src/vulkan/runtime/vk_render_pass.h | 18 +- src/vulkan/runtime/vk_shader.c | 35 +- src/vulkan/runtime/vk_shader.h | 2 + src/vulkan/runtime/vk_shader_module.c | 22 - src/vulkan/runtime/vk_shader_module.h | 10 - src/vulkan/runtime/vk_sync_timeline.c | 46 +- src/vulkan/runtime/vk_sync_timeline.h | 3 +- src/vulkan/runtime/vk_synchronization.c | 40 +- src/vulkan/runtime/vk_synchronization.h | 8 + src/vulkan/runtime/vk_video.c | 522 +- src/vulkan/runtime/vk_video.h | 18 + src/vulkan/screenshot-layer/LICENSE.txt | 178 + src/vulkan/screenshot-layer/README.rst | 87 + .../VkLayer_MESA_screenshot.json | 11 + .../mesa-screenshot-control.py | 200 + .../screenshot-layer}/meson.build | 62 +- src/vulkan/screenshot-layer/screenshot.cpp | 1456 + .../screenshot-layer/screenshot_params.c | 414 + .../screenshot-layer/screenshot_params.h | 101 + src/vulkan/util/meson.build | 41 +- src/vulkan/util/vk_cmd_queue_gen.py | 12 +- src/vulkan/util/vk_entrypoints_gen.py | 41 +- src/vulkan/util/vk_extensions.py | 17 +- src/vulkan/util/vk_format.c | 52 +- src/vulkan/util/vk_format.h | 51 + .../util/vk_physical_device_features_gen.py | 30 +- .../util/vk_physical_device_properties_gen.py | 165 +- .../util/vk_physical_device_spirv_caps_gen.py | 125 + .../util/vk_synchronization_helpers_gen.py | 27 +- src/vulkan/util/vk_util.c | 8 +- src/vulkan/util/vk_util.h | 7 - src/vulkan/wsi/meson.build | 25 +- src/vulkan/wsi/wsi_common.c | 77 +- src/vulkan/wsi/wsi_common.h | 7 +- src/vulkan/wsi/wsi_common_display.c | 139 +- src/vulkan/wsi/wsi_common_drm.c | 83 +- src/vulkan/wsi/wsi_common_headless.c | 5 - src/vulkan/wsi/wsi_common_metal.c | 526 + src/vulkan/wsi/wsi_common_metal_layer.h | 60 + src/vulkan/wsi/wsi_common_metal_layer.m | 136 + src/vulkan/wsi/wsi_common_private.h | 17 +- src/vulkan/wsi/wsi_common_queue.h | 68 +- src/vulkan/wsi/wsi_common_wayland.c | 750 +- src/vulkan/wsi/wsi_common_x11.c | 290 +- src/x11/loader_x11.c | 153 + src/x11/loader_x11.h | 32 + src/x11/meson.build | 21 + subprojects/DirectX-Headers.wrap | 3 +- subprojects/equivalent.wrap | 6 + subprojects/hashbrown.wrap | 6 + subprojects/indexmap.wrap | 6 + subprojects/once_cell.wrap | 6 + .../packagefiles/equivalent/meson.build | 18 + .../packagefiles/hashbrown/meson.build | 23 + subprojects/packagefiles/indexmap/meson.build | 27 + .../packagefiles/once_cell/meson.build | 23 + subprojects/packagefiles/pest/meson.build | 21 + .../packagefiles/pest_derive/meson.build | 22 + .../packagefiles/pest_generator/meson.build | 30 + .../packagefiles/pest_meta/meson.build | 22 + .../packagefiles/roxmltree/meson.build | 18 + subprojects/packagefiles/ucd-trie/meson.build | 14 + subprojects/perfetto.wrap | 3 +- subprojects/pest.wrap | 6 + subprojects/pest_derive.wrap | 6 + subprojects/pest_generator.wrap | 6 + subprojects/pest_meta.wrap | 6 + subprojects/proc-macro2.wrap | 8 +- subprojects/roxmltree.wrap | 6 + subprojects/syn.wrap | 8 +- subprojects/ucd-trie.wrap | 6 + subprojects/wayland-protocols.wrap | 8 +- 4498 files changed, 511979 insertions(+), 281129 deletions(-) rename {.ci-farms => .ci-farms-disabled}/austriancoder (100%) rename {.ci-farms => .ci-farms-disabled}/lima (100%) rename .ci-farms/{freedreno => google-freedreno} (100%) delete mode 100644 .gitignore delete mode 100644 .gitlab-ci.yml delete mode 100644 .gitlab-ci/all-skips.txt delete mode 100644 .gitlab-ci/b2c/b2c.yml.jinja2.jinja2 delete mode 100755 .gitlab-ci/b2c/generate_b2c.py delete mode 100644 .gitlab-ci/bare-metal/.editorconfig delete mode 100755 .gitlab-ci/bare-metal/bm-init.sh delete mode 100755 .gitlab-ci/bare-metal/cisco-2960-poe-off.sh delete mode 100755 .gitlab-ci/bare-metal/cisco-2960-poe-on.sh delete mode 100755 .gitlab-ci/bare-metal/cros-servo.sh delete mode 100755 .gitlab-ci/bare-metal/cros_servo_run.py delete mode 100755 .gitlab-ci/bare-metal/eth008-power-down.sh delete mode 100755 .gitlab-ci/bare-metal/eth008-power-relay.py delete mode 100755 .gitlab-ci/bare-metal/eth008-power-up.sh delete mode 100755 .gitlab-ci/bare-metal/expect-output.sh delete mode 100755 .gitlab-ci/bare-metal/fastboot.sh delete mode 100755 .gitlab-ci/bare-metal/fastboot_run.py delete mode 100755 .gitlab-ci/bare-metal/google-power-down.sh delete mode 100755 .gitlab-ci/bare-metal/google-power-relay.py delete mode 100755 .gitlab-ci/bare-metal/google-power-up.sh delete mode 100755 .gitlab-ci/bare-metal/mkbootimg.py delete mode 100755 .gitlab-ci/bare-metal/poe-off delete mode 100755 .gitlab-ci/bare-metal/poe-on delete mode 100755 .gitlab-ci/bare-metal/poe-powered.sh delete mode 100755 .gitlab-ci/bare-metal/poe_run.py delete mode 100644 .gitlab-ci/bare-metal/rootfs-setup.sh delete mode 100755 .gitlab-ci/bare-metal/serial_buffer.py delete mode 100755 .gitlab-ci/bare-metal/telnet-buffer.py delete mode 120000 .gitlab-ci/bin delete mode 100755 .gitlab-ci/build/compiler-wrapper-clang++-15.sh delete mode 100755 .gitlab-ci/build/compiler-wrapper-clang++.sh delete mode 100755 .gitlab-ci/build/compiler-wrapper-clang-15.sh delete mode 100755 .gitlab-ci/build/compiler-wrapper-clang.sh delete mode 100755 .gitlab-ci/build/compiler-wrapper-g++.sh delete mode 100755 .gitlab-ci/build/compiler-wrapper-gcc.sh delete mode 100644 .gitlab-ci/build/compiler-wrapper.sh delete mode 100644 .gitlab-ci/build/gitlab-ci.yml delete mode 100755 .gitlab-ci/common/capture-devcoredump.sh delete mode 100755 .gitlab-ci/common/generate-env.sh delete mode 100755 .gitlab-ci/common/init-stage1.sh delete mode 100755 .gitlab-ci/common/init-stage2.sh delete mode 100755 .gitlab-ci/common/intel-gpu-freq.sh delete mode 100755 .gitlab-ci/common/kdl.sh delete mode 100755 .gitlab-ci/common/start-x.sh delete mode 100644 .gitlab-ci/container/alpine/x86_64_build.sh delete mode 100644 .gitlab-ci/container/alpine/x86_64_lava_ssh_client.sh delete mode 100644 .gitlab-ci/container/baremetal_build.sh delete mode 100644 .gitlab-ci/container/build-angle.sh delete mode 100644 .gitlab-ci/container/build-apitrace.sh delete mode 100644 .gitlab-ci/container/build-crosvm.sh delete mode 100644 .gitlab-ci/container/build-deqp-runner.sh delete mode 100644 .gitlab-ci/container/build-deqp.sh delete mode 100644 .gitlab-ci/container/build-directx-headers.sh delete mode 100644 .gitlab-ci/container/build-fossilize.sh delete mode 100644 .gitlab-ci/container/build-gfxreconstruct.sh delete mode 100644 .gitlab-ci/container/build-hang-detection.sh delete mode 100755 .gitlab-ci/container/build-kdl.sh delete mode 100644 .gitlab-ci/container/build-kernel.sh delete mode 100644 .gitlab-ci/container/build-libclc.sh delete mode 100644 .gitlab-ci/container/build-libdrm.sh delete mode 100644 .gitlab-ci/container/build-llvm-spirv.sh delete mode 100644 .gitlab-ci/container/build-mold.sh delete mode 100644 .gitlab-ci/container/build-ninetests.sh delete mode 100644 .gitlab-ci/container/build-piglit.sh delete mode 100644 .gitlab-ci/container/build-rust.sh delete mode 100644 .gitlab-ci/container/build-shader-db.sh delete mode 100755 .gitlab-ci/container/build-skqp.sh delete mode 100644 .gitlab-ci/container/build-skqp_base.gn delete mode 100644 .gitlab-ci/container/build-va-tools.sh delete mode 100644 .gitlab-ci/container/build-vkd3d-proton.sh delete mode 100644 .gitlab-ci/container/build-vulkan-validation.sh delete mode 100644 .gitlab-ci/container/build-wayland.sh delete mode 100755 .gitlab-ci/container/container_post_build.sh delete mode 100755 .gitlab-ci/container/container_pre_build.sh delete mode 100644 .gitlab-ci/container/create-android-cross-file.sh delete mode 100644 .gitlab-ci/container/create-android-ndk-pc.sh delete mode 100755 .gitlab-ci/container/create-cross-file.sh delete mode 100644 .gitlab-ci/container/cross_build.sh delete mode 100644 .gitlab-ci/container/debian/android_build.sh delete mode 100644 .gitlab-ci/container/debian/arm32_test.sh delete mode 100644 .gitlab-ci/container/debian/arm64_build.sh delete mode 100644 .gitlab-ci/container/debian/arm64_test.sh delete mode 100644 .gitlab-ci/container/debian/arm_test.sh delete mode 100644 .gitlab-ci/container/debian/llvm-snapshot.gpg.key delete mode 100644 .gitlab-ci/container/debian/ppc64el_build.sh delete mode 100644 .gitlab-ci/container/debian/s390x_build.sh delete mode 100644 .gitlab-ci/container/debian/winehq.gpg.key delete mode 100644 .gitlab-ci/container/debian/x86_32_build.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_build-base.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_build.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_test-android.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_test-base.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_test-gl.sh delete mode 100644 .gitlab-ci/container/debian/x86_64_test-vk.sh delete mode 100644 .gitlab-ci/container/fedora/x86_64_build.sh delete mode 100644 .gitlab-ci/container/gitlab-ci.yml delete mode 100644 .gitlab-ci/container/install-wine-apitrace.sh delete mode 100755 .gitlab-ci/container/install-wine-dxvk.sh delete mode 100755 .gitlab-ci/container/lava_build.sh delete mode 100644 .gitlab-ci/container/patches/build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_BUILD.gn.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_fetch_gn.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_git-sync-deps.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_gl.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_is_clang.py.patch delete mode 100644 .gitlab-ci/container/patches/build-skqp_nima.patch delete mode 100644 .gitlab-ci/container/setup-rootfs.sh delete mode 100755 .gitlab-ci/container/setup-wine.sh delete mode 100644 .gitlab-ci/container/strip-rootfs.sh delete mode 100644 .gitlab-ci/cross-xfail-ppc64el delete mode 100644 .gitlab-ci/cross-xfail-s390x delete mode 100755 .gitlab-ci/crosvm-init.sh delete mode 100755 .gitlab-ci/crosvm-runner.sh delete mode 100755 .gitlab-ci/cuttlefish-runner.sh delete mode 100755 .gitlab-ci/deqp-runner.sh delete mode 120000 .gitlab-ci/docs delete mode 100644 .gitlab-ci/download-git-cache.sh delete mode 100644 .gitlab-ci/farm-rules.yml delete mode 100755 .gitlab-ci/fossilize-runner.sh delete mode 100644 .gitlab-ci/fossils.yml delete mode 100755 .gitlab-ci/fossils/fossils.sh delete mode 100644 .gitlab-ci/fossils/query_fossils_yaml.py delete mode 100644 .gitlab-ci/gbm-skips.txt delete mode 100755 .gitlab-ci/gtest-runner.sh delete mode 100644 .gitlab-ci/image-tags.yml delete mode 100644 .gitlab-ci/lava/exceptions.py delete mode 100755 .gitlab-ci/lava/lava-gitlab-ci.yml delete mode 100755 .gitlab-ci/lava/lava-pytest.sh delete mode 100755 .gitlab-ci/lava/lava-submit.sh delete mode 100755 .gitlab-ci/lava/lava_job_submitter.py delete mode 100644 .gitlab-ci/lava/requirements-test.txt delete mode 100644 .gitlab-ci/lava/requirements.txt delete mode 100644 .gitlab-ci/lava/utils/__init__.py delete mode 100644 .gitlab-ci/lava/utils/console_format.py delete mode 100644 .gitlab-ci/lava/utils/constants.py delete mode 100644 .gitlab-ci/lava/utils/gitlab_section.py delete mode 100644 .gitlab-ci/lava/utils/lava_farm.py delete mode 100644 .gitlab-ci/lava/utils/lava_job.py delete mode 100644 .gitlab-ci/lava/utils/lava_job_definition.py delete mode 100644 .gitlab-ci/lava/utils/lava_log_hints.py delete mode 100644 .gitlab-ci/lava/utils/lava_proxy.py delete mode 100644 .gitlab-ci/lava/utils/log_follower.py delete mode 100644 .gitlab-ci/lava/utils/log_section.py delete mode 100644 .gitlab-ci/lava/utils/ssh_job_definition.py delete mode 100644 .gitlab-ci/lava/utils/uart_job_definition.py delete mode 100755 .gitlab-ci/meson/build.sh delete mode 100755 .gitlab-ci/meson/time-strace.sh delete mode 100755 .gitlab-ci/meson/time.sh delete mode 100644 .gitlab-ci/piglit/disable-vs_in.diff delete mode 100755 .gitlab-ci/piglit/piglit-runner.sh delete mode 100755 .gitlab-ci/piglit/piglit-traces.sh delete mode 100755 .gitlab-ci/prepare-artifacts.sh delete mode 100644 .gitlab-ci/report-flakes.py delete mode 100755 .gitlab-ci/run-shader-db.sh delete mode 100755 .gitlab-ci/run-shellcheck.sh delete mode 100755 .gitlab-ci/run-yamllint.sh delete mode 100644 .gitlab-ci/setup-test-env.sh delete mode 100644 .gitlab-ci/test-source-dep.yml delete mode 100644 .gitlab-ci/test/gitlab-ci.yml delete mode 100644 .gitlab-ci/tests/conftest.py delete mode 100644 .gitlab-ci/tests/data/FASTBOOT_force_uart=False_job_definition.yaml delete mode 100644 .gitlab-ci/tests/data/FASTBOOT_force_uart=True_job_definition.yaml delete mode 100644 .gitlab-ci/tests/data/UBOOT_force_uart=False_job_definition.yaml delete mode 100644 .gitlab-ci/tests/data/UBOOT_force_uart=True_job_definition.yaml delete mode 100644 .gitlab-ci/tests/lava/helpers.py delete mode 100644 .gitlab-ci/tests/test_lava_job_submitter.py delete mode 100644 .gitlab-ci/tests/utils/__init__.py delete mode 100644 .gitlab-ci/tests/utils/test_lava_farm.py delete mode 100644 .gitlab-ci/tests/utils/test_lava_job_definition.py delete mode 100644 .gitlab-ci/tests/utils/test_lava_log.py delete mode 100755 .gitlab-ci/vkd3d-proton/run.sh delete mode 100644 .gitlab-ci/windows/Dockerfile_build delete mode 100644 .gitlab-ci/windows/Dockerfile_msvc delete mode 100644 .gitlab-ci/windows/Dockerfile_test delete mode 100644 .gitlab-ci/windows/README.md delete mode 100644 .gitlab-ci/windows/deqp_runner_run.ps1 delete mode 100644 .gitlab-ci/windows/mesa_build.ps1 delete mode 100644 .gitlab-ci/windows/mesa_container.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_build.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_choco.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_d3d.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_libva.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_msvc.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_rust.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_test.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_test_deqp.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_test_piglit.ps1 delete mode 100644 .gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 delete mode 100644 .gitlab-ci/windows/mesa_init_msvc.ps1 delete mode 100644 .gitlab-ci/windows/piglit_run.ps1 delete mode 100644 .gitlab-ci/windows/spirv2dxil_check.ps1 delete mode 100644 .gitlab-ci/windows/spirv2dxil_run.ps1 delete mode 100644 .gitlab-ci/windows/vainfo_run.ps1 delete mode 100644 .gitlab-ci/x11-skips.txt delete mode 100644 .gitlab/issue_templates/Bug Report - AMD Radeon Vulkan.md delete mode 100644 .gitlab/issue_templates/Bug Report.md delete mode 100644 .gitlab/merge_request_templates/Default.md create mode 100644 .shellcheckrc create mode 100755 bin/ci/nightly_compare.py create mode 100644 bin/ci/nightly_compare.sh create mode 100644 bin/flamegraph_map_lp_jit.py create mode 100755 bin/renderdoc-update.py create mode 100755 bin/toml_lint.py create mode 100644 debian/mesa-drm-shim.lintian-overrides create mode 100644 debian/mesa-drm-shim.triggers create mode 100644 debian/mesa-libgallium.install create mode 100644 debian/mesa-libgallium.lintian-overrides delete mode 100644 debian/patches/0001-meson-set-default-drivers-for-ppc-ppc64.patch delete mode 100644 debian/patches/0002-meson-set-default-Vulkan-drivers-for-ppc-ppc64.patch delete mode 100644 debian/patches/0003-fix-meson.build-more-Gallium-Vulkan-drivers-for-on-a.patch delete mode 100644 debian/patches/0004-gallivm-add-lp_context_ref-for-combine-usage-of-LLVM.patch delete mode 100644 debian/patches/0005-gallivm-move-ppc-denorm-disable-to-inline.patch delete mode 100644 debian/patches/0006-gallivm-split-some-code-out-from-init-module.patch delete mode 100644 debian/patches/0007-gallivm-make-lp_bld_coro.h-c-include-safe.patch delete mode 100644 debian/patches/0008-gallivm-export-target-init-code-for-orc-jit-to-reuse.patch delete mode 100644 debian/patches/0009-gallivm-split-out-generating-LLVM-Mattrs.patch delete mode 100644 debian/patches/0010-gallivm-create-a-pass-manager-wrapper.patch delete mode 100644 debian/patches/0011-llvmpipe-add-gallivm_add_global_mapping.patch delete mode 100644 debian/patches/0012-llvmpipe-make-unnamed-global-have-internal-linkage.patch delete mode 100644 debian/patches/0013-util-detect-RISC-V-architecture.patch delete mode 100644 debian/patches/0014-gallivm-add-riscv-support-to-the-mattrs-setting-code.patch delete mode 100644 debian/patches/0015-llvmpipe-add-function-name-to-gallivm_jit_function.patch delete mode 100644 debian/patches/0016-llvmpipe-tests-add-a-new-test-for-multiple-symbols-f.patch delete mode 100644 debian/patches/0017-llvmpipe-add-an-implementation-with-llvm-orcjit.patch delete mode 100644 debian/patches/0018-llvmpipe-append-partial-mask-to-partial-fs_variant-f.patch delete mode 100644 debian/patches/0019-llvmpipe-add-shader-cache-support-for-ORCJIT-impleme.patch delete mode 100644 debian/patches/0020-util-detect-LoongArch-architecture.patch delete mode 100644 debian/patches/0021-gallivm-add-LoongArch-support-to-the-mattrs-setting-.patch delete mode 100644 debian/patches/0022-llvmpipe-add-LoongArch-support-in-ORCJIT.patch delete mode 100644 debian/patches/0023-vulkan-runtime-Rename-vk_meta_object_list-to-vk_obje.patch delete mode 100644 debian/patches/0024-vulkan-runtime-Split-vk_object_list-into-separate-fi.patch delete mode 100644 debian/patches/0025-zink-reject-Imagination-proprietary-driver-w-o-geome.patch delete mode 100644 debian/patches/0026-add-zx-s-driver-to-mesa-s-driver-map-list-and-export.patch create mode 100644 debian/upstream/metadata create mode 100644 docs/_exts/depfile.py create mode 100644 docs/drivers/amd/hang-debugging.rst create mode 100644 docs/drivers/panfrost/drm-shim.rst create mode 100644 docs/drivers/panfrost/instancing.rst create mode 100644 docs/drivers/panfrost/texcomp.rst create mode 100644 docs/drivers/panfrost/tiling.rst create mode 100644 docs/header-stubs/compiler/spirv/spirv_info.h rename .gitlab-ci/lava/__init__.py => docs/header-stubs/util/format/u_format_gen.h (100%) rename .gitlab-ci/tests/__init__.py => docs/header-stubs/vk_enum_to_str.h (100%) create mode 100644 docs/meson.build create mode 100644 docs/relnotes/24.0.6.rst create mode 100644 docs/relnotes/24.0.7.rst create mode 100644 docs/relnotes/24.0.8.rst create mode 100644 docs/relnotes/24.0.9.rst create mode 100644 docs/relnotes/24.1.6.rst create mode 100644 docs/relnotes/24.1.7.rst create mode 100644 docs/relnotes/24.2.0.rst create mode 100644 docs/relnotes/24.2.1.rst create mode 100644 docs/relnotes/24.2.2.rst create mode 100644 docs/relnotes/24.2.3.rst create mode 100644 docs/relnotes/24.2.4.rst create mode 100644 docs/relnotes/24.2.5.rst create mode 100644 docs/relnotes/24.2.6.rst create mode 100644 docs/relnotes/24.3.0.rst create mode 100644 docs/rust.rst delete mode 100644 include/GL/internal/mesa_interface.h create mode 100644 include/renderdoc_app.h create mode 100644 src/amd/addrlib/src/chip/gfx12/gfx12_gb_reg.h create mode 100644 src/amd/addrlib/src/core/addrlib3.cpp create mode 100644 src/amd/addrlib/src/core/addrlib3.h create mode 100644 src/amd/addrlib/src/gfx12/gfx12SwizzlePattern.h create mode 100644 src/amd/addrlib/src/gfx12/gfx12addrlib.cpp create mode 100644 src/amd/addrlib/src/gfx12/gfx12addrlib.h create mode 100644 src/amd/ci/deqp-radeonsi-raven-cdna.toml create mode 100644 src/amd/ci/radeonsi-raven-cdna-skips.txt create mode 100644 src/amd/ci/radeonsi-raven-slow-skips.txt delete mode 100644 src/amd/ci/radv-raven-fails.txt create mode 100644 src/amd/ci/radv-tahiti-vkd3d-fails.txt create mode 100644 src/amd/ci/radv-tahiti-vkd3d-skips.txt delete mode 100644 src/amd/ci/radv-tahiti-vkd3d.txt create mode 100644 src/amd/common/ac_cmdbuf.c create mode 100644 src/amd/common/ac_cmdbuf.h create mode 100644 src/amd/common/ac_descriptors.c create mode 100644 src/amd/common/ac_descriptors.h create mode 100644 src/amd/common/ac_formats.c create mode 100644 src/amd/common/ac_formats.h create mode 100644 src/amd/common/ac_nir_helpers.h create mode 100644 src/amd/common/ac_nir_meta.h create mode 100644 src/amd/common/ac_nir_meta_cs_blit.c create mode 100644 src/amd/common/ac_nir_meta_cs_clear_copy_buffer.c create mode 100644 src/amd/common/ac_nir_meta_ps_resolve.c create mode 100644 src/amd/common/ac_nir_opt_shared_append.c create mode 100644 src/amd/common/ac_pm4.c create mode 100644 src/amd/common/ac_pm4.h create mode 100644 src/amd/common/ac_vcn_dec.c create mode 100644 src/amd/common/ac_vcn_enc.c create mode 100644 src/amd/compiler/aco_insert_delay_alu.cpp create mode 100644 src/amd/compiler/aco_jump_threading.cpp create mode 100644 src/amd/compiler/aco_lower_subdword.cpp create mode 100644 src/amd/compiler/tests/test_lower_subdword.cpp create mode 100644 src/amd/registers/gfx12-rsrc.json create mode 100644 src/amd/registers/gfx12.json create mode 100644 src/amd/vpelib/asset/VPE10Diagram.png create mode 100644 src/amd/vpelib/asset/VPE11Diagram.png create mode 100644 src/amd/vpelib/asset/vpe_components.png create mode 100644 src/amd/vpelib/docs/VPEDoxy.in create mode 100644 src/amd/vpelib/src/chip/vpe10/inc/vpe10_cdc_be.h rename src/amd/vpelib/src/chip/vpe10/inc/{vpe10_cdc.h => vpe10_cdc_fe.h} (76%) create mode 100644 src/amd/vpelib/src/chip/vpe10/inc/vpe10_command.h create mode 100644 src/amd/vpelib/src/chip/vpe10/inc/vpe10_config_writer.h create mode 100644 src/amd/vpelib/src/chip/vpe10/inc/vpe10_plane_desc_writer.h create mode 100644 src/amd/vpelib/src/chip/vpe10/inc/vpe10_vpe_desc_writer.h create mode 100644 src/amd/vpelib/src/chip/vpe10/vpe10_cdc_be.c rename src/amd/vpelib/src/chip/vpe10/{vpe10_cdc.c => vpe10_cdc_fe.c} (62%) create mode 100644 src/amd/vpelib/src/chip/vpe10/vpe10_config_writer.c rename src/amd/vpelib/src/{core/plane_desc_writer.c => chip/vpe10/vpe10_plane_desc_writer.c} (88%) rename src/amd/vpelib/src/{core/vpe_desc_writer.c => chip/vpe10/vpe10_vpe_desc_writer.c} (73%) create mode 100644 src/amd/vpelib/src/chip/vpe11/inc/vpe11_command.h create mode 100644 src/amd/vpelib/src/chip/vpe11/inc/vpe11_vpe_desc_writer.h create mode 100644 src/amd/vpelib/src/chip/vpe11/vpe11_vpe_desc_writer.c delete mode 100644 src/amd/vpelib/src/core/inc/color_pwl.h create mode 100644 src/amd/vpelib/src/core/inc/config_cache.h create mode 100644 src/amd/vpelib/src/utils/inc/vector.h create mode 100644 src/amd/vpelib/src/utils/vector.c create mode 100644 src/amd/vulkan/nir/radv_nir_opt_tid_function.c create mode 100644 src/amd/vulkan/nir/radv_nir_remap_color_attachment.c delete mode 100644 src/amd/vulkan/radv_device_generated_commands.c delete mode 100644 src/amd/vulkan/radv_device_generated_commands.h create mode 100644 src/amd/vulkan/radv_dgc.c create mode 100644 src/amd/vulkan/radv_dgc.h create mode 100644 src/amd/vulkan/radv_pipeline_binary.c create mode 100644 src/amd/vulkan/radv_pipeline_binary.h delete mode 100644 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c delete mode 100644 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.h delete mode 100644 src/asahi/compiler/agx_internal_formats.h create mode 100644 src/asahi/compiler/agx_lower_divergent_shuffle.c create mode 100644 src/asahi/compiler/agx_nir_lower_fminmax.c create mode 100644 src/asahi/compiler/agx_validate_ra.c create mode 100644 src/asahi/genxml/agx_pack_header.h create mode 100644 src/asahi/layout/formats.c create mode 100644 src/asahi/lib/agx_abi.h rename src/asahi/lib/{agx_meta.c => agx_bg_eot.c} (72%) create mode 100644 src/asahi/lib/agx_bg_eot.h create mode 100644 src/asahi/lib/agx_device_virtio.c create mode 100644 src/asahi/lib/agx_device_virtio.h delete mode 100644 src/asahi/lib/agx_formats.c delete mode 100644 src/asahi/lib/agx_formats.h delete mode 100644 src/asahi/lib/agx_meta.h create mode 100644 src/asahi/lib/agx_va.c create mode 100644 src/asahi/lib/asahi_proto.h create mode 100644 src/asahi/lib/shaders/compression.cl create mode 100644 src/asahi/lib/shaders/compression.h create mode 100644 src/asahi/lib/shaders/draws.cl create mode 100644 src/asahi/lib/shaders/draws.h create mode 100644 src/asahi/lib/shaders/query.cl create mode 100644 src/asahi/lib/shaders/query.h create mode 100644 src/asahi/lib/shaders/tessellator.h create mode 100644 src/asahi/lib/unstable_asahi_drm.h create mode 100644 src/asahi/vulkan/hk_buffer.c create mode 100644 src/asahi/vulkan/hk_buffer.h create mode 100644 src/asahi/vulkan/hk_buffer_view.c create mode 100644 src/asahi/vulkan/hk_buffer_view.h create mode 100644 src/asahi/vulkan/hk_cmd_buffer.c create mode 100644 src/asahi/vulkan/hk_cmd_buffer.h create mode 100644 src/asahi/vulkan/hk_cmd_clear.c create mode 100644 src/asahi/vulkan/hk_cmd_dispatch.c create mode 100644 src/asahi/vulkan/hk_cmd_draw.c create mode 100644 src/asahi/vulkan/hk_cmd_meta.c create mode 100644 src/asahi/vulkan/hk_cmd_pool.c create mode 100644 src/asahi/vulkan/hk_cmd_pool.h create mode 100644 src/asahi/vulkan/hk_descriptor_set.c create mode 100644 src/asahi/vulkan/hk_descriptor_set.h create mode 100644 src/asahi/vulkan/hk_descriptor_set_layout.c create mode 100644 src/asahi/vulkan/hk_descriptor_set_layout.h create mode 100644 src/asahi/vulkan/hk_descriptor_table.c create mode 100644 src/asahi/vulkan/hk_descriptor_table.h create mode 100644 src/asahi/vulkan/hk_device.c create mode 100644 src/asahi/vulkan/hk_device.h create mode 100644 src/asahi/vulkan/hk_device_memory.c create mode 100644 src/asahi/vulkan/hk_device_memory.h create mode 100644 src/asahi/vulkan/hk_event.c create mode 100644 src/asahi/vulkan/hk_event.h create mode 100644 src/asahi/vulkan/hk_format.c create mode 100644 src/asahi/vulkan/hk_image.c create mode 100644 src/asahi/vulkan/hk_image.h create mode 100644 src/asahi/vulkan/hk_image_view.c create mode 100644 src/asahi/vulkan/hk_image_view.h create mode 100644 src/asahi/vulkan/hk_instance.c create mode 100644 src/asahi/vulkan/hk_instance.h create mode 100644 src/asahi/vulkan/hk_nir_lower_descriptors.c create mode 100644 src/asahi/vulkan/hk_nir_passthrough_gs.c create mode 100644 src/asahi/vulkan/hk_physical_device.c create mode 100644 src/asahi/vulkan/hk_physical_device.h create mode 100644 src/asahi/vulkan/hk_private.h create mode 100644 src/asahi/vulkan/hk_query_pool.c create mode 100644 src/asahi/vulkan/hk_query_pool.h create mode 100644 src/asahi/vulkan/hk_queue.c create mode 100644 src/asahi/vulkan/hk_queue.h create mode 100644 src/asahi/vulkan/hk_sampler.c create mode 100644 src/asahi/vulkan/hk_sampler.h create mode 100644 src/asahi/vulkan/hk_shader.c create mode 100644 src/asahi/vulkan/hk_shader.h create mode 100644 src/asahi/vulkan/hk_wsi.c create mode 100644 src/asahi/vulkan/hk_wsi.h create mode 100644 src/asahi/vulkan/meson.build create mode 100644 src/broadcom/ci/deqp-broadcom-rpi3-arm32.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi3-asan.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-arm32.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-asan.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-vk-asan.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi4-vk.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi5-vk.toml create mode 100644 src/broadcom/ci/deqp-broadcom-rpi5.toml create mode 100644 src/broadcom/ci/deqp-v3d-rusticl.toml create mode 100644 src/broadcom/compiler/v3d_nir_lower_algebraic.py delete mode 100644 src/broadcom/vulkan/v3dv_debug.c create mode 100644 src/compiler/clc/mesa_clc.c create mode 100644 src/compiler/glsl/gl_nir_link_functions.c delete mode 100644 src/compiler/glsl/ir_builder_print_visitor.cpp delete mode 100644 src/compiler/glsl/ir_builder_print_visitor.h delete mode 100644 src/compiler/glsl/ir_function_can_inline.cpp delete mode 100644 src/compiler/glsl/ir_function_inlining.h delete mode 100644 src/compiler/glsl/ir_uniform.h delete mode 100644 src/compiler/glsl/link_functions.cpp delete mode 100644 src/compiler/glsl/link_interface_blocks.cpp delete mode 100644 src/compiler/glsl/linker.cpp delete mode 100644 src/compiler/glsl/linker.h delete mode 100644 src/compiler/glsl/opt_add_neg_to_sub.h delete mode 100644 src/compiler/glsl/tests/opt_add_neg_to_sub_test.cpp delete mode 100644 src/compiler/glsl/tests/standalone_dump-builder.frag create mode 100644 src/compiler/nir/nir_format_convert.c create mode 100644 src/compiler/nir/nir_gather_tcs_info.c create mode 100644 src/compiler/nir/nir_lower_atomics.c delete mode 100644 src/compiler/nir/nir_lower_discard_or_demote.c create mode 100644 src/compiler/nir/nir_lower_view_index_to_device_index.c create mode 100644 src/compiler/nir/nir_opt_frag_coord_to_pixel_coord.c create mode 100644 src/compiler/nir/nir_opt_generate_bfi.c create mode 100644 src/compiler/nir/nir_opt_licm.c delete mode 100644 src/compiler/nir/nir_opt_reuse_constants.c create mode 100644 src/compiler/nir/nir_opt_vectorize_io.c create mode 100644 src/compiler/nir/tests/format_convert_tests.cpp create mode 100644 src/compiler/nir/tests/opt_loop_tests.cpp create mode 100644 src/compiler/rust/.clang-format create mode 100644 src/compiler/rust/.rustfmt.toml create mode 100644 src/compiler/rust/as_slice.rs create mode 100644 src/compiler/rust/bindings.h create mode 100644 src/compiler/rust/bindings.rs rename src/{nouveau/compiler/nak => compiler/rust}/bitset.rs (87%) rename src/{nouveau/compiler/nak => compiler/rust}/cfg.rs (99%) create mode 100644 src/compiler/rust/lib.rs create mode 100644 src/compiler/rust/memstream.rs create mode 100644 src/compiler/rust/meson.build rename src/{nouveau/compiler/nak => compiler/rust}/nir.rs (56%) create mode 100644 src/compiler/rust/nir_instr_printer.rs create mode 100644 src/compiler/rust/proc/as_slice.rs create mode 100644 src/compiler/rust/proc/lib.rs create mode 100644 src/compiler/rust/rust_helpers.c create mode 100644 src/compiler/rust/rust_helpers.h create mode 100644 src/compiler/rust/smallvec.rs delete mode 100644 src/compiler/spirv/spirv_info.h rename src/compiler/spirv/{spirv_info_c.py => spirv_info_gen.py} (53%) create mode 100644 src/compiler/spirv/vtn_debug.c create mode 100644 src/etnaviv/ci/deqp-etnaviv-gc2000-piglit.toml create mode 100644 src/etnaviv/isa/api.rs create mode 100644 src/etnaviv/isa/assembler.c create mode 100644 src/etnaviv/isa/bindings.h create mode 100644 src/etnaviv/isa/isa.rs create mode 100644 src/etnaviv/isa/isa_proc.rs create mode 100644 src/etnaviv/isa/lib.rs create mode 100644 src/etnaviv/isa/parser.rs create mode 100644 src/etnaviv/isa/static_rules.pest create mode 100644 src/etnaviv/isa/util.rs create mode 100644 src/freedreno/ci/deqp-freedreno-a306-piglit-quick-gl.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a306-piglit-quick-shader.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a306-piglit.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a618-piglit-cl.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a618-piglit-full.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a618-piglit.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a630-gles-asan-full.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a630-gles-asan.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a630-piglit-full.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a660-piglit-cl.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a750-piglit-cl.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a750-vk.toml create mode 100644 src/freedreno/ci/deqp-freedreno-a750.toml rename src/freedreno/ci/{freedreno-a630-premerge-skips.txt => freedreno-a618-slow-skips.txt} (52%) create mode 100644 src/freedreno/ci/freedreno-a630-slow-skips.txt rename src/freedreno/ci/{freedreno-a660-premerge-skips.txt => freedreno-a660-slow-skips.txt} (60%) create mode 100644 src/freedreno/ci/freedreno-a6xx-skips.txt create mode 100644 src/freedreno/ci/freedreno-a750-fails.txt create mode 100644 src/freedreno/ci/freedreno-a750-flakes.txt create mode 100644 src/freedreno/ci/freedreno-a750-skips.txt rename src/freedreno/ci/{freedreno-a618-premerge-skips.txt => freedreno-a750-slow-skips.txt} (54%) create mode 100644 src/freedreno/ci/freedreno-a750-vkd3d-fails.txt create mode 100644 src/freedreno/common/freedreno_lrz.h create mode 100644 src/freedreno/common/freedreno_ubwc.h create mode 100644 src/freedreno/computerator/examples/localmem.asm create mode 100644 src/freedreno/fdl/fd6_tiled_memcpy.cc create mode 100644 src/freedreno/ir3/ir3_lower_shared_phi.c delete mode 100644 src/freedreno/ir3/ir3_nir_lower_wide_load_store.c create mode 100644 src/freedreno/ir3/ir3_rpt.c create mode 100644 src/freedreno/ir3/ir3_shared_folding.c create mode 100644 src/freedreno/perfcntrs/fd7_perfcntr.c delete mode 100644 src/freedreno/registers/dsi/dsi.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_10nm.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_14nm.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_20nm.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_28nm.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_28nm_8960.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_7nm.xml delete mode 100644 src/freedreno/registers/dsi/dsi_phy_v2.xml delete mode 100644 src/freedreno/registers/dsi/mmss_cc.xml delete mode 100644 src/freedreno/registers/dsi/sfpb.xml delete mode 100644 src/freedreno/registers/edp/edp.xml delete mode 100644 src/freedreno/registers/hdmi/hdmi.xml delete mode 100644 src/freedreno/registers/hdmi/qfprom.xml delete mode 100644 src/freedreno/registers/mdp/mdp4.xml delete mode 100644 src/freedreno/registers/mdp/mdp5.xml delete mode 100644 src/freedreno/registers/mdp/mdp_common.xml delete mode 100644 src/freedreno/registers/msm.xml create mode 100644 src/freedreno/vulkan/ion/ion.h create mode 100644 src/freedreno/vulkan/ion/ion_4.19.h create mode 100644 src/freedreno/vulkan/tu_buffer.cc create mode 100644 src/freedreno/vulkan/tu_buffer.h create mode 100644 src/freedreno/vulkan/tu_buffer_view.cc create mode 100644 src/freedreno/vulkan/tu_buffer_view.h create mode 100644 src/freedreno/vulkan/tu_event.cc create mode 100644 src/freedreno/vulkan/tu_event.h rename src/freedreno/vulkan/{tu_query.cc => tu_query_pool.cc} (92%) rename src/freedreno/vulkan/{tu_query.h => tu_query_pool.h} (79%) create mode 100644 src/freedreno/vulkan/tu_sampler.cc create mode 100644 src/freedreno/vulkan/tu_sampler.h create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init_common.c create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_passmgr.c rename src/gallium/{frontends/omx/bellagio/entrypoint.h => auxiliary/gallivm/lp_bld_passmgr.h} (64%) create mode 100644 src/gallium/auxiliary/vl/vl_winsys_kopper.c delete mode 100644 src/gallium/drivers/lima/standalone/glsl.cpp delete mode 100644 src/gallium/drivers/lima/standalone/glsl.h delete mode 100644 src/gallium/drivers/lima/standalone/lima_compiler_cmdline.c create mode 100644 src/gallium/drivers/llvmpipe/lp_test_lookup_multiple.c rename src/{panfrost/lib/pan_blitter.c => gallium/drivers/panfrost/pan_fb_preload.c} (59%) create mode 100644 src/gallium/drivers/panfrost/pan_fb_preload.h create mode 100644 src/gallium/drivers/r300/ci/deqp-r300-rv410.toml delete mode 100644 src/gallium/drivers/r300/ci/r300-r480-fails.txt create mode 100644 src/gallium/drivers/r300/ci/r300-rv410-fails.txt create mode 100644 src/gallium/drivers/r300/ci/r300-rv410-flakes.txt create mode 100644 src/gallium/drivers/r300/ci/r300-rv410-skips.txt create mode 100644 src/gallium/drivers/r300/compiler/.clang-format create mode 100644 src/gallium/drivers/r300/driinfo_r300.h create mode 100644 src/gallium/drivers/r300/r300_debug_options.h create mode 100644 src/gallium/drivers/radeonsi/ci/gfx7-hawaii-fail.csv delete mode 100644 src/gallium/drivers/radeonsi/radeon_temporal.h create mode 100644 src/gallium/drivers/radeonsi/radeon_vcn_enc_5_0.c create mode 100644 src/gallium/drivers/radeonsi/si_barrier.c create mode 100644 src/gallium/drivers/radeonsi/si_cp_utils.c create mode 100644 src/gallium/drivers/radeonsi/si_test_blit_perf.c delete mode 100644 src/gallium/drivers/svga/include/includeCheck.h delete mode 100644 src/gallium/drivers/svga/include/svga3d_caps.h delete mode 100644 src/gallium/drivers/svga/include/svga_types.h create mode 100644 src/gallium/drivers/svga/include/vm_basic_types.h create mode 100644 src/gallium/drivers/svga/include/vmw_surf_defs.h delete mode 100644 src/gallium/drivers/svga/include/vmware_pack_begin.h delete mode 100644 src/gallium/drivers/svga/include/vmware_pack_end.h delete mode 100644 src/gallium/drivers/vc4/vc4_tiling_lt_neon.c create mode 100644 src/gallium/drivers/zink/ci/deqp-zink-anv-adl-full.toml create mode 100644 src/gallium/drivers/zink/ci/deqp-zink-anv-adl.toml create mode 100644 src/gallium/drivers/zink/ci/deqp-zink-nvk.toml create mode 100644 src/gallium/drivers/zink/ci/deqp-zink-tu-a750.toml create mode 100644 src/gallium/drivers/zink/ci/zink-anv-adl-fails.txt create mode 100644 src/gallium/drivers/zink/ci/zink-anv-adl-flakes.txt create mode 100644 src/gallium/drivers/zink/ci/zink-anv-adl-skips.txt create mode 100644 src/gallium/drivers/zink/ci/zink-anv-adl-slow-skips.txt rename src/gallium/drivers/zink/ci/{zink-anv-tgl-premerge-skips.txt => zink-anv-tgl-slow-skips.txt} (77%) delete mode 100644 src/gallium/drivers/zink/ci/zink-nvk-fails.txt delete mode 100644 src/gallium/drivers/zink/ci/zink-nvk-flakes.txt create mode 100644 src/gallium/drivers/zink/ci/zink-nvk-ga106-fails.txt create mode 100644 src/gallium/drivers/zink/ci/zink-nvk-ga106-flakes.txt create mode 100644 src/gallium/drivers/zink/ci/zink-nvk-ga106-skips.txt delete mode 100644 src/gallium/drivers/zink/ci/zink-nvk-skips.txt create mode 100644 src/gallium/drivers/zink/ci/zink-radv-validation-settings.txt create mode 100644 src/gallium/frontends/dri/kopper_stubs.c rename src/{loader => gallium/frontends/dri}/loader_dri3_helper.c (85%) rename src/{loader => gallium/frontends/dri}/loader_dri3_helper.h (83%) create mode 100644 src/gallium/frontends/lavapipe/lvp_android.c create mode 100644 src/gallium/frontends/lavapipe/lvp_device_generated_commands.c create mode 100644 src/gallium/frontends/lavapipe/lvp_nir_lower_sparse_residency.c delete mode 100644 src/gallium/frontends/omx/bellagio/entrypoint.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec.h delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec_av1.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec_av1.h delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec_h264.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec_h265.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_dec_mpeg12.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_enc.c delete mode 100644 src/gallium/frontends/omx/bellagio/vid_enc.h delete mode 100644 src/gallium/frontends/omx/meson.build delete mode 100644 src/gallium/frontends/omx/tizonia/entrypoint.c delete mode 100644 src/gallium/frontends/omx/tizonia/entrypoint.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264d.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264d.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264dinport.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264dinport.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264dinport_decls.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264dprc.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264dprc.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264e.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264e.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264einport.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264einport.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264einport_decls.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264eoutport.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264eoutport.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264eoutport_decls.h delete mode 100644 src/gallium/frontends/omx/tizonia/h264eprc.c delete mode 100644 src/gallium/frontends/omx/tizonia/h264eprc.h delete mode 100644 src/gallium/frontends/omx/tizonia/names.h delete mode 100644 src/gallium/frontends/omx/vid_dec_common.c delete mode 100644 src/gallium/frontends/omx/vid_dec_common.h delete mode 100644 src/gallium/frontends/omx/vid_dec_h264_common.c delete mode 100644 src/gallium/frontends/omx/vid_dec_h264_common.h delete mode 100644 src/gallium/frontends/omx/vid_enc_common.c delete mode 100644 src/gallium/frontends/omx/vid_enc_common.h delete mode 100644 src/gallium/frontends/omx/vid_omx_common.c delete mode 100644 src/gallium/frontends/omx/vid_omx_common.h create mode 100644 src/gallium/frontends/rusticl/ci/gitlab-ci.yml delete mode 100644 src/gallium/frontends/rusticl/rusticl_mesa_inline_bindings_wrapper.c delete mode 100644 src/gallium/frontends/rusticl/rusticl_mesa_inline_bindings_wrapper.h create mode 100644 src/gallium/include/mesa_interface.h rename src/gallium/targets/{xa/target.c => dri/dri_target.c} (71%) delete mode 100644 src/gallium/targets/dri/target.c create mode 100644 src/gallium/targets/dril/dri.sym.in create mode 100644 src/gallium/targets/dril/dril_target.c create mode 100644 src/gallium/targets/dril/meson.build rename src/gallium/targets/lavapipe/{target.c => lavapipe_target.c} (100%) delete mode 100644 src/gallium/targets/omx/meson.build delete mode 100644 src/gallium/targets/omx/omx.sym.in rename src/gallium/targets/osmesa/{target.c => osmesa_target.c} (100%) rename src/gallium/targets/{omx/target.c => rusticl/rusticl_target.c} (100%) rename src/gallium/targets/{rusticl/target.c => teflon/teflon_target.c} (100%) rename src/gallium/targets/{teflon/target.c => va/va_target.c} (100%) rename src/gallium/targets/{va/target.c => vdpau/vdpau_target.c} (100%) rename src/gallium/targets/{vdpau/target.c => xa/xa_target.c} (100%) delete mode 100644 src/gallium/winsys/nouveau/drm/.editorconfig create mode 100644 src/gbm/backends/dri/meson.build create mode 100644 src/gfxstream/.clang-format create mode 100755 src/gfxstream/codegen/generate-gfxstream-vulkan.sh create mode 100644 src/gfxstream/codegen/scripts/cereal/__init__.py create mode 100644 src/gfxstream/codegen/scripts/cereal/api_log_decoder.py create mode 100644 src/gfxstream/codegen/scripts/cereal/common/__init__.py create mode 100644 src/gfxstream/codegen/scripts/cereal/common/codegen.py create mode 100644 src/gfxstream/codegen/scripts/cereal/common/vulkantypes.py create mode 100644 src/gfxstream/codegen/scripts/cereal/counting.py create mode 100644 src/gfxstream/codegen/scripts/cereal/decoder.py create mode 100644 src/gfxstream/codegen/scripts/cereal/decodersnapshot.py create mode 100644 src/gfxstream/codegen/scripts/cereal/deepcopy.py create mode 100644 src/gfxstream/codegen/scripts/cereal/dispatch.py create mode 100644 src/gfxstream/codegen/scripts/cereal/encoder.py create mode 100644 src/gfxstream/codegen/scripts/cereal/extensionstructs.py create mode 100644 src/gfxstream/codegen/scripts/cereal/frontend.py create mode 100644 src/gfxstream/codegen/scripts/cereal/functable.py create mode 100644 src/gfxstream/codegen/scripts/cereal/handlemap.py create mode 100644 src/gfxstream/codegen/scripts/cereal/marshaling.py create mode 100644 src/gfxstream/codegen/scripts/cereal/marshalingdefs.py create mode 100644 src/gfxstream/codegen/scripts/cereal/reservedmarshaling.py create mode 100644 src/gfxstream/codegen/scripts/cereal/subdecode.py create mode 100644 src/gfxstream/codegen/scripts/cereal/testing.py create mode 100644 src/gfxstream/codegen/scripts/cereal/transform.py create mode 100644 src/gfxstream/codegen/scripts/cereal/unbox.py create mode 100644 src/gfxstream/codegen/scripts/cereal/vkextensionstructuretype.py create mode 100644 src/gfxstream/codegen/scripts/cereal/wrapperdefs.py create mode 100644 src/gfxstream/codegen/scripts/cerealgenerator.py create mode 100644 src/gfxstream/codegen/scripts/cgenerator.py create mode 100644 src/gfxstream/codegen/scripts/generator.py create mode 100755 src/gfxstream/codegen/scripts/genvk.py create mode 100644 src/gfxstream/codegen/scripts/reg.py create mode 100644 src/gfxstream/codegen/xml/vk_gfxstream.xml create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/AddressSpaceStream.cpp create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/GoldfishAddressSpaceStream.cpp create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/goldfish_address_space.cpp create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/AddressSpaceStream.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/GoldfishAddressSpaceStream.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/VirtioGpuAddressSpaceStream.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/address_space.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/address_space_graphics_types.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/include/goldfish_address_space.h create mode 100644 src/gfxstream/guest/GoldfishAddressSpace/meson.build create mode 100644 src/gfxstream/guest/android/ANativeWindowAndroid.cpp create mode 100644 src/gfxstream/guest/android/ANativeWindowAndroid.h create mode 100644 src/gfxstream/guest/android/ANativeWindowEmulated.cpp create mode 100644 src/gfxstream/guest/android/ANativeWindowEmulated.h create mode 100644 src/gfxstream/guest/android/GfxStreamGralloc.cpp create mode 100644 src/gfxstream/guest/android/GrallocEmulated.cpp create mode 100644 src/gfxstream/guest/android/GrallocEmulated.h create mode 100644 src/gfxstream/guest/android/GrallocGoldfish.cpp create mode 100644 src/gfxstream/guest/android/GrallocGoldfish.h create mode 100644 src/gfxstream/guest/android/GrallocMinigbm.cpp create mode 100644 src/gfxstream/guest/android/GrallocMinigbm.h create mode 100644 src/gfxstream/guest/android/include/gfxstream/guest/ANativeWindow.h create mode 100644 src/gfxstream/guest/android/include/gfxstream/guest/GfxStreamGralloc.h create mode 100644 src/gfxstream/guest/android/include/gfxstream/guest/goldfish_sync.h create mode 100644 src/gfxstream/guest/connection-manager/GfxStreamConnection.cpp create mode 100644 src/gfxstream/guest/connection-manager/GfxStreamConnection.h create mode 100644 src/gfxstream/guest/connection-manager/GfxStreamConnectionManager.cpp create mode 100644 src/gfxstream/guest/connection-manager/GfxStreamConnectionManager.h create mode 100644 src/gfxstream/guest/connection-manager/QemuPipeStream.cpp create mode 100644 src/gfxstream/guest/connection-manager/QemuPipeStream.h create mode 100644 src/gfxstream/guest/connection-manager/QemuPipeStreamStub.cpp create mode 100644 src/gfxstream/guest/connection-manager/VirtioGpuPipeStream.cpp create mode 100644 src/gfxstream/guest/connection-manager/VirtioGpuPipeStream.h create mode 100644 src/gfxstream/guest/connection-manager/meson.build create mode 100644 src/gfxstream/guest/iostream/include/gfxstream/guest/IOStream.h create mode 100644 src/gfxstream/guest/iostream/meson.build create mode 100644 src/gfxstream/guest/meson.build create mode 100644 src/gfxstream/guest/platform/VirtGpu.cpp create mode 100644 src/gfxstream/guest/platform/fuchsia/FuchsiaVirtGpu.h create mode 100644 src/gfxstream/guest/platform/fuchsia/FuchsiaVirtGpuBlob.cpp create mode 100644 src/gfxstream/guest/platform/fuchsia/FuchsiaVirtGpuBlobMapping.cpp create mode 100644 src/gfxstream/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp create mode 100644 src/gfxstream/guest/platform/fuchsia/os_dirent_fuchsia.cpp create mode 100644 src/gfxstream/guest/platform/include/Sync.h create mode 100644 src/gfxstream/guest/platform/include/VirtGpu.h create mode 100644 src/gfxstream/guest/platform/include/virtgpu_gfxstream_protocol.h create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquat.h create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatBlob.cpp create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatBlobMapping.cpp create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatDevice.cpp create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatStub.cpp create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatSync.cpp create mode 100644 src/gfxstream/guest/platform/kumquat/VirtGpuKumquatSync.h create mode 100644 src/gfxstream/guest/platform/kumquat/meson.build create mode 100644 src/gfxstream/guest/platform/linux/LinuxSync.cpp create mode 100644 src/gfxstream/guest/platform/linux/LinuxSync.h create mode 100644 src/gfxstream/guest/platform/linux/LinuxVirtGpu.h create mode 100644 src/gfxstream/guest/platform/linux/LinuxVirtGpuBlob.cpp create mode 100644 src/gfxstream/guest/platform/linux/LinuxVirtGpuBlobMapping.cpp create mode 100644 src/gfxstream/guest/platform/linux/LinuxVirtGpuDevice.cpp create mode 100644 src/gfxstream/guest/platform/linux/meson.build create mode 100644 src/gfxstream/guest/platform/meson.build create mode 100644 src/gfxstream/guest/vulkan/gfxstream_icd.json create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_android.cpp create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_cmd.cpp create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_device.cpp create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_fuchsia.cpp create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_wsi.cpp create mode 100644 src/gfxstream/guest/vulkan/gfxstream_vk_wsi_stub.cpp create mode 100644 src/gfxstream/guest/vulkan/meson.build create mode 100644 src/gfxstream/guest/vulkan/stubs/GfxStreamRenderControl.cpp create mode 100644 src/gfxstream/guest/vulkan/stubs/GfxStreamRenderControl.h create mode 100644 src/gfxstream/guest/vulkan/stubs/meson.build create mode 100644 src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/AndroidHardwareBuffer.h create mode 100644 src/gfxstream/guest/vulkan_enc/CommandBufferStagingStream.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/CommandBufferStagingStream.h create mode 100644 src/gfxstream/guest/vulkan_enc/DescriptorSetVirtualization.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/DescriptorSetVirtualization.h create mode 100644 src/gfxstream/guest/vulkan_enc/GfxStreamVulkanConnection.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/GfxStreamVulkanConnection.h create mode 100644 src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/HostVisibleMemoryVirtualization.h create mode 100644 src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/ResourceTracker.h create mode 100644 src/gfxstream/guest/vulkan_enc/Resources.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/Resources.h create mode 100644 src/gfxstream/guest/vulkan_enc/Validation.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/Validation.h create mode 100644 src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl create mode 100644 src/gfxstream/guest/vulkan_enc/VkEncoder.h.inl create mode 100644 src/gfxstream/guest/vulkan_enc/VulkanHandleMapping.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/VulkanHandleMapping.h create mode 100644 src/gfxstream/guest/vulkan_enc/VulkanHandles.h create mode 100644 src/gfxstream/guest/vulkan_enc/VulkanStreamGuest.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/VulkanStreamGuest.h create mode 100644 src/gfxstream/guest/vulkan_enc/gfxstream_vk_private.cpp create mode 100644 src/gfxstream/guest/vulkan_enc/gfxstream_vk_private.h create mode 100644 src/gfxstream/guest/vulkan_enc/goldfish_vk_private_defs.h create mode 100644 src/gfxstream/guest/vulkan_enc/meson.build create mode 100644 src/gfxstream/guest/vulkan_enc/vkQueueFlushCommandsGOOGLE_encode_impl.cpp.inl create mode 100644 src/gfxstream/guest/vulkan_enc/vk_android_native_buffer_gfxstream.h create mode 100644 src/gfxstream/guest/vulkan_enc/vk_format_info.h create mode 100644 src/gfxstream/guest/vulkan_enc/vk_platform_compat.h create mode 100644 src/gfxstream/guest/vulkan_enc/vk_struct_id.h create mode 100644 src/gfxstream/guest/vulkan_enc/vk_util.h create mode 100644 src/gfxstream/meson.build delete mode 100644 src/glx/dri_common_interop.c delete mode 100644 src/glx/tests/clientinfo_unittest.cpp delete mode 100644 src/glx/tests/create_context_unittest.cpp delete mode 100755 src/glx/tests/dispatch-index-check delete mode 100644 src/glx/tests/enum_sizes.cpp delete mode 100644 src/glx/tests/fake_glx_screen.cpp delete mode 100644 src/glx/tests/fake_glx_screen.h delete mode 100644 src/glx/tests/indirect_api.cpp delete mode 100644 src/glx/tests/mock_xdisplay.h delete mode 100644 src/glx/tests/query_renderer_implementation_unittest.cpp delete mode 100644 src/glx/tests/query_renderer_unittest.cpp create mode 100644 src/intel/ci/angle-anv-adl-fails.txt delete mode 100644 src/intel/ci/angle-anv-jsl-skips.txt delete mode 100644 src/intel/ci/angle-anv-tgl-skips.txt create mode 100644 src/intel/ci/anv-adl-fails.txt create mode 100644 src/intel/ci/anv-adl-flakes.txt create mode 100644 src/intel/ci/anv-adl-skips.txt rename src/intel/ci/{anv-jsl-premerge-skips.txt => anv-jsl-slow-skips.txt} (70%) create mode 100644 src/intel/ci/anv-tgl-skips.txt create mode 100644 src/intel/ci/deqp-anv-adl-angle-full.toml create mode 100644 src/intel/ci/deqp-anv-adl-angle.toml create mode 100644 src/intel/ci/deqp-anv-adl-full.toml create mode 100644 src/intel/ci/deqp-anv-adl.toml create mode 100644 src/intel/ci/deqp-intel-adl-cl.toml create mode 100644 src/intel/ci/deqp-intel-adl-skqp.toml create mode 100644 src/intel/ci/intel-adl-fails.txt create mode 100644 src/intel/ci/intel-adl-flakes.txt create mode 100644 src/intel/common/intel_common.c create mode 100644 src/intel/common/intel_common.h create mode 100644 src/intel/common/intel_compute_slm.c create mode 100644 src/intel/common/intel_compute_slm.h create mode 100644 src/intel/common/intel_debug_identifier.c create mode 100644 src/intel/common/intel_debug_identifier.h create mode 100644 src/intel/common/xe/intel_queue.c create mode 100644 src/intel/common/xe/intel_queue.h create mode 100644 src/intel/compiler/brw_asm.c create mode 100644 src/intel/compiler/brw_asm_internal.h create mode 100644 src/intel/compiler/brw_compile_bs.cpp create mode 100644 src/intel/compiler/brw_compile_cs.cpp create mode 100644 src/intel/compiler/brw_compile_fs.cpp rename src/intel/compiler/{brw_mesh.cpp => brw_compile_mesh.cpp} (90%) create mode 100644 src/intel/compiler/brw_compile_tes.cpp delete mode 100644 src/intel/compiler/brw_dead_control_flow.cpp create mode 100644 src/intel/compiler/brw_def_analysis.cpp delete mode 100644 src/intel/compiler/brw_fs_sel_peephole.cpp create mode 100644 src/intel/compiler/brw_lower_subgroup_ops.cpp create mode 100644 src/intel/compiler/brw_nir_lower_fsign.py create mode 100644 src/intel/compiler/brw_nir_opt_fsat.c delete mode 100644 src/intel/compiler/brw_predicated_break.cpp create mode 100644 src/intel/compiler/brw_print.cpp create mode 100644 src/intel/compiler/intel_nir_lower_printf.c create mode 100644 src/intel/compiler/test_fs_cse.cpp delete mode 100644 src/intel/compiler/test_predicated_break.cpp create mode 100644 src/intel/executor/examples/bfi.lua create mode 100644 src/intel/executor/examples/dp4a.lua create mode 100644 src/intel/executor/examples/help_example.lua create mode 100644 src/intel/executor/examples/nop.lua create mode 100644 src/intel/executor/examples/test.lua create mode 100644 src/intel/executor/executor.h create mode 100644 src/intel/executor/executor_genx.c create mode 100644 src/intel/executor/executor_genx.h create mode 100644 src/intel/executor/executor_macros.c create mode 100644 src/intel/executor/executor_main.c create mode 100644 src/intel/executor/meson.build create mode 100644 src/intel/genxml/gen30.xml create mode 100644 src/intel/genxml/gen30_rt.xml create mode 100644 src/intel/isl/isl_gfx20.c create mode 100644 src/intel/isl/isl_gfx20.h create mode 100644 src/intel/isl/tests/isl_surf_get_image_range_B_tile_test.c create mode 100644 src/intel/perf/i915/intel_perf.c create mode 100644 src/intel/perf/i915/intel_perf.h create mode 100644 src/intel/perf/intel_perf_common.c create mode 100644 src/intel/perf/intel_perf_common.h create mode 100644 src/intel/perf/oa-arlgt1.xml create mode 100644 src/intel/perf/oa-arlgt2.xml create mode 100644 src/intel/perf/oa-bmg.xml create mode 100644 src/intel/perf/oa-lnl.xml create mode 100644 src/intel/perf/xe/intel_perf.c create mode 100644 src/intel/perf/xe/intel_perf.h create mode 100644 src/intel/tools/README.md create mode 100644 src/intel/vulkan/anv_api_version.h create mode 100644 src/intel/vulkan/anv_buffer.c create mode 100644 src/intel/vulkan/anv_buffer_view.c create mode 100644 src/intel/vulkan/anv_event.c create mode 100644 src/intel/vulkan/anv_image_host_copy.c create mode 100644 src/intel/vulkan/anv_image_view.c create mode 100644 src/intel/vulkan/anv_instance.c create mode 100644 src/intel/vulkan/anv_physical_device.c create mode 100644 src/intel/vulkan/anv_sampler.c create mode 100644 src/intel/vulkan/genX_cmd_video_enc.c create mode 100644 src/intel/vulkan/genX_mi_builder.h create mode 100644 src/mapi/glapi/gen/EXT_texture_storage_compression.xml create mode 100644 src/mapi/glapi/gen/KHR_shader_subgroup.xml create mode 100755 src/mapi/glapi/gen/OVR_multiview.xml create mode 100755 src/mapi/glapi/gen/OVR_multiview_multisampled_render_to_texture.xml create mode 100644 src/mesa/main/spirv_capabilities.c create mode 100644 src/mesa/main/spirv_capabilities.h create mode 100644 src/nouveau/ci/deqp-nvk.toml create mode 100644 src/nouveau/ci/gitlab-ci-inc.yml create mode 100644 src/nouveau/ci/gitlab-ci.yml create mode 100644 src/nouveau/ci/nvk-ga106-fails.txt create mode 100644 src/nouveau/ci/nvk-ga106-flakes.txt create mode 100644 src/nouveau/ci/nvk-ga106-skips.txt create mode 100644 src/nouveau/ci/nvk-ga106-vkd3d-fails.txt create mode 100644 src/nouveau/compiler/acorn/lib.rs delete mode 100644 src/nouveau/compiler/nak/encode_sm50.rs delete mode 100644 src/nouveau/compiler/nak/encode_sm70.rs create mode 100644 src/nouveau/compiler/nak/hw_runner.rs create mode 100644 src/nouveau/compiler/nak/hw_tests.rs delete mode 100644 src/nouveau/compiler/nak/nir_instr_printer.rs create mode 100644 src/nouveau/compiler/nak/opt_crs.rs create mode 100644 src/nouveau/compiler/nak/opt_prmt.rs create mode 100644 src/nouveau/compiler/nak/opt_uniform_instrs.rs create mode 100644 src/nouveau/compiler/nak/sm50.rs create mode 100644 src/nouveau/compiler/nak/sm70.rs delete mode 100644 src/nouveau/compiler/nak_memstream.c create mode 100644 src/nouveau/compiler/nak_nir_lower_non_uniform_ldcx.c create mode 100644 src/nouveau/compiler/nak_nir_split_64bit_conversions.c delete mode 100644 src/nouveau/compiler/nvfuzz/main.rs create mode 100644 src/nouveau/headers/nv_push_rs/lib.rs create mode 100644 src/nouveau/headers/nvidia/classes/cla040.h create mode 100644 src/nouveau/headers/nvidia/classes/cla097sph.h create mode 100644 src/nouveau/headers/nvidia/classes/cla140.h create mode 100644 src/nouveau/headers/nvidia/classes/clc797sph.h create mode 100644 src/nouveau/headers/nvidia/classes/clcb97sph.h create mode 100644 src/nouveau/mme/mme_sim.c create mode 100644 src/nouveau/mme/mme_sim.h create mode 100644 src/nouveau/nil/copy.rs create mode 100644 src/nouveau/vulkan/nvk_acceleration_structure.c create mode 100644 src/nouveau/vulkan/nvk_cmd_indirect.c create mode 100644 src/nouveau/vulkan/nvk_debug.h create mode 100644 src/nouveau/vulkan/nvk_descriptor_types.h create mode 100644 src/nouveau/vulkan/nvk_edb_bview_cache.c create mode 100644 src/nouveau/vulkan/nvk_edb_bview_cache.h create mode 100644 src/nouveau/vulkan/nvk_host_copy.c mode change 100755 => 100644 src/nouveau/vulkan/nvk_image.c mode change 100755 => 100644 src/nouveau/vulkan/nvk_image.h create mode 100644 src/nouveau/vulkan/nvk_indirect_execution_set.c create mode 100644 src/nouveau/vulkan/nvk_indirect_execution_set.h delete mode 100644 src/nouveau/vulkan/nvk_queue_drm_nouveau.c create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau.h create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_ctx.c create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_dev.c create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_mem.c create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_pdev.c create mode 100644 src/nouveau/vulkan/nvkmd/nouveau/nvkmd_nouveau_va.c create mode 100644 src/nouveau/vulkan/nvkmd/nvkmd.c create mode 100644 src/nouveau/vulkan/nvkmd/nvkmd.h create mode 100644 src/panfrost/ci/deqp-panfrost-g610.toml create mode 100644 src/panfrost/ci/deqp-panfrost-t860-cl.toml create mode 100644 src/panfrost/compiler/IR_pseudo.xml rename src/panfrost/compiler/{ => bifrost}/ISA.xml (90%) create mode 100644 src/panfrost/compiler/bifrost/bi_disasm.h create mode 100644 src/panfrost/lib/pan_afrc.c delete mode 100644 src/panfrost/lib/pan_blitter.h create mode 100644 src/panfrost/vulkan/bifrost/panvk_vX_meta_desc_copy.c create mode 100644 src/panfrost/vulkan/csf/panvk_cmd_buffer.h create mode 100644 src/panfrost/vulkan/csf/panvk_event.h create mode 100644 src/panfrost/vulkan/csf/panvk_queue.h create mode 100644 src/panfrost/vulkan/csf/panvk_vX_cmd_buffer.c create mode 100644 src/panfrost/vulkan/csf/panvk_vX_cmd_dispatch.c create mode 100644 src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c create mode 100644 src/panfrost/vulkan/csf/panvk_vX_cmd_event.c create mode 100644 src/panfrost/vulkan/csf/panvk_vX_event.c create mode 100644 src/panfrost/vulkan/csf/panvk_vX_queue.c create mode 100644 src/panfrost/vulkan/jm/panvk_cmd_buffer.h rename src/panfrost/vulkan/{ => jm}/panvk_event.h (100%) rename src/panfrost/vulkan/{ => jm}/panvk_queue.h (71%) create mode 100644 src/panfrost/vulkan/jm/panvk_vX_cmd_buffer.c create mode 100644 src/panfrost/vulkan/jm/panvk_vX_cmd_dispatch.c create mode 100644 src/panfrost/vulkan/jm/panvk_vX_cmd_draw.c create mode 100644 src/panfrost/vulkan/jm/panvk_vX_cmd_event.c rename src/panfrost/vulkan/{panvk_event.c => jm/panvk_vX_event.c} (80%) rename src/panfrost/vulkan/{ => jm}/panvk_vX_queue.c (91%) create mode 100644 src/panfrost/vulkan/panvk_blend.h create mode 100644 src/panfrost/vulkan/panvk_cmd_alloc.h delete mode 100644 src/panfrost/vulkan/panvk_cmd_buffer.h create mode 100644 src/panfrost/vulkan/panvk_cmd_desc_state.h create mode 100644 src/panfrost/vulkan/panvk_cmd_draw.h create mode 100644 src/panfrost/vulkan/panvk_cmd_fb_preload.h create mode 100644 src/panfrost/vulkan/panvk_cmd_meta.h create mode 100644 src/panfrost/vulkan/panvk_cmd_push_constant.h delete mode 100644 src/panfrost/vulkan/panvk_pipeline.h delete mode 100644 src/panfrost/vulkan/panvk_pipeline_layout.h create mode 100644 src/panfrost/vulkan/panvk_vX_blend.c delete mode 100644 src/panfrost/vulkan/panvk_vX_cmd_buffer.c create mode 100644 src/panfrost/vulkan/panvk_vX_cmd_desc_state.c create mode 100644 src/panfrost/vulkan/panvk_vX_cmd_fb_preload.c create mode 100644 src/panfrost/vulkan/panvk_vX_cmd_meta.c create mode 100644 src/panfrost/vulkan/panvk_vX_cmd_push_constant.c delete mode 100644 src/panfrost/vulkan/panvk_vX_meta.c delete mode 100644 src/panfrost/vulkan/panvk_vX_meta_blit.c delete mode 100644 src/panfrost/vulkan/panvk_vX_meta_clear.c delete mode 100644 src/panfrost/vulkan/panvk_vX_meta_copy.c delete mode 100644 src/panfrost/vulkan/panvk_vX_pipeline.c delete mode 100644 src/panfrost/vulkan/panvk_vX_pipeline_layout.c delete mode 100644 src/panfrost/vulkan/panvk_varyings.h rename .gitlab-ci/tests/lava/__init__.py => src/panfrost/vulkan/valhall/.gitkeep (100%) create mode 100644 src/tool/pps/cfg/intel_xe.cfg create mode 100644 src/util/blake3/blake3_avx2.c create mode 100644 src/util/blake3/blake3_avx512.c create mode 100644 src/util/blake3/blake3_sse2.c create mode 100644 src/util/blake3/blake3_sse41.c create mode 100644 src/util/cnd_monotonic.c delete mode 100644 src/util/format/u_format.csv create mode 100644 src/util/format/u_format.yaml create mode 100644 src/util/helpers.c create mode 100644 src/util/helpers.h create mode 100644 src/util/tests/u_memstream_test.cpp create mode 100644 src/util/u_gralloc/u_gralloc_imapper5_api.cpp create mode 100644 src/virtio/ci/gitlab-ci-inc.yml create mode 100644 src/vulkan/runtime/vk_device_generated_commands.c create mode 100644 src/vulkan/runtime/vk_device_generated_commands.h create mode 100644 src/vulkan/runtime/vk_meta_copy_fill_update.c create mode 100644 src/vulkan/runtime/vk_meta_object_list.c create mode 100644 src/vulkan/runtime/vk_meta_object_list.h create mode 100644 src/vulkan/screenshot-layer/LICENSE.txt create mode 100644 src/vulkan/screenshot-layer/README.rst create mode 100644 src/vulkan/screenshot-layer/VkLayer_MESA_screenshot.json create mode 100755 src/vulkan/screenshot-layer/mesa-screenshot-control.py rename src/{glx/tests => vulkan/screenshot-layer}/meson.build (53%) create mode 100644 src/vulkan/screenshot-layer/screenshot.cpp create mode 100644 src/vulkan/screenshot-layer/screenshot_params.c create mode 100644 src/vulkan/screenshot-layer/screenshot_params.h create mode 100644 src/vulkan/util/vk_physical_device_spirv_caps_gen.py create mode 100644 src/vulkan/wsi/wsi_common_metal.c create mode 100644 src/vulkan/wsi/wsi_common_metal_layer.h create mode 100644 src/vulkan/wsi/wsi_common_metal_layer.m create mode 100644 src/x11/loader_x11.c create mode 100644 src/x11/loader_x11.h create mode 100644 src/x11/meson.build create mode 100644 subprojects/equivalent.wrap create mode 100644 subprojects/hashbrown.wrap create mode 100644 subprojects/indexmap.wrap create mode 100644 subprojects/once_cell.wrap create mode 100644 subprojects/packagefiles/equivalent/meson.build create mode 100644 subprojects/packagefiles/hashbrown/meson.build create mode 100644 subprojects/packagefiles/indexmap/meson.build create mode 100644 subprojects/packagefiles/once_cell/meson.build create mode 100644 subprojects/packagefiles/pest/meson.build create mode 100644 subprojects/packagefiles/pest_derive/meson.build create mode 100644 subprojects/packagefiles/pest_generator/meson.build create mode 100644 subprojects/packagefiles/pest_meta/meson.build create mode 100644 subprojects/packagefiles/roxmltree/meson.build create mode 100644 subprojects/packagefiles/ucd-trie/meson.build create mode 100644 subprojects/pest.wrap create mode 100644 subprojects/pest_derive.wrap create mode 100644 subprojects/pest_generator.wrap create mode 100644 subprojects/pest_meta.wrap create mode 100644 subprojects/roxmltree.wrap create mode 100644 subprojects/ucd-trie.wrap diff --git a/.ci-farms/austriancoder b/.ci-farms-disabled/austriancoder similarity index 100% rename from .ci-farms/austriancoder rename to .ci-farms-disabled/austriancoder diff --git a/.ci-farms/lima b/.ci-farms-disabled/lima similarity index 100% rename from .ci-farms/lima rename to .ci-farms-disabled/lima diff --git a/.ci-farms/freedreno b/.ci-farms/google-freedreno similarity index 100% rename from .ci-farms/freedreno rename to .ci-farms/google-freedreno diff --git a/.clang-format-include b/.clang-format-include index 9d49d8aba..797627b13 100644 --- a/.clang-format-include +++ b/.clang-format-include @@ -2,6 +2,7 @@ # enforcement in the CI. src/gallium/drivers/i915 +src/gallium/drivers/r300/compiler/* src/gallium/targets/teflon/**/* src/amd/vulkan/**/* src/amd/compiler/**/* diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b29b7d2fc..000000000 --- a/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -.vscode* -*.pyc -*.pyo -*.out -/build -.venv/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 22415218f..000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,351 +0,0 @@ -# Types of CI pipelines: -# | pipeline name | context | description | -# |----------------------|-----------|-------------------------------------------------------------| -# | merge pipeline | mesa/mesa | pipeline running for an MR; if it passes the MR gets merged | -# | pre-merge pipeline | mesa/mesa | same as above, except its status doesn't affect the MR | -# | post-merge pipeline | mesa/mesa | pipeline immediately after merging | -# | fork pipeline | fork | pipeline running in a user fork | -# | scheduled pipeline | mesa/mesa | nightly pipelines, running every morning at 4am UTC | -# | direct-push pipeline | mesa/mesa | when commits are pushed directly to mesa/mesa, bypassing Marge and its gating pipeline | -# -# Note that the release branches maintained by the release manager fall under -# the "direct push" category. -# -# "context" indicates the permissions that the jobs get; notably, any -# container created in mesa/mesa gets pushed immediately for everyone to use -# as soon as the image tag change is merged. -# -# Merge pipelines contain all jobs that must pass before the MR can be merged. -# Pre-merge pipelines contain the exact same jobs as merge pipelines. -# Post-merge pipelines contain *only* the `pages` job that deploys the new -# version of the website. -# Fork pipelines contain everything. -# Scheduled pipelines only contain the container+build jobs, and some extra -# test jobs (typically "full" variants of pre-merge jobs that only run 1/X -# test cases), but not a repeat of the merge pipeline jobs. -# Direct-push pipelines contain the same jobs as merge pipelines. - -workflow: - rules: - # do not duplicate pipelines on merge pipelines - - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push" - when: never - # merge pipeline - - if: &is-merge-attempt $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event" - variables: - KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG} - MESA_CI_PERFORMANCE_ENABLED: 1 - VALVE_INFRA_VANGOGH_JOB_PRIORITY: "" # Empty tags are ignored by gitlab - # post-merge pipeline - - if: &is-post-merge $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "push" - # nightly pipeline - - if: &is-scheduled-pipeline $CI_PIPELINE_SOURCE == "schedule" - variables: - KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG} - JOB_PRIORITY: 50 - VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low - # pipeline for direct pushes that bypassed the CI - - if: &is-direct-push $CI_PROJECT_NAMESPACE == "mesa" && $CI_PIPELINE_SOURCE == "push" && $GITLAB_USER_LOGIN != "marge-bot" - variables: - KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG} - JOB_PRIORITY: 40 - VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low - # pre-merge or fork pipeline - - if: $FORCE_KERNEL_TAG != null - variables: - KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${FORCE_KERNEL_TAG} - JOB_PRIORITY: 50 - VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low - - if: $FORCE_KERNEL_TAG == null - variables: - KERNEL_IMAGE_BASE: https://${S3_HOST}/${S3_KERNEL_BUCKET}/${KERNEL_REPO}/${KERNEL_TAG} - JOB_PRIORITY: 50 - VALVE_INFRA_VANGOGH_JOB_PRIORITY: priority:low - - -variables: - FDO_UPSTREAM_REPO: mesa/mesa - MESA_TEMPLATES_COMMIT: &ci-templates-commit d5aa3941aa03c2f716595116354fb81eb8012acb - CI_PRE_CLONE_SCRIPT: |- - set -o xtrace - wget -q -O download-git-cache.sh ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh - bash download-git-cache.sh - rm download-git-cache.sh - set +o xtrace - S3_JWT_FILE: /s3_jwt - S3_HOST: s3.freedesktop.org - # This bucket is used to fetch the kernel image - S3_KERNEL_BUCKET: mesa-rootfs - # Bucket for git cache - S3_GITCACHE_BUCKET: git-cache - # Bucket for the pipeline artifacts pushed to S3 - S3_ARTIFACTS_BUCKET: artifacts - # Buckets for traces - S3_TRACIE_RESULTS_BUCKET: mesa-tracie-results - S3_TRACIE_PUBLIC_BUCKET: mesa-tracie-public - S3_TRACIE_PRIVATE_BUCKET: mesa-tracie-private - # per-pipeline artifact storage on MinIO - PIPELINE_ARTIFACTS_BASE: ${S3_HOST}/${S3_ARTIFACTS_BUCKET}/${CI_PROJECT_PATH}/${CI_PIPELINE_ID} - # per-job artifact storage on MinIO - JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID} - # reference images stored for traces - PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${S3_HOST}/${S3_TRACIE_RESULTS_BUCKET}/$FDO_UPSTREAM_REPO" - # For individual CI farm status see .ci-farms folder - # Disable farm with `git mv .ci-farms{,-disabled}/$farm_name` - # Re-enable farm with `git mv .ci-farms{-disabled,}/$farm_name` - # NEVER MIX FARM MAINTENANCE WITH ANY OTHER CHANGE IN THE SAME MERGE REQUEST! - ARTIFACTS_BASE_URL: https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts - # Python scripts for structured logger - PYTHONPATH: "$PYTHONPATH:$CI_PROJECT_DIR/install" - # Drop once deqp-runner is upgraded to > 0.18.0 - MESA_VK_ABORT_ON_DEVICE_LOSS: 1 - # Avoid the wall of "Unsupported SPIR-V capability" warnings in CI job log, hiding away useful output - MESA_SPIRV_LOG_LEVEL: error - -default: - id_tokens: - S3_JWT: - aud: https://s3.freedesktop.org - before_script: - - > - export SCRIPTS_DIR=$(mktemp -d) && - curl -L -s --retry 4 -f --retry-all-errors --retry-delay 60 -O --output-dir "${SCRIPTS_DIR}" "${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/setup-test-env.sh" && - . ${SCRIPTS_DIR}/setup-test-env.sh && - echo -n "${S3_JWT}" > "${S3_JWT_FILE}" && - unset CI_JOB_JWT S3_JWT # Unsetting vulnerable env variables - - after_script: - # Work around https://gitlab.com/gitlab-org/gitlab/-/issues/20338 - - find -name '*.log' -exec mv {} {}.txt \; - - - > - set +x - - test -e "${S3_JWT_FILE}" && - export S3_JWT="$(<${S3_JWT_FILE})" && - rm "${S3_JWT_FILE}" - - # Retry when job fails. Failed jobs can be found in the Mesa CI Daily Reports: - # https://gitlab.freedesktop.org/mesa/mesa/-/issues/?sort=created_date&state=opened&label_name%5B%5D=CI%20daily - retry: - max: 1 - # Ignore runner_unsupported, stale_schedule, archived_failure, or - # unmet_prerequisites - when: - - api_failure - - runner_system_failure - - script_failure - - job_execution_timeout - - scheduler_failure - - data_integrity_failure - - unknown_failure - -stages: - - sanity - - container - - git-archive - - build-x86_64 - - build-misc - - code-validation - - amd - - intel - - nouveau - - arm - - broadcom - - freedreno - - etnaviv - - software-renderer - - layered-backends - - deploy - -include: - - project: 'freedesktop/ci-templates' - ref: 16bc29078de5e0a067ff84a1a199a3760d3b3811 - file: - - '/templates/ci-fairy.yml' - - project: 'freedesktop/ci-templates' - ref: *ci-templates-commit - file: - - '/templates/alpine.yml' - - '/templates/debian.yml' - - '/templates/fedora.yml' - - local: '.gitlab-ci/image-tags.yml' - - local: '.gitlab-ci/lava/lava-gitlab-ci.yml' - - local: '.gitlab-ci/container/gitlab-ci.yml' - - local: '.gitlab-ci/build/gitlab-ci.yml' - - local: '.gitlab-ci/test/gitlab-ci.yml' - - local: '.gitlab-ci/farm-rules.yml' - - local: '.gitlab-ci/test-source-dep.yml' - - local: 'docs/gitlab-ci.yml' - - local: 'src/**/ci/gitlab-ci.yml' - - -# YAML anchors for rule conditions -# -------------------------------- -.rules-anchors: - # Pre-merge pipeline - - &is-pre-merge '$CI_PIPELINE_SOURCE == "merge_request_event"' - - -.never-post-merge-rules: - rules: - - if: *is-post-merge - when: never - - -.container+build-rules: - rules: - # Run when re-enabling a disabled farm, but not when disabling it - - !reference [.disable-farm-mr-rules, rules] - # Never run immediately after merging, as we just ran everything - - !reference [.never-post-merge-rules, rules] - # Build everything in merge pipelines, if any files affecting the pipeline - # were changed - - if: *is-merge-attempt - changes: &all_paths - - VERSION - - bin/git_sha1_gen.py - - bin/install_megadrivers.py - - bin/symbols-check.py - # GitLab CI - - .gitlab-ci.yml - - .gitlab-ci/**/* - - .ci-farms/* - # Meson - - meson* - - build-support/**/* - - subprojects/**/* - # clang format - - .clang-format - - .clang-format-include - - .clang-format-ignore - # Source code - - include/**/* - - src/**/* - when: on_success - # Same as above, but for pre-merge pipelines - - if: *is-pre-merge - changes: - *all_paths - when: manual - # Skip everything for pre-merge and merge pipelines which don't change - # anything in the build - - if: *is-merge-attempt - when: never - - if: *is-pre-merge - when: never - # Build everything after someone bypassed the CI - - if: *is-direct-push - when: on_success - # Build everything in scheduled pipelines - - if: *is-scheduled-pipeline - when: on_success - # Allow building everything in fork pipelines, but build nothing unless - # manually triggered - - when: manual - - -.ci-deqp-artifacts: - artifacts: - name: "mesa_${CI_JOB_NAME}" - when: always - untracked: false - paths: - # Watch out! Artifacts are relative to the build dir. - # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521 - - artifacts - - _build/meson-logs/*.txt - - _build/meson-logs/strace - -# Git archive - -make git archive: - extends: - - .fdo.ci-fairy - stage: git-archive - rules: - - !reference [.scheduled_pipeline-rules, rules] - # ensure we are running on packet - tags: - - packet.net - script: - # Compactify the .git directory - - git gc --aggressive - # Download & cache the perfetto subproject as well. - - rm -rf subprojects/perfetto ; mkdir -p subprojects/perfetto && curl https://android.googlesource.com/platform/external/perfetto/+archive/$(grep 'revision =' subprojects/perfetto.wrap | cut -d ' ' -f3).tar.gz | tar zxf - -C subprojects/perfetto - # compress the current folder - - tar -cvzf ../$CI_PROJECT_NAME.tar.gz . - - - ci-fairy s3cp --token-file "${S3_JWT_FILE}" ../$CI_PROJECT_NAME.tar.gz https://$S3_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz - -# Sanity checks of MR settings and commit logs -sanity: - extends: - - .fdo.ci-fairy - stage: sanity - rules: - - if: *is-pre-merge - when: on_success - - when: never - variables: - GIT_STRATEGY: none - script: - # ci-fairy check-commits --junit-xml=check-commits.xml - - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml - - | - set -eu - image_tags=( - DEBIAN_BASE_TAG - DEBIAN_BUILD_TAG - DEBIAN_X86_64_TEST_ANDROID_TAG - DEBIAN_X86_64_TEST_GL_TAG - DEBIAN_X86_64_TEST_VK_TAG - ALPINE_X86_64_BUILD_TAG - ALPINE_X86_64_LAVA_SSH_TAG - FEDORA_X86_64_BUILD_TAG - KERNEL_ROOTFS_TAG - KERNEL_TAG - PKG_REPO_REV - WINDOWS_X64_MSVC_TAG - WINDOWS_X64_BUILD_TAG - WINDOWS_X64_TEST_TAG - ) - for var in "${image_tags[@]}" - do - if [ "$(echo -n "${!var}" | wc -c)" -gt 20 ] - then - echo "$var is too long; please make sure it is at most 20 chars." - exit 1 - fi - done - artifacts: - when: on_failure - reports: - junit: check-*.xml - tags: - - placeholder-job - - -mr-label-maker-test: - extends: - - .fdo.ci-fairy - stage: sanity - rules: - - !reference [.mr-label-maker-rules, rules] - variables: - GIT_STRATEGY: fetch - timeout: 10m - script: - - set -eu - - python3 -m venv .venv - - source .venv/bin/activate - - pip install git+https://gitlab.freedesktop.org/freedesktop/mr-label-maker - - mr-label-maker --dry-run --mr $CI_MERGE_REQUEST_IID - -# Jobs that need to pass before spending hardware resources on further testing -.required-for-hardware-jobs: - needs: - - job: clang-format - optional: true - - job: rustfmt - optional: true diff --git a/.gitlab-ci/all-skips.txt b/.gitlab-ci/all-skips.txt deleted file mode 100644 index 6291ca0d1..000000000 --- a/.gitlab-ci/all-skips.txt +++ /dev/null @@ -1,82 +0,0 @@ -# Note: skips lists for CI are just a list of lines that, when -# non-zero-length and not starting with '#', will regex match to -# delete lines from the test list. Be careful. - -# This test checks the driver's reported conformance version against the -# version of the CTS we're running. This check fails every few months -# and everyone has to go and bump the number in every driver. -# Running this check only makes sense while preparing a conformance -# submission, so skip it in the regular CI. -dEQP-VK.api.driver_properties.conformance_version - -# Exclude this test which might fail when a new extension is implemented. -dEQP-VK.info.device_extensions - -# These are tremendously slow (pushing toward a minute), and aren't -# reliable to be run in parallel with other tests due to CPU-side timing. -dEQP-GLES[0-9]*.functional.flush_finish.* - -# piglit: WGL is Windows-only -wgl@.* - -# These are sensitive to CPU timing, and would need to be run in isolation -# on the system rather than in parallel with other tests. -glx@glx_arb_sync_control@timing.* - -# This test is not built with waffle, while we do build tests with waffle -spec@!opengl 1.1@windowoverlap - -# These tests all read from the front buffer after a swap. Given that we -# run piglit tests in parallel in Mesa CI, and don't have a compositor -# running, the frontbuffer reads may end up with undefined results from -# windows overlapping us. -# -# Piglit does mark these tests as not to be run in parallel, but deqp-runner -# doesn't respect that. We need to extend deqp-runner to allow some tests to be -# marked as single-threaded and run after the rayon loop if we want to support -# them. -# -# Note that "glx-" tests don't appear in x11-skips.txt because they can be -# run even if PIGLIT_PLATFORM=gbm (for example) -glx@glx-copy-sub-buffer.* - -# A majority of the tests introduced in CTS 1.3.7.0 are experiencing failures and flakes. -# Disable these tests until someone with a more deeper understanding of EGL examines them. -# -# Note: on sc8280xp/a690 I get identical results (same passes and fails) -# between freedreno, zink, and llvmpipe, so I believe this is either a -# deqp bug or egl/wayland bug, rather than driver issue. -# -# With llvmpipe, the failing tests have the error message: -# -# "Illegal sampler view creation without bind flag" -# -# which might be a hint. (But some passing tests also have the same -# error message.) -# -# more context from David Heidelberg on IRC: the deqp commit where these -# started failing is: https://github.com/KhronosGroup/VK-GL-CTS/commit/79b25659bcbced0cfc2c3fe318951c585f682abe -# prior to that they were skipping. -wayland-dEQP-EGL.functional.color_clears.single_context.gles1.other -wayland-dEQP-EGL.functional.color_clears.single_context.gles2.other -wayland-dEQP-EGL.functional.color_clears.single_context.gles3.other -wayland-dEQP-EGL.functional.color_clears.multi_context.gles1.other -wayland-dEQP-EGL.functional.color_clears.multi_context.gles2.other -wayland-dEQP-EGL.functional.color_clears.multi_context.gles3.other -wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2.other -wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2_gles3.other -wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1.other -wayland-dEQP-EGL.functional.color_clears.multi_thread.gles2.other -wayland-dEQP-EGL.functional.color_clears.multi_thread.gles3.other -wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2.other -wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2_gles3.other - -# Seems to be the same is as wayland-dEQP-EGL.functional.color_clears.* -wayland-dEQP-EGL.functional.render.single_context.gles2.other -wayland-dEQP-EGL.functional.render.single_context.gles3.other -wayland-dEQP-EGL.functional.render.multi_context.gles2.other -wayland-dEQP-EGL.functional.render.multi_context.gles3.other -wayland-dEQP-EGL.functional.render.multi_context.gles2_gles3.other -wayland-dEQP-EGL.functional.render.multi_thread.gles2.other -wayland-dEQP-EGL.functional.render.multi_thread.gles3.other -wayland-dEQP-EGL.functional.render.multi_thread.gles2_gles3.other diff --git a/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 b/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 deleted file mode 100644 index b0a964471..000000000 --- a/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 +++ /dev/null @@ -1,67 +0,0 @@ -version: 1 - -# Rules to match for a machine to qualify -target: - id: '{{ ci_runner_id }}' - -timeouts: - first_console_activity: # This limits the time it can take to receive the first console log - minutes: {{ timeout_first_minutes }} - retries: {{ timeout_first_retries }} - console_activity: # Reset every time we receive a message from the logs - minutes: {{ timeout_minutes }} - retries: {{ timeout_retries }} - boot_cycle: - minutes: {{ timeout_boot_minutes }} - retries: {{ timeout_boot_retries }} - overall: # Maximum time the job can take, not overrideable by the "continue" deployment - minutes: {{ timeout_overall_minutes }} - retries: 0 - # no retries possible here - -console_patterns: - session_end: - regex: >- - {{ session_end_regex }} -{% if session_reboot_regex %} - session_reboot: - regex: >- - {{ session_reboot_regex }} -{% endif %} - job_success: - regex: >- - {{ job_success_regex }} - job_warn: - regex: >- - {{ job_warn_regex }} - -# Environment to deploy -deployment: - # Initial boot - start: - kernel: - url: '{{ kernel_url }}' - cmdline: > - SALAD.machine_id={{ '{{' }} machine_id }} - console={{ '{{' }} local_tty_device }},115200 earlyprintk=vga,keep - loglevel={{ log_level }} no_hash_pointers - b2c.service="--privileged --tls-verify=false --pid=host docker://{{ '{{' }} fdo_proxy_registry }}/gfx-ci/ci-tron/telegraf:latest" b2c.hostname=dut-{{ '{{' }} machine.full_name }} - b2c.container="-ti --tls-verify=false docker://{{ '{{' }} fdo_proxy_registry }}/gfx-ci/ci-tron/machine-registration:latest check" - b2c.ntp_peer=10.42.0.1 b2c.pipefail b2c.cache_device=auto b2c.poweroff_delay={{ poweroff_delay }} - b2c.minio="gateway,{{ '{{' }} minio_url }},{{ '{{' }} job_bucket_access_key }},{{ '{{' }} job_bucket_secret_key }}" - b2c.volume="{{ '{{' }} job_bucket }}-results,mirror=gateway/{{ '{{' }} job_bucket }},pull_on=pipeline_start,push_on=changes,overwrite{% for excl in job_volume_exclusions %},exclude={{ excl }}{% endfor %},remove,expiration=pipeline_end,preserve" -{% for volume in volumes %} - b2c.volume={{ volume }} -{% endfor %} - b2c.container="-v {{ '{{' }} job_bucket }}-results:{{ working_dir }} -w {{ working_dir }} {% for mount_volume in mount_volumes %} -v {{ mount_volume }}{% endfor %} --tls-verify=false docker://{{ local_container }} {{ container_cmd }}" - {% if kernel_cmdline_extras is defined %} - {{ kernel_cmdline_extras }} - {% endif %} - - initramfs: - url: '{{ initramfs_url }}' - -{% if dtb_url is defined %} - dtb: - url: '{{ dtb_url }}' -{% endif %} diff --git a/.gitlab-ci/b2c/generate_b2c.py b/.gitlab-ci/b2c/generate_b2c.py deleted file mode 100755 index 7c20feb17..000000000 --- a/.gitlab-ci/b2c/generate_b2c.py +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright © 2022 Valve Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -from jinja2 import Environment, FileSystemLoader -from os import environ, path - - -# Pass all the environment variables prefixed by B2C_ -values = { - key.removeprefix("B2C_").lower(): environ[key] - for key in environ if key.startswith("B2C_") -} - -env = Environment(loader=FileSystemLoader(path.dirname(values['job_template'])), - trim_blocks=True, lstrip_blocks=True) - -template = env.get_template(path.basename(values['job_template'])) - -values['ci_job_id'] = environ['CI_JOB_ID'] -values['ci_runner_id'] = environ['CI_RUNNER_ID'] -values['job_volume_exclusions'] = [excl for excl in values['job_volume_exclusions'].split(",") if excl] -values['working_dir'] = environ['CI_PROJECT_DIR'] - -# Use the gateway's pull-through registry caches to reduce load on fd.o. -values['local_container'] = environ['IMAGE_UNDER_TEST'] -values['local_container'] = values['local_container'].replace( - 'registry.freedesktop.org', - '{{ fdo_proxy_registry }}' -) - -if 'kernel_cmdline_extras' not in values: - values['kernel_cmdline_extras'] = '' - -with open(path.splitext(path.basename(values['job_template']))[0], "w") as f: - f.write(template.render(values)) diff --git a/.gitlab-ci/bare-metal/.editorconfig b/.gitlab-ci/bare-metal/.editorconfig deleted file mode 100644 index 71174ec23..000000000 --- a/.gitlab-ci/bare-metal/.editorconfig +++ /dev/null @@ -1,2 +0,0 @@ -[*.sh] -indent_size = 2 diff --git a/.gitlab-ci/bare-metal/bm-init.sh b/.gitlab-ci/bare-metal/bm-init.sh deleted file mode 100755 index 6935957b2..000000000 --- a/.gitlab-ci/bare-metal/bm-init.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# Init entrypoint for bare-metal devices; calls common init code. - -# First stage: very basic setup to bring up network and /dev etc -/init-stage1.sh - -# Second stage: run jobs -test $? -eq 0 && /init-stage2.sh - -# Wait until the job would have timed out anyway, so we don't spew a "init -# exited" panic. -sleep 6000 diff --git a/.gitlab-ci/bare-metal/cisco-2960-poe-off.sh b/.gitlab-ci/bare-metal/cisco-2960-poe-off.sh deleted file mode 100755 index fdc52d3c4..000000000 --- a/.gitlab-ci/bare-metal/cisco-2960-poe-off.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2086 # we want word splitting - -if [ -z "$BM_POE_INTERFACE" ]; then - echo "Must supply the PoE Interface to power down" - exit 1 -fi - -if [ -z "$BM_POE_ADDRESS" ]; then - echo "Must supply the PoE Switch host" - exit 1 -fi - -SNMP_KEY="1.3.6.1.4.1.9.9.402.1.2.1.1.1.$BM_POE_INTERFACE" -SNMP_OFF="i 4" - -snmpset -v2c -r 3 -t 30 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_OFF diff --git a/.gitlab-ci/bare-metal/cisco-2960-poe-on.sh b/.gitlab-ci/bare-metal/cisco-2960-poe-on.sh deleted file mode 100755 index 1f80ab378..000000000 --- a/.gitlab-ci/bare-metal/cisco-2960-poe-on.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2086 # we want word splitting - -if [ -z "$BM_POE_INTERFACE" ]; then - echo "Must supply the PoE Interface to power up" - exit 1 -fi - -if [ -z "$BM_POE_ADDRESS" ]; then - echo "Must supply the PoE Switch host" - exit 1 -fi - -set -ex - -SNMP_KEY="1.3.6.1.4.1.9.9.402.1.2.1.1.1.$BM_POE_INTERFACE" -SNMP_ON="i 1" -SNMP_OFF="i 4" - -snmpset -v2c -r 3 -t 10 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_OFF -sleep 3s -snmpset -v2c -r 3 -t 10 -cmesaci "$BM_POE_ADDRESS" "$SNMP_KEY" $SNMP_ON diff --git a/.gitlab-ci/bare-metal/cros-servo.sh b/.gitlab-ci/bare-metal/cros-servo.sh deleted file mode 100755 index a69d69b4e..000000000 --- a/.gitlab-ci/bare-metal/cros-servo.sh +++ /dev/null @@ -1,124 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. -# shellcheck disable=SC2034 -# shellcheck disable=SC2086 # we want word splitting - -# Boot script for Chrome OS devices attached to a servo debug connector, using -# NFS and TFTP to boot. - -# We're run from the root of the repo, make a helper var for our paths -BM=$CI_PROJECT_DIR/install/bare-metal -CI_COMMON=$CI_PROJECT_DIR/install/common -CI_INSTALL=$CI_PROJECT_DIR/install - -# Runner config checks -if [ -z "$BM_SERIAL" ]; then - echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" - echo "This is the CPU serial device." - exit 1 -fi - -if [ -z "$BM_SERIAL_EC" ]; then - echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" - echo "This is the EC serial device for controlling board power" - exit 1 -fi - -if [ ! -d /nfs ]; then - echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner" - exit 1 -fi - -if [ ! -d /tftp ]; then - echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner" - exit 1 -fi - -# job config checks -if [ -z "$BM_KERNEL" ]; then - echo "Must set BM_KERNEL to your board's kernel FIT image" - exit 1 -fi - -if [ -z "$BM_ROOTFS" ]; then - echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables" - exit 1 -fi - -if [ -z "$BM_CMDLINE" ]; then - echo "Must set BM_CMDLINE to your board's kernel command line arguments" - exit 1 -fi - -set -ex - -# Clear out any previous run's artifacts. -rm -rf results/ -mkdir -p results - -# Create the rootfs in the NFS directory. rm to make sure it's in a pristine -# state, since it's volume-mounted on the host. -rsync -a --delete $BM_ROOTFS/ /nfs/ -mkdir -p /nfs/results -. $BM/rootfs-setup.sh /nfs - -# Put the kernel/dtb image and the boot command line in the tftp directory for -# the board to find. For normal Mesa development, we build the kernel and -# store it in the docker container that this script is running in. -# -# However, container builds are expensive, so when you're hacking on the -# kernel, it's nice to be able to skip the half hour container build and plus -# moving that container to the runner. So, if BM_KERNEL is a URL, fetch it -# instead of looking in the container. Note that the kernel build should be -# the output of: -# -# make Image.lzma -# -# mkimage \ -# -A arm64 \ -# -f auto \ -# -C lzma \ -# -d arch/arm64/boot/Image.lzma \ -# -b arch/arm64/boot/dts/qcom/sdm845-cheza-r3.dtb \ -# cheza-image.img - -rm -rf /tftp/* -if echo "$BM_KERNEL" | grep -q http; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - $BM_KERNEL -o /tftp/vmlinuz -elif [ -n "${FORCE_KERNEL_TAG}" ]; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${BM_KERNEL}" -o /tftp/vmlinuz - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/modules.tar.zst" -o modules.tar.zst - tar --keep-directory-symlink --zstd -xf modules.tar.zst -C "/nfs/" - rm modules.tar.zst & -else - cp /baremetal-files/"$BM_KERNEL" /tftp/vmlinuz -fi -echo "$BM_CMDLINE" > /tftp/cmdline - -set +e -STRUCTURED_LOG_FILE=job_detail.json -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update dut_job_type "${DEVICE_TYPE}" -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update farm "${FARM}" -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --create-dut-job dut_name "${CI_RUNNER_DESCRIPTION}" -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update-dut-time submit "${CI_JOB_STARTED_AT}" -python3 $BM/cros_servo_run.py \ - --cpu $BM_SERIAL \ - --ec $BM_SERIAL_EC \ - --test-timeout ${TEST_PHASE_TIMEOUT:-20} -ret=$? -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close-dut-job -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close -set -e - -# Bring artifacts back from the NFS dir to the build dir where gitlab-runner -# will look for them. -cp -Rp /nfs/results/. results/ -if [ -f "${STRUCTURED_LOG_FILE}" ]; then - cp -p ${STRUCTURED_LOG_FILE} results/ - echo "Structured log file is available at https://${CI_PROJECT_ROOT_NAMESPACE}.pages.freedesktop.org/-/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts/results/${STRUCTURED_LOG_FILE}" -fi - -exit $ret diff --git a/.gitlab-ci/bare-metal/cros_servo_run.py b/.gitlab-ci/bare-metal/cros_servo_run.py deleted file mode 100755 index 02a91edc3..000000000 --- a/.gitlab-ci/bare-metal/cros_servo_run.py +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright © 2020 Google LLC -# SPDX-License-Identifier: MIT - -import argparse -import re -import sys - -from custom_logger import CustomLogger -from serial_buffer import SerialBuffer - - -class CrosServoRun: - def __init__(self, cpu, ec, test_timeout, logger): - self.cpu_ser = SerialBuffer( - cpu, "results/serial.txt", "R SERIAL-CPU> ") - # Merge the EC serial into the cpu_ser's line stream so that we can - # effectively poll on both at the same time and not have to worry about - self.ec_ser = SerialBuffer( - ec, "results/serial-ec.txt", "R SERIAL-EC> ", line_queue=self.cpu_ser.line_queue) - self.test_timeout = test_timeout - self.logger = logger - - def close(self): - self.ec_ser.close() - self.cpu_ser.close() - - def ec_write(self, s): - print("W SERIAL-EC> %s" % s) - self.ec_ser.serial.write(s.encode()) - - def cpu_write(self, s): - print("W SERIAL-CPU> %s" % s) - self.cpu_ser.serial.write(s.encode()) - - def print_error(self, message): - RED = '\033[0;31m' - NO_COLOR = '\033[0m' - print(RED + message + NO_COLOR) - self.logger.update_status_fail(message) - - def run(self): - # Flush any partial commands in the EC's prompt, then ask for a reboot. - self.ec_write("\n") - self.ec_write("reboot\n") - - bootloader_done = False - self.logger.create_job_phase("boot") - tftp_failures = 0 - # This is emitted right when the bootloader pauses to check for input. - # Emit a ^N character to request network boot, because we don't have a - # direct-to-netboot firmware on cheza. - for line in self.cpu_ser.lines(timeout=120, phase="bootloader"): - if re.search("load_archive: loading locale_en.bin", line): - self.cpu_write("\016") - bootloader_done = True - break - - # The Cheza firmware seems to occasionally get stuck looping in - # this error state during TFTP booting, possibly based on amount of - # network traffic around it, but it'll usually recover after a - # reboot. Currently mostly visible on google-freedreno-cheza-14. - if re.search("R8152: Bulk read error 0xffffffbf", line): - tftp_failures += 1 - if tftp_failures >= 10: - self.print_error( - "Detected intermittent tftp failure, restarting run.") - return 1 - - # If the board has a netboot firmware and we made it to booting the - # kernel, proceed to processing of the test run. - if re.search("Booting Linux", line): - bootloader_done = True - break - - # The Cheza boards have issues with failing to bring up power to - # the system sometimes, possibly dependent on ambient temperature - # in the farm. - if re.search("POWER_GOOD not seen in time", line): - self.print_error( - "Detected intermittent poweron failure, abandoning run.") - return 1 - - if not bootloader_done: - self.print_error("Failed to make it through bootloader, abandoning run.") - return 1 - - self.logger.create_job_phase("test") - for line in self.cpu_ser.lines(timeout=self.test_timeout, phase="test"): - if re.search("---. end Kernel panic", line): - return 1 - - # There are very infrequent bus errors during power management transitions - # on cheza, which we don't expect to be the case on future boards. - if re.search("Kernel panic - not syncing: Asynchronous SError Interrupt", line): - self.print_error( - "Detected cheza power management bus error, abandoning run.") - return 1 - - # If the network device dies, it's probably not graphics's fault, just try again. - if re.search("NETDEV WATCHDOG", line): - self.print_error( - "Detected network device failure, abandoning run.") - return 1 - - # These HFI response errors started appearing with the introduction - # of piglit runs. CosmicPenguin says: - # - # "message ID 106 isn't a thing, so likely what happened is that we - # got confused when parsing the HFI queue. If it happened on only - # one run, then memory corruption could be a possible clue" - # - # Given that it seems to trigger randomly near a GPU fault and then - # break many tests after that, just restart the whole run. - if re.search("a6xx_hfi_send_msg.*Unexpected message id .* on the response queue", line): - self.print_error( - "Detected cheza power management bus error, abandoning run.") - return 1 - - if re.search("coreboot.*bootblock starting", line): - self.print_error( - "Detected spontaneous reboot, abandoning run.") - return 1 - - if re.search("arm-smmu 5040000.iommu: TLB sync timed out -- SMMU may be deadlocked", line): - self.print_error("Detected cheza MMU fail, abandoning run.") - return 1 - - result = re.search("hwci: mesa: (\S*)", line) - if result: - if result.group(1) == "pass": - self.logger.update_dut_job("status", "pass") - return 0 - else: - self.logger.update_status_fail("test fail") - return 1 - - self.print_error( - "Reached the end of the CPU serial log without finding a result") - return 1 - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('--cpu', type=str, - help='CPU Serial device', required=True) - parser.add_argument( - '--ec', type=str, help='EC Serial device', required=True) - parser.add_argument( - '--test-timeout', type=int, help='Test phase timeout (minutes)', required=True) - args = parser.parse_args() - - logger = CustomLogger("job_detail.json") - logger.update_dut_time("start", None) - servo = CrosServoRun(args.cpu, args.ec, args.test_timeout * 60, logger) - retval = servo.run() - - # power down the CPU on the device - servo.ec_write("power off\n") - logger.update_dut_time("end", None) - servo.close() - - sys.exit(retval) - - -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/bare-metal/eth008-power-down.sh b/.gitlab-ci/bare-metal/eth008-power-down.sh deleted file mode 100755 index d61156de1..000000000 --- a/.gitlab-ci/bare-metal/eth008-power-down.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -relay=$1 - -if [ -z "$relay" ]; then - echo "Must supply a relay arg" - exit 1 -fi - -"$CI_PROJECT_DIR"/install/bare-metal/eth008-power-relay.py "$ETH_HOST" "$ETH_PORT" off "$relay" diff --git a/.gitlab-ci/bare-metal/eth008-power-relay.py b/.gitlab-ci/bare-metal/eth008-power-relay.py deleted file mode 100755 index 589ea5dd6..000000000 --- a/.gitlab-ci/bare-metal/eth008-power-relay.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/python3 - -import sys -import socket - -host = sys.argv[1] -port = sys.argv[2] -mode = sys.argv[3] -relay = sys.argv[4] -msg = None - -if mode == "on": - msg = b'\x20' -else: - msg = b'\x21' - -msg += int(relay).to_bytes(1, 'big') -msg += b'\x00' - -c = socket.create_connection((host, int(port))) -c.sendall(msg) - -data = c.recv(1) -c.close() - -if data[0] == b'\x01': - print('Command failed') - sys.exit(1) diff --git a/.gitlab-ci/bare-metal/eth008-power-up.sh b/.gitlab-ci/bare-metal/eth008-power-up.sh deleted file mode 100755 index 4c978ac9d..000000000 --- a/.gitlab-ci/bare-metal/eth008-power-up.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -relay=$1 - -if [ -z "$relay" ]; then - echo "Must supply a relay arg" - exit 1 -fi - -"$CI_PROJECT_DIR"/install/bare-metal/eth008-power-relay.py "$ETH_HOST" "$ETH_PORT" off "$relay" -sleep 5 -"$CI_PROJECT_DIR"/install/bare-metal/eth008-power-relay.py "$ETH_HOST" "$ETH_PORT" on "$relay" diff --git a/.gitlab-ci/bare-metal/expect-output.sh b/.gitlab-ci/bare-metal/expect-output.sh deleted file mode 100755 index 425814d87..000000000 --- a/.gitlab-ci/bare-metal/expect-output.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -set -e - -STRINGS=$(mktemp) -ERRORS=$(mktemp) - -trap 'rm $STRINGS; rm $ERRORS;' EXIT - -FILE=$1 -shift 1 - -while getopts "f:e:" opt; do - case $opt in - f) echo "$OPTARG" >> "$STRINGS";; - e) echo "$OPTARG" >> "$STRINGS" ; echo "$OPTARG" >> "$ERRORS";; - *) exit - esac -done -shift $((OPTIND -1)) - -echo "Waiting for $FILE to say one of following strings" -cat "$STRINGS" - -while ! grep -E -wf "$STRINGS" "$FILE"; do - sleep 2 -done - -if grep -E -wf "$ERRORS" "$FILE"; then - exit 1 -fi diff --git a/.gitlab-ci/bare-metal/fastboot.sh b/.gitlab-ci/bare-metal/fastboot.sh deleted file mode 100755 index 6d19aa4f9..000000000 --- a/.gitlab-ci/bare-metal/fastboot.sh +++ /dev/null @@ -1,167 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. -# shellcheck disable=SC2034 -# shellcheck disable=SC2086 # we want word splitting - -. "$SCRIPTS_DIR"/setup-test-env.sh - -BM=$CI_PROJECT_DIR/install/bare-metal -CI_COMMON=$CI_PROJECT_DIR/install/common - -if [ -z "$BM_SERIAL" ] && [ -z "$BM_SERIAL_SCRIPT" ]; then - echo "Must set BM_SERIAL OR BM_SERIAL_SCRIPT in your gitlab-runner config.toml [[runners]] environment" - echo "BM_SERIAL:" - echo " This is the serial device to talk to for waiting for fastboot to be ready and logging from the kernel." - echo "BM_SERIAL_SCRIPT:" - echo " This is a shell script to talk to for waiting for fastboot to be ready and logging from the kernel." - exit 1 -fi - -if [ -z "$BM_POWERUP" ]; then - echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment" - echo "This is a shell script that should reset the device and begin its boot sequence" - echo "such that it pauses at fastboot." - exit 1 -fi - -if [ -z "$BM_POWERDOWN" ]; then - echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment" - echo "This is a shell script that should power off the device." - exit 1 -fi - -if [ -z "$BM_FASTBOOT_SERIAL" ]; then - echo "Must set BM_FASTBOOT_SERIAL in your gitlab-runner config.toml [[runners]] environment" - echo "This must be the a stable-across-resets fastboot serial number." - exit 1 -fi - -if [ -z "$BM_KERNEL" ]; then - echo "Must set BM_KERNEL to your board's kernel vmlinuz or Image.gz in the job's variables:" - exit 1 -fi - -if [ -z "$BM_DTB" ]; then - echo "Must set BM_DTB to your board's DTB file in the job's variables:" - exit 1 -fi - -if [ -z "$BM_ROOTFS" ]; then - echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables:" - exit 1 -fi - -if echo $BM_CMDLINE | grep -q "root=/dev/nfs"; then - BM_FASTBOOT_NFSROOT=1 -fi - -set -ex - -# Clear out any previous run's artifacts. -rm -rf results/ -mkdir -p results/ - -if [ -n "$BM_FASTBOOT_NFSROOT" ]; then - # Create the rootfs in the NFS directory. rm to make sure it's in a pristine - # state, since it's volume-mounted on the host. - rsync -a --delete $BM_ROOTFS/ /nfs/ - mkdir -p /nfs/results - . $BM/rootfs-setup.sh /nfs - - # Root on NFS, no need for an inintramfs. - rm -f rootfs.cpio.gz - touch rootfs.cpio - gzip rootfs.cpio -else - # Create the rootfs in a temp dir - rsync -a --delete $BM_ROOTFS/ rootfs/ - . $BM/rootfs-setup.sh rootfs - - # Finally, pack it up into a cpio rootfs. Skip the vulkan CTS since none of - # these devices use it and it would take up space in the initrd. - - if [ -n "$PIGLIT_PROFILES" ]; then - EXCLUDE_FILTER="deqp|arb_gpu_shader5|arb_gpu_shader_fp64|arb_gpu_shader_int64|glsl-4.[0123456]0|arb_tessellation_shader" - else - EXCLUDE_FILTER="piglit|python" - fi - - pushd rootfs - find -H . | \ - grep -E -v "external/(openglcts|vulkancts|amber|glslang|spirv-tools)" | - grep -E -v "traces-db|apitrace|renderdoc" | \ - grep -E -v $EXCLUDE_FILTER | \ - cpio -H newc -o | \ - xz --check=crc32 -T4 - > $CI_PROJECT_DIR/rootfs.cpio.gz - popd -fi - -if echo "$BM_KERNEL $BM_DTB" | grep -q http; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "$BM_KERNEL" -o kernel - # FIXME: modules should be supplied too - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "$BM_DTB" -o dtb - - cat kernel dtb > Image.gz-dtb - -elif [ -n "${FORCE_KERNEL_TAG}" ]; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${BM_KERNEL}" -o kernel - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/modules.tar.zst" -o modules.tar.zst - - if [ -n "$BM_DTB" ]; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${BM_DTB}.dtb" -o dtb - fi - - cat kernel dtb > Image.gz-dtb || echo "No DTB available, using pure kernel." - rm kernel - tar --keep-directory-symlink --zstd -xf modules.tar.zst -C "$BM_ROOTFS/" - rm modules.tar.zst & -else - cat /baremetal-files/"$BM_KERNEL" /baremetal-files/"$BM_DTB".dtb > Image.gz-dtb - cp /baremetal-files/"$BM_DTB".dtb dtb -fi - -export PATH=$BM:$PATH - -mkdir -p artifacts -mkbootimg.py \ - --kernel Image.gz-dtb \ - --ramdisk rootfs.cpio.gz \ - --dtb dtb \ - --cmdline "$BM_CMDLINE" \ - $BM_MKBOOT_PARAMS \ - --header_version 2 \ - -o artifacts/fastboot.img - -rm Image.gz-dtb dtb - -# Start background command for talking to serial if we have one. -if [ -n "$BM_SERIAL_SCRIPT" ]; then - $BM_SERIAL_SCRIPT > results/serial-output.txt & - - while [ ! -e results/serial-output.txt ]; do - sleep 1 - done -fi - -set +e -$BM/fastboot_run.py \ - --dev="$BM_SERIAL" \ - --test-timeout ${TEST_PHASE_TIMEOUT:-20} \ - --fbserial="$BM_FASTBOOT_SERIAL" \ - --powerup="$BM_POWERUP" \ - --powerdown="$BM_POWERDOWN" -ret=$? -set -e - -if [ -n "$BM_FASTBOOT_NFSROOT" ]; then - # Bring artifacts back from the NFS dir to the build dir where gitlab-runner - # will look for them. - cp -Rp /nfs/results/. results/ -fi - -exit $ret diff --git a/.gitlab-ci/bare-metal/fastboot_run.py b/.gitlab-ci/bare-metal/fastboot_run.py deleted file mode 100755 index ca3229f6d..000000000 --- a/.gitlab-ci/bare-metal/fastboot_run.py +++ /dev/null @@ -1,159 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright © 2020 Google LLC -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import argparse -import subprocess -import re -from serial_buffer import SerialBuffer -import sys -import threading - - -class FastbootRun: - def __init__(self, args, test_timeout): - self.powerup = args.powerup - self.ser = SerialBuffer( - args.dev, "results/serial-output.txt", "R SERIAL> ") - self.fastboot = "fastboot boot -s {ser} artifacts/fastboot.img".format( - ser=args.fbserial) - self.test_timeout = test_timeout - - def close(self): - self.ser.close() - - def print_error(self, message): - RED = '\033[0;31m' - NO_COLOR = '\033[0m' - print(RED + message + NO_COLOR) - - def logged_system(self, cmd, timeout=60): - print("Running '{}'".format(cmd)) - try: - return subprocess.call(cmd, shell=True, timeout=timeout) - except subprocess.TimeoutExpired: - self.print_error("timeout, abandoning run.") - return 1 - - def run(self): - if ret := self.logged_system(self.powerup): - return ret - - fastboot_ready = False - for line in self.ser.lines(timeout=2 * 60, phase="bootloader"): - if re.search("[Ff]astboot: [Pp]rocessing commands", line) or \ - re.search("Listening for fastboot command on", line): - fastboot_ready = True - break - - if re.search("data abort", line): - self.print_error( - "Detected crash during boot, abandoning run.") - return 1 - - if not fastboot_ready: - self.print_error( - "Failed to get to fastboot prompt, abandoning run.") - return 1 - - if ret := self.logged_system(self.fastboot): - return ret - - print_more_lines = -1 - for line in self.ser.lines(timeout=self.test_timeout, phase="test"): - if print_more_lines == 0: - return 1 - if print_more_lines > 0: - print_more_lines -= 1 - - if re.search("---. end Kernel panic", line): - return 1 - - # The db820c boards intermittently reboot. Just restart the run - # when if we see a reboot after we got past fastboot. - if re.search("PON REASON", line): - self.print_error( - "Detected spontaneous reboot, abandoning run.") - return 1 - - # db820c sometimes wedges around iommu fault recovery - if re.search("watchdog: BUG: soft lockup - CPU.* stuck", line): - self.print_error( - "Detected kernel soft lockup, abandoning run.") - return 1 - - # If the network device dies, it's probably not graphics's fault, just try again. - if re.search("NETDEV WATCHDOG", line): - self.print_error( - "Detected network device failure, abandoning run.") - return 1 - - # A3xx recovery doesn't quite work. Sometimes the GPU will get - # wedged and recovery will fail (because power can't be reset?) - # This assumes that the jobs are sufficiently well-tested that GPU - # hangs aren't always triggered, so just try again. But print some - # more lines first so that we get better information on the cause - # of the hang. Once a hang happens, it's pretty chatty. - if "[drm:adreno_recover] *ERROR* gpu hw init failed: -22" in line: - self.print_error( - "Detected GPU hang, abandoning run.") - if print_more_lines == -1: - print_more_lines = 30 - - result = re.search("hwci: mesa: (\S*)", line) - if result: - if result.group(1) == "pass": - return 0 - else: - return 1 - - self.print_error( - "Reached the end of the CPU serial log without finding a result, abandoning run.") - return 1 - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument( - '--dev', type=str, help='Serial device (otherwise reading from serial-output.txt)') - parser.add_argument('--powerup', type=str, - help='shell command for rebooting', required=True) - parser.add_argument('--powerdown', type=str, - help='shell command for powering off', required=True) - parser.add_argument('--fbserial', type=str, - help='fastboot serial number of the board', required=True) - parser.add_argument('--test-timeout', type=int, - help='Test phase timeout (minutes)', required=True) - args = parser.parse_args() - - fastboot = FastbootRun(args, args.test_timeout * 60) - - retval = fastboot.run() - fastboot.close() - - fastboot.logged_system(args.powerdown) - - sys.exit(retval) - - -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/bare-metal/google-power-down.sh b/.gitlab-ci/bare-metal/google-power-down.sh deleted file mode 100755 index 0404619cd..000000000 --- a/.gitlab-ci/bare-metal/google-power-down.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -relay=$1 - -if [ -z "$relay" ]; then - echo "Must supply a relay arg" - exit 1 -fi - -"$CI_PROJECT_DIR"/install/bare-metal/google-power-relay.py off "$relay" diff --git a/.gitlab-ci/bare-metal/google-power-relay.py b/.gitlab-ci/bare-metal/google-power-relay.py deleted file mode 100755 index 52ed6f5e4..000000000 --- a/.gitlab-ci/bare-metal/google-power-relay.py +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/python3 - -import sys -import serial - -mode = sys.argv[1] -relay = sys.argv[2] - -# our relays are "off" means "board is powered". -mode_swap = { - "on": "off", - "off": "on", -} -mode = mode_swap[mode] - -ser = serial.Serial('/dev/ttyACM0', 115200, timeout=2) -command = "relay {} {}\n\r".format(mode, relay) -ser.write(command.encode()) -ser.close() diff --git a/.gitlab-ci/bare-metal/google-power-up.sh b/.gitlab-ci/bare-metal/google-power-up.sh deleted file mode 100755 index d5c3cf77e..000000000 --- a/.gitlab-ci/bare-metal/google-power-up.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -relay=$1 - -if [ -z "$relay" ]; then - echo "Must supply a relay arg" - exit 1 -fi - -"$CI_PROJECT_DIR"/install/bare-metal/google-power-relay.py off "$relay" -sleep 5 -"$CI_PROJECT_DIR"/install/bare-metal/google-power-relay.py on "$relay" diff --git a/.gitlab-ci/bare-metal/mkbootimg.py b/.gitlab-ci/bare-metal/mkbootimg.py deleted file mode 100755 index 5f000dbcf..000000000 --- a/.gitlab-ci/bare-metal/mkbootimg.py +++ /dev/null @@ -1,569 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2015, The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Creates the boot image.""" -from argparse import (ArgumentParser, ArgumentTypeError, - FileType, RawDescriptionHelpFormatter) -from hashlib import sha1 -from os import fstat -from struct import pack -import array -import collections -import os -import re -import subprocess -import tempfile -# Constant and structure definition is in -# system/tools/mkbootimg/include/bootimg/bootimg.h -BOOT_MAGIC = 'ANDROID!' -BOOT_MAGIC_SIZE = 8 -BOOT_NAME_SIZE = 16 -BOOT_ARGS_SIZE = 512 -BOOT_EXTRA_ARGS_SIZE = 1024 -BOOT_IMAGE_HEADER_V1_SIZE = 1648 -BOOT_IMAGE_HEADER_V2_SIZE = 1660 -BOOT_IMAGE_HEADER_V3_SIZE = 1580 -BOOT_IMAGE_HEADER_V3_PAGESIZE = 4096 -BOOT_IMAGE_HEADER_V4_SIZE = 1584 -BOOT_IMAGE_V4_SIGNATURE_SIZE = 4096 -VENDOR_BOOT_MAGIC = 'VNDRBOOT' -VENDOR_BOOT_MAGIC_SIZE = 8 -VENDOR_BOOT_NAME_SIZE = BOOT_NAME_SIZE -VENDOR_BOOT_ARGS_SIZE = 2048 -VENDOR_BOOT_IMAGE_HEADER_V3_SIZE = 2112 -VENDOR_BOOT_IMAGE_HEADER_V4_SIZE = 2128 -VENDOR_RAMDISK_TYPE_NONE = 0 -VENDOR_RAMDISK_TYPE_PLATFORM = 1 -VENDOR_RAMDISK_TYPE_RECOVERY = 2 -VENDOR_RAMDISK_TYPE_DLKM = 3 -VENDOR_RAMDISK_NAME_SIZE = 32 -VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE = 16 -VENDOR_RAMDISK_TABLE_ENTRY_V4_SIZE = 108 -# Names with special meaning, mustn't be specified in --ramdisk_name. -VENDOR_RAMDISK_NAME_BLOCKLIST = {b'default'} -PARSER_ARGUMENT_VENDOR_RAMDISK_FRAGMENT = '--vendor_ramdisk_fragment' -def filesize(f): - if f is None: - return 0 - try: - return fstat(f.fileno()).st_size - except OSError: - return 0 -def update_sha(sha, f): - if f: - sha.update(f.read()) - f.seek(0) - sha.update(pack('I', filesize(f))) - else: - sha.update(pack('I', 0)) -def pad_file(f, padding): - pad = (padding - (f.tell() & (padding - 1))) & (padding - 1) - f.write(pack(str(pad) + 'x')) -def get_number_of_pages(image_size, page_size): - """calculates the number of pages required for the image""" - return (image_size + page_size - 1) // page_size -def get_recovery_dtbo_offset(args): - """calculates the offset of recovery_dtbo image in the boot image""" - num_header_pages = 1 # header occupies a page - num_kernel_pages = get_number_of_pages(filesize(args.kernel), args.pagesize) - num_ramdisk_pages = get_number_of_pages(filesize(args.ramdisk), - args.pagesize) - num_second_pages = get_number_of_pages(filesize(args.second), args.pagesize) - dtbo_offset = args.pagesize * (num_header_pages + num_kernel_pages + - num_ramdisk_pages + num_second_pages) - return dtbo_offset -def write_header_v3_and_above(args): - if args.header_version > 3: - boot_header_size = BOOT_IMAGE_HEADER_V4_SIZE - else: - boot_header_size = BOOT_IMAGE_HEADER_V3_SIZE - args.output.write(pack(f'{BOOT_MAGIC_SIZE}s', BOOT_MAGIC.encode())) - # kernel size in bytes - args.output.write(pack('I', filesize(args.kernel))) - # ramdisk size in bytes - args.output.write(pack('I', filesize(args.ramdisk))) - # os version and patch level - args.output.write(pack('I', (args.os_version << 11) | args.os_patch_level)) - args.output.write(pack('I', boot_header_size)) - # reserved - args.output.write(pack('4I', 0, 0, 0, 0)) - # version of boot image header - args.output.write(pack('I', args.header_version)) - args.output.write(pack(f'{BOOT_ARGS_SIZE + BOOT_EXTRA_ARGS_SIZE}s', - args.cmdline)) - if args.header_version >= 4: - # The signature used to verify boot image v4. - args.output.write(pack('I', BOOT_IMAGE_V4_SIGNATURE_SIZE)) - pad_file(args.output, BOOT_IMAGE_HEADER_V3_PAGESIZE) -def write_vendor_boot_header(args): - if filesize(args.dtb) == 0: - raise ValueError('DTB image must not be empty.') - if args.header_version > 3: - vendor_ramdisk_size = args.vendor_ramdisk_total_size - vendor_boot_header_size = VENDOR_BOOT_IMAGE_HEADER_V4_SIZE - else: - vendor_ramdisk_size = filesize(args.vendor_ramdisk) - vendor_boot_header_size = VENDOR_BOOT_IMAGE_HEADER_V3_SIZE - args.vendor_boot.write(pack(f'{VENDOR_BOOT_MAGIC_SIZE}s', - VENDOR_BOOT_MAGIC.encode())) - # version of boot image header - args.vendor_boot.write(pack('I', args.header_version)) - # flash page size - args.vendor_boot.write(pack('I', args.pagesize)) - # kernel physical load address - args.vendor_boot.write(pack('I', args.base + args.kernel_offset)) - # ramdisk physical load address - args.vendor_boot.write(pack('I', args.base + args.ramdisk_offset)) - # ramdisk size in bytes - args.vendor_boot.write(pack('I', vendor_ramdisk_size)) - args.vendor_boot.write(pack(f'{VENDOR_BOOT_ARGS_SIZE}s', - args.vendor_cmdline)) - # kernel tags physical load address - args.vendor_boot.write(pack('I', args.base + args.tags_offset)) - # asciiz product name - args.vendor_boot.write(pack(f'{VENDOR_BOOT_NAME_SIZE}s', args.board)) - # header size in bytes - args.vendor_boot.write(pack('I', vendor_boot_header_size)) - # dtb size in bytes - args.vendor_boot.write(pack('I', filesize(args.dtb))) - # dtb physical load address - args.vendor_boot.write(pack('Q', args.base + args.dtb_offset)) - if args.header_version > 3: - vendor_ramdisk_table_size = (args.vendor_ramdisk_table_entry_num * - VENDOR_RAMDISK_TABLE_ENTRY_V4_SIZE) - # vendor ramdisk table size in bytes - args.vendor_boot.write(pack('I', vendor_ramdisk_table_size)) - # number of vendor ramdisk table entries - args.vendor_boot.write(pack('I', args.vendor_ramdisk_table_entry_num)) - # vendor ramdisk table entry size in bytes - args.vendor_boot.write(pack('I', VENDOR_RAMDISK_TABLE_ENTRY_V4_SIZE)) - # bootconfig section size in bytes - args.vendor_boot.write(pack('I', filesize(args.vendor_bootconfig))) - pad_file(args.vendor_boot, args.pagesize) -def write_header(args): - if args.header_version > 4: - raise ValueError( - f'Boot header version {args.header_version} not supported') - if args.header_version in {3, 4}: - return write_header_v3_and_above(args) - ramdisk_load_address = ((args.base + args.ramdisk_offset) - if filesize(args.ramdisk) > 0 else 0) - second_load_address = ((args.base + args.second_offset) - if filesize(args.second) > 0 else 0) - args.output.write(pack(f'{BOOT_MAGIC_SIZE}s', BOOT_MAGIC.encode())) - # kernel size in bytes - args.output.write(pack('I', filesize(args.kernel))) - # kernel physical load address - args.output.write(pack('I', args.base + args.kernel_offset)) - # ramdisk size in bytes - args.output.write(pack('I', filesize(args.ramdisk))) - # ramdisk physical load address - args.output.write(pack('I', ramdisk_load_address)) - # second bootloader size in bytes - args.output.write(pack('I', filesize(args.second))) - # second bootloader physical load address - args.output.write(pack('I', second_load_address)) - # kernel tags physical load address - args.output.write(pack('I', args.base + args.tags_offset)) - # flash page size - args.output.write(pack('I', args.pagesize)) - # version of boot image header - args.output.write(pack('I', args.header_version)) - # os version and patch level - args.output.write(pack('I', (args.os_version << 11) | args.os_patch_level)) - # asciiz product name - args.output.write(pack(f'{BOOT_NAME_SIZE}s', args.board)) - args.output.write(pack(f'{BOOT_ARGS_SIZE}s', args.cmdline)) - sha = sha1() - update_sha(sha, args.kernel) - update_sha(sha, args.ramdisk) - update_sha(sha, args.second) - if args.header_version > 0: - update_sha(sha, args.recovery_dtbo) - if args.header_version > 1: - update_sha(sha, args.dtb) - img_id = pack('32s', sha.digest()) - args.output.write(img_id) - args.output.write(pack(f'{BOOT_EXTRA_ARGS_SIZE}s', args.extra_cmdline)) - if args.header_version > 0: - if args.recovery_dtbo: - # recovery dtbo size in bytes - args.output.write(pack('I', filesize(args.recovery_dtbo))) - # recovert dtbo offset in the boot image - args.output.write(pack('Q', get_recovery_dtbo_offset(args))) - else: - # Set to zero if no recovery dtbo - args.output.write(pack('I', 0)) - args.output.write(pack('Q', 0)) - # Populate boot image header size for header versions 1 and 2. - if args.header_version == 1: - args.output.write(pack('I', BOOT_IMAGE_HEADER_V1_SIZE)) - elif args.header_version == 2: - args.output.write(pack('I', BOOT_IMAGE_HEADER_V2_SIZE)) - if args.header_version > 1: - if filesize(args.dtb) == 0: - raise ValueError('DTB image must not be empty.') - # dtb size in bytes - args.output.write(pack('I', filesize(args.dtb))) - # dtb physical load address - args.output.write(pack('Q', args.base + args.dtb_offset)) - pad_file(args.output, args.pagesize) - return img_id -class AsciizBytes: - """Parses a string and encodes it as an asciiz bytes object. - >>> AsciizBytes(bufsize=4)('foo') - b'foo\\x00' - >>> AsciizBytes(bufsize=4)('foob') - Traceback (most recent call last): - ... - argparse.ArgumentTypeError: Encoded asciiz length exceeded: max 4, got 5 - """ - def __init__(self, bufsize): - self.bufsize = bufsize - def __call__(self, arg): - arg_bytes = arg.encode() + b'\x00' - if len(arg_bytes) > self.bufsize: - raise ArgumentTypeError( - 'Encoded asciiz length exceeded: ' - f'max {self.bufsize}, got {len(arg_bytes)}') - return arg_bytes -class VendorRamdiskTableBuilder: - """Vendor ramdisk table builder. - Attributes: - entries: A list of VendorRamdiskTableEntry namedtuple. - ramdisk_total_size: Total size in bytes of all ramdisks in the table. - """ - VendorRamdiskTableEntry = collections.namedtuple( # pylint: disable=invalid-name - 'VendorRamdiskTableEntry', - ['ramdisk_path', 'ramdisk_size', 'ramdisk_offset', 'ramdisk_type', - 'ramdisk_name', 'board_id']) - def __init__(self): - self.entries = [] - self.ramdisk_total_size = 0 - self.ramdisk_names = set() - def add_entry(self, ramdisk_path, ramdisk_type, ramdisk_name, board_id): - # Strip any trailing null for simple comparison. - stripped_ramdisk_name = ramdisk_name.rstrip(b'\x00') - if stripped_ramdisk_name in VENDOR_RAMDISK_NAME_BLOCKLIST: - raise ValueError( - f'Banned vendor ramdisk name: {stripped_ramdisk_name}') - if stripped_ramdisk_name in self.ramdisk_names: - raise ValueError( - f'Duplicated vendor ramdisk name: {stripped_ramdisk_name}') - self.ramdisk_names.add(stripped_ramdisk_name) - if board_id is None: - board_id = array.array( - 'I', [0] * VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE) - else: - board_id = array.array('I', board_id) - if len(board_id) != VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE: - raise ValueError('board_id size must be ' - f'{VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE}') - with open(ramdisk_path, 'rb') as f: - ramdisk_size = filesize(f) - self.entries.append(self.VendorRamdiskTableEntry( - ramdisk_path, ramdisk_size, self.ramdisk_total_size, ramdisk_type, - ramdisk_name, board_id)) - self.ramdisk_total_size += ramdisk_size - def write_ramdisks_padded(self, fout, alignment): - for entry in self.entries: - with open(entry.ramdisk_path, 'rb') as f: - fout.write(f.read()) - pad_file(fout, alignment) - def write_entries_padded(self, fout, alignment): - for entry in self.entries: - fout.write(pack('I', entry.ramdisk_size)) - fout.write(pack('I', entry.ramdisk_offset)) - fout.write(pack('I', entry.ramdisk_type)) - fout.write(pack(f'{VENDOR_RAMDISK_NAME_SIZE}s', - entry.ramdisk_name)) - fout.write(entry.board_id) - pad_file(fout, alignment) -def write_padded_file(f_out, f_in, padding): - if f_in is None: - return - f_out.write(f_in.read()) - pad_file(f_out, padding) -def parse_int(x): - return int(x, 0) -def parse_os_version(x): - match = re.search(r'^(\d{1,3})(?:\.(\d{1,3})(?:\.(\d{1,3}))?)?', x) - if match: - a = int(match.group(1)) - b = c = 0 - if match.lastindex >= 2: - b = int(match.group(2)) - if match.lastindex == 3: - c = int(match.group(3)) - # 7 bits allocated for each field - assert a < 128 - assert b < 128 - assert c < 128 - return (a << 14) | (b << 7) | c - return 0 -def parse_os_patch_level(x): - match = re.search(r'^(\d{4})-(\d{2})(?:-(\d{2}))?', x) - if match: - y = int(match.group(1)) - 2000 - m = int(match.group(2)) - # 7 bits allocated for the year, 4 bits for the month - assert 0 <= y < 128 - assert 0 < m <= 12 - return (y << 4) | m - return 0 -def parse_vendor_ramdisk_type(x): - type_dict = { - 'none': VENDOR_RAMDISK_TYPE_NONE, - 'platform': VENDOR_RAMDISK_TYPE_PLATFORM, - 'recovery': VENDOR_RAMDISK_TYPE_RECOVERY, - 'dlkm': VENDOR_RAMDISK_TYPE_DLKM, - } - if x.lower() in type_dict: - return type_dict[x.lower()] - return parse_int(x) -def get_vendor_boot_v4_usage(): - return """vendor boot version 4 arguments: - --ramdisk_type {none,platform,recovery,dlkm} - specify the type of the ramdisk - --ramdisk_name NAME - specify the name of the ramdisk - --board_id{0..15} NUMBER - specify the value of the board_id vector, defaults to 0 - --vendor_ramdisk_fragment VENDOR_RAMDISK_FILE - path to the vendor ramdisk file - These options can be specified multiple times, where each vendor ramdisk - option group ends with a --vendor_ramdisk_fragment option. - Each option group appends an additional ramdisk to the vendor boot image. -""" -def parse_vendor_ramdisk_args(args, args_list): - """Parses vendor ramdisk specific arguments. - Args: - args: An argparse.Namespace object. Parsed results are stored into this - object. - args_list: A list of argument strings to be parsed. - Returns: - A list argument strings that are not parsed by this method. - """ - parser = ArgumentParser(add_help=False) - parser.add_argument('--ramdisk_type', type=parse_vendor_ramdisk_type, - default=VENDOR_RAMDISK_TYPE_NONE) - parser.add_argument('--ramdisk_name', - type=AsciizBytes(bufsize=VENDOR_RAMDISK_NAME_SIZE), - required=True) - for i in range(VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE): - parser.add_argument(f'--board_id{i}', type=parse_int, default=0) - parser.add_argument(PARSER_ARGUMENT_VENDOR_RAMDISK_FRAGMENT, required=True) - unknown_args = [] - vendor_ramdisk_table_builder = VendorRamdiskTableBuilder() - if args.vendor_ramdisk is not None: - vendor_ramdisk_table_builder.add_entry( - args.vendor_ramdisk.name, VENDOR_RAMDISK_TYPE_PLATFORM, b'', None) - while PARSER_ARGUMENT_VENDOR_RAMDISK_FRAGMENT in args_list: - idx = args_list.index(PARSER_ARGUMENT_VENDOR_RAMDISK_FRAGMENT) + 2 - vendor_ramdisk_args = args_list[:idx] - args_list = args_list[idx:] - ramdisk_args, extra_args = parser.parse_known_args(vendor_ramdisk_args) - ramdisk_args_dict = vars(ramdisk_args) - unknown_args.extend(extra_args) - ramdisk_path = ramdisk_args.vendor_ramdisk_fragment - ramdisk_type = ramdisk_args.ramdisk_type - ramdisk_name = ramdisk_args.ramdisk_name - board_id = [ramdisk_args_dict[f'board_id{i}'] - for i in range(VENDOR_RAMDISK_TABLE_ENTRY_BOARD_ID_SIZE)] - vendor_ramdisk_table_builder.add_entry(ramdisk_path, ramdisk_type, - ramdisk_name, board_id) - if len(args_list) > 0: - unknown_args.extend(args_list) - args.vendor_ramdisk_total_size = (vendor_ramdisk_table_builder - .ramdisk_total_size) - args.vendor_ramdisk_table_entry_num = len(vendor_ramdisk_table_builder - .entries) - args.vendor_ramdisk_table_builder = vendor_ramdisk_table_builder - return unknown_args -def parse_cmdline(): - version_parser = ArgumentParser(add_help=False) - version_parser.add_argument('--header_version', type=parse_int, default=0) - if version_parser.parse_known_args()[0].header_version < 3: - # For boot header v0 to v2, the kernel commandline field is split into - # two fields, cmdline and extra_cmdline. Both fields are asciiz strings, - # so we minus one here to ensure the encoded string plus the - # null-terminator can fit in the buffer size. - cmdline_size = BOOT_ARGS_SIZE + BOOT_EXTRA_ARGS_SIZE - 1 - else: - cmdline_size = BOOT_ARGS_SIZE + BOOT_EXTRA_ARGS_SIZE - parser = ArgumentParser(formatter_class=RawDescriptionHelpFormatter, - epilog=get_vendor_boot_v4_usage()) - parser.add_argument('--kernel', type=FileType('rb'), - help='path to the kernel') - parser.add_argument('--ramdisk', type=FileType('rb'), - help='path to the ramdisk') - parser.add_argument('--second', type=FileType('rb'), - help='path to the second bootloader') - parser.add_argument('--dtb', type=FileType('rb'), help='path to the dtb') - dtbo_group = parser.add_mutually_exclusive_group() - dtbo_group.add_argument('--recovery_dtbo', type=FileType('rb'), - help='path to the recovery DTBO') - dtbo_group.add_argument('--recovery_acpio', type=FileType('rb'), - metavar='RECOVERY_ACPIO', dest='recovery_dtbo', - help='path to the recovery ACPIO') - parser.add_argument('--cmdline', type=AsciizBytes(bufsize=cmdline_size), - default='', help='kernel command line arguments') - parser.add_argument('--vendor_cmdline', - type=AsciizBytes(bufsize=VENDOR_BOOT_ARGS_SIZE), - default='', - help='vendor boot kernel command line arguments') - parser.add_argument('--base', type=parse_int, default=0x10000000, - help='base address') - parser.add_argument('--kernel_offset', type=parse_int, default=0x00008000, - help='kernel offset') - parser.add_argument('--ramdisk_offset', type=parse_int, default=0x01000000, - help='ramdisk offset') - parser.add_argument('--second_offset', type=parse_int, default=0x00f00000, - help='second bootloader offset') - parser.add_argument('--dtb_offset', type=parse_int, default=0x01f00000, - help='dtb offset') - parser.add_argument('--os_version', type=parse_os_version, default=0, - help='operating system version') - parser.add_argument('--os_patch_level', type=parse_os_patch_level, - default=0, help='operating system patch level') - parser.add_argument('--tags_offset', type=parse_int, default=0x00000100, - help='tags offset') - parser.add_argument('--board', type=AsciizBytes(bufsize=BOOT_NAME_SIZE), - default='', help='board name') - parser.add_argument('--pagesize', type=parse_int, - choices=[2**i for i in range(11, 15)], default=2048, - help='page size') - parser.add_argument('--id', action='store_true', - help='print the image ID on standard output') - parser.add_argument('--header_version', type=parse_int, default=0, - help='boot image header version') - parser.add_argument('-o', '--output', type=FileType('wb'), - help='output file name') - parser.add_argument('--gki_signing_algorithm', - help='GKI signing algorithm to use') - parser.add_argument('--gki_signing_key', - help='path to RSA private key file') - parser.add_argument('--gki_signing_signature_args', - help='other hash arguments passed to avbtool') - parser.add_argument('--gki_signing_avbtool_path', - help='path to avbtool for boot signature generation') - parser.add_argument('--vendor_boot', type=FileType('wb'), - help='vendor boot output file name') - parser.add_argument('--vendor_ramdisk', type=FileType('rb'), - help='path to the vendor ramdisk') - parser.add_argument('--vendor_bootconfig', type=FileType('rb'), - help='path to the vendor bootconfig file') - args, extra_args = parser.parse_known_args() - if args.vendor_boot is not None and args.header_version > 3: - extra_args = parse_vendor_ramdisk_args(args, extra_args) - if len(extra_args) > 0: - raise ValueError(f'Unrecognized arguments: {extra_args}') - if args.header_version < 3: - args.extra_cmdline = args.cmdline[BOOT_ARGS_SIZE-1:] - args.cmdline = args.cmdline[:BOOT_ARGS_SIZE-1] + b'\x00' - assert len(args.cmdline) <= BOOT_ARGS_SIZE - assert len(args.extra_cmdline) <= BOOT_EXTRA_ARGS_SIZE - return args -def add_boot_image_signature(args, pagesize): - """Adds the boot image signature. - Note that the signature will only be verified in VTS to ensure a - generic boot.img is used. It will not be used by the device - bootloader at boot time. The bootloader should only verify - the boot vbmeta at the end of the boot partition (or in the top-level - vbmeta partition) via the Android Verified Boot process, when the - device boots. - """ - args.output.flush() # Flush the buffer for signature calculation. - # Appends zeros if the signing key is not specified. - if not args.gki_signing_key or not args.gki_signing_algorithm: - zeros = b'\x00' * BOOT_IMAGE_V4_SIGNATURE_SIZE - args.output.write(zeros) - pad_file(args.output, pagesize) - return - avbtool = 'avbtool' # Used from otatools.zip or Android build env. - # We need to specify the path of avbtool in build/core/Makefile. - # Because avbtool is not guaranteed to be in $PATH there. - if args.gki_signing_avbtool_path: - avbtool = args.gki_signing_avbtool_path - # Need to specify a value of --partition_size for avbtool to work. - # We use 64 MB below, but avbtool will not resize the boot image to - # this size because --do_not_append_vbmeta_image is also specified. - avbtool_cmd = [ - avbtool, 'add_hash_footer', - '--partition_name', 'boot', - '--partition_size', str(64 * 1024 * 1024), - '--image', args.output.name, - '--algorithm', args.gki_signing_algorithm, - '--key', args.gki_signing_key, - '--salt', 'd00df00d'] # TODO: use a hash of kernel/ramdisk as the salt. - # Additional arguments passed to avbtool. - if args.gki_signing_signature_args: - avbtool_cmd += args.gki_signing_signature_args.split() - # Outputs the signed vbmeta to a separate file, then append to boot.img - # as the boot signature. - with tempfile.TemporaryDirectory() as temp_out_dir: - boot_signature_output = os.path.join(temp_out_dir, 'boot_signature') - avbtool_cmd += ['--do_not_append_vbmeta_image', - '--output_vbmeta_image', boot_signature_output] - subprocess.check_call(avbtool_cmd) - with open(boot_signature_output, 'rb') as boot_signature: - if filesize(boot_signature) > BOOT_IMAGE_V4_SIGNATURE_SIZE: - raise ValueError( - f'boot sigature size is > {BOOT_IMAGE_V4_SIGNATURE_SIZE}') - write_padded_file(args.output, boot_signature, pagesize) -def write_data(args, pagesize): - write_padded_file(args.output, args.kernel, pagesize) - write_padded_file(args.output, args.ramdisk, pagesize) - write_padded_file(args.output, args.second, pagesize) - if args.header_version > 0 and args.header_version < 3: - write_padded_file(args.output, args.recovery_dtbo, pagesize) - if args.header_version == 2: - write_padded_file(args.output, args.dtb, pagesize) - if args.header_version >= 4: - add_boot_image_signature(args, pagesize) -def write_vendor_boot_data(args): - if args.header_version > 3: - builder = args.vendor_ramdisk_table_builder - builder.write_ramdisks_padded(args.vendor_boot, args.pagesize) - write_padded_file(args.vendor_boot, args.dtb, args.pagesize) - builder.write_entries_padded(args.vendor_boot, args.pagesize) - write_padded_file(args.vendor_boot, args.vendor_bootconfig, - args.pagesize) - else: - write_padded_file(args.vendor_boot, args.vendor_ramdisk, args.pagesize) - write_padded_file(args.vendor_boot, args.dtb, args.pagesize) -def main(): - args = parse_cmdline() - if args.vendor_boot is not None: - if args.header_version not in {3, 4}: - raise ValueError( - '--vendor_boot not compatible with given header version') - if args.header_version == 3 and args.vendor_ramdisk is None: - raise ValueError('--vendor_ramdisk missing or invalid') - write_vendor_boot_header(args) - write_vendor_boot_data(args) - if args.output is not None: - if args.second is not None and args.header_version > 2: - raise ValueError( - '--second not compatible with given header version') - img_id = write_header(args) - if args.header_version > 2: - write_data(args, BOOT_IMAGE_HEADER_V3_PAGESIZE) - else: - write_data(args, args.pagesize) - if args.id and img_id is not None: - print('0x' + ''.join(f'{octet:02x}' for octet in img_id)) -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/bare-metal/poe-off b/.gitlab-ci/bare-metal/poe-off deleted file mode 100755 index 64517204f..000000000 --- a/.gitlab-ci/bare-metal/poe-off +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -if [ -z "$BM_POE_INTERFACE" ]; then - echo "Must supply the PoE Interface to power up" - exit 1 -fi - -if [ -z "$BM_POE_ADDRESS" ]; then - echo "Must supply the PoE Switch host" - exit 1 -fi - -SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((${BM_POE_BASE:-0} + BM_POE_INTERFACE))" -SNMP_OFF="i 2" - -flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF" diff --git a/.gitlab-ci/bare-metal/poe-on b/.gitlab-ci/bare-metal/poe-on deleted file mode 100755 index c5fde6979..000000000 --- a/.gitlab-ci/bare-metal/poe-on +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -if [ -z "$BM_POE_INTERFACE" ]; then - echo "Must supply the PoE Interface to power up" - exit 1 -fi - -if [ -z "$BM_POE_ADDRESS" ]; then - echo "Must supply the PoE Switch host" - exit 1 -fi - -SNMP_KEY="SNMPv2-SMI::mib-2.105.1.1.1.3.1.$((${BM_POE_BASE:-0} + BM_POE_INTERFACE))" -SNMP_ON="i 1" -SNMP_OFF="i 2" - -flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_OFF" -sleep 3s -flock /var/run/poe.lock -c "snmpset -v2c -r 3 -t 30 -cmesaci $BM_POE_ADDRESS $SNMP_KEY $SNMP_ON" diff --git a/.gitlab-ci/bare-metal/poe-powered.sh b/.gitlab-ci/bare-metal/poe-powered.sh deleted file mode 100755 index 4d172b1e0..000000000 --- a/.gitlab-ci/bare-metal/poe-powered.sh +++ /dev/null @@ -1,229 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC1091 -# shellcheck disable=SC2034 -# shellcheck disable=SC2059 -# shellcheck disable=SC2086 # we want word splitting - -. "$SCRIPTS_DIR"/setup-test-env.sh - -# Boot script for devices attached to a PoE switch, using NFS for the root -# filesystem. - -# We're run from the root of the repo, make a helper var for our paths -BM=$CI_PROJECT_DIR/install/bare-metal -CI_COMMON=$CI_PROJECT_DIR/install/common -CI_INSTALL=$CI_PROJECT_DIR/install - -# Runner config checks -if [ -z "$BM_SERIAL" ]; then - echo "Must set BM_SERIAL in your gitlab-runner config.toml [[runners]] environment" - echo "This is the serial port to listen the device." - exit 1 -fi - -if [ -z "$BM_POE_ADDRESS" ]; then - echo "Must set BM_POE_ADDRESS in your gitlab-runner config.toml [[runners]] environment" - echo "This is the PoE switch address to connect for powering up/down devices." - exit 1 -fi - -if [ -z "$BM_POE_INTERFACE" ]; then - echo "Must set BM_POE_INTERFACE in your gitlab-runner config.toml [[runners]] environment" - echo "This is the PoE switch interface where the device is connected." - exit 1 -fi - -if [ -z "$BM_POWERUP" ]; then - echo "Must set BM_POWERUP in your gitlab-runner config.toml [[runners]] environment" - echo "This is a shell script that should power up the device and begin its boot sequence." - exit 1 -fi - -if [ -z "$BM_POWERDOWN" ]; then - echo "Must set BM_POWERDOWN in your gitlab-runner config.toml [[runners]] environment" - echo "This is a shell script that should power off the device." - exit 1 -fi - -if [ ! -d /nfs ]; then - echo "NFS rootfs directory needs to be mounted at /nfs by the gitlab runner" - exit 1 -fi - -if [ ! -d /tftp ]; then - echo "TFTP directory for this board needs to be mounted at /tftp by the gitlab runner" - exit 1 -fi - -# job config checks -if [ -z "$BM_ROOTFS" ]; then - echo "Must set BM_ROOTFS to your board's rootfs directory in the job's variables" - exit 1 -fi - -if [ -z "$BM_BOOTFS" ] && { [ -z "$BM_KERNEL" ] || [ -z "$BM_DTB" ]; } ; then - echo "Must set /boot files for the TFTP boot in the job's variables or set kernel and dtb" - exit 1 -fi - -if [ -z "$BM_CMDLINE" ]; then - echo "Must set BM_CMDLINE to your board's kernel command line arguments" - exit 1 -fi - -set -ex - -date +'%F %T' - -# Clear out any previous run's artifacts. -rm -rf results/ -mkdir -p results - -# Create the rootfs in the NFS directory. rm to make sure it's in a pristine -# state, since it's volume-mounted on the host. -rsync -a --delete $BM_ROOTFS/ /nfs/ - -date +'%F %T' - -# If BM_BOOTFS is an URL, download it -if echo $BM_BOOTFS | grep -q http; then - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}$BM_BOOTFS" -o /tmp/bootfs.tar - BM_BOOTFS=/tmp/bootfs.tar -fi - -date +'%F %T' - -# If BM_BOOTFS is a file, assume it is a tarball and uncompress it -if [ -f "${BM_BOOTFS}" ]; then - mkdir -p /tmp/bootfs - tar xf $BM_BOOTFS -C /tmp/bootfs - BM_BOOTFS=/tmp/bootfs -fi - -# If BM_KERNEL and BM_DTS is present -if [ -n "${FORCE_KERNEL_TAG}" ]; then - if [ -z "${BM_KERNEL}" ] || [ -z "${BM_DTB}" ]; then - echo "This machine cannot be tested with external kernel since BM_KERNEL or BM_DTB missing!" - exit 1 - fi - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${BM_KERNEL}" -o "${BM_KERNEL}" - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${BM_DTB}.dtb" -o "${BM_DTB}.dtb" - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${FDO_HTTP_CACHE_URI:-}${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/modules.tar.zst" -o modules.tar.zst -fi - -date +'%F %T' - -# Install kernel modules (it could be either in /lib/modules or -# /usr/lib/modules, but we want to install in the latter) -if [ -n "${FORCE_KERNEL_TAG}" ]; then - tar --keep-directory-symlink --zstd -xf modules.tar.zst -C /nfs/ - rm modules.tar.zst & -elif [ -n "${BM_BOOTFS}" ]; then - [ -d $BM_BOOTFS/usr/lib/modules ] && rsync -a $BM_BOOTFS/usr/lib/modules/ /nfs/usr/lib/modules/ - [ -d $BM_BOOTFS/lib/modules ] && rsync -a $BM_BOOTFS/lib/modules/ /nfs/lib/modules/ -else - echo "No modules!" -fi - - -date +'%F %T' - -# Install kernel image + bootloader files -if [ -n "${FORCE_KERNEL_TAG}" ] || [ -z "$BM_BOOTFS" ]; then - mv "${BM_KERNEL}" "${BM_DTB}.dtb" /tftp/ -else # BM_BOOTFS - rsync -aL --delete $BM_BOOTFS/boot/ /tftp/ -fi - -date +'%F %T' - -# Set up the pxelinux config for Jetson Nano -mkdir -p /tftp/pxelinux.cfg -cat </tftp/pxelinux.cfg/default-arm-tegra210-p3450-0000 -PROMPT 0 -TIMEOUT 30 -DEFAULT primary -MENU TITLE jetson nano boot options -LABEL primary - MENU LABEL CI kernel on TFTP - LINUX Image - FDT tegra210-p3450-0000.dtb - APPEND \${cbootargs} $BM_CMDLINE -EOF - -# Set up the pxelinux config for Jetson TK1 -cat </tftp/pxelinux.cfg/default-arm-tegra124-jetson-tk1 -PROMPT 0 -TIMEOUT 30 -DEFAULT primary -MENU TITLE jetson TK1 boot options -LABEL primary - MENU LABEL CI kernel on TFTP - LINUX zImage - FDT tegra124-jetson-tk1.dtb - APPEND \${cbootargs} $BM_CMDLINE -EOF - -# Create the rootfs in the NFS directory -. $BM/rootfs-setup.sh /nfs - -date +'%F %T' - -echo "$BM_CMDLINE" > /tftp/cmdline.txt - -# Add some options in config.txt, if defined -if [ -n "$BM_BOOTCONFIG" ]; then - printf "$BM_BOOTCONFIG" >> /tftp/config.txt -fi - -set +e -STRUCTURED_LOG_FILE=job_detail.json -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update dut_job_type "${DEVICE_TYPE}" -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update farm "${FARM}" -ATTEMPTS=3 -first_attempt=True -while [ $((ATTEMPTS--)) -gt 0 ]; do - python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --create-dut-job dut_name "${CI_RUNNER_DESCRIPTION}" - # Update subtime time to CI_JOB_STARTED_AT only for the first run - if [ "$first_attempt" = "True" ]; then - python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update-dut-time submit "${CI_JOB_STARTED_AT}" - else - python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --update-dut-time submit - fi - python3 $BM/poe_run.py \ - --dev="$BM_SERIAL" \ - --powerup="$BM_POWERUP" \ - --powerdown="$BM_POWERDOWN" \ - --test-timeout ${TEST_PHASE_TIMEOUT:-20} - ret=$? - - if [ $ret -eq 2 ]; then - echo "Did not detect boot sequence, retrying..." - python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close-dut-job - first_attempt=False - else - ATTEMPTS=0 - fi -done -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close-dut-job -python3 $CI_INSTALL/custom_logger.py ${STRUCTURED_LOG_FILE} --close -set -e - -date +'%F %T' - -# Bring artifacts back from the NFS dir to the build dir where gitlab-runner -# will look for them. -cp -Rp /nfs/results/. results/ -if [ -f "${STRUCTURED_LOG_FILE}" ]; then - cp -p ${STRUCTURED_LOG_FILE} results/ - echo "Structured log file is available at ${ARTIFACTS_BASE_URL}/results/${STRUCTURED_LOG_FILE}" -fi - -date +'%F %T' - -exit $ret diff --git a/.gitlab-ci/bare-metal/poe_run.py b/.gitlab-ci/bare-metal/poe_run.py deleted file mode 100755 index 98e5d4e35..000000000 --- a/.gitlab-ci/bare-metal/poe_run.py +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright © 2020 Igalia, S.L. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import argparse -import os -import re -import sys -import threading - -from custom_logger import CustomLogger -from serial_buffer import SerialBuffer - -class PoERun: - def __init__(self, args, test_timeout, logger): - self.powerup = args.powerup - self.powerdown = args.powerdown - self.ser = SerialBuffer( - args.dev, "results/serial-output.txt", "") - self.test_timeout = test_timeout - self.logger = logger - - def print_error(self, message): - RED = '\033[0;31m' - NO_COLOR = '\033[0m' - print(RED + message + NO_COLOR) - self.logger.update_status_fail(message) - - def logged_system(self, cmd): - print("Running '{}'".format(cmd)) - return os.system(cmd) - - def run(self): - if self.logged_system(self.powerup) != 0: - self.logger.update_status_fail("powerup failed") - return 1 - - boot_detected = False - self.logger.create_job_phase("boot") - for line in self.ser.lines(timeout=5 * 60, phase="bootloader"): - if re.search("Booting Linux", line): - boot_detected = True - break - - if not boot_detected: - self.print_error( - "Something wrong; couldn't detect the boot start up sequence") - return 2 - - self.logger.create_job_phase("test") - for line in self.ser.lines(timeout=self.test_timeout, phase="test"): - if re.search("---. end Kernel panic", line): - self.logger.update_status_fail("kernel panic") - return 1 - - # Binning memory problems - if re.search("binner overflow mem", line): - self.print_error("Memory overflow in the binner; GPU hang") - return 1 - - if re.search("nouveau 57000000.gpu: bus: MMIO read of 00000000 FAULT at 137000", line): - self.print_error("nouveau jetson boot bug, abandoning run.") - return 1 - - # network fail on tk1 - if re.search("NETDEV WATCHDOG:.* transmit queue 0 timed out", line): - self.print_error("nouveau jetson tk1 network fail, abandoning run.") - return 1 - - result = re.search("hwci: mesa: (\S*)", line) - if result: - if result.group(1) == "pass": - self.logger.update_dut_job("status", "pass") - return 0 - else: - self.logger.update_status_fail("test fail") - return 1 - - self.print_error( - "Reached the end of the CPU serial log without finding a result") - return 1 - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('--dev', type=str, - help='Serial device to monitor', required=True) - parser.add_argument('--powerup', type=str, - help='shell command for rebooting', required=True) - parser.add_argument('--powerdown', type=str, - help='shell command for powering off', required=True) - parser.add_argument( - '--test-timeout', type=int, help='Test phase timeout (minutes)', required=True) - args = parser.parse_args() - - logger = CustomLogger("job_detail.json") - logger.update_dut_time("start", None) - poe = PoERun(args, args.test_timeout * 60, logger) - retval = poe.run() - - poe.logged_system(args.powerdown) - logger.update_dut_time("end", None) - - sys.exit(retval) - - -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh deleted file mode 100644 index 882ddb964..000000000 --- a/.gitlab-ci/bare-metal/rootfs-setup.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -rootfs_dst=$1 - -mkdir -p $rootfs_dst/results - -# Set up the init script that brings up the system. -cp $BM/bm-init.sh $rootfs_dst/init -cp $CI_COMMON/init*.sh $rootfs_dst/ - -date +'%F %T' - -# Make JWT token available as file in the bare-metal storage to enable access -# to MinIO -cp "${S3_JWT_FILE}" "${rootfs_dst}${S3_JWT_FILE}" - -date +'%F %T' - -cp $CI_COMMON/capture-devcoredump.sh $rootfs_dst/ -cp $CI_COMMON/intel-gpu-freq.sh $rootfs_dst/ -cp $CI_COMMON/kdl.sh $rootfs_dst/ -cp "$SCRIPTS_DIR/setup-test-env.sh" "$rootfs_dst/" - -set +x - -# Pass through relevant env vars from the gitlab job to the baremetal init script -echo "Variables passed through:" -"$CI_COMMON"/generate-env.sh | tee $rootfs_dst/set-job-env-vars.sh - -set -x - -# Add the Mesa drivers we built, and make a consistent symlink to them. -mkdir -p $rootfs_dst/$CI_PROJECT_DIR -rsync -aH --delete $CI_PROJECT_DIR/install/ $rootfs_dst/$CI_PROJECT_DIR/install/ - -date +'%F %T' diff --git a/.gitlab-ci/bare-metal/serial_buffer.py b/.gitlab-ci/bare-metal/serial_buffer.py deleted file mode 100755 index b21ce6e6e..000000000 --- a/.gitlab-ci/bare-metal/serial_buffer.py +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright © 2020 Google LLC -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import argparse -from datetime import datetime, timezone -import queue -import serial -import threading -import time - - -class SerialBuffer: - def __init__(self, dev, filename, prefix, timeout=None, line_queue=None): - self.filename = filename - self.dev = dev - - if dev: - self.f = open(filename, "wb+") - self.serial = serial.Serial(dev, 115200, timeout=timeout) - else: - self.f = open(filename, "rb") - self.serial = None - - self.byte_queue = queue.Queue() - # allow multiple SerialBuffers to share a line queue so you can merge - # servo's CPU and EC streams into one thing to watch the boot/test - # progress on. - if line_queue: - self.line_queue = line_queue - else: - self.line_queue = queue.Queue() - self.prefix = prefix - self.timeout = timeout - self.sentinel = object() - self.closing = False - - if self.dev: - self.read_thread = threading.Thread( - target=self.serial_read_thread_loop, daemon=True) - else: - self.read_thread = threading.Thread( - target=self.serial_file_read_thread_loop, daemon=True) - self.read_thread.start() - - self.lines_thread = threading.Thread( - target=self.serial_lines_thread_loop, daemon=True) - self.lines_thread.start() - - def close(self): - self.closing = True - if self.serial: - self.serial.cancel_read() - self.read_thread.join() - self.lines_thread.join() - if self.serial: - self.serial.close() - - # Thread that just reads the bytes from the serial device to try to keep from - # buffer overflowing it. If nothing is received in 1 minute, it finalizes. - def serial_read_thread_loop(self): - greet = "Serial thread reading from %s\n" % self.dev - self.byte_queue.put(greet.encode()) - - while not self.closing: - try: - b = self.serial.read() - if len(b) == 0: - break - self.byte_queue.put(b) - except Exception as err: - print(self.prefix + str(err)) - break - self.byte_queue.put(self.sentinel) - - # Thread that just reads the bytes from the file of serial output that some - # other process is appending to. - def serial_file_read_thread_loop(self): - greet = "Serial thread reading from %s\n" % self.filename - self.byte_queue.put(greet.encode()) - - while not self.closing: - line = self.f.readline() - if line: - self.byte_queue.put(line) - else: - time.sleep(0.1) - self.byte_queue.put(self.sentinel) - - # Thread that processes the stream of bytes to 1) log to stdout, 2) log to - # file, 3) add to the queue of lines to be read by program logic - - def serial_lines_thread_loop(self): - line = bytearray() - while True: - bytes = self.byte_queue.get(block=True) - - if bytes == self.sentinel: - self.read_thread.join() - self.line_queue.put(self.sentinel) - break - - # Write our data to the output file if we're the ones reading from - # the serial device - if self.dev: - self.f.write(bytes) - self.f.flush() - - for b in bytes: - line.append(b) - if b == b'\n'[0]: - line = line.decode(errors="replace") - - time = datetime.now().strftime('%y-%m-%d %H:%M:%S') - print("{endc}{time} {prefix}{line}".format( - time=time, prefix=self.prefix, line=line, endc='\033[0m'), flush=True, end='') - - self.line_queue.put(line) - line = bytearray() - - def lines(self, timeout=None, phase=None): - start_time = time.monotonic() - while True: - read_timeout = None - if timeout: - read_timeout = timeout - (time.monotonic() - start_time) - if read_timeout <= 0: - print("read timeout waiting for serial during {}".format(phase)) - self.close() - break - - try: - line = self.line_queue.get(timeout=read_timeout) - except queue.Empty: - print("read timeout waiting for serial during {}".format(phase)) - self.close() - break - - if line == self.sentinel: - print("End of serial output") - self.lines_thread.join() - break - - yield line - - -def main(): - parser = argparse.ArgumentParser() - - parser.add_argument('--dev', type=str, help='Serial device') - parser.add_argument('--file', type=str, - help='Filename for serial output', required=True) - parser.add_argument('--prefix', type=str, - help='Prefix for logging serial to stdout', nargs='?') - - args = parser.parse_args() - - ser = SerialBuffer(args.dev, args.file, args.prefix or "") - for line in ser.lines(): - # We're just using this as a logger, so eat the produced lines and drop - # them - pass - - -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/bare-metal/telnet-buffer.py b/.gitlab-ci/bare-metal/telnet-buffer.py deleted file mode 100755 index 408243a01..000000000 --- a/.gitlab-ci/bare-metal/telnet-buffer.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/python3 - -# Copyright © 2020 Christian Gmeiner -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. -# -# Tiny script to read bytes from telnet, and write the output to stdout, with a -# buffer in between so we don't lose serial output from its buffer. -# - -import sys -import telnetlib - -host = sys.argv[1] -port = sys.argv[2] - -tn = telnetlib.Telnet(host, port, 1000000) - -while True: - bytes = tn.read_some() - sys.stdout.buffer.write(bytes) - sys.stdout.flush() - -tn.close() diff --git a/.gitlab-ci/bin b/.gitlab-ci/bin deleted file mode 120000 index 32fb7dc10..000000000 --- a/.gitlab-ci/bin +++ /dev/null @@ -1 +0,0 @@ -../bin/ci \ No newline at end of file diff --git a/.gitlab-ci/build/compiler-wrapper-clang++-15.sh b/.gitlab-ci/build/compiler-wrapper-clang++-15.sh deleted file mode 100755 index 81935d3c4..000000000 --- a/.gitlab-ci/build/compiler-wrapper-clang++-15.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=clang++-15 -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper-clang++.sh b/.gitlab-ci/build/compiler-wrapper-clang++.sh deleted file mode 100755 index f9d6a3f1d..000000000 --- a/.gitlab-ci/build/compiler-wrapper-clang++.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=clang++ -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper-clang-15.sh b/.gitlab-ci/build/compiler-wrapper-clang-15.sh deleted file mode 100755 index 38cbcdc6b..000000000 --- a/.gitlab-ci/build/compiler-wrapper-clang-15.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=clang-15 -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper-clang.sh b/.gitlab-ci/build/compiler-wrapper-clang.sh deleted file mode 100755 index 40dbe879e..000000000 --- a/.gitlab-ci/build/compiler-wrapper-clang.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=clang -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper-g++.sh b/.gitlab-ci/build/compiler-wrapper-g++.sh deleted file mode 100755 index 15f392a33..000000000 --- a/.gitlab-ci/build/compiler-wrapper-g++.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=g++ -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper-gcc.sh b/.gitlab-ci/build/compiler-wrapper-gcc.sh deleted file mode 100755 index 259748129..000000000 --- a/.gitlab-ci/build/compiler-wrapper-gcc.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# shellcheck disable=SC1091 - -set -e - -_COMPILER=gcc -. compiler-wrapper.sh diff --git a/.gitlab-ci/build/compiler-wrapper.sh b/.gitlab-ci/build/compiler-wrapper.sh deleted file mode 100644 index 1f6749253..000000000 --- a/.gitlab-ci/build/compiler-wrapper.sh +++ /dev/null @@ -1,21 +0,0 @@ -# shellcheck disable=SC1091 -# shellcheck disable=SC2086 # we want word splitting -if command -V ccache >/dev/null 2>/dev/null; then - CCACHE=ccache -else - CCACHE= -fi - -if echo "$@" | grep -E 'meson-private/tmp[^ /]*/testfile.c' >/dev/null; then - # Invoked for meson feature check - exec $CCACHE $_COMPILER "$@" -fi - -if [ "$(eval printf "'%s'" "\"\${$(($#-1))}\"")" = "-c" ]; then - # Not invoked for linking - exec $CCACHE $_COMPILER "$@" -fi - -# Compiler invoked by ninja for linking. Add -Werror to turn compiler warnings into errors -# with LTO. (meson's werror should arguably do this, but meanwhile we need to) -exec $CCACHE $_COMPILER "$@" -Werror diff --git a/.gitlab-ci/build/gitlab-ci.yml b/.gitlab-ci/build/gitlab-ci.yml deleted file mode 100644 index 113daa1d2..000000000 --- a/.gitlab-ci/build/gitlab-ci.yml +++ /dev/null @@ -1,713 +0,0 @@ -# Shared between windows and Linux -.build-common: - extends: .container+build-rules - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - # Build jobs don't take more than 1-3 minutes. 5-8 min max on a fresh runner - # without a populated ccache. - # These jobs are never slow, either they finish within reasonable time or - # something has gone wrong and the job will never terminate, so we should - # instead timeout so that the retry mechanism can kick in. - # A few exception are made, see `timeout:` overrides in the rest of this - # file. - timeout: 30m - artifacts: - name: "mesa_${CI_JOB_NAME}" - when: always - paths: - - _build/meson-logs/*.txt - - _build/meson-logs/strace - - artifacts - -# Just Linux -.build-linux: - extends: .build-common - variables: - CCACHE_COMPILERCHECK: "content" - CCACHE_COMPRESS: "true" - CCACHE_DIR: /cache/mesa/ccache - # Use ccache transparently, and print stats before/after - before_script: - - !reference [default, before_script] - - | - export PATH="/usr/lib/ccache:$PATH" - export CCACHE_BASEDIR="$PWD" - if test -x /usr/bin/ccache; then - section_start ccache_before "ccache stats before build" - ccache --show-stats - section_end ccache_before - fi - after_script: - - if test -x /usr/bin/ccache; then ccache --show-stats | grep "Hits:"; fi - - !reference [default, after_script] - -.build-windows: - extends: - - .build-common - - .windows-docker-tags - cache: - key: ${CI_JOB_NAME} - paths: - - subprojects/packagecache - -.meson-build: - extends: - - .build-linux - - .use-debian/x86_64_build - stage: build-x86_64 - variables: - LLVM_VERSION: 15 - script: - - .gitlab-ci/meson/build.sh - -debian-testing: - extends: - - .meson-build - - .ci-deqp-artifacts - variables: - UNWIND: "enabled" - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D glvnd=disabled - -D platforms=x11,wayland - GALLIUM_ST: > - -D dri3=enabled - -D gallium-nine=true - -D gallium-va=enabled - -D gallium-rusticl=true - GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915,r300,svga" - VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau" - BUILDTYPE: "debugoptimized" - EXTRA_OPTION: > - -D spirv-to-dxil=true - -D valgrind=disabled - -D perfetto=true - -D tools=drm-shim - S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE} - LLVM_VERSION: 15 - script: - - .gitlab-ci/meson/build.sh - - .gitlab-ci/prepare-artifacts.sh - artifacts: - reports: - junit: artifacts/ci_scripts_report.xml - -debian-testing-asan: - extends: - - debian-testing - variables: - C_ARGS: > - -Wno-error=stringop-truncation - EXTRA_OPTION: > - -D b_sanitize=address - -D valgrind=disabled - -D tools=dlclose-skip - -D intel-clc=system - S3_ARTIFACT_NAME: "" - ARTIFACTS_DEBUG_SYMBOLS: 1 - # Do a host build for intel-clc (asan complains not being loaded - # as the first library) - HOST_BUILD_OPTIONS: > - -D build-tests=false - -D enable-glcpp-tests=false - -D gallium-opencl=disabled - -D gallium-drivers= - -D vulkan-drivers= - -D video-codecs= - -D glx=disabled - -D platforms= - -D intel-clc=enabled - -D install-intel-clc=true - -debian-testing-msan: - # https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo - # msan cannot fully work until it's used together with msan libc - extends: - - debian-clang - variables: - # l_undef is incompatible with msan - EXTRA_OPTION: - -D b_sanitize=memory - -D b_lundef=false - -D intel-clc=system - S3_ARTIFACT_NAME: "" - ARTIFACTS_DEBUG_SYMBOLS: 1 - # Don't run all the tests yet: - # GLSL has some issues in sexpression reading. - # gtest has issues in its test initialization. - MESON_TEST_ARGS: "--suite glcpp --suite format" - GALLIUM_DRIVERS: "freedreno,iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus" - VULKAN_DRIVERS: intel,amd,broadcom,virtio - # Do a host build for intel-clc (msan complains about - # uninitialized values in the LLVM libs) - HOST_BUILD_OPTIONS: > - -D build-tests=false - -D enable-glcpp-tests=false - -D gallium-opencl=disabled - -D gallium-drivers= - -D vulkan-drivers= - -D video-codecs= - -D glx=disabled - -D platforms= - -D intel-clc=enabled - -D install-intel-clc=true - -debian-build-testing: - extends: .meson-build - variables: - BUILDTYPE: debug - UNWIND: "enabled" - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D glvnd=disabled - -D platforms=x11,wayland - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=enabled - -D gallium-omx=bellagio - -D gallium-va=enabled - -D gallium-xa=enabled - -D gallium-nine=true - -D gallium-rusticl=false - GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus" - VULKAN_DRIVERS: swrast - EXTRA_OPTION: > - -D spirv-to-dxil=true - -D osmesa=true - -D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi - -D b_lto=true - LLVM_VERSION: 15 - S3_ARTIFACT_NAME: debian-build-testing - script: | - section_start lava-pytest "lava-pytest" - .gitlab-ci/lava/lava-pytest.sh - section_switch shellcheck "shellcheck" - .gitlab-ci/run-shellcheck.sh - section_switch yamllint "yamllint" - .gitlab-ci/run-yamllint.sh - section_end yamllint - .gitlab-ci/meson/build.sh - .gitlab-ci/prepare-artifacts.sh - timeout: 15m - -shader-db: - stage: code-validation - extends: - - .use-debian/x86_64_build - - .container+build-rules - needs: - - debian-build-testing - variables: - S3_ARTIFACT_NAME: debian-build-testing - before_script: - - !reference [.download_s3, before_script] - script: | - .gitlab-ci/run-shader-db.sh - artifacts: - paths: - - shader-db - timeout: 15m - -# Test a release build with -Werror so new warnings don't sneak in. -debian-release: - extends: .meson-build - variables: - LLVM_VERSION: 15 - UNWIND: "enabled" - C_ARGS: > - -Wno-error=stringop-overread - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D glvnd=disabled - -D platforms=x11,wayland - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=enabled - -D gallium-omx=disabled - -D gallium-va=enabled - -D gallium-xa=enabled - -D gallium-nine=false - -D gallium-rusticl=false - -D llvm=enabled - GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus" - VULKAN_DRIVERS: "amd,imagination-experimental,microsoft-experimental" - EXTRA_OPTION: > - -D spirv-to-dxil=true - -D osmesa=true - -D tools=all - -D intel-clc=enabled - -D intel-rt=enabled - -D imagination-srv=true - BUILDTYPE: "release" - S3_ARTIFACT_NAME: "mesa-x86_64-default-${BUILDTYPE}" - script: - - .gitlab-ci/meson/build.sh - - 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi' - -alpine-build-testing: - extends: - - .meson-build - - .use-alpine/x86_64_build - stage: build-x86_64 - variables: - BUILDTYPE: "release" - C_ARGS: > - -Wno-error=cpp - -Wno-error=array-bounds - -Wno-error=stringop-overread - DRI_LOADERS: > - -D glx=disabled - -D gbm=enabled - -D egl=enabled - -D glvnd=disabled - -D platforms=wayland - LLVM_VERSION: "16" - GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink" - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=disabled - -D gallium-omx=disabled - -D gallium-va=enabled - -D gallium-xa=disabled - -D gallium-nine=true - -D gallium-rusticl=false - -D gles1=disabled - -D gles2=enabled - -D llvm=enabled - -D microsoft-clc=disabled - -D shared-llvm=enabled - UNWIND: "disabled" - VULKAN_DRIVERS: "amd,broadcom,freedreno,intel,imagination-experimental" - -fedora-release: - extends: - - .meson-build - - .use-fedora/x86_64_build - variables: - BUILDTYPE: "release" - C_LINK_ARGS: > - -Wno-error=stringop-overflow - -Wno-error=stringop-overread - CPP_ARGS: > - -Wno-error=dangling-reference - -Wno-error=overloaded-virtual - CPP_LINK_ARGS: > - -Wno-error=stringop-overflow - -Wno-error=stringop-overread - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D glvnd=enabled - -D platforms=x11,wayland - EXTRA_OPTION: > - -D b_lto=true - -D osmesa=true - -D selinux=true - -D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost,imagination - -D vulkan-layers=device-select,overlay - -D intel-rt=enabled - -D imagination-srv=true - -D teflon=true - GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink" - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=enabled - -D gallium-omx=disabled - -D gallium-va=enabled - -D gallium-xa=enabled - -D gallium-nine=false - -D gallium-rusticl=true - -D gles1=disabled - -D gles2=enabled - -D llvm=enabled - -D microsoft-clc=disabled - -D shared-llvm=enabled - LLVM_VERSION: "" - UNWIND: "disabled" - VULKAN_DRIVERS: "amd,broadcom,freedreno,imagination-experimental,intel,intel_hasvk" - -debian-android: - extends: - - .meson-cross - - .use-debian/android_build - - .ci-deqp-artifacts - variables: - BUILDTYPE: debug - UNWIND: "disabled" - C_ARGS: > - -Wno-error=asm-operand-widths - -Wno-error=constant-conversion - -Wno-error=enum-conversion - -Wno-error=initializer-overrides - -Wno-error=sometimes-uninitialized - CPP_ARGS: > - -Wno-error=c99-designator - -Wno-error=unused-variable - -Wno-error=unused-but-set-variable - -Wno-error=self-assign - DRI_LOADERS: > - -D glx=disabled - -D gbm=disabled - -D egl=enabled - -D glvnd=disabled - -D platforms=android - EXTRA_OPTION: > - -D android-stub=true - -D llvm=disabled - -D platform-sdk-version=33 - -D valgrind=disabled - -D android-libbacktrace=disabled - -D intel-clc=system - GALLIUM_ST: > - -D dri3=disabled - -D gallium-vdpau=disabled - -D gallium-omx=disabled - -D gallium-va=disabled - -D gallium-xa=disabled - -D gallium-nine=false - -D gallium-rusticl=false - LLVM_VERSION: "15" - PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files" - HOST_BUILD_OPTIONS: > - -D build-tests=false - -D enable-glcpp-tests=false - -D gallium-opencl=disabled - -D gallium-drivers= - -D vulkan-drivers= - -D video-codecs= - -D glx=disabled - -D platforms= - -D intel-clc=enabled - -D install-intel-clc=true - ARTIFACTS_DEBUG_SYMBOLS: 1 - S3_ARTIFACT_NAME: mesa-x86_64-android-${BUILDTYPE} - script: - - CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio .gitlab-ci/meson/build.sh - # x86_64 build: - # Can't do Intel because gen_decoder.c currently requires libexpat, which - # is not a dependency that AOSP wants to accept. Can't do Radeon Gallium - # drivers because they requires LLVM, which we don't have an Android build - # of. - - CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris,virgl VULKAN_DRIVERS=amd,intel .gitlab-ci/meson/build.sh - - .gitlab-ci/prepare-artifacts.sh - -.meson-cross: - extends: - - .meson-build - stage: build-misc - variables: - UNWIND: "disabled" - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D platforms=x11,wayland - -D osmesa=false - GALLIUM_ST: > - -D dri3=enabled - -D gallium-vdpau=disabled - -D gallium-omx=disabled - -D gallium-va=disabled - -D gallium-xa=disabled - -D gallium-nine=false - -.meson-arm: - extends: - - .meson-cross - - .use-debian/arm64_build - needs: - - debian/arm64_build - variables: - VULKAN_DRIVERS: freedreno,broadcom - GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4,zink" - BUILDTYPE: "debugoptimized" - tags: - - aarch64 - -debian-arm32: - extends: - - .meson-arm - - .ci-deqp-artifacts - variables: - CROSS: armhf - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -D llvm=disabled - -D valgrind=disabled - S3_ARTIFACT_NAME: mesa-arm32-default-${BUILDTYPE} - # The strip command segfaults, failing to strip the binary and leaving - # tempfiles in our artifacts. - ARTIFACTS_DEBUG_SYMBOLS: 1 - script: - - .gitlab-ci/meson/build.sh - - .gitlab-ci/prepare-artifacts.sh - -debian-arm32-asan: - extends: - - debian-arm32 - variables: - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -D llvm=disabled - -D b_sanitize=address - -D valgrind=disabled - -D tools=dlclose-skip - ARTIFACTS_DEBUG_SYMBOLS: 1 - S3_ARTIFACT_NAME: mesa-arm32-asan-${BUILDTYPE} - MESON_TEST_ARGS: "--no-suite mesa:compiler --no-suite mesa:util" - -debian-arm64: - extends: - - .meson-arm - - .ci-deqp-artifacts - variables: - C_ARGS: > - -Wno-error=array-bounds - -Wno-error=stringop-truncation - VULKAN_DRIVERS: "freedreno,broadcom,panfrost,imagination-experimental" - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -D llvm=disabled - -D valgrind=disabled - -D imagination-srv=true - -D perfetto=true - -D freedreno-kmds=msm,virtio - -D teflon=true - S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE} - script: - - .gitlab-ci/meson/build.sh - - .gitlab-ci/prepare-artifacts.sh - -debian-arm64-asan: - extends: - - debian-arm64 - variables: - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -D llvm=disabled - -D b_sanitize=address - -D valgrind=disabled - -D tools=dlclose-skip - ARTIFACTS_DEBUG_SYMBOLS: 1 - S3_ARTIFACT_NAME: mesa-arm64-asan-${BUILDTYPE} - MESON_TEST_ARGS: "--no-suite mesa:compiler" - -debian-arm64-build-test: - extends: - - .meson-arm - - .ci-deqp-artifacts - variables: - VULKAN_DRIVERS: "amd" - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -Dtools=panfrost,imagination - -debian-arm64-release: - extends: - - debian-arm64 - variables: - BUILDTYPE: release - S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE} - C_ARGS: > - -Wno-error=array-bounds - -Wno-error=stringop-truncation - -Wno-error=stringop-overread - script: - - .gitlab-ci/meson/build.sh - - 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi' - -debian-clang: - extends: .meson-build - variables: - BUILDTYPE: debug - LLVM_VERSION: 15 - UNWIND: "enabled" - C_ARGS: > - -Wno-error=constant-conversion - -Wno-error=enum-conversion - -Wno-error=initializer-overrides - -Wno-error=sometimes-uninitialized - -Werror=misleading-indentation - CPP_ARGS: > - -Wno-error=c99-designator - -Wno-error=overloaded-virtual - -Wno-error=tautological-constant-out-of-range-compare - -Wno-error=unused-private-field - DRI_LOADERS: > - -D glx=dri - -D gbm=enabled - -D egl=enabled - -D glvnd=enabled - -D platforms=x11,wayland - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=enabled - -D gallium-omx=bellagio - -D gallium-va=enabled - -D gallium-xa=enabled - -D gallium-nine=true - -D gles1=enabled - -D gles2=enabled - -D llvm=enabled - -D microsoft-clc=disabled - -D shared-llvm=enabled - -D opencl-spirv=true - -D shared-glapi=enabled - GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi" - VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio,swrast,panfrost,imagination-experimental,microsoft-experimental,nouveau - EXTRA_OPTION: - -D spirv-to-dxil=true - -D osmesa=true - -D imagination-srv=true - -D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi,imagination - -D vulkan-layers=device-select,overlay - -D build-aco-tests=true - -D intel-clc=enabled - -D intel-rt=enabled - -D imagination-srv=true - -D teflon=true - CC: clang-${LLVM_VERSION} - CXX: clang++-${LLVM_VERSION} - -debian-clang-release: - extends: debian-clang - variables: - BUILDTYPE: "release" - DRI_LOADERS: > - -D glx=xlib - -D platforms=x11,wayland - GALLIUM_ST: > - -D dri3=enabled - -D gallium-extra-hud=true - -D gallium-vdpau=enabled - -D gallium-omx=bellagio - -D gallium-va=enabled - -D gallium-xa=enabled - -D gallium-nine=true - -D gles1=disabled - -D gles2=disabled - -D llvm=enabled - -D microsoft-clc=disabled - -D shared-llvm=enabled - -D opencl-spirv=true - -D shared-glapi=disabled - -windows-msvc: - extends: - - .build-windows - - .use-windows_build_msvc - - .windows-build-rules - stage: build-misc - script: - - pwsh -ExecutionPolicy RemoteSigned .\.gitlab-ci\windows\mesa_build.ps1 - artifacts: - paths: - - _build/meson-logs/*.txt - - _install/ - -debian-vulkan: - extends: .meson-build - variables: - BUILDTYPE: debug - LLVM_VERSION: 15 - UNWIND: "disabled" - DRI_LOADERS: > - -D glx=disabled - -D gbm=disabled - -D egl=disabled - -D opengl=false - -D gles1=disabled - -D gles2=disabled - -D glvnd=disabled - -D platforms=x11,wayland - -D osmesa=false - GALLIUM_ST: > - -D dri3=enabled - -D gallium-vdpau=disabled - -D gallium-omx=disabled - -D gallium-va=disabled - -D gallium-xa=disabled - -D gallium-nine=false - -D gallium-rusticl=false - -D b_sanitize=undefined - -D c_args=-fno-sanitize-recover=all - -D cpp_args=-fno-sanitize-recover=all - UBSAN_OPTIONS: "print_stacktrace=1" - VULKAN_DRIVERS: amd,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination-experimental,microsoft-experimental,nouveau - EXTRA_OPTION: > - -D vulkan-layers=device-select,overlay - -D build-aco-tests=true - -D intel-rt=disabled - -D imagination-srv=true - -debian-x86_32: - extends: - - .meson-cross - - .use-debian/x86_32_build - variables: - BUILDTYPE: debug - CROSS: i386 - VULKAN_DRIVERS: intel,amd,swrast,virtio - GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus,d3d12" - LLVM_VERSION: 15 - DRI_LOADERS: - -D glvnd=disabled - EXTRA_OPTION: > - -D vulkan-layers=device-select,overlay - -D intel-clc=system - HOST_BUILD_OPTIONS: > - -D build-tests=false - -D enable-glcpp-tests=false - -D gallium-opencl=disabled - -D gallium-drivers= - -D vulkan-drivers= - -D video-codecs= - -D glx=disabled - -D platforms= - -D intel-clc=enabled - -D install-intel-clc=true - -debian-s390x: - extends: - - debian-ppc64el - - .use-debian/s390x_build - - .s390x-rules - tags: - - kvm - variables: - CROSS: s390x - GALLIUM_DRIVERS: "swrast,zink" - LLVM_VERSION: 15 - VULKAN_DRIVERS: "swrast" - DRI_LOADERS: - -D glvnd=disabled - -debian-ppc64el: - extends: - - .meson-cross - - .use-debian/ppc64el_build - - .ppc64el-rules - variables: - BUILDTYPE: debug - CROSS: ppc64el - GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink" - VULKAN_DRIVERS: "amd,swrast" - DRI_LOADERS: - -D glvnd=disabled diff --git a/.gitlab-ci/common/capture-devcoredump.sh b/.gitlab-ci/common/capture-devcoredump.sh deleted file mode 100755 index 302b9208b..000000000 --- a/.gitlab-ci/common/capture-devcoredump.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2035 -# shellcheck disable=SC2061 -# shellcheck disable=SC2086 # we want word splitting - -while true; do - devcds=$(find /sys/devices/virtual/devcoredump/ -name data 2>/dev/null) - for i in $devcds; do - echo "Found a devcoredump at $i." - if cp $i /results/first.devcore; then - echo 1 > $i - echo "Saved to the job artifacts at /first.devcore" - exit 0 - fi - done - i915_error_states=$(find /sys/devices/ -path */drm/card*/error) - for i in $i915_error_states; do - tmpfile=$(mktemp) - cp "$i" "$tmpfile" - filesize=$(stat --printf="%s" "$tmpfile") - # Does the file contain "No error state collected" ? - if [ "$filesize" = 25 ]; then - rm "$tmpfile" - else - echo "Found an i915 error state at $i size=$filesize." - if cp "$tmpfile" /results/first.i915_error_state; then - rm "$tmpfile" - echo 1 > "$i" - echo "Saved to the job artifacts at /first.i915_error_state" - exit 0 - fi - fi - done - sleep 10 -done diff --git a/.gitlab-ci/common/generate-env.sh b/.gitlab-ci/common/generate-env.sh deleted file mode 100755 index 9a021a75c..000000000 --- a/.gitlab-ci/common/generate-env.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/bash - -VARS=( - ACO_DEBUG - ARTIFACTS_BASE_URL - ASAN_OPTIONS - BASE_SYSTEM_FORK_HOST_PREFIX - BASE_SYSTEM_MAINLINE_HOST_PREFIX - CI_COMMIT_BRANCH - CI_COMMIT_REF_NAME - CI_COMMIT_TITLE - CI_JOB_ID - S3_JWT_FILE - CI_JOB_STARTED_AT - CI_JOB_NAME - CI_JOB_URL - CI_MERGE_REQUEST_SOURCE_BRANCH_NAME - CI_MERGE_REQUEST_TITLE - CI_NODE_INDEX - CI_NODE_TOTAL - CI_PAGES_DOMAIN - CI_PIPELINE_ID - CI_PIPELINE_URL - CI_PROJECT_DIR - CI_PROJECT_NAME - CI_PROJECT_PATH - CI_PROJECT_ROOT_NAMESPACE - CI_RUNNER_DESCRIPTION - CI_SERVER_URL - CROSVM_GALLIUM_DRIVER - CROSVM_GPU_ARGS - CURRENT_SECTION - DEQP_BIN_DIR - DEQP_CONFIG - DEQP_EXPECTED_RENDERER - DEQP_FRACTION - DEQP_HEIGHT - DEQP_RESULTS_DIR - DEQP_RUNNER_OPTIONS - DEQP_SUITE - DEQP_TEMP_DIR - DEQP_VER - DEQP_WIDTH - DEVICE_NAME - DRIVER_NAME - EGL_PLATFORM - ETNA_MESA_DEBUG - FDO_CI_CONCURRENT - FDO_UPSTREAM_REPO - FD_MESA_DEBUG - FLAKES_CHANNEL - FREEDRENO_HANGCHECK_MS - GALLIUM_DRIVER - GALLIVM_PERF - GPU_VERSION - GTEST - GTEST_FAILS - GTEST_FRACTION - GTEST_RESULTS_DIR - GTEST_RUNNER_OPTIONS - GTEST_SKIPS - HWCI_FREQ_MAX - HWCI_KERNEL_MODULES - HWCI_KVM - HWCI_START_WESTON - HWCI_START_XORG - HWCI_TEST_SCRIPT - IR3_SHADER_DEBUG - JOB_ARTIFACTS_BASE - JOB_RESULTS_PATH - JOB_ROOTFS_OVERLAY_PATH - KERNEL_IMAGE_BASE - KERNEL_IMAGE_NAME - LD_LIBRARY_PATH - LIBGL_ALWAYS_SOFTWARE - LP_NUM_THREADS - MESA_BASE_TAG - MESA_BUILD_PATH - MESA_DEBUG - MESA_GLES_VERSION_OVERRIDE - MESA_GLSL_VERSION_OVERRIDE - MESA_GL_VERSION_OVERRIDE - MESA_IMAGE - MESA_IMAGE_PATH - MESA_IMAGE_TAG - MESA_LOADER_DRIVER_OVERRIDE - MESA_TEMPLATES_COMMIT - MESA_VK_ABORT_ON_DEVICE_LOSS - MESA_VK_IGNORE_CONFORMANCE_WARNING - S3_HOST - S3_RESULTS_UPLOAD - NIR_DEBUG - PAN_I_WANT_A_BROKEN_VULKAN_DRIVER - PAN_MESA_DEBUG - PANVK_DEBUG - PIGLIT_FRACTION - PIGLIT_NO_WINDOW - PIGLIT_OPTIONS - PIGLIT_PLATFORM - PIGLIT_PROFILES - PIGLIT_REPLAY_ANGLE_TAG - PIGLIT_REPLAY_ARTIFACTS_BASE_URL - PIGLIT_REPLAY_DEVICE_NAME - PIGLIT_REPLAY_EXTRA_ARGS - PIGLIT_REPLAY_LOOP_TIMES - PIGLIT_REPLAY_REFERENCE_IMAGES_BASE - PIGLIT_REPLAY_SUBCOMMAND - PIGLIT_RESULTS - PIGLIT_TESTS - PIGLIT_TRACES_FILE - PIPELINE_ARTIFACTS_BASE - RADEON_DEBUG - RADV_DEBUG - RADV_PERFTEST - SKQP_ASSETS_DIR - SKQP_BACKENDS - TU_DEBUG - USE_ANGLE - VIRGL_HOST_API - WAFFLE_PLATFORM - VK_CPU - VK_DRIVER - # required by virglrender CI - VK_DRIVER_FILES - VKD3D_PROTON_RESULTS - VKD3D_CONFIG - VKD3D_TEST_EXCLUDE - ZINK_DESCRIPTORS - ZINK_DEBUG - LVP_POISON_MEMORY -) - -for var in "${VARS[@]}"; do - if [ -n "${!var+x}" ]; then - echo "export $var=${!var@Q}" - fi -done diff --git a/.gitlab-ci/common/init-stage1.sh b/.gitlab-ci/common/init-stage1.sh deleted file mode 100755 index 92222a5d4..000000000 --- a/.gitlab-ci/common/init-stage1.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh - -# Very early init, used to make sure devices and network are set up and -# reachable. - -set -ex - -cd / - -findmnt --mountpoint /proc || mount -t proc none /proc -findmnt --mountpoint /sys || mount -t sysfs none /sys -mount -t debugfs none /sys/kernel/debug -findmnt --mountpoint /dev || mount -t devtmpfs none /dev -mkdir -p /dev/pts -mount -t devpts devpts /dev/pts -mkdir /dev/shm -mount -t tmpfs -o noexec,nodev,nosuid tmpfs /dev/shm -mount -t tmpfs tmpfs /tmp - -echo "nameserver 8.8.8.8" > /etc/resolv.conf -[ -z "$NFS_SERVER_IP" ] || echo "$NFS_SERVER_IP caching-proxy" >> /etc/hosts - -# Set the time so we can validate certificates before we fetch anything; -# however as not all DUTs have network, make this non-fatal. -for _ in 1 2 3; do sntp -sS pool.ntp.org && break || sleep 2; done || true diff --git a/.gitlab-ci/common/init-stage2.sh b/.gitlab-ci/common/init-stage2.sh deleted file mode 100755 index ca41530fb..000000000 --- a/.gitlab-ci/common/init-stage2.sh +++ /dev/null @@ -1,235 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC1090 -# shellcheck disable=SC1091 -# shellcheck disable=SC2086 # we want word splitting -# shellcheck disable=SC2155 - -# Second-stage init, used to set up devices and our job environment before -# running tests. - -shopt -s extglob - -# Make sure to kill itself and all the children process from this script on -# exiting, since any console output may interfere with LAVA signals handling, -# which based on the log console. -cleanup() { - if [ "$BACKGROUND_PIDS" = "" ]; then - return 0 - fi - - set +x - echo "Killing all child processes" - for pid in $BACKGROUND_PIDS - do - kill "$pid" 2>/dev/null || true - done - - # Sleep just a little to give enough time for subprocesses to be gracefully - # killed. Then apply a SIGKILL if necessary. - sleep 5 - for pid in $BACKGROUND_PIDS - do - kill -9 "$pid" 2>/dev/null || true - done - - BACKGROUND_PIDS= - set -x -} -trap cleanup INT TERM EXIT - -# Space separated values with the PIDS of the processes started in the -# background by this script -BACKGROUND_PIDS= - - -for path in '/dut-env-vars.sh' '/set-job-env-vars.sh' './set-job-env-vars.sh'; do - [ -f "$path" ] && source "$path" -done -. "$SCRIPTS_DIR"/setup-test-env.sh - -set -ex - -# Set up any devices required by the jobs -[ -z "$HWCI_KERNEL_MODULES" ] || { - echo -n $HWCI_KERNEL_MODULES | xargs -d, -n1 /usr/sbin/modprobe -} - -# Set up ZRAM -HWCI_ZRAM_SIZE=2G -if /sbin/zramctl --find --size $HWCI_ZRAM_SIZE -a zstd; then - mkswap /dev/zram0 - swapon /dev/zram0 - echo "zram: $HWCI_ZRAM_SIZE activated" -else - echo "zram: skipping, not supported" -fi - -# -# Load the KVM module specific to the detected CPU virtualization extensions: -# - vmx for Intel VT -# - svm for AMD-V -# -# Additionally, download the kernel image to boot the VM via HWCI_TEST_SCRIPT. -# -if [ "$HWCI_KVM" = "true" ]; then - unset KVM_KERNEL_MODULE - { - grep -qs '\bvmx\b' /proc/cpuinfo && KVM_KERNEL_MODULE=kvm_intel - } || { - grep -qs '\bsvm\b' /proc/cpuinfo && KVM_KERNEL_MODULE=kvm_amd - } - - { - [ -z "${KVM_KERNEL_MODULE}" ] && \ - echo "WARNING: Failed to detect CPU virtualization extensions" - } || \ - modprobe ${KVM_KERNEL_MODULE} - - mkdir -p /lava-files - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o "/lava-files/${KERNEL_IMAGE_NAME}" \ - "${KERNEL_IMAGE_BASE}/amd64/${KERNEL_IMAGE_NAME}" -fi - -# Fix prefix confusion: the build installs to $CI_PROJECT_DIR, but we expect -# it in /install -ln -sf $CI_PROJECT_DIR/install /install -export LD_LIBRARY_PATH=/install/lib -export LIBGL_DRIVERS_PATH=/install/lib/dri - -# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22495#note_1876691 -# The navi21 boards seem to have trouble with ld.so.cache, so try explicitly -# telling it to look in /usr/local/lib. -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib - -# Store Mesa's disk cache under /tmp, rather than sending it out over NFS. -export XDG_CACHE_HOME=/tmp - -# Make sure Python can find all our imports -export PYTHONPATH=$(python3 -c "import sys;print(\":\".join(sys.path))") - -# If we need to specify a driver, it means several drivers could pick up this gpu; -# ensure that the other driver can't accidentally be used -if [ -n "$MESA_LOADER_DRIVER_OVERRIDE" ]; then - rm /install/lib/dri/!($MESA_LOADER_DRIVER_OVERRIDE)_dri.so -fi -ls -1 /install/lib/dri/*_dri.so || true - -if [ "$HWCI_FREQ_MAX" = "true" ]; then - # Ensure initialization of the DRM device (needed by MSM) - head -0 /dev/dri/renderD128 - - # Disable GPU frequency scaling - DEVFREQ_GOVERNOR=$(find /sys/devices -name governor | grep gpu || true) - test -z "$DEVFREQ_GOVERNOR" || echo performance > $DEVFREQ_GOVERNOR || true - - # Disable CPU frequency scaling - echo performance | tee -a /sys/devices/system/cpu/cpufreq/policy*/scaling_governor || true - - # Disable GPU runtime power management - GPU_AUTOSUSPEND=$(find /sys/devices -name autosuspend_delay_ms | grep gpu | head -1) - test -z "$GPU_AUTOSUSPEND" || echo -1 > $GPU_AUTOSUSPEND || true - # Lock Intel GPU frequency to 70% of the maximum allowed by hardware - # and enable throttling detection & reporting. - # Additionally, set the upper limit for CPU scaling frequency to 65% of the - # maximum permitted, as an additional measure to mitigate thermal throttling. - /intel-gpu-freq.sh -s 70% --cpu-set-max 65% -g all -d -fi - -# Start a little daemon to capture sysfs records and produce a JSON file -if [ -x /kdl.sh ]; then - echo "launch kdl.sh!" - /kdl.sh & - BACKGROUND_PIDS="$! $BACKGROUND_PIDS" -else - echo "kdl.sh not found!" -fi - -# Increase freedreno hangcheck timer because it's right at the edge of the -# spilling tests timing out (and some traces, too) -if [ -n "$FREEDRENO_HANGCHECK_MS" ]; then - echo $FREEDRENO_HANGCHECK_MS | tee -a /sys/kernel/debug/dri/128/hangcheck_period_ms -fi - -# Start a little daemon to capture the first devcoredump we encounter. (They -# expire after 5 minutes, so we poll for them). -if [ -x /capture-devcoredump.sh ]; then - /capture-devcoredump.sh & - BACKGROUND_PIDS="$! $BACKGROUND_PIDS" -fi - -# If we want Xorg to be running for the test, then we start it up before the -# HWCI_TEST_SCRIPT because we need to use xinit to start X (otherwise -# without using -displayfd you can race with Xorg's startup), but xinit will eat -# your client's return code -if [ -n "$HWCI_START_XORG" ]; then - echo "touch /xorg-started; sleep 100000" > /xorg-script - env \ - VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \ - xinit /bin/sh /xorg-script -- /usr/bin/Xorg -noreset -s 0 -dpms -logfile /Xorg.0.log & - BACKGROUND_PIDS="$! $BACKGROUND_PIDS" - - # Wait for xorg to be ready for connections. - for _ in 1 2 3 4 5; do - if [ -e /xorg-started ]; then - break - fi - sleep 5 - done - export DISPLAY=:0 -fi - -if [ -n "$HWCI_START_WESTON" ]; then - WESTON_X11_SOCK="/tmp/.X11-unix/X0" - if [ -n "$HWCI_START_XORG" ]; then - echo "Please consider dropping HWCI_START_XORG and instead using Weston XWayland for testing." - WESTON_X11_SOCK="/tmp/.X11-unix/X1" - fi - export WAYLAND_DISPLAY=wayland-0 - - # Display server is Weston Xwayland when HWCI_START_XORG is not set or Xorg when it's - export DISPLAY=:0 - mkdir -p /tmp/.X11-unix - - env \ - VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \ - weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 & - BACKGROUND_PIDS="$! $BACKGROUND_PIDS" - - while [ ! -S "$WESTON_X11_SOCK" ]; do sleep 1; done -fi - -set +e -bash -c ". $SCRIPTS_DIR/setup-test-env.sh && $HWCI_TEST_SCRIPT" -EXIT_CODE=$? -set -e - -# Let's make sure the results are always stored in current working directory -mv -f ${CI_PROJECT_DIR}/results ./ 2>/dev/null || true - -[ ${EXIT_CODE} -ne 0 ] || rm -rf results/trace/"$PIGLIT_REPLAY_DEVICE_NAME" - -# Make sure that capture-devcoredump is done before we start trying to tar up -# artifacts -- if it's writing while tar is reading, tar will throw an error and -# kill the job. -cleanup - -# upload artifacts -if [ -n "$S3_RESULTS_UPLOAD" ]; then - tar --zstd -cf results.tar.zst results/; - ci-fairy s3cp --token-file "${S3_JWT_FILE}" results.tar.zst https://"$S3_RESULTS_UPLOAD"/results.tar.zst; -fi - -# We still need to echo the hwci: mesa message, as some scripts rely on it, such -# as the python ones inside the bare-metal folder -[ ${EXIT_CODE} -eq 0 ] && RESULT=pass || RESULT=fail - -set +x - -# Print the final result; both bare-metal and LAVA look for this string to get -# the result of our run, so try really hard to get it out rather than losing -# the run. The device gets shut down right at this point, and a630 seems to -# enjoy corrupting the last line of serial output before shutdown. -for _ in $(seq 0 3); do echo "hwci: mesa: $RESULT"; sleep 1; echo; done - -exit $EXIT_CODE diff --git a/.gitlab-ci/common/intel-gpu-freq.sh b/.gitlab-ci/common/intel-gpu-freq.sh deleted file mode 100755 index 8d0166eac..000000000 --- a/.gitlab-ci/common/intel-gpu-freq.sh +++ /dev/null @@ -1,768 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2013 -# shellcheck disable=SC2015 -# shellcheck disable=SC2034 -# shellcheck disable=SC2046 -# shellcheck disable=SC2059 -# shellcheck disable=SC2086 # we want word splitting -# shellcheck disable=SC2154 -# shellcheck disable=SC2155 -# shellcheck disable=SC2162 -# shellcheck disable=SC2229 -# -# This is an utility script to manage Intel GPU frequencies. -# It can be used for debugging performance problems or trying to obtain a stable -# frequency while benchmarking. -# -# Note the Intel i915 GPU driver allows to change the minimum, maximum and boost -# frequencies in steps of 50 MHz via: -# -# /sys/class/drm/card/ -# -# Where is the DRM card index and one of the following: -# -# - gt_max_freq_mhz (enforced maximum freq) -# - gt_min_freq_mhz (enforced minimum freq) -# - gt_boost_freq_mhz (enforced boost freq) -# -# The hardware capabilities can be accessed via: -# -# - gt_RP0_freq_mhz (supported maximum freq) -# - gt_RPn_freq_mhz (supported minimum freq) -# - gt_RP1_freq_mhz (most efficient freq) -# -# The current frequency can be read from: -# - gt_act_freq_mhz (the actual GPU freq) -# - gt_cur_freq_mhz (the last requested freq) -# -# Also note that in addition to GPU management, the script offers the -# possibility to adjust CPU operating frequencies. However, this is currently -# limited to just setting the maximum scaling frequency as percentage of the -# maximum frequency allowed by the hardware. -# -# Copyright (C) 2022 Collabora Ltd. -# Author: Cristian Ciocaltea -# -# SPDX-License-Identifier: MIT -# - -# -# Constants -# - -# GPU -DRM_FREQ_SYSFS_PATTERN="/sys/class/drm/card%d/gt_%s_freq_mhz" -ENF_FREQ_INFO="max min boost" -CAP_FREQ_INFO="RP0 RPn RP1" -ACT_FREQ_INFO="act cur" -THROTT_DETECT_SLEEP_SEC=2 -THROTT_DETECT_PID_FILE_PATH=/tmp/thrott-detect.pid - -# CPU -CPU_SYSFS_PREFIX=/sys/devices/system/cpu -CPU_PSTATE_SYSFS_PATTERN="${CPU_SYSFS_PREFIX}/intel_pstate/%s" -CPU_FREQ_SYSFS_PATTERN="${CPU_SYSFS_PREFIX}/cpu%s/cpufreq/%s_freq" -CAP_CPU_FREQ_INFO="cpuinfo_max cpuinfo_min" -ENF_CPU_FREQ_INFO="scaling_max scaling_min" -ACT_CPU_FREQ_INFO="scaling_cur" - -# -# Global variables. -# -unset INTEL_DRM_CARD_INDEX -unset GET_ACT_FREQ GET_ENF_FREQ GET_CAP_FREQ -unset SET_MIN_FREQ SET_MAX_FREQ -unset MONITOR_FREQ -unset CPU_SET_MAX_FREQ -unset DETECT_THROTT -unset DRY_RUN - -# -# Simple printf based stderr logger. -# -log() { - local msg_type=$1 - - shift - printf "%s: %s: " "${msg_type}" "${0##*/}" >&2 - printf "$@" >&2 - printf "\n" >&2 -} - -# -# Helper to print sysfs path for the given card index and freq info. -# -# arg1: Frequency info sysfs name, one of *_FREQ_INFO constants above -# arg2: Video card index, defaults to INTEL_DRM_CARD_INDEX -# -print_freq_sysfs_path() { - printf ${DRM_FREQ_SYSFS_PATTERN} "${2:-${INTEL_DRM_CARD_INDEX}}" "$1" -} - -# -# Helper to set INTEL_DRM_CARD_INDEX for the first identified Intel video card. -# -identify_intel_gpu() { - local i=0 vendor path - - while [ ${i} -lt 16 ]; do - [ -c "/dev/dri/card$i" ] || { - i=$((i + 1)) - continue - } - - path=$(print_freq_sysfs_path "" ${i}) - path=${path%/*}/device/vendor - - [ -r "${path}" ] && read vendor < "${path}" && \ - [ "${vendor}" = "0x8086" ] && INTEL_DRM_CARD_INDEX=$i && return 0 - - i=$((i + 1)) - done - - return 1 -} - -# -# Read the specified freq info from sysfs. -# -# arg1: Flag (y/n) to also enable printing the freq info. -# arg2...: Frequency info sysfs name(s), see *_FREQ_INFO constants above -# return: Global variable(s) FREQ_${arg} containing the requested information -# -read_freq_info() { - local var val info path print=0 ret=0 - - [ "$1" = "y" ] && print=1 - shift - - while [ $# -gt 0 ]; do - info=$1 - shift - var=FREQ_${info} - path=$(print_freq_sysfs_path "${info}") - - [ -r ${path} ] && read ${var} < ${path} || { - log ERROR "Failed to read freq info from: %s" "${path}" - ret=1 - continue - } - - [ -n "${var}" ] || { - log ERROR "Got empty freq info from: %s" "${path}" - ret=1 - continue - } - - [ ${print} -eq 1 ] && { - eval val=\$${var} - printf "%6s: %4s MHz\n" "${info}" "${val}" - } - done - - return ${ret} -} - -# -# Display requested info. -# -print_freq_info() { - local req_freq - - [ -n "${GET_CAP_FREQ}" ] && { - printf "* Hardware capabilities\n" - read_freq_info y ${CAP_FREQ_INFO} - printf "\n" - } - - [ -n "${GET_ENF_FREQ}" ] && { - printf "* Enforcements\n" - read_freq_info y ${ENF_FREQ_INFO} - printf "\n" - } - - [ -n "${GET_ACT_FREQ}" ] && { - printf "* Actual\n" - read_freq_info y ${ACT_FREQ_INFO} - printf "\n" - } -} - -# -# Helper to print frequency value as requested by user via '-s, --set' option. -# arg1: user requested freq value -# -compute_freq_set() { - local val - - case "$1" in - +) - val=${FREQ_RP0} - ;; - -) - val=${FREQ_RPn} - ;; - *%) - val=$((${1%?} * FREQ_RP0 / 100)) - # Adjust freq to comply with 50 MHz increments - val=$((val / 50 * 50)) - ;; - *[!0-9]*) - log ERROR "Cannot set freq to invalid value: %s" "$1" - return 1 - ;; - "") - log ERROR "Cannot set freq to unspecified value" - return 1 - ;; - *) - # Adjust freq to comply with 50 MHz increments - val=$(($1 / 50 * 50)) - ;; - esac - - printf "%s" "${val}" -} - -# -# Helper for set_freq(). -# -set_freq_max() { - log INFO "Setting GPU max freq to %s MHz" "${SET_MAX_FREQ}" - - read_freq_info n min || return $? - - [ ${SET_MAX_FREQ} -gt ${FREQ_RP0} ] && { - log ERROR "Cannot set GPU max freq (%s) to be greater than hw max freq (%s)" \ - "${SET_MAX_FREQ}" "${FREQ_RP0}" - return 1 - } - - [ ${SET_MAX_FREQ} -lt ${FREQ_RPn} ] && { - log ERROR "Cannot set GPU max freq (%s) to be less than hw min freq (%s)" \ - "${SET_MIN_FREQ}" "${FREQ_RPn}" - return 1 - } - - [ ${SET_MAX_FREQ} -lt ${FREQ_min} ] && { - log ERROR "Cannot set GPU max freq (%s) to be less than min freq (%s)" \ - "${SET_MAX_FREQ}" "${FREQ_min}" - return 1 - } - - [ -z "${DRY_RUN}" ] || return 0 - - if ! printf "%s" ${SET_MAX_FREQ} | tee $(print_freq_sysfs_path max) \ - $(print_freq_sysfs_path boost) > /dev/null; - then - log ERROR "Failed to set GPU max frequency" - return 1 - fi -} - -# -# Helper for set_freq(). -# -set_freq_min() { - log INFO "Setting GPU min freq to %s MHz" "${SET_MIN_FREQ}" - - read_freq_info n max || return $? - - [ ${SET_MIN_FREQ} -gt ${FREQ_max} ] && { - log ERROR "Cannot set GPU min freq (%s) to be greater than max freq (%s)" \ - "${SET_MIN_FREQ}" "${FREQ_max}" - return 1 - } - - [ ${SET_MIN_FREQ} -lt ${FREQ_RPn} ] && { - log ERROR "Cannot set GPU min freq (%s) to be less than hw min freq (%s)" \ - "${SET_MIN_FREQ}" "${FREQ_RPn}" - return 1 - } - - [ -z "${DRY_RUN}" ] || return 0 - - if ! printf "%s" ${SET_MIN_FREQ} > $(print_freq_sysfs_path min); - then - log ERROR "Failed to set GPU min frequency" - return 1 - fi -} - -# -# Set min or max or both GPU frequencies to the user indicated values. -# -set_freq() { - # Get hw max & min frequencies - read_freq_info n RP0 RPn || return $? - - [ -z "${SET_MAX_FREQ}" ] || { - SET_MAX_FREQ=$(compute_freq_set "${SET_MAX_FREQ}") - [ -z "${SET_MAX_FREQ}" ] && return 1 - } - - [ -z "${SET_MIN_FREQ}" ] || { - SET_MIN_FREQ=$(compute_freq_set "${SET_MIN_FREQ}") - [ -z "${SET_MIN_FREQ}" ] && return 1 - } - - # - # Ensure correct operation order, to avoid setting min freq - # to a value which is larger than max freq. - # - # E.g.: - # crt_min=crt_max=600; new_min=new_max=700 - # > operation order: max=700; min=700 - # - # crt_min=crt_max=600; new_min=new_max=500 - # > operation order: min=500; max=500 - # - if [ -n "${SET_MAX_FREQ}" ] && [ -n "${SET_MIN_FREQ}" ]; then - [ ${SET_MAX_FREQ} -lt ${SET_MIN_FREQ} ] && { - log ERROR "Cannot set GPU max freq to be less than min freq" - return 1 - } - - read_freq_info n min || return $? - - if [ ${SET_MAX_FREQ} -lt ${FREQ_min} ]; then - set_freq_min || return $? - set_freq_max - else - set_freq_max || return $? - set_freq_min - fi - elif [ -n "${SET_MAX_FREQ}" ]; then - set_freq_max - elif [ -n "${SET_MIN_FREQ}" ]; then - set_freq_min - else - log "Unexpected call to set_freq()" - return 1 - fi -} - -# -# Helper for detect_throttling(). -# -get_thrott_detect_pid() { - [ -e ${THROTT_DETECT_PID_FILE_PATH} ] || return 0 - - local pid - read pid < ${THROTT_DETECT_PID_FILE_PATH} || { - log ERROR "Failed to read pid from: %s" "${THROTT_DETECT_PID_FILE_PATH}" - return 1 - } - - local proc_path=/proc/${pid:-invalid}/cmdline - [ -r ${proc_path} ] && grep -qs "${0##*/}" ${proc_path} && { - printf "%s" "${pid}" - return 0 - } - - # Remove orphaned PID file - rm -rf ${THROTT_DETECT_PID_FILE_PATH} - return 1 -} - -# -# Control detection and reporting of GPU throttling events. -# arg1: start - run throttle detector in background -# stop - stop throttle detector process, if any -# status - verify if throttle detector is running -# -detect_throttling() { - local pid - pid=$(get_thrott_detect_pid) - - case "$1" in - status) - printf "Throttling detector is " - [ -z "${pid}" ] && printf "not running\n" && return 0 - printf "running (pid=%s)\n" ${pid} - ;; - - stop) - [ -z "${pid}" ] && return 0 - - log INFO "Stopping throttling detector (pid=%s)" "${pid}" - kill ${pid}; sleep 1; kill -0 ${pid} 2>/dev/null && kill -9 ${pid} - rm -rf ${THROTT_DETECT_PID_FILE_PATH} - ;; - - start) - [ -n "${pid}" ] && { - log WARN "Throttling detector is already running (pid=%s)" ${pid} - return 0 - } - - ( - read_freq_info n RPn || exit $? - - while true; do - sleep ${THROTT_DETECT_SLEEP_SEC} - read_freq_info n act min cur || exit $? - - # - # The throttling seems to occur when act freq goes below min. - # However, it's necessary to exclude the idle states, where - # act freq normally reaches RPn and cur goes below min. - # - [ ${FREQ_act} -lt ${FREQ_min} ] && \ - [ ${FREQ_act} -gt ${FREQ_RPn} ] && \ - [ ${FREQ_cur} -ge ${FREQ_min} ] && \ - printf "GPU throttling detected: act=%s min=%s cur=%s RPn=%s\n" \ - ${FREQ_act} ${FREQ_min} ${FREQ_cur} ${FREQ_RPn} - done - ) & - - pid=$! - log INFO "Started GPU throttling detector (pid=%s)" ${pid} - - printf "%s\n" ${pid} > ${THROTT_DETECT_PID_FILE_PATH} || \ - log WARN "Failed to write throttle detector PID file" - ;; - esac -} - -# -# Retrieve the list of online CPUs. -# -get_online_cpus() { - local path cpu_index - - printf "0" - for path in $(grep 1 ${CPU_SYSFS_PREFIX}/cpu*/online); do - cpu_index=${path##*/cpu} - printf " %s" ${cpu_index%%/*} - done -} - -# -# Helper to print sysfs path for the given CPU index and freq info. -# -# arg1: Frequency info sysfs name, one of *_CPU_FREQ_INFO constants above -# arg2: CPU index -# -print_cpu_freq_sysfs_path() { - printf ${CPU_FREQ_SYSFS_PATTERN} "$2" "$1" -} - -# -# Read the specified CPU freq info from sysfs. -# -# arg1: CPU index -# arg2: Flag (y/n) to also enable printing the freq info. -# arg3...: Frequency info sysfs name(s), see *_CPU_FREQ_INFO constants above -# return: Global variable(s) CPU_FREQ_${arg} containing the requested information -# -read_cpu_freq_info() { - local var val info path cpu_index print=0 ret=0 - - cpu_index=$1 - [ "$2" = "y" ] && print=1 - shift 2 - - while [ $# -gt 0 ]; do - info=$1 - shift - var=CPU_FREQ_${info} - path=$(print_cpu_freq_sysfs_path "${info}" ${cpu_index}) - - [ -r ${path} ] && read ${var} < ${path} || { - log ERROR "Failed to read CPU freq info from: %s" "${path}" - ret=1 - continue - } - - [ -n "${var}" ] || { - log ERROR "Got empty CPU freq info from: %s" "${path}" - ret=1 - continue - } - - [ ${print} -eq 1 ] && { - eval val=\$${var} - printf "%6s: %4s Hz\n" "${info}" "${val}" - } - done - - return ${ret} -} - -# -# Helper to print freq. value as requested by user via '--cpu-set-max' option. -# arg1: user requested freq value -# -compute_cpu_freq_set() { - local val - - case "$1" in - +) - val=${CPU_FREQ_cpuinfo_max} - ;; - -) - val=${CPU_FREQ_cpuinfo_min} - ;; - *%) - val=$((${1%?} * CPU_FREQ_cpuinfo_max / 100)) - ;; - *[!0-9]*) - log ERROR "Cannot set CPU freq to invalid value: %s" "$1" - return 1 - ;; - "") - log ERROR "Cannot set CPU freq to unspecified value" - return 1 - ;; - *) - log ERROR "Cannot set CPU freq to custom value; use +, -, or % instead" - return 1 - ;; - esac - - printf "%s" "${val}" -} - -# -# Adjust CPU max scaling frequency. -# -set_cpu_freq_max() { - local target_freq res=0 - case "${CPU_SET_MAX_FREQ}" in - +) - target_freq=100 - ;; - -) - target_freq=1 - ;; - *%) - target_freq=${CPU_SET_MAX_FREQ%?} - ;; - *) - log ERROR "Invalid CPU freq" - return 1 - ;; - esac - - local pstate_info=$(printf "${CPU_PSTATE_SYSFS_PATTERN}" max_perf_pct) - [ -e "${pstate_info}" ] && { - log INFO "Setting intel_pstate max perf to %s" "${target_freq}%" - if ! printf "%s" "${target_freq}" > "${pstate_info}"; - then - log ERROR "Failed to set intel_pstate max perf" - res=1 - fi - } - - local cpu_index - for cpu_index in $(get_online_cpus); do - read_cpu_freq_info ${cpu_index} n ${CAP_CPU_FREQ_INFO} || { res=$?; continue; } - - target_freq=$(compute_cpu_freq_set "${CPU_SET_MAX_FREQ}") - [ -z "${target_freq}" ] && { res=$?; continue; } - - log INFO "Setting CPU%s max scaling freq to %s Hz" ${cpu_index} "${target_freq}" - [ -n "${DRY_RUN}" ] && continue - - if ! printf "%s" ${target_freq} > $(print_cpu_freq_sysfs_path scaling_max ${cpu_index}); - then - res=1 - log ERROR "Failed to set CPU%s max scaling frequency" ${cpu_index} - fi - done - - return ${res} -} - -# -# Show help message. -# -print_usage() { - cat < "${_XORG_SCRIPT}" -if [ "x$1" != "x" ]; then - export LD_LIBRARY_PATH="${1}/lib" - export LIBGL_DRIVERS_PATH="${1}/lib/dri" -fi -xinit /bin/sh "${_XORG_SCRIPT}" -- /usr/bin/Xorg vt45 -noreset -s 0 -dpms -logfile /Xorg.0.log & - -# Wait for xorg to be ready for connections. -for _ in 1 2 3 4 5; do - if [ -e "${_FLAG_FILE}" ]; then - break - fi - sleep 5 -done diff --git a/.gitlab-ci/container/alpine/x86_64_build.sh b/.gitlab-ci/container/alpine/x86_64_build.sh deleted file mode 100644 index 9be56ebd2..000000000 --- a/.gitlab-ci/container/alpine/x86_64_build.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1091 - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# ALPINE_X86_64_BUILD_TAG - -set -e -set -o xtrace - -export LLVM_VERSION="${LLVM_VERSION:=16}" - -EPHEMERAL=( -) - - -DEPS=( - bash - bison - ccache - clang16-dev - cmake - clang-dev - coreutils - curl - flex - gcc - g++ - git - gettext - glslang - linux-headers - llvm16-static - llvm16-dev - meson - expat-dev - elfutils-dev - libdrm-dev - libselinux-dev - libva-dev - libpciaccess-dev - zlib-dev - python3-dev - py3-cparser - py3-mako - py3-ply - vulkan-headers - spirv-tools-dev - util-macros - wayland-dev - wayland-protocols -) - -apk --no-cache add "${DEPS[@]}" "${EPHEMERAL[@]}" - -. .gitlab-ci/container/build-llvm-spirv.sh - -. .gitlab-ci/container/build-libclc.sh - -. .gitlab-ci/container/container_pre_build.sh - - -############### Uninstall the build software - -apk del "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/alpine/x86_64_lava_ssh_client.sh b/.gitlab-ci/container/alpine/x86_64_lava_ssh_client.sh deleted file mode 100644 index 585e30323..000000000 --- a/.gitlab-ci/container/alpine/x86_64_lava_ssh_client.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# This is a ci-templates build script to generate a container for LAVA SSH client. - -# shellcheck disable=SC1091 -set -e -set -o xtrace - -EPHEMERAL=( -) - -# We only need these very basic packages to run the tests. -DEPS=( - openssh-client # for ssh - iputils # for ping - bash - curl -) - - -apk --no-cache add "${DEPS[@]}" "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_pre_build.sh - -############### Uninstall the build software - -apk del "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/baremetal_build.sh b/.gitlab-ci/container/baremetal_build.sh deleted file mode 100644 index fcd13de3e..000000000 --- a/.gitlab-ci/container/baremetal_build.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o xtrace - -# Fetch the arm-built rootfs image and unpack it in our x86_64 container (saves -# network transfer, disk usage, and runtime on test jobs) - -# shellcheck disable=SC2154 # arch is assigned in previous scripts -if curl -X HEAD -s "${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}/done"; then - ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${FDO_UPSTREAM_REPO}/${ARTIFACTS_SUFFIX}/${arch}" -else - ARTIFACTS_URL="${ARTIFACTS_PREFIX}/${CI_PROJECT_PATH}/${ARTIFACTS_SUFFIX}/${arch}" -fi - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - "${ARTIFACTS_URL}"/lava-rootfs.tar.zst -o rootfs.tar.zst -mkdir -p /rootfs-"$arch" -tar -C /rootfs-"$arch" '--exclude=./dev/*' --zstd -xf rootfs.tar.zst -rm rootfs.tar.zst - -if [[ $arch == "arm64" ]]; then - mkdir -p /baremetal-files - pushd /baremetal-files - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}"/arm64/Image - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}"/arm64/Image.gz - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}"/arm64/cheza-kernel - - DEVICE_TREES="" - DEVICE_TREES="$DEVICE_TREES apq8016-sbc.dtb" - DEVICE_TREES="$DEVICE_TREES apq8096-db820c.dtb" - DEVICE_TREES="$DEVICE_TREES tegra210-p3450-0000.dtb" - DEVICE_TREES="$DEVICE_TREES imx8mq-nitrogen.dtb" - - for DTB in $DEVICE_TREES; do - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}/arm64/$DTB" - done - - popd -elif [[ $arch == "armhf" ]]; then - mkdir -p /baremetal-files - pushd /baremetal-files - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}"/armhf/zImage - - DEVICE_TREES="" - DEVICE_TREES="$DEVICE_TREES imx6q-cubox-i.dtb" - DEVICE_TREES="$DEVICE_TREES tegra124-jetson-tk1.dtb" - - for DTB in $DEVICE_TREES; do - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}/armhf/$DTB" - done - - popd -fi diff --git a/.gitlab-ci/container/build-angle.sh b/.gitlab-ci/container/build-angle.sh deleted file mode 100644 index 2778fe6ea..000000000 --- a/.gitlab-ci/container/build-angle.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -ANGLE_REV="0518a3ff4d4e7e5b2ce8203358f719613a31c118" - -# DEPOT tools -git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git -PWD=$(pwd) -export PATH=$PWD/depot_tools:$PATH -export DEPOT_TOOLS_UPDATE=0 - -mkdir /angle-build -pushd /angle-build -git init -git remote add origin https://chromium.googlesource.com/angle/angle.git -git fetch --depth 1 origin "$ANGLE_REV" -git checkout FETCH_HEAD - -# source preparation -python3 scripts/bootstrap.py -mkdir -p build/config -gclient sync - -sed -i "/catapult/d" testing/BUILD.gn - -mkdir -p out/Release -echo ' -is_debug = false -angle_enable_swiftshader = false -angle_enable_null = false -angle_enable_gl = false -angle_enable_vulkan = true -angle_has_histograms = false -build_angle_trace_perf_tests = false -build_angle_deqp_tests = false -angle_use_custom_libvulkan = false -dcheck_always_on=true -' > out/Release/args.gn - -if [[ "$DEBIAN_ARCH" = "arm64" ]]; then - build/linux/sysroot_scripts/install-sysroot.py --arch=arm64 -fi - -gn gen out/Release -# depot_tools overrides ninja with a version that doesn't work. We want -# ninja with FDO_CI_CONCURRENT anyway. -/usr/local/bin/ninja -C out/Release/ - -mkdir /angle -cp out/Release/lib*GL*.so /angle/ -ln -s libEGL.so /angle/libEGL.so.1 -ln -s libGLESv2.so /angle/libGLESv2.so.2 - -rm -rf out - -popd -rm -rf ./depot_tools diff --git a/.gitlab-ci/container/build-apitrace.sh b/.gitlab-ci/container/build-apitrace.sh deleted file mode 100644 index 0697c3cb7..000000000 --- a/.gitlab-ci/container/build-apitrace.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_GL_TAG -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG - -set -ex - -APITRACE_VERSION="0a6506433e1f9f7b69757b4e5730326970c4321a" - -git clone https://github.com/apitrace/apitrace.git --single-branch --no-checkout /apitrace -pushd /apitrace -git checkout "$APITRACE_VERSION" -git submodule update --init --depth 1 --recursive -cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=False -DENABLE_WAFFLE=on $EXTRA_CMAKE_ARGS -cmake --build _build --parallel --target apitrace eglretrace -mkdir build -cp _build/apitrace build -cp _build/eglretrace build -${STRIP_CMD:-strip} build/* -find . -not -path './build' -not -path './build/*' -delete -popd diff --git a/.gitlab-ci/container/build-crosvm.sh b/.gitlab-ci/container/build-crosvm.sh deleted file mode 100644 index f19952984..000000000 --- a/.gitlab-ci/container/build-crosvm.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -git config --global user.email "mesa@example.com" -git config --global user.name "Mesa CI" - -CROSVM_VERSION=1641c55bcc922588e24de73e9cca7b5e4005bd6d -git clone --single-branch -b main --no-checkout https://chromium.googlesource.com/crosvm/crosvm /platform/crosvm -pushd /platform/crosvm -git checkout "$CROSVM_VERSION" -git submodule update --init - -VIRGLRENDERER_VERSION=d9c002fac153b834a2c17731f2b85c36e333e102 -rm -rf third_party/virglrenderer -git clone --single-branch -b main --no-checkout https://gitlab.freedesktop.org/virgl/virglrenderer.git third_party/virglrenderer -pushd third_party/virglrenderer -git checkout "$VIRGLRENDERER_VERSION" -meson setup build/ -D libdir=lib -D render-server-worker=process -D venus=true $EXTRA_MESON_ARGS -meson install -C build -popd - -cargo update -p pkg-config@0.3.26 --precise 0.3.27 - -RUSTFLAGS='-L native=/usr/local/lib' cargo install \ - bindgen-cli \ - --locked \ - -j ${FDO_CI_CONCURRENT:-4} \ - --root /usr/local \ - --version 0.65.1 \ - $EXTRA_CARGO_ARGS - -CROSVM_USE_SYSTEM_MINIGBM=1 CROSVM_USE_SYSTEM_VIRGLRENDERER=1 RUSTFLAGS='-L native=/usr/local/lib' cargo install \ - -j ${FDO_CI_CONCURRENT:-4} \ - --locked \ - --features 'default-no-sandbox gpu x virgl_renderer' \ - --path . \ - --root /usr/local \ - $EXTRA_CARGO_ARGS - -popd - -rm -rf /platform/crosvm diff --git a/.gitlab-ci/container/build-deqp-runner.sh b/.gitlab-ci/container/build-deqp-runner.sh deleted file mode 100644 index b35454c47..000000000 --- a/.gitlab-ci/container/build-deqp-runner.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_ANDROID_TAG -# DEBIAN_X86_64_TEST_GL_TAG -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG - -set -ex - -DEQP_RUNNER_VERSION=0.18.0 - -DEQP_RUNNER_GIT_URL="${DEQP_RUNNER_GIT_URL:-https://gitlab.freedesktop.org/mesa/deqp-runner.git}" - -if [ -n "${DEQP_RUNNER_GIT_TAG}${DEQP_RUNNER_GIT_REV}" ]; then - # Build and install from source - DEQP_RUNNER_CARGO_ARGS="--git $DEQP_RUNNER_GIT_URL" - - if [ -n "${DEQP_RUNNER_GIT_TAG}" ]; then - DEQP_RUNNER_CARGO_ARGS="--tag ${DEQP_RUNNER_GIT_TAG} ${DEQP_RUNNER_CARGO_ARGS}" - DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_TAG" - else - DEQP_RUNNER_CARGO_ARGS="--rev ${DEQP_RUNNER_GIT_REV} ${DEQP_RUNNER_CARGO_ARGS}" - DEQP_RUNNER_GIT_CHECKOUT="$DEQP_RUNNER_GIT_REV" - fi - - DEQP_RUNNER_CARGO_ARGS="${DEQP_RUNNER_CARGO_ARGS} ${EXTRA_CARGO_ARGS}" -else - # Install from package registry - DEQP_RUNNER_CARGO_ARGS="--version ${DEQP_RUNNER_VERSION} ${EXTRA_CARGO_ARGS} -- deqp-runner" - DEQP_RUNNER_GIT_CHECKOUT="v$DEQP_RUNNER_VERSION" -fi - -if [[ "$RUST_TARGET" != *-android ]]; then - cargo install --locked \ - -j ${FDO_CI_CONCURRENT:-4} \ - --root /usr/local \ - ${DEQP_RUNNER_CARGO_ARGS} -else - mkdir -p /deqp-runner - pushd /deqp-runner - git clone --branch "$DEQP_RUNNER_GIT_CHECKOUT" --depth 1 "$DEQP_RUNNER_GIT_URL" deqp-runner-git - pushd deqp-runner-git - - cargo install --locked \ - -j ${FDO_CI_CONCURRENT:-4} \ - --root /usr/local --version 2.10.0 \ - cargo-ndk - - rustup target add $RUST_TARGET - RUSTFLAGS='-C target-feature=+crt-static' cargo ndk --target $RUST_TARGET build --release - - mv target/$RUST_TARGET/release/deqp-runner /deqp-runner - - cargo uninstall --locked \ - --root /usr/local \ - cargo-ndk - - popd - rm -rf deqp-runner-git - popd -fi - -# remove unused test runners to shrink images for the Mesa CI build (not kernel, -# which chooses its own deqp branch) -if [ -z "${DEQP_RUNNER_GIT_TAG}${DEQP_RUNNER_GIT_REV}" ]; then - rm -f /usr/local/bin/igt-runner -fi diff --git a/.gitlab-ci/container/build-deqp.sh b/.gitlab-ci/container/build-deqp.sh deleted file mode 100644 index df141982f..000000000 --- a/.gitlab-ci/container/build-deqp.sh +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_ANDROID_TAG -# DEBIAN_X86_64_TEST_GL_TAG -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG - -set -ex -o pipefail - -# See `deqp_build_targets` below for which release is used to produce which -# binary. Unless this comment has bitrotten: -# - the VK release produces `deqp-vk`, -# - the GL release produces `glcts`, and -# - the GLES release produces `deqp-gles*` and `deqp-egl` - -DEQP_VK_VERSION=1.3.8.2 -DEQP_GL_VERSION=4.6.4.0 -DEQP_GLES_VERSION=3.2.10.0 - -# Patches to VulkanCTS may come from commits in their repo (listed in -# cts_commits_to_backport) or patch files stored in our repo (in the patch -# directory `$OLDPWD/.gitlab-ci/container/patches/` listed in cts_patch_files). -# Both list variables would have comments explaining the reasons behind the -# patches. - -# shellcheck disable=SC2034 -vk_cts_commits_to_backport=( - # Fix more ASAN errors due to missing virtual destructors - dd40bcfef1b4035ea55480b6fd4d884447120768 - - # Remove "unused shader stages" tests - 7dac86c6bbd15dec91d7d9a98cd6dd57c11092a7 -) - -# shellcheck disable=SC2034 -vk_cts_patch_files=( -) - -if [ "${DEQP_TARGET}" = 'android' ]; then - vk_cts_patch_files+=( - build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch - build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch - ) -fi - -# shellcheck disable=SC2034 -gl_cts_commits_to_backport=( -) - -# shellcheck disable=SC2034 -gl_cts_patch_files=( -) - -if [ "${DEQP_TARGET}" = 'android' ]; then - gl_cts_patch_files+=( - build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch - build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch - ) -fi - -# shellcheck disable=SC2034 -# GLES builds also EGL -gles_cts_commits_to_backport=( - # Implement support for the EGL_EXT_config_select_group extension - 88ba9ac270db5be600b1ecacbc6d9db0c55d5be4 -) - -# shellcheck disable=SC2034 -gles_cts_patch_files=( - # Correct detection mechanism for EGL_EXT_config_select_group extension - build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch -) - -if [ "${DEQP_TARGET}" = 'android' ]; then - gles_cts_patch_files+=( - build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch - build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch - ) -fi - - -### Careful editing anything below this line - - -git config --global user.email "mesa@example.com" -git config --global user.name "Mesa CI" - -# shellcheck disable=SC2153 -case "${DEQP_API}" in - VK) DEQP_VERSION="vulkan-cts-$DEQP_VK_VERSION";; - GL) DEQP_VERSION="opengl-cts-$DEQP_GL_VERSION";; - GLES) DEQP_VERSION="opengl-es-cts-$DEQP_GLES_VERSION";; -esac - -git clone \ - https://github.com/KhronosGroup/VK-GL-CTS.git \ - -b $DEQP_VERSION \ - --depth 1 \ - /VK-GL-CTS -pushd /VK-GL-CTS - -mkdir -p /deqp - -# shellcheck disable=SC2153 -deqp_api=${DEQP_API,,} - -cts_commits_to_backport="${deqp_api}_cts_commits_to_backport[@]" -for commit in "${!cts_commits_to_backport}" -do - PATCH_URL="https://github.com/KhronosGroup/VK-GL-CTS/commit/$commit.patch" - echo "Apply patch to ${DEQP_API} CTS from $PATCH_URL" - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 $PATCH_URL | \ - git am - -done - -cts_patch_files="${deqp_api}_cts_patch_files[@]" -for patch in "${!cts_patch_files}" -do - echo "Apply patch to ${DEQP_API} CTS from $patch" - git am < $OLDPWD/.gitlab-ci/container/patches/$patch -done - -{ - echo "dEQP base version $DEQP_VERSION" - echo "The following local patches are applied on top:" - git log --reverse --oneline $DEQP_VERSION.. --format=%s | sed 's/^/- /' -} > /deqp/version-$deqp_api - -# --insecure is due to SSL cert failures hitting sourceforge for zlib and -# libpng (sigh). The archives get their checksums checked anyway, and git -# always goes through ssh or https. -python3 external/fetch_sources.py --insecure - -# Save the testlog stylesheets: -cp doc/testlog-stylesheet/testlog.{css,xsl} /deqp -popd - -pushd /deqp - -if [ "${DEQP_API}" = 'GLES' ]; then - if [ "${DEQP_TARGET}" = 'android' ]; then - cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=android \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS - mold --run ninja modules/egl/deqp-egl - mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-android - else - # When including EGL/X11 testing, do that build first and save off its - # deqp-egl binary. - cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=x11_egl_glx \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS - mold --run ninja modules/egl/deqp-egl - mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-x11 - - cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=wayland \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS - mold --run ninja modules/egl/deqp-egl - mv /deqp/modules/egl/deqp-egl /deqp/modules/egl/deqp-egl-wayland - fi -fi - -cmake -S /VK-GL-CTS -B . -G Ninja \ - -DDEQP_TARGET=${DEQP_TARGET} \ - -DCMAKE_BUILD_TYPE=Release \ - $EXTRA_CMAKE_ARGS - -# Make sure `default` doesn't silently stop detecting one of the platforms we care about -if [ "${DEQP_TARGET}" = 'default' ]; then - grep -q DEQP_SUPPORT_WAYLAND=1 build.ninja - grep -q DEQP_SUPPORT_X11=1 build.ninja - grep -q DEQP_SUPPORT_XCB=1 build.ninja -fi - -deqp_build_targets=() -case "${DEQP_API}" in - VK) - deqp_build_targets+=(deqp-vk) - ;; - GL) - deqp_build_targets+=(glcts) - ;; - GLES) - deqp_build_targets+=(deqp-gles{2,3,31}) - # deqp-egl also comes from this build, but it is handled separately above. - ;; -esac -if [ "${DEQP_TARGET}" != 'android' ]; then - deqp_build_targets+=(testlog-to-xml) - deqp_build_targets+=(testlog-to-csv) - deqp_build_targets+=(testlog-to-junit) -fi - -mold --run ninja "${deqp_build_targets[@]}" - -if [ "${DEQP_TARGET}" != 'android' ]; then - # Copy out the mustpass lists we want. - mkdir -p /deqp/mustpass - - if [ "${DEQP_API}" = 'VK' ]; then - for mustpass in $(< /VK-GL-CTS/external/vulkancts/mustpass/main/vk-default.txt) ; do - cat /VK-GL-CTS/external/vulkancts/mustpass/main/$mustpass \ - >> /deqp/mustpass/vk-main.txt - done - fi - - if [ "${DEQP_API}" = 'GL' ]; then - cp \ - /VK-GL-CTS/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/*-main.txt \ - /deqp/mustpass/ - cp \ - /VK-GL-CTS/external/openglcts/data/mustpass/gl/khronos_mustpass_single/4.6.1.x/*-single.txt \ - /deqp/mustpass/ - fi - - if [ "${DEQP_API}" = 'GLES' ]; then - cp \ - /VK-GL-CTS/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/*.txt \ - /deqp/mustpass/ - cp \ - /VK-GL-CTS/external/openglcts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-main.txt \ - /deqp/mustpass/ - cp \ - /VK-GL-CTS/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/*-main.txt \ - /deqp/mustpass/ - fi - - # Save *some* executor utils, but otherwise strip things down - # to reduct deqp build size: - mkdir /deqp/executor.save - cp /deqp/executor/testlog-to-* /deqp/executor.save - rm -rf /deqp/executor - mv /deqp/executor.save /deqp/executor -fi - -# Remove other mustpass files, since we saved off the ones we wanted to conventient locations above. -rm -rf /deqp/external/**/mustpass/ -rm -rf /deqp/external/vulkancts/modules/vulkan/vk-main* -rm -rf /deqp/external/vulkancts/modules/vulkan/vk-default - -rm -rf /deqp/external/openglcts/modules/cts-runner -rm -rf /deqp/modules/internal -rm -rf /deqp/execserver -rm -rf /deqp/framework -find . -depth \( -iname '*cmake*' -o -name '*ninja*' -o -name '*.o' -o -name '*.a' \) -exec rm -rf {} \; -if [ "${DEQP_API}" = 'VK' ]; then - ${STRIP_CMD:-strip} external/vulkancts/modules/vulkan/deqp-vk -fi -if [ "${DEQP_API}" = 'GL' ]; then - ${STRIP_CMD:-strip} external/openglcts/modules/glcts -fi -if [ "${DEQP_API}" = 'GLES' ]; then - ${STRIP_CMD:-strip} modules/*/deqp-* -fi -du -sh ./* -rm -rf /VK-GL-CTS -popd diff --git a/.gitlab-ci/container/build-directx-headers.sh b/.gitlab-ci/container/build-directx-headers.sh deleted file mode 100644 index a930520ee..000000000 --- a/.gitlab-ci/container/build-directx-headers.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BUILD_TAG - -set -ex - -git clone https://github.com/microsoft/DirectX-Headers -b v1.613.1 --depth 1 -pushd DirectX-Headers -meson setup build --backend=ninja --buildtype=release -Dbuild-test=false $EXTRA_MESON_ARGS -meson install -C build -popd -rm -rf DirectX-Headers diff --git a/.gitlab-ci/container/build-fossilize.sh b/.gitlab-ci/container/build-fossilize.sh deleted file mode 100644 index ca1204451..000000000 --- a/.gitlab-ci/container/build-fossilize.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG - -set -ex - -git clone https://github.com/ValveSoftware/Fossilize.git -cd Fossilize -git checkout b43ee42bbd5631ea21fe9a2dee4190d5d875c327 -git submodule update --init -mkdir build -cd build -cmake -S .. -B . -G Ninja -DCMAKE_BUILD_TYPE=Release -ninja -C . install -cd ../.. -rm -rf Fossilize diff --git a/.gitlab-ci/container/build-gfxreconstruct.sh b/.gitlab-ci/container/build-gfxreconstruct.sh deleted file mode 100644 index c7600fc5f..000000000 --- a/.gitlab-ci/container/build-gfxreconstruct.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -GFXRECONSTRUCT_VERSION=761837794a1e57f918a85af7000b12e531b178ae - -git clone https://github.com/LunarG/gfxreconstruct.git \ - --single-branch \ - -b master \ - --no-checkout \ - /gfxreconstruct -pushd /gfxreconstruct -git checkout "$GFXRECONSTRUCT_VERSION" -git submodule update --init -git submodule update -cmake -S . -B _build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/gfxreconstruct/build -DBUILD_WERROR=OFF -cmake --build _build --parallel --target tools/{replay,info}/install/strip -find . -not -path './build' -not -path './build/*' -delete -popd diff --git a/.gitlab-ci/container/build-hang-detection.sh b/.gitlab-ci/container/build-hang-detection.sh deleted file mode 100644 index b5af1af89..000000000 --- a/.gitlab-ci/container/build-hang-detection.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -set -ex - -PARALLEL_DEQP_RUNNER_VERSION=fe557794b5dadd8dbf0eae403296625e03bda18a - -git clone https://gitlab.freedesktop.org/mesa/parallel-deqp-runner --single-branch -b master --no-checkout /parallel-deqp-runner -pushd /parallel-deqp-runner -git checkout "$PARALLEL_DEQP_RUNNER_VERSION" -meson . _build -ninja -C _build hang-detection -mkdir -p build/bin -install _build/hang-detection build/bin -strip build/bin/* -find . -not -path './build' -not -path './build/*' -delete -popd diff --git a/.gitlab-ci/container/build-kdl.sh b/.gitlab-ci/container/build-kdl.sh deleted file mode 100755 index e45127be5..000000000 --- a/.gitlab-ci/container/build-kdl.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1091 # the path is created by the script - -set -ex - -KDL_REVISION="5056f71b100a68b72b285c6fc845a66a2ed25985" - -mkdir ci-kdl.git -pushd ci-kdl.git -git init -git remote add origin https://gitlab.freedesktop.org/gfx-ci/ci-kdl.git -git fetch --depth 1 origin ${KDL_REVISION} -git checkout FETCH_HEAD -popd - -python3 -m venv ci-kdl.venv -source ci-kdl.venv/bin/activate -pushd ci-kdl.git -pip install -r requirements.txt -pip install . -popd - -rm -rf ci-kdl.git diff --git a/.gitlab-ci/container/build-kernel.sh b/.gitlab-ci/container/build-kernel.sh deleted file mode 100644 index 7f56c2989..000000000 --- a/.gitlab-ci/container/build-kernel.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting -# shellcheck disable=SC2153 - -set -ex - -mkdir -p kernel -pushd kernel - -if [[ ${DEBIAN_ARCH} = "arm64" ]]; then - KERNEL_IMAGE_NAME+=" cheza-kernel" -fi - -for image in ${KERNEL_IMAGE_NAME}; do - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o "/lava-files/${image}" "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${image}" -done - -for dtb in ${DEVICE_TREES}; do - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o "/lava-files/${dtb}" "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/${dtb}" - done - -mkdir -p "/lava-files/rootfs-${DEBIAN_ARCH}" -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}/modules.tar.zst" -tar --keep-directory-symlink --zstd -xf modules.tar.zst -C "/lava-files/rootfs-${DEBIAN_ARCH}/" - -popd -rm -rf kernel - diff --git a/.gitlab-ci/container/build-libclc.sh b/.gitlab-ci/container/build-libclc.sh deleted file mode 100644 index 9ec3e3c55..000000000 --- a/.gitlab-ci/container/build-libclc.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -export LLVM_CONFIG="llvm-config-${LLVM_VERSION:?"llvm unset!"}" -LLVM_TAG="llvmorg-15.0.7" - -$LLVM_CONFIG --version - -git config --global user.email "mesa@example.com" -git config --global user.name "Mesa CI" -git clone \ - https://github.com/llvm/llvm-project \ - --depth 1 \ - -b "${LLVM_TAG}" \ - /llvm-project - -mkdir /libclc -pushd /libclc -cmake -S /llvm-project/libclc -B . -G Ninja -DLLVM_CONFIG="$LLVM_CONFIG" -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DLLVM_SPIRV=/usr/bin/llvm-spirv -ninja -ninja install -popd - -# workaroud cmake vs debian packaging. -mkdir -p /usr/lib/clc -ln -s /usr/share/clc/spirv64-mesa3d-.spv /usr/lib/clc/ -ln -s /usr/share/clc/spirv-mesa3d-.spv /usr/lib/clc/ - -du -sh ./* -rm -rf /libclc /llvm-project diff --git a/.gitlab-ci/container/build-libdrm.sh b/.gitlab-ci/container/build-libdrm.sh deleted file mode 100644 index 0293b598a..000000000 --- a/.gitlab-ci/container/build-libdrm.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -# Script used for Android and Fedora builds -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -export LIBDRM_VERSION=libdrm-2.4.119 - -curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \ - https://dri.freedesktop.org/libdrm/"$LIBDRM_VERSION".tar.xz -tar -xvf "$LIBDRM_VERSION".tar.xz && rm "$LIBDRM_VERSION".tar.xz -cd "$LIBDRM_VERSION" -meson setup build -D vc4=disabled -D freedreno=disabled -D etnaviv=disabled $EXTRA_MESON_ARGS -meson install -C build -cd .. -rm -rf "$LIBDRM_VERSION" diff --git a/.gitlab-ci/container/build-llvm-spirv.sh b/.gitlab-ci/container/build-llvm-spirv.sh deleted file mode 100644 index 2742298b1..000000000 --- a/.gitlab-ci/container/build-llvm-spirv.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -VER="${LLVM_VERSION:?llvm not set}.0.0" - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${VER}.tar.gz" -tar -xvf "v${VER}.tar.gz" && rm "v${VER}.tar.gz" - -mkdir "SPIRV-LLVM-Translator-${VER}/build" -pushd "SPIRV-LLVM-Translator-${VER}/build" -cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -ninja -ninja install -# For some reason llvm-spirv is not installed by default -ninja llvm-spirv -cp tools/llvm-spirv/llvm-spirv /usr/bin/ -popd - -du -sh "SPIRV-LLVM-Translator-${VER}" -rm -rf "SPIRV-LLVM-Translator-${VER}" diff --git a/.gitlab-ci/container/build-mold.sh b/.gitlab-ci/container/build-mold.sh deleted file mode 100644 index 33d0d015a..000000000 --- a/.gitlab-ci/container/build-mold.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BASE_TAG -# DEBIAN_BUILD_TAG -# FEDORA_X86_64_BUILD_TAG -# KERNEL_ROOTFS_TAG - -MOLD_VERSION="2.4.1" - -git clone -b v"$MOLD_VERSION" --single-branch --depth 1 https://github.com/rui314/mold.git -pushd mold - -cmake -DCMAKE_BUILD_TYPE=Release -D BUILD_TESTING=OFF -D MOLD_LTO=ON -cmake --build . --parallel -cmake --install . - -popd -rm -rf mold diff --git a/.gitlab-ci/container/build-ninetests.sh b/.gitlab-ci/container/build-ninetests.sh deleted file mode 100644 index d60b5fe82..000000000 --- a/.gitlab-ci/container/build-ninetests.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_GL_TAG - -set -ex -o pipefail - -### Careful editing anything below this line - -git config --global user.email "mesa@example.com" -git config --global user.name "Mesa CI" -git clone https://github.com/axeldavy/Xnine.git /Xnine -mkdir /Xnine/build -pushd /Xnine/build -git checkout c64753d224c08006bcdcfa7880ada826f27164b1 - -cmake .. -DBUILD_TESTS=1 -DWITH_DRI3=1 -DD3DADAPTER9_LOCATION=/install/lib/d3d/d3dadapter9.so -make - -mkdir -p /NineTests/ -mv NineTests/NineTests /NineTests/ - -popd -rm -rf /Xnine diff --git a/.gitlab-ci/container/build-piglit.sh b/.gitlab-ci/container/build-piglit.sh deleted file mode 100644 index 01abb4179..000000000 --- a/.gitlab-ci/container/build-piglit.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# shellcheck disable=SC2086 # we want word splitting -set -ex - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_GL_TAG -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG - -REV="f7ece74a107a2f99b2f494d978c84f8d51faa703" - -git clone https://gitlab.freedesktop.org/mesa/piglit.git --single-branch --no-checkout /piglit -pushd /piglit -git checkout "$REV" -patch -p1 <$OLDPWD/.gitlab-ci/piglit/disable-vs_in.diff -cmake -S . -B . -G Ninja -DCMAKE_BUILD_TYPE=Release $PIGLIT_OPTS $EXTRA_CMAKE_ARGS -ninja $PIGLIT_BUILD_TARGETS -find . -depth \( -name .git -o -name '*ninja*' -o -iname '*cmake*' -o -name '*.[chao]' \) -exec rm -rf {} \; -rm -rf target_api -if [ "$PIGLIT_BUILD_TARGETS" = "piglit_replayer" ]; then - find . -depth \ - ! -regex "^\.$" \ - ! -regex "^\.\/piglit.*" \ - ! -regex "^\.\/framework.*" \ - ! -regex "^\.\/bin$" \ - ! -regex "^\.\/bin\/replayer\.py" \ - ! -regex "^\.\/templates.*" \ - ! -regex "^\.\/tests$" \ - ! -regex "^\.\/tests\/replay\.py" \ - -exec rm -rf {} \; 2>/dev/null -fi -popd diff --git a/.gitlab-ci/container/build-rust.sh b/.gitlab-ci/container/build-rust.sh deleted file mode 100644 index 50b013824..000000000 --- a/.gitlab-ci/container/build-rust.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - -# Note that this script is not actually "building" rust, but build- is the -# convention for the shared helpers for putting stuff in our containers. - -set -ex - -# cargo (and rustup) wants to store stuff in $HOME/.cargo, and binaries in -# $HOME/.cargo/bin. Make bin a link to a public bin directory so the commands -# are just available to all build jobs. -mkdir -p "$HOME"/.cargo -ln -s /usr/local/bin "$HOME"/.cargo/bin - -# Rusticl requires at least Rust 1.66.0 and NAK requires 1.73.0 -# -# Also, pick a specific snapshot from rustup so the compiler doesn't drift on -# us. -RUST_VERSION=1.73.0-2023-10-05 - -# For rust in Mesa, we use rustup to install. This lets us pick an arbitrary -# version of the compiler, rather than whatever the container's Debian comes -# with. -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- \ - --default-toolchain $RUST_VERSION \ - --profile minimal \ - -y - -rustup component add clippy rustfmt - -# Set up a config script for cross compiling -- cargo needs your system cc for -# linking in cross builds, but doesn't know what you want to use for system cc. -cat > /root/.cargo/config < -# -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# KERNEL_ROOTFS_TAG - -SKQP_BRANCH=android-cts-12.1_r5 - -# hack for skqp see the clang -pushd /usr/bin/ -ln -s ../lib/llvm-15/bin/clang clang -ln -s ../lib/llvm-15/bin/clang++ clang++ -popd - -create_gn_args() { - # gn can be configured to cross-compile skia and its tools - # It is important to set the target_cpu to guarantee the intended target - # machine - cp "${BASE_ARGS_GN_FILE}" "${SKQP_OUT_DIR}"/args.gn - echo "target_cpu = \"${SKQP_ARCH}\"" >> "${SKQP_OUT_DIR}"/args.gn -} - - -download_skia_source() { - if [ -z ${SKIA_DIR+x} ] - then - return 1 - fi - - # Skia cloned from https://android.googlesource.com/platform/external/skqp - # has all needed assets tracked on git-fs - SKQP_REPO=https://android.googlesource.com/platform/external/skqp - - git clone --branch "${SKQP_BRANCH}" --depth 1 "${SKQP_REPO}" "${SKIA_DIR}" -} - -set -ex - -SCRIPT_DIR=$(realpath "$(dirname "$0")") -SKQP_PATCH_DIR="${SCRIPT_DIR}/patches" -BASE_ARGS_GN_FILE="${SCRIPT_DIR}/build-skqp_base.gn" - -SKQP_ARCH=${SKQP_ARCH:-x64} -SKIA_DIR=${SKIA_DIR:-$(mktemp -d)} -SKQP_OUT_DIR=${SKIA_DIR}/out/${SKQP_ARCH} -SKQP_INSTALL_DIR=${SKQP_INSTALL_DIR:-/skqp} -SKQP_ASSETS_DIR="${SKQP_INSTALL_DIR}/assets" -SKQP_BINARIES=(skqp list_gpu_unit_tests list_gms) - -download_skia_source - -pushd "${SKIA_DIR}" - -# Apply all skqp patches for Mesa CI -cat "${SKQP_PATCH_DIR}"/build-skqp_*.patch | - patch -p1 - -# Fetch some needed build tools needed to build skia/skqp. -# Basically, it clones repositories with commits SHAs from ${SKIA_DIR}/DEPS -# directory. -python tools/git-sync-deps - -mkdir -p "${SKQP_OUT_DIR}" -mkdir -p "${SKQP_INSTALL_DIR}" - -create_gn_args - -# Build and install skqp binaries -bin/gn gen "${SKQP_OUT_DIR}" - -for BINARY in "${SKQP_BINARIES[@]}" -do - /usr/bin/ninja -C "${SKQP_OUT_DIR}" "${BINARY}" - # Strip binary, since gn is not stripping it even when `is_debug == false` - ${STRIP_CMD:-strip} "${SKQP_OUT_DIR}/${BINARY}" - install -m 0755 "${SKQP_OUT_DIR}/${BINARY}" "${SKQP_INSTALL_DIR}" -done - -# Move assets to the target directory, which will reside in rootfs. -mv platform_tools/android/apps/skqp/src/main/assets/ "${SKQP_ASSETS_DIR}" - -popd -rm -Rf "${SKIA_DIR}" - -set +ex diff --git a/.gitlab-ci/container/build-skqp_base.gn b/.gitlab-ci/container/build-skqp_base.gn deleted file mode 100644 index 472b44fb8..000000000 --- a/.gitlab-ci/container/build-skqp_base.gn +++ /dev/null @@ -1,59 +0,0 @@ -cc = "clang" -cxx = "clang++" - -extra_cflags = [ - "-Wno-error", - - "-DSK_ENABLE_DUMP_GPU", - "-DSK_BUILD_FOR_SKQP" - ] -extra_cflags_cc = [ - "-Wno-error", - - # skqp build process produces a lot of compilation warnings, silencing - # most of them to remove clutter and avoid the CI job log to exceed the - # maximum size - - # GCC flags - "-Wno-redundant-move", - "-Wno-suggest-override", - "-Wno-class-memaccess", - "-Wno-deprecated-copy", - "-Wno-uninitialized", - - # Clang flags - "-Wno-macro-redefined", - "-Wno-anon-enum-enum-conversion", - "-Wno-suggest-destructor-override", - "-Wno-return-std-move-in-c++11", - "-Wno-extra-semi-stmt", - "-Wno-reserved-identifier", - "-Wno-bitwise-instead-of-logical", - "-Wno-reserved-identifier", - "-Wno-psabi", - "-Wno-unused-but-set-variable", - "-Wno-sizeof-array-div", - "-Wno-string-concatenation", - ] - -cc_wrapper = "ccache" - -is_debug = false - -skia_enable_fontmgr_android = false -skia_enable_fontmgr_empty = true -skia_enable_pdf = false -skia_enable_skottie = false - -skia_skqp_global_error_tolerance = 8 -skia_tools_require_resources = true - -skia_use_dng_sdk = false -skia_use_expat = true -skia_use_icu = false -skia_use_libheif = false -skia_use_lua = false -skia_use_piex = false -skia_use_vulkan = true - -target_os = "linux" diff --git a/.gitlab-ci/container/build-va-tools.sh b/.gitlab-ci/container/build-va-tools.sh deleted file mode 100644 index 5d28b47f9..000000000 --- a/.gitlab-ci/container/build-va-tools.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# KERNEL_ROOTFS_TAG - -set -ex - -git config --global user.email "mesa@example.com" -git config --global user.name "Mesa CI" - -git clone \ - https://github.com/intel/libva-utils.git \ - -b 2.18.1 \ - --depth 1 \ - /va-utils - -pushd /va-utils -# Too old libva in Debian 11. TODO: when this PR gets in, refer to the patch. -curl -L https://github.com/intel/libva-utils/pull/329.patch | git am - -meson setup build -D tests=true -Dprefix=/va $EXTRA_MESON_ARGS -meson install -C build -popd -rm -rf /va-utils diff --git a/.gitlab-ci/container/build-vkd3d-proton.sh b/.gitlab-ci/container/build-vkd3d-proton.sh deleted file mode 100644 index b4b178830..000000000 --- a/.gitlab-ci/container/build-vkd3d-proton.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_VK_TAG -# KERNEL_ROOTFS_TAG -set -ex - -VKD3D_PROTON_COMMIT="c3b385606a93baed42482d822805e0d9c2f3f603" - -VKD3D_PROTON_DST_DIR="/vkd3d-proton-tests" -VKD3D_PROTON_SRC_DIR="/vkd3d-proton-src" -VKD3D_PROTON_BUILD_DIR="/vkd3d-proton-$VKD3D_PROTON_VERSION" - -function build_arch { - local arch="$1" - shift - - meson "$@" \ - -Denable_tests=true \ - --buildtype release \ - --prefix "$VKD3D_PROTON_DST_DIR" \ - --strip \ - --bindir "x${arch}" \ - --libdir "x${arch}" \ - "$VKD3D_PROTON_BUILD_DIR/build.${arch}" - - ninja -C "$VKD3D_PROTON_BUILD_DIR/build.${arch}" install - - install -D -m755 -t "${VKD3D_PROTON_DST_DIR}/x${arch}/bin" "$VKD3D_PROTON_BUILD_DIR/build.${arch}/tests/d3d12" -} - -git clone https://github.com/HansKristian-Work/vkd3d-proton.git --single-branch -b master --no-checkout "$VKD3D_PROTON_SRC_DIR" -pushd "$VKD3D_PROTON_SRC_DIR" -git checkout "$VKD3D_PROTON_COMMIT" -git submodule update --init --recursive -git submodule update --recursive -build_arch 64 -build_arch 86 -popd - -rm -rf "$VKD3D_PROTON_BUILD_DIR" -rm -rf "$VKD3D_PROTON_SRC_DIR" diff --git a/.gitlab-ci/container/build-vulkan-validation.sh b/.gitlab-ci/container/build-vulkan-validation.sh deleted file mode 100644 index 5bf5d11eb..000000000 --- a/.gitlab-ci/container/build-vulkan-validation.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_X86_64_TEST_GL_TAG -# KERNEL_ROOTFS_TAG: - -set -ex - -VALIDATION_TAG="v1.3.281" - -git clone -b "$VALIDATION_TAG" --single-branch --depth 1 https://github.com/KhronosGroup/Vulkan-ValidationLayers.git -pushd Vulkan-ValidationLayers -python3 scripts/update_deps.py --dir external --config debug -cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=OFF -DBUILD_WERROR=OFF -C external/helper.cmake -S . -B build -ninja -C build install -popd -rm -rf Vulkan-ValidationLayers diff --git a/.gitlab-ci/container/build-wayland.sh b/.gitlab-ci/container/build-wayland.sh deleted file mode 100644 index da9089a43..000000000 --- a/.gitlab-ci/container/build-wayland.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BUILD_TAG -# DEBIAN_X86_64_TEST_ANDROID_TAG -# DEBIAN_X86_64_TEST_GL_TAG -# DEBIAN_X86_64_TEST_VK_TAG -# FEDORA_X86_64_BUILD_TAG -# KERNEL_ROOTFS_TAG - -export LIBWAYLAND_VERSION="1.21.0" -export WAYLAND_PROTOCOLS_VERSION="1.34" - -git clone https://gitlab.freedesktop.org/wayland/wayland -cd wayland -git checkout "$LIBWAYLAND_VERSION" -meson setup -Ddocumentation=false -Ddtd_validation=false -Dlibraries=true _build $EXTRA_MESON_ARGS -meson install -C _build -cd .. -rm -rf wayland - -git clone https://gitlab.freedesktop.org/wayland/wayland-protocols -cd wayland-protocols -git checkout "$WAYLAND_PROTOCOLS_VERSION" -meson setup _build $EXTRA_MESON_ARGS -meson install -C _build -cd .. -rm -rf wayland-protocols diff --git a/.gitlab-ci/container/container_post_build.sh b/.gitlab-ci/container/container_post_build.sh deleted file mode 100755 index 5700f488f..000000000 --- a/.gitlab-ci/container/container_post_build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -if test -f /etc/debian_version; then - apt-get autoremove -y --purge -fi - -# Clean up any build cache -rm -rf /root/.cache -rm -rf /root/.cargo -rm -rf /.cargo - -if test -x /usr/bin/ccache; then - ccache --show-stats -fi diff --git a/.gitlab-ci/container/container_pre_build.sh b/.gitlab-ci/container/container_pre_build.sh deleted file mode 100755 index a036ef9f3..000000000 --- a/.gitlab-ci/container/container_pre_build.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -if test -x /usr/bin/ccache; then - if test -f /etc/debian_version; then - CCACHE_PATH=/usr/lib/ccache - elif test -f /etc/alpine-release; then - CCACHE_PATH=/usr/lib/ccache/bin - else - CCACHE_PATH=/usr/lib64/ccache - fi - - # Common setup among container builds before we get to building code. - - export CCACHE_COMPILERCHECK=content - export CCACHE_COMPRESS=true - export CCACHE_DIR=/cache/$CI_PROJECT_NAME/ccache - export PATH=$CCACHE_PATH:$PATH - - # CMake ignores $PATH, so we have to force CC/GCC to the ccache versions. - export CC="${CCACHE_PATH}/gcc" - export CXX="${CCACHE_PATH}/g++" - - ccache --show-stats -fi - -# When not using the mold linker (e.g. unsupported architecture), force -# linkers to gold, since it's so much faster for building. We can't use -# lld because we're on old debian and it's buggy. mingw fails meson builds -# with it with "meson.build:21:0: ERROR: Unable to determine dynamic linker" -find /usr/bin -name \*-ld -o -name ld | \ - grep -v mingw | \ - xargs -n 1 -I '{}' ln -sf '{}.gold' '{}' - -# Make a wrapper script for ninja to always include the -j flags -{ - echo '#!/bin/sh -x' - # shellcheck disable=SC2016 - echo '/usr/bin/ninja -j${FDO_CI_CONCURRENT:-4} "$@"' -} > /usr/local/bin/ninja -chmod +x /usr/local/bin/ninja - -# Set MAKEFLAGS so that all make invocations in container builds include the -# flags (doesn't apply to non-container builds, but we don't run make there) -export MAKEFLAGS="-j${FDO_CI_CONCURRENT:-4}" - -# make wget to try more than once, when download fails or timeout -echo -e "retry_connrefused = on\n" \ - "read_timeout = 300\n" \ - "tries = 4\n" \ - "retry_on_host_error = on\n" \ - "retry_on_http_error = 429,500,502,503,504\n" \ - "wait_retry = 32" >> /etc/wgetrc diff --git a/.gitlab-ci/container/create-android-cross-file.sh b/.gitlab-ci/container/create-android-cross-file.sh deleted file mode 100644 index 3064a487c..000000000 --- a/.gitlab-ci/container/create-android-cross-file.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -ndk=$1 -arch=$2 -cpu_family=$3 -cpu=$4 -cross_file="/cross_file-$arch.txt" -sdk_version=$5 - -# armv7 has the toolchain split between two names. -arch2=${6:-$2} - -# Note that we disable C++ exceptions, because Mesa doesn't use exceptions, -# and allowing it in code generation means we get unwind symbols that break -# the libEGL and driver symbol tests. - -cat > "$cross_file" <$pcdir/$pc < "$toolchain_file" -fi diff --git a/.gitlab-ci/container/cross_build.sh b/.gitlab-ci/container/cross_build.sh deleted file mode 100644 index 6fe2fc210..000000000 --- a/.gitlab-ci/container/cross_build.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive -export LLVM_VERSION="${LLVM_VERSION:=15}" - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( -) - -DEPS=( - "crossbuild-essential-$arch" - "pkgconf:$arch" - "libasan8:$arch" - "libdrm-dev:$arch" - "libelf-dev:$arch" - "libexpat1-dev:$arch" - "libffi-dev:$arch" - "libpciaccess-dev:$arch" - "libstdc++6:$arch" - "libvulkan-dev:$arch" - "libx11-dev:$arch" - "libx11-xcb-dev:$arch" - "libxcb-dri2-0-dev:$arch" - "libxcb-dri3-dev:$arch" - "libxcb-glx0-dev:$arch" - "libxcb-present-dev:$arch" - "libxcb-randr0-dev:$arch" - "libxcb-shm0-dev:$arch" - "libxcb-xfixes0-dev:$arch" - "libxdamage-dev:$arch" - "libxext-dev:$arch" - "libxrandr-dev:$arch" - "libxshmfence-dev:$arch" - "libxxf86vm-dev:$arch" - "libwayland-dev:$arch" -) - -dpkg --add-architecture $arch - -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list - -apt-get update - -apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \ - $EXTRA_LOCAL_PACKAGES - -if [[ $arch != "armhf" ]]; then - # We don't need clang-format for the crossbuilds, but the installed amd64 - # package will conflict with libclang. Uninstall clang-format (and its - # problematic dependency) to fix. - apt-get remove -y "clang-format-${LLVM_VERSION}" "libclang-cpp${LLVM_VERSION}" \ - "llvm-${LLVM_VERSION}-runtime" "llvm-${LLVM_VERSION}-linker-tools" - - # llvm-*-tools:$arch conflicts with python3:amd64. Install dependencies only - # with apt-get, then force-install llvm-*-{dev,tools}:$arch with dpkg to get - # around this. - apt-get install -y --no-remove --no-install-recommends \ - "libclang-cpp${LLVM_VERSION}:$arch" \ - "libgcc-s1:$arch" \ - "libtinfo-dev:$arch" \ - "libz3-dev:$arch" \ - "llvm-${LLVM_VERSION}:$arch" \ - zlib1g -fi - -. .gitlab-ci/container/create-cross-file.sh $arch - - -. .gitlab-ci/container/container_pre_build.sh - - -# dependencies where we want a specific version -MULTIARCH_PATH=$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH) -export EXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/${MULTIARCH_PATH}" -. .gitlab-ci/container/build-wayland.sh - -. .gitlab-ci/container/build-directx-headers.sh - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh - -# This needs to be done after container_post_build.sh, or apt-get breaks in there -if [[ $arch != "armhf" ]]; then - apt-get download llvm-"${LLVM_VERSION}"-{dev,tools}:"$arch" - dpkg -i --force-depends llvm-"${LLVM_VERSION}"-*_"${arch}".deb - rm llvm-"${LLVM_VERSION}"-*_"${arch}".deb -fi diff --git a/.gitlab-ci/container/debian/android_build.sh b/.gitlab-ci/container/debian/android_build.sh deleted file mode 100644 index 338efcca8..000000000 --- a/.gitlab-ci/container/debian/android_build.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BUILD_TAG - -set -ex - -EPHEMERAL=( - autoconf - rdfind - unzip -) - -apt-get install -y --no-remove "${EPHEMERAL[@]}" - -# Fetch the NDK and extract just the toolchain we want. -ndk=$ANDROID_NDK -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o $ndk.zip https://dl.google.com/android/repository/$ndk-linux.zip -unzip -d / $ndk.zip "$ndk/toolchains/llvm/*" -rm $ndk.zip -# Since it was packed as a zip file, symlinks/hardlinks got turned into -# duplicate files. Turn them into hardlinks to save on container space. -rdfind -makehardlinks true -makeresultsfile false /${ndk}/ -# Drop some large tools we won't use in this build. -find /${ndk}/ -type f \( -iname '*clang-check*' -o -iname '*clang-tidy*' -o -iname '*lldb*' \) -exec rm -f {} \; - -sh .gitlab-ci/container/create-android-ndk-pc.sh /$ndk zlib.pc "" "-lz" "1.2.3" $ANDROID_SDK_VERSION - -sh .gitlab-ci/container/create-android-cross-file.sh /$ndk x86_64-linux-android x86_64 x86_64 $ANDROID_SDK_VERSION -sh .gitlab-ci/container/create-android-cross-file.sh /$ndk i686-linux-android x86 x86 $ANDROID_SDK_VERSION -sh .gitlab-ci/container/create-android-cross-file.sh /$ndk aarch64-linux-android aarch64 armv8 $ANDROID_SDK_VERSION -sh .gitlab-ci/container/create-android-cross-file.sh /$ndk arm-linux-androideabi arm armv7hl $ANDROID_SDK_VERSION armv7a-linux-androideabi - -for arch in \ - x86_64-linux-android \ - i686-linux-android \ - aarch64-linux-android \ - arm-linux-androideabi ; do - EXTRA_MESON_ARGS="--cross-file=/cross_file-$arch.txt --libdir=lib/$arch -Dnouveau=disabled -Dintel=disabled" \ - . .gitlab-ci/container/build-libdrm.sh -done - -rm -rf $LIBDRM_VERSION - -export LIBELF_VERSION=libelf-0.8.13 -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O https://fossies.org/linux/misc/old/$LIBELF_VERSION.tar.gz - -# Not 100% sure who runs the mirror above so be extra careful -if ! echo "4136d7b4c04df68b686570afa26988ac ${LIBELF_VERSION}.tar.gz" | md5sum -c -; then - echo "Checksum failed" - exit 1 -fi - -tar -xf ${LIBELF_VERSION}.tar.gz -cd $LIBELF_VERSION - -# Work around a bug in the original configure not enabling __LIBELF64. -autoreconf - -for arch in \ - x86_64-linux-android \ - i686-linux-android \ - aarch64-linux-android \ - arm-linux-androideabi ; do - - ccarch=${arch} - if [ "${arch}" == 'arm-linux-androideabi' ] - then - ccarch=armv7a-linux-androideabi - fi - - export CC=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar - export CC=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}${ANDROID_SDK_VERSION}-clang - export CXX=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${ccarch}${ANDROID_SDK_VERSION}-clang++ - export LD=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/${arch}-ld - export RANLIB=/${ndk}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib - - # The configure script doesn't know about android, but doesn't really use the host anyway it - # seems - ./configure --host=x86_64-linux-gnu --disable-nls --disable-shared \ - --libdir=/usr/local/lib/${arch} - make install - make distclean -done - -cd .. -rm -rf $LIBELF_VERSION - -apt-get purge -y "${EPHEMERAL[@]}" diff --git a/.gitlab-ci/container/debian/arm32_test.sh b/.gitlab-ci/container/debian/arm32_test.sh deleted file mode 100644 index 0a35d2451..000000000 --- a/.gitlab-ci/container/debian/arm32_test.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -e - -arch=armhf . .gitlab-ci/container/debian/arm_test.sh diff --git a/.gitlab-ci/container/debian/arm64_build.sh b/.gitlab-ci/container/debian/arm64_build.sh deleted file mode 100644 index 4f34532b7..000000000 --- a/.gitlab-ci/container/debian/arm64_build.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -e -set -o xtrace - -export LLVM_VERSION="${LLVM_VERSION:=15}" - -apt-get -y install ca-certificates -sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list -apt-get update - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - libssl-dev -) - -DEPS=( - apt-utils - android-libext4-utils - autoconf - automake - bc - bison - ccache - cmake - curl - fastboot - flatbuffers-compiler - flex - g++ - git - glslang-tools - kmod - libasan8 - libdrm-dev - libelf-dev - libexpat1-dev - libflatbuffers-dev - libvulkan-dev - libx11-dev - libx11-xcb-dev - libxcb-dri2-0-dev - libxcb-dri3-dev - libxcb-glx0-dev - libxcb-present-dev - libxcb-randr0-dev - libxcb-shm0-dev - libxcb-xfixes0-dev - libxdamage-dev - libxext-dev - libxrandr-dev - libxshmfence-dev - libxtensor-dev - libxxf86vm-dev - libwayland-dev - libwayland-egl-backend-dev - "llvm-${LLVM_VERSION}-dev" - ninja-build - meson - openssh-server - pkgconf - python3-mako - python3-pil - python3-pip - python3-pycparser - python3-requests - python3-setuptools - u-boot-tools - xz-utils - zlib1g-dev - zstd -) - -apt-get -y install "${DEPS[@]}" "${EPHEMERAL[@]}" - -pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 - -arch=armhf -. .gitlab-ci/container/cross_build.sh - -. .gitlab-ci/container/container_pre_build.sh - -. .gitlab-ci/container/build-mold.sh - -. .gitlab-ci/container/build-wayland.sh - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/arm64_test.sh b/.gitlab-ci/container/debian/arm64_test.sh deleted file mode 100644 index fa34934c3..000000000 --- a/.gitlab-ci/container/debian/arm64_test.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -set -e - -arch=arm64 . .gitlab-ci/container/debian/arm_test.sh diff --git a/.gitlab-ci/container/debian/arm_test.sh b/.gitlab-ci/container/debian/arm_test.sh deleted file mode 100644 index c4f35a3d4..000000000 --- a/.gitlab-ci/container/debian/arm_test.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2154 # arch is assigned in previous scripts -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BASE_TAG -# KERNEL_ROOTFS_TAG - -set -e -set -o xtrace - -############### Install packages for baremetal testing -DEPS=( - cpio - curl - fastboot - netcat-openbsd - openssh-server - procps - python3-distutils - python3-filelock - python3-fire - python3-minimal - python3-serial - rsync - snmp - zstd -) - -apt-get install -y ca-certificates -sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list -apt-get update - -apt-get install -y --no-remove "${DEPS[@]}" - -# setup SNMPv2 SMI MIB -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - https://raw.githubusercontent.com/net-snmp/net-snmp/master/mibs/SNMPv2-SMI.txt \ - -o /usr/share/snmp/mibs/SNMPv2-SMI.txt - -. .gitlab-ci/container/baremetal_build.sh - -mkdir -p /baremetal-files/jetson-nano/boot/ -ln -s \ - /baremetal-files/Image \ - /baremetal-files/tegra210-p3450-0000.dtb \ - /baremetal-files/jetson-nano/boot/ - -mkdir -p /baremetal-files/jetson-tk1/boot/ -ln -s \ - /baremetal-files/zImage \ - /baremetal-files/tegra124-jetson-tk1.dtb \ - /baremetal-files/jetson-tk1/boot/ diff --git a/.gitlab-ci/container/debian/llvm-snapshot.gpg.key b/.gitlab-ci/container/debian/llvm-snapshot.gpg.key deleted file mode 100644 index aa6b105aa..000000000 --- a/.gitlab-ci/container/debian/llvm-snapshot.gpg.key +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.12 (GNU/Linux) - -mQINBFE9lCwBEADi0WUAApM/mgHJRU8lVkkw0CHsZNpqaQDNaHefD6Rw3S4LxNmM -EZaOTkhP200XZM8lVdbfUW9xSjA3oPldc1HG26NjbqqCmWpdo2fb+r7VmU2dq3NM -R18ZlKixiLDE6OUfaXWKamZsXb6ITTYmgTO6orQWYrnW6ckYHSeaAkW0wkDAryl2 -B5v8aoFnQ1rFiVEMo4NGzw4UX+MelF7rxaaregmKVTPiqCOSPJ1McC1dHFN533FY -Wh/RVLKWo6npu+owtwYFQW+zyQhKzSIMvNujFRzhIxzxR9Gn87MoLAyfgKEzrbbT -DhqqNXTxS4UMUKCQaO93TzetX/EBrRpJj+vP640yio80h4Dr5pAd7+LnKwgpTDk1 -G88bBXJAcPZnTSKu9I2c6KY4iRNbvRz4i+ZdwwZtdW4nSdl2792L7Sl7Nc44uLL/ -ZqkKDXEBF6lsX5XpABwyK89S/SbHOytXv9o4puv+65Ac5/UShspQTMSKGZgvDauU -cs8kE1U9dPOqVNCYq9Nfwinkf6RxV1k1+gwtclxQuY7UpKXP0hNAXjAiA5KS5Crq -7aaJg9q2F4bub0mNU6n7UI6vXguF2n4SEtzPRk6RP+4TiT3bZUsmr+1ktogyOJCc -Ha8G5VdL+NBIYQthOcieYCBnTeIH7D3Sp6FYQTYtVbKFzmMK+36ERreL/wARAQAB -tD1TeWx2ZXN0cmUgTGVkcnUgLSBEZWJpYW4gTExWTSBwYWNrYWdlcyA8c3lsdmVz -dHJlQGRlYmlhbi5vcmc+iQI4BBMBAgAiBQJRPZQsAhsDBgsJCAcDAgYVCAIJCgsE -FgIDAQIeAQIXgAAKCRAVz00Yr090Ibx+EADArS/hvkDF8juWMXxh17CgR0WZlHCC -9CTBWkg5a0bNN/3bb97cPQt/vIKWjQtkQpav6/5JTVCSx2riL4FHYhH0iuo4iAPR -udC7Cvg8g7bSPrKO6tenQZNvQm+tUmBHgFiMBJi92AjZ/Qn1Shg7p9ITivFxpLyX -wpmnF1OKyI2Kof2rm4BFwfSWuf8Fvh7kDMRLHv+MlnK/7j/BNpKdozXxLcwoFBmn -l0WjpAH3OFF7Pvm1LJdf1DjWKH0Dc3sc6zxtmBR/KHHg6kK4BGQNnFKujcP7TVdv -gMYv84kun14pnwjZcqOtN3UJtcx22880DOQzinoMs3Q4w4o05oIF+sSgHViFpc3W -R0v+RllnH05vKZo+LDzc83DQVrdwliV12eHxrMQ8UYg88zCbF/cHHnlzZWAJgftg -hB08v1BKPgYRUzwJ6VdVqXYcZWEaUJmQAPuAALyZESw94hSo28FAn0/gzEc5uOYx -K+xG/lFwgAGYNb3uGM5m0P6LVTfdg6vDwwOeTNIExVk3KVFXeSQef2ZMkhwA7wya -KJptkb62wBHFE+o9TUdtMCY6qONxMMdwioRE5BYNwAsS1PnRD2+jtlI0DzvKHt7B -MWd8hnoUKhMeZ9TNmo+8CpsAtXZcBho0zPGz/R8NlJhAWpdAZ1CmcPo83EW86Yq7 -BxQUKnNHcwj2ebkCDQRRPZQsARAA4jxYmbTHwmMjqSizlMJYNuGOpIidEdx9zQ5g -zOr431/VfWq4S+VhMDhs15j9lyml0y4ok215VRFwrAREDg6UPMr7ajLmBQGau0Fc -bvZJ90l4NjXp5p0NEE/qOb9UEHT7EGkEhaZ1ekkWFTWCgsy7rRXfZLxB6sk7pzLC -DshyW3zjIakWAnpQ5j5obiDy708pReAuGB94NSyb1HoW/xGsGgvvCw4r0w3xPStw -F1PhmScE6NTBIfLliea3pl8vhKPlCh54Hk7I8QGjo1ETlRP4Qll1ZxHJ8u25f/ta -RES2Aw8Hi7j0EVcZ6MT9JWTI83yUcnUlZPZS2HyeWcUj+8nUC8W4N8An+aNps9l/ -21inIl2TbGo3Yn1JQLnA1YCoGwC34g8QZTJhElEQBN0X29ayWW6OdFx8MDvllbBV -ymmKq2lK1U55mQTfDli7S3vfGz9Gp/oQwZ8bQpOeUkc5hbZszYwP4RX+68xDPfn+ -M9udl+qW9wu+LyePbW6HX90LmkhNkkY2ZzUPRPDHZANU5btaPXc2H7edX4y4maQa -xenqD0lGh9LGz/mps4HEZtCI5CY8o0uCMF3lT0XfXhuLksr7Pxv57yue8LLTItOJ -d9Hmzp9G97SRYYeqU+8lyNXtU2PdrLLq7QHkzrsloG78lCpQcalHGACJzrlUWVP/ -fN3Ht3kAEQEAAYkCHwQYAQIACQUCUT2ULAIbDAAKCRAVz00Yr090IbhWEADbr50X -OEXMIMGRLe+YMjeMX9NG4jxs0jZaWHc/WrGR+CCSUb9r6aPXeLo+45949uEfdSsB -pbaEdNWxF5Vr1CSjuO5siIlgDjmT655voXo67xVpEN4HhMrxugDJfCa6z97P0+ML -PdDxim57uNqkam9XIq9hKQaurxMAECDPmlEXI4QT3eu5qw5/knMzDMZj4Vi6hovL -wvvAeLHO/jsyfIdNmhBGU2RWCEZ9uo/MeerPHtRPfg74g+9PPfP6nyHD2Wes6yGd -oVQwtPNAQD6Cj7EaA2xdZYLJ7/jW6yiPu98FFWP74FN2dlyEA2uVziLsfBrgpS4l -tVOlrO2YzkkqUGrybzbLpj6eeHx+Cd7wcjI8CalsqtL6cG8cUEjtWQUHyTbQWAgG -5VPEgIAVhJ6RTZ26i/G+4J8neKyRs4vz+57UGwY6zI4AB1ZcWGEE3Bf+CDEDgmnP -LSwbnHefK9IljT9XU98PelSryUO/5UPw7leE0akXKB4DtekToO226px1VnGp3Bov -1GBGvpHvL2WizEwdk+nfk8LtrLzej+9FtIcq3uIrYnsac47Pf7p0otcFeTJTjSq3 -krCaoG4Hx0zGQG2ZFpHrSrZTVy6lxvIdfi0beMgY6h78p6M9eYZHQHc02DjFkQXN -bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw== -=j+4q ------END PGP PUBLIC KEY BLOCK----- diff --git a/.gitlab-ci/container/debian/ppc64el_build.sh b/.gitlab-ci/container/debian/ppc64el_build.sh deleted file mode 100644 index 23db25cb7..000000000 --- a/.gitlab-ci/container/debian/ppc64el_build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -arch=ppc64el - -. .gitlab-ci/container/cross_build.sh diff --git a/.gitlab-ci/container/debian/s390x_build.sh b/.gitlab-ci/container/debian/s390x_build.sh deleted file mode 100644 index adabfd0e4..000000000 --- a/.gitlab-ci/container/debian/s390x_build.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -set -e - -arch=s390x - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - libssl-dev -) - -apt-get -y install "${EPHEMERAL[@]}" - -. .gitlab-ci/container/build-mold.sh - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/cross_build.sh diff --git a/.gitlab-ci/container/debian/winehq.gpg.key b/.gitlab-ci/container/debian/winehq.gpg.key deleted file mode 100644 index a8cba23cb..000000000 --- a/.gitlab-ci/container/debian/winehq.gpg.key +++ /dev/null @@ -1,53 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -mQGNBFwOmrgBDAC9FZW3dFpew1hwDaqRfdQQ1ABcmOYu1NKZHwYjd+bGvcR2LRGe -R5dfRqG1Uc/5r6CPCMvnWxFprymkqKEADn8eFn+aCnPx03HrhA+lNEbciPfTHylt -NTTuRua7YpJIgEOjhXUbxXxnvF8fhUf5NJpJg6H6fPQARUW+5M//BlVgwn2jhzlW -U+uwgeJthhiuTXkls9Yo3EoJzmkUih+ABZgvaiBpr7GZRw9GO1aucITct0YDNTVX -KA6el78/udi5GZSCKT94yY9ArN4W6NiOFCLV7MU5d6qMjwGFhfg46NBv9nqpGinK -3NDjqCevKouhtKl2J+nr3Ju3Spzuv6Iex7tsOqt+XdZCoY+8+dy3G5zbJwBYsMiS -rTNF55PHtBH1S0QK5OoN2UR1ie/aURAyAFEMhTzvFB2B2v7C0IKIOmYMEG+DPMs9 -FQs/vZ1UnAQgWk02ZiPryoHfjFO80+XYMrdWN+RSo5q9ODClloaKXjqI/aWLGirm -KXw2R8tz31go3NMAEQEAAbQnV2luZUhRIHBhY2thZ2VzIDx3aW5lLWRldmVsQHdp -bmVocS5vcmc+iQHOBBMBCgA4AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE -1D9kAUU2nFHXht3qdvGiD/mHZy8FAlwOmyUACgkQdvGiD/mHZy/zkwv7B+nKFlDY -Bzz/7j0gqIODbs5FRZRtuf/IuPP3vZdWlNfAW/VyaLtVLJCM/mmaf/O6/gJ+D+E9 -BBoSmHdHzBBOQHIj5IbRedynNcHT5qXsdBeU2ZPR50sdE+jmukvw3Wa5JijoDgUu -LGLGtU48Z3JsBXQ54OlnTZXQ2SMFhRUa10JANXSJQ+QY2Wo2Pi2+MEAHcrd71A2S -0mT2DQSSBQ92c6WPfUpOSBawd8P0ipT7rVFNLJh8HVQGyEWxPl8ecDEHoVfG2rdV -D0ADbNLx9031UUwpUicO6vW/2Ec7c3VNG1cpOtyNTw/lEgvsXOh3GQs/DvFvMy/h -QzaeF3Qq6cAPlKuxieJe4lLYFBTmCAT4iB1J8oeFs4G7ScfZH4+4NBe3VGoeCD/M -Wl+qxntAroblxiFuqtPJg+NKZYWBzkptJNhnrBxcBnRinGZLw2k/GR/qPMgsR2L4 -cP+OUuka+R2gp9oDVTZTyMowz+ROIxnEijF50pkj2VBFRB02rfiMp7q6iQIzBBAB -CgAdFiEE2iNXmnTUrZr50/lFzvrI6q8XUZ0FAlwOm3AACgkQzvrI6q8XUZ3KKg/+ -MD8CgvLiHEX90fXQ23RZQRm2J21w3gxdIen/N8yJVIbK7NIgYhgWfGWsGQedtM7D -hMwUlDSRb4rWy9vrXBaiZoF3+nK9AcLvPChkZz28U59Jft6/l0gVrykey/ERU7EV -w1Ie1eRu0tRSXsKvMZyQH8897iHZ7uqoJgyk8U8CvSW+V80yqLB2M8Tk8ECZq34f -HqUIGs4Wo0UZh0vV4+dEQHBh1BYpmmWl+UPf7nzNwFWXu/EpjVhkExRqTnkEJ+Ai -OxbtrRn6ETKzpV4DjyifqQF639bMIem7DRRf+mkcrAXetvWkUkE76e3E9KLvETCZ -l4SBfgqSZs2vNngmpX6Qnoh883aFo5ZgVN3v6uTS+LgTwMt/XlnDQ7+Zw+ehCZ2R -CO21Y9Kbw6ZEWls/8srZdCQ2LxnyeyQeIzsLnqT/waGjQj35i4exzYeWpojVDb3r -tvvOALYGVlSYqZXIALTx2/tHXKLHyrn1C0VgHRnl+hwv7U49f7RvfQXpx47YQN/C -PWrpbG69wlKuJptr+olbyoKAWfl+UzoO8vLMo5njWQNAoAwh1H8aFUVNyhtbkRuq -l0kpy1Cmcq8uo6taK9lvYp8jak7eV8lHSSiGUKTAovNTwfZG2JboGV4/qLDUKvpa -lPp2xVpF9MzA8VlXTOzLpSyIVxZnPTpL+xR5P9WQjMS5AY0EXA6auAEMAMReKL89 -0z0SL+/i/geB/agfG/k6AXiG2a9kVWeIjAqFwHKl9W/DTNvOqCDgAt51oiHGRRjt -1Xm3XZD4p+GM1uZWn9qIFL49Gt5x94TqdrsKTVCJr0Kazn2mKQc7aja0zac+WtZG -OFn7KbniuAcwtC780cyikfmmExLI1/Vjg+NiMlMtZfpK6FIW+ulPiDQPdzIhVppx -w9/KlR2Fvh4TbzDsUqkFQSSAFdQ65BWgvzLpZHdKO/ILpDkThLbipjtvbBv/pHKM -O/NFTNoYkJ3cNW/kfcynwV+4AcKwdRz2A3Mez+g5TKFYPZROIbayOo01yTMLfz2p -jcqki/t4PACtwFOhkAs+MYPPyZDUkTFcEJQCPDstkAgmJWI3K2qELtDOLQyps3WY -Mfp+mntOdc8bKjFTMcCEk1zcm14K4Oms+w6dw2UnYsX1FAYYhPm8HUYwE4kP8M+D -9HGLMjLqqF/kanlCFZs5Avx3mDSAx6zS8vtNdGh+64oDNk4x4A2j8GTUuQARAQAB -iQG8BBgBCgAmFiEE1D9kAUU2nFHXht3qdvGiD/mHZy8FAlwOmrgCGwwFCQPCZwAA -CgkQdvGiD/mHZy9FnAwAgfUkxsO53Pm2iaHhtF4+BUc8MNJj64Jvm1tghr6PBRtM -hpbvvN8SSOFwYIsS+2BMsJ2ldox4zMYhuvBcgNUlix0G0Z7h1MjftDdsLFi1DNv2 -J9dJ9LdpWdiZbyg4Sy7WakIZ/VvH1Znd89Imo7kCScRdXTjIw2yCkotE5lK7A6Ns -NbVuoYEN+dbGioF4csYehnjTdojwF/19mHFxrXkdDZ/V6ZYFIFxEsxL8FEuyI4+o -LC3DFSA4+QAFdkjGFXqFPlaEJxWt5d7wk0y+tt68v+ulkJ900BvR+OOMqQURwrAi -iP3I28aRrMjZYwyqHl8i/qyIv+WRakoDKV+wWteR5DmRAPHmX2vnlPlCmY8ysR6J -2jUAfuDFVu4/qzJe6vw5tmPJMdfvy0W5oogX6sEdin5M5w2b3WrN8nXZcjbWymqP -6jCdl6eoCCkKNOIbr/MMSkd2KqAqDVM5cnnlQ7q+AXzwNpj3RGJVoBxbS0nn9JWY -QNQrWh9rAcMIGT+b1le0 -=4lsa ------END PGP PUBLIC KEY BLOCK----- diff --git a/.gitlab-ci/container/debian/x86_32_build.sh b/.gitlab-ci/container/debian/x86_32_build.sh deleted file mode 100644 index f6030f657..000000000 --- a/.gitlab-ci/container/debian/x86_32_build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -arch=i386 - -. .gitlab-ci/container/cross_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_build-base.sh b/.gitlab-ci/container/debian/x86_64_build-base.sh deleted file mode 100644 index f1a5c7d7f..000000000 --- a/.gitlab-ci/container/debian/x86_64_build-base.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BUILD_TAG - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive -export LLVM_VERSION="${LLVM_VERSION:=15}" - -apt-get install -y ca-certificates -sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list - -# Ephemeral packages (installed for this script and removed again at -# the end) -EPHEMERAL=( -) - -DEPS=( - apt-utils - bison - ccache - curl - "clang-${LLVM_VERSION}" - "clang-format-${LLVM_VERSION}" - dpkg-cross - findutils - flex - flatbuffers-compiler - g++ - cmake - gcc - git - glslang-tools - kmod - "libclang-${LLVM_VERSION}-dev" - "libclang-cpp${LLVM_VERSION}-dev" - "libclang-common-${LLVM_VERSION}-dev" - libelf-dev - libepoxy-dev - libexpat1-dev - libflatbuffers-dev - libgtk-3-dev - "libllvm${LLVM_VERSION}" - libomxil-bellagio-dev - libpciaccess-dev - libunwind-dev - libva-dev - libvdpau-dev - libvulkan-dev - libx11-dev - libx11-xcb-dev - libxext-dev - libxml2-utils - libxrandr-dev - libxrender-dev - libxshmfence-dev - libxtensor-dev - libxxf86vm-dev - libwayland-egl-backend-dev - make - ninja-build - openssh-server - pkgconf - python3-mako - python3-pil - python3-pip - python3-ply - python3-pycparser - python3-requests - python3-setuptools - qemu-user - valgrind - x11proto-dri2-dev - x11proto-gl-dev - x11proto-randr-dev - xz-utils - zlib1g-dev - zstd -) - -apt-get update - -apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \ - $EXTRA_LOCAL_PACKAGES - -. .gitlab-ci/container/build-llvm-spirv.sh - -. .gitlab-ci/container/build-libclc.sh - -# Needed for ci-fairy, this revision is able to upload files to S3 -pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 - -# We need at least 1.3.1 for rusticl -pip3 install --break-system-packages 'meson==1.3.1' - -. .gitlab-ci/container/build-rust.sh - -############### Uninstall ephemeral packages - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_build.sh b/.gitlab-ci/container/debian/x86_64_build.sh deleted file mode 100644 index b41223e38..000000000 --- a/.gitlab-ci/container/debian/x86_64_build.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BUILD_TAG - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive -export LLVM_VERSION="${LLVM_VERSION:=15}" - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - autoconf - automake - autotools-dev - bzip2 - libtool - libssl-dev -) - -DEPS=( - check - "clang-${LLVM_VERSION}" - libasan8 - libarchive-dev - libdrm-dev - "libclang-cpp${LLVM_VERSION}-dev" - libgbm-dev - libglvnd-dev - liblua5.3-dev - libxcb-dri2-0-dev - libxcb-dri3-dev - libxcb-glx0-dev - libxcb-present-dev - libxcb-randr0-dev - libxcb-shm0-dev - libxcb-sync-dev - libxcb-xfixes0-dev - libxcb1-dev - libxml2-dev - "llvm-${LLVM_VERSION}-dev" - ocl-icd-opencl-dev - python3-pip - python3-venv - procps - spirv-tools - shellcheck - strace - time - yamllint - zstd -) - -apt-get update - -apt-get install -y --no-remove \ - "${DEPS[@]}" "${EPHEMERAL[@]}" - - -. .gitlab-ci/container/container_pre_build.sh - -# dependencies where we want a specific version -export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual - -export XORGMACROS_VERSION=util-macros-1.19.0 - -. .gitlab-ci/container/build-mold.sh - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -O \ - $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2 -tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2 -cd $XORGMACROS_VERSION; ./configure; make install; cd .. -rm -rf $XORGMACROS_VERSION - -. .gitlab-ci/container/build-wayland.sh - -. .gitlab-ci/container/build-shader-db.sh - -. .gitlab-ci/container/build-directx-headers.sh - -python3 -m pip install --break-system-packages -r .gitlab-ci/lava/requirements.txt - -# install bindgen -RUSTFLAGS='-L native=/usr/local/lib' cargo install \ - bindgen-cli --version 0.65.1 \ - --locked \ - -j ${FDO_CI_CONCURRENT:-4} \ - --root /usr/local - -# install cbindgen -RUSTFLAGS='-L native=/usr/local/lib' cargo install \ - cbindgen --version 0.26.0 \ - --locked \ - -j ${FDO_CI_CONCURRENT:-4} \ - --root /usr/local - -############### Uninstall the build software - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_test-android.sh b/.gitlab-ci/container/debian/x86_64_test-android.sh deleted file mode 100644 index 262c771dd..000000000 --- a/.gitlab-ci/container/debian/x86_64_test-android.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/env bash -# The relative paths in this file only become valid at runtime. -# shellcheck disable=SC1091 - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - build-essential:native - ccache - cmake - config-package-dev - debhelper-compat - dpkg-dev - ninja-build - unzip -) - -DEPS=( - iproute2 -) -apt-get install -y --no-remove --no-install-recommends \ - "${DEPS[@]}" "${EPHEMERAL[@]}" - -############### Building ... - -. .gitlab-ci/container/container_pre_build.sh - -############### Downloading NDK for native builds for the guest ... - -# Fetch the NDK and extract just the toolchain we want. -ndk=$ANDROID_NDK -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o "$ndk.zip" "https://dl.google.com/android/repository/$ndk-linux.zip" -unzip -d / "$ndk.zip" -rm "$ndk.zip" - -############### Build dEQP runner - -export ANDROID_NDK_HOME=/$ndk -export RUST_TARGET=x86_64-linux-android -. .gitlab-ci/container/build-rust.sh -. .gitlab-ci/container/build-deqp-runner.sh - -rm -rf /root/.cargo -rm -rf /root/.rustup - -############### Build dEQP GL - -DEQP_API=GL \ -DEQP_TARGET="android" \ -EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \ -. .gitlab-ci/container/build-deqp.sh - -DEQP_API=GLES \ -DEQP_TARGET="android" \ -EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28" \ -. .gitlab-ci/container/build-deqp.sh - -############### Downloading Cuttlefish resources ... - -CUTTLEFISH_VERSION=9082637 # Chosen from https://ci.android.com/builds/branches/aosp-master/grid? - -mkdir /cuttlefish -pushd /cuttlefish - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -o aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip -unzip aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip -rm aosp_cf_x86_64_phone-img-$CUTTLEFISH_VERSION.zip -ls -lhS ./* - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - https://ci.android.com/builds/submitted/$CUTTLEFISH_VERSION/aosp_cf_x86_64_phone-userdebug/latest/raw/cvd-host_package.tar.gz | tar -xzvf- - -popd - -############### Building and installing Debian package ... - -ANDROID_CUTTLEFISH_VERSION=f6494d9fbeaa9974b56923e3029909e5d5f440dd - -mkdir android-cuttlefish -pushd android-cuttlefish -git init -git remote add origin https://github.com/google/android-cuttlefish.git -git fetch --depth 1 origin "$ANDROID_CUTTLEFISH_VERSION" -git checkout FETCH_HEAD - -pushd base -dpkg-buildpackage -uc -us -popd - -apt-get install -y ./cuttlefish-base_*.deb - -popd -rm -rf android-cuttlefish - -addgroup --system kvm -usermod -a -G kvm,cvdnetwork root - -############### Uninstall the build software - -rm -rf "/${ndk:?}" - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_test-base.sh b/.gitlab-ci/container/debian/x86_64_test-base.sh deleted file mode 100644 index 586f7c5f4..000000000 --- a/.gitlab-ci/container/debian/x86_64_test-base.sh +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# DEBIAN_BASE_TAG - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive - -apt-get install -y ca-certificates gnupg2 software-properties-common - -sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* - -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list - -export LLVM_VERSION="${LLVM_VERSION:=15}" - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - autoconf - automake - bc - bison - bzip2 - ccache - cmake - "clang-${LLVM_VERSION}" - flex - glslang-tools - g++ - libasound2-dev - libcap-dev - "libclang-cpp${LLVM_VERSION}-dev" - libdrm-dev - libegl-dev - libelf-dev - libepoxy-dev - libgbm-dev - libpciaccess-dev - libssl-dev - libvulkan-dev - libwayland-dev - libx11-xcb-dev - libxext-dev - "llvm-${LLVM_VERSION}-dev" - make - meson - openssh-server - patch - pkgconf - protobuf-compiler - python3-dev - python3-pip - python3-setuptools - python3-wheel - spirv-tools - wayland-protocols - xz-utils -) - -DEPS=( - apt-utils - curl - git - git-lfs - inetutils-syslogd - iptables - jq - libasan8 - libdrm2 - libexpat1 - "libllvm${LLVM_VERSION}" - liblz4-1 - libpng16-16 - libpython3.11 - libvulkan1 - libwayland-client0 - libwayland-server0 - libxcb-ewmh2 - libxcb-randr0 - libxcb-xfixes0 - libxkbcommon0 - libxrandr2 - libxrender1 - python3-mako - python3-numpy - python3-packaging - python3-pil - python3-requests - python3-six - python3-yaml - socat - vulkan-tools - waffle-utils - xauth - xvfb - zlib1g - zstd -) - -apt-get update -apt-get dist-upgrade -y - -apt-get install --purge -y \ - sysvinit-core libelogind0 - -apt-get install -y --no-remove "${DEPS[@]}" - -apt-get install -y --no-install-recommends "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_pre_build.sh - -############### Build kernel - -export DEFCONFIG="arch/x86/configs/x86_64_defconfig" -export KERNEL_IMAGE_NAME=bzImage -export KERNEL_ARCH=x86_64 -export DEBIAN_ARCH=amd64 - -mkdir -p /lava-files/ -. .gitlab-ci/container/build-kernel.sh - -# Needed for ci-fairy, this revision is able to upload files to MinIO -# and doesn't depend on git -pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 - -# Needed for manipulation with traces yaml files. -pip3 install --break-system-packages yq - -. .gitlab-ci/container/build-mold.sh - -############### Build LLVM-SPIRV translator - -. .gitlab-ci/container/build-llvm-spirv.sh - -############### Build libclc - -. .gitlab-ci/container/build-libclc.sh - -############### Build Wayland - -. .gitlab-ci/container/build-wayland.sh - -############### Build Crosvm - -. .gitlab-ci/container/build-rust.sh -. .gitlab-ci/container/build-crosvm.sh - -############### Build dEQP runner -. .gitlab-ci/container/build-deqp-runner.sh - - -apt-get purge -y "${EPHEMERAL[@]}" - -rm -rf /root/.rustup - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_test-gl.sh b/.gitlab-ci/container/debian/x86_64_test-gl.sh deleted file mode 100644 index d5bafd322..000000000 --- a/.gitlab-ci/container/debian/x86_64_test-gl.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive -export LLVM_VERSION="${LLVM_VERSION:=15}" - -apt-get install -y libelogind0 # this interfere with systemd deps, install separately - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - bzip2 - ccache - "clang-${LLVM_VERSION}" - cmake - g++ - glslang-tools - libasound2-dev - libcap-dev - "libclang-cpp${LLVM_VERSION}-dev" - libdrm-dev - libgles2-mesa-dev - libgtest-dev - libpciaccess-dev - libpng-dev - libudev-dev - libvulkan-dev - libwaffle-dev - libwayland-dev - libx11-xcb-dev - libxcb-dri2-0-dev - libxcb-dri3-dev - libxcb-present-dev - libxfixes-dev - libxkbcommon-dev - libxrandr-dev - libxrender-dev - "llvm-${LLVM_VERSION}-dev" - make - meson - ocl-icd-opencl-dev - patch - pkgconf - python3-distutils - xz-utils -) - -DEPS=( - clinfo - iptables - kmod - "libclang-common-${LLVM_VERSION}-dev" - "libclang-cpp${LLVM_VERSION}" - libcap2 - libegl1 - libepoxy0 - libfdt1 - libxcb-shm0 - ocl-icd-libopencl1 - python3-lxml - python3-renderdoc - python3-simplejson - spirv-tools - sysvinit-core - weston - xwayland -) - -apt-get update - -apt-get install -y --no-remove "${DEPS[@]}" "${EPHEMERAL[@]}" \ - $EXTRA_LOCAL_PACKAGES - - -. .gitlab-ci/container/container_pre_build.sh - -############### Build piglit - -PIGLIT_OPTS="-DPIGLIT_BUILD_GLX_TESTS=ON -DPIGLIT_BUILD_CL_TESTS=ON -DPIGLIT_BUILD_DMA_BUF_TESTS=ON" . .gitlab-ci/container/build-piglit.sh - -############### Build dEQP GL - -DEQP_API=GL \ -DEQP_TARGET=surfaceless \ -. .gitlab-ci/container/build-deqp.sh - -DEQP_API=GLES \ -DEQP_TARGET=surfaceless \ -. .gitlab-ci/container/build-deqp.sh - -############### Build apitrace - -. .gitlab-ci/container/build-apitrace.sh - -############### Build validation layer for zink - -. .gitlab-ci/container/build-vulkan-validation.sh - -############### Build nine tests - -. .gitlab-ci/container/build-ninetests.sh - -############### Uninstall the build software - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/debian/x86_64_test-vk.sh b/.gitlab-ci/container/debian/x86_64_test-vk.sh deleted file mode 100644 index 0a1745de1..000000000 --- a/.gitlab-ci/container/debian/x86_64_test-vk.sh +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env bash -# The relative paths in this file only become valid at runtime. -# shellcheck disable=SC1091 -# shellcheck disable=SC2086 # we want word splitting - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive - -apt-get install -y libelogind0 # this interfere with systemd deps, install separately - -# Ephemeral packages (installed for this script and removed again at the end) -EPHEMERAL=( - ccache - cmake - g++ - glslang-tools - libexpat1-dev - gnupg2 - libdrm-dev - libgbm-dev - libgles2-mesa-dev - liblz4-dev - libpciaccess-dev - libudev-dev - libvulkan-dev - libwaffle-dev - libx11-xcb-dev - libxcb-dri2-0-dev - libxcb-ewmh-dev - libxcb-keysyms1-dev - libxkbcommon-dev - libxrandr-dev - libxrender-dev - libzstd-dev - meson - p7zip - patch - pkgconf - python3-dev - python3-distutils - python3-pip - python3-setuptools - python3-wheel - software-properties-common - wine64-tools - xz-utils -) - -DEPS=( - curl - libepoxy0 - libxcb-shm0 - pciutils - python3-lxml - python3-simplejson - sysvinit-core - weston - xwayland - wine - wine64 - xinit - xserver-xorg-video-amdgpu - xserver-xorg-video-ati -) - -apt-get update - -apt-get install -y --no-remove --no-install-recommends \ - "${DEPS[@]}" "${EPHEMERAL[@]}" - -############### Install DXVK - -. .gitlab-ci/container/setup-wine.sh "/dxvk-wine64" -. .gitlab-ci/container/install-wine-dxvk.sh - -############### Install apitrace binaries for wine - -. .gitlab-ci/container/install-wine-apitrace.sh -# Add the apitrace path to the registry -wine \ - reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \ - /v Path \ - /t REG_EXPAND_SZ \ - /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \ - /f - -############### Building ... - -. .gitlab-ci/container/container_pre_build.sh - -############### Build parallel-deqp-runner's hang-detection tool - -. .gitlab-ci/container/build-hang-detection.sh - -############### Build piglit replayer - -PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh - -############### Build Fossilize - -. .gitlab-ci/container/build-fossilize.sh - -############### Build dEQP VK - -DEQP_API=VK \ -DEQP_TARGET=default \ -. .gitlab-ci/container/build-deqp.sh - -############### Build apitrace - -. .gitlab-ci/container/build-apitrace.sh - -############### Build gfxreconstruct - -. .gitlab-ci/container/build-gfxreconstruct.sh - -############### Build VKD3D-Proton - -. .gitlab-ci/container/setup-wine.sh "/vkd3d-proton-wine64" - -. .gitlab-ci/container/build-vkd3d-proton.sh - -############### Uninstall the build software - -apt-get purge -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/fedora/x86_64_build.sh b/.gitlab-ci/container/fedora/x86_64_build.sh deleted file mode 100644 index ddace0ce1..000000000 --- a/.gitlab-ci/container/fedora/x86_64_build.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1091 - -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# FEDORA_X86_64_BUILD_TAG - -set -e -set -o xtrace - - -EPHEMERAL=( - autoconf - automake - bzip2 - cmake - git - libtool - "pkgconfig(epoxy)" - "pkgconfig(gbm)" - "pkgconfig(openssl)" - python3-pip - unzip - xz -) - -DEPS=( - bindgen - bison - cbindgen - ccache - clang-devel - flex - flatbuffers-compiler - gcc - gcc-c++ - gettext - glslang - kernel-headers - llvm-devel - ninja-build - "pkgconfig(LLVMSPIRVLib)" - "pkgconfig(SPIRV-Tools)" - "pkgconfig(dri2proto)" - "pkgconfig(expat)" - "pkgconfig(flatbuffers)" - "pkgconfig(glproto)" - "pkgconfig(libclc)" - "pkgconfig(libelf)" - "pkgconfig(libglvnd)" - "pkgconfig(libomxil-bellagio)" - "pkgconfig(libselinux)" - "pkgconfig(libva)" - "pkgconfig(pciaccess)" - "pkgconfig(vdpau)" - "pkgconfig(vulkan)" - "pkgconfig(x11)" - "pkgconfig(x11-xcb)" - "pkgconfig(xcb)" - "pkgconfig(xcb-dri2)" - "pkgconfig(xcb-dri3)" - "pkgconfig(xcb-glx)" - "pkgconfig(xcb-present)" - "pkgconfig(xcb-randr)" - "pkgconfig(xcb-sync)" - "pkgconfig(xcb-xfixes)" - "pkgconfig(xdamage)" - "pkgconfig(xext)" - "pkgconfig(xfixes)" - "pkgconfig(xrandr)" - "pkgconfig(xshmfence)" - "pkgconfig(xtensor)" - "pkgconfig(xxf86vm)" - "pkgconfig(zlib)" - procps-ng - python-unversioned-command - python3-devel - python3-mako - python3-ply - python3-pycparser - rust-packaging - vulkan-headers - spirv-tools-devel - spirv-llvm-translator-devel -) - -dnf install -y --setopt=install_weak_deps=False "${DEPS[@]}" "${EPHEMERAL[@]}" - - -. .gitlab-ci/container/container_pre_build.sh - - -# dependencies where we want a specific version -export XORG_RELEASES=https://xorg.freedesktop.org/releases/individual - -export XORGMACROS_VERSION=util-macros-1.19.0 - -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2 -tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2 -cd $XORGMACROS_VERSION; ./configure; make install; cd .. -rm -rf $XORGMACROS_VERSION - -# We need at least 1.3.1 for rusticl -pip install meson==1.3.1 - -. .gitlab-ci/container/build-mold.sh - -. .gitlab-ci/container/build-libdrm.sh - -. .gitlab-ci/container/build-wayland.sh - - -############### Uninstall the build software - -dnf remove -y "${EPHEMERAL[@]}" - -. .gitlab-ci/container/container_post_build.sh diff --git a/.gitlab-ci/container/gitlab-ci.yml b/.gitlab-ci/container/gitlab-ci.yml deleted file mode 100644 index 722782c38..000000000 --- a/.gitlab-ci/container/gitlab-ci.yml +++ /dev/null @@ -1,520 +0,0 @@ -# Docker image tag helper templates - -.incorporate-templates-commit: - variables: - FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}" - -.incorporate-base-tag+templates-commit: - variables: - FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" - FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" - -.set-image: - extends: - - .incorporate-templates-commit - variables: - MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" - image: "$MESA_IMAGE" - -.set-image-base-tag: - extends: - - .set-image - - .incorporate-base-tag+templates-commit - variables: - MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}" - -# Build the CI docker images. -# -# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the -# image doesn't exist yet, the container stage job generates it. -# -# In order to generate a new image, one should generally change the tag. -# While removing the image from the registry would also work, that's not -# recommended except for ephemeral images during development: Replacing -# an image after a significant amount of time might pull in newer -# versions of gcc/clang or other packages, which might break the build -# with older commits using the same tag. -# -# After merging a change resulting in generating a new image to the -# main repository, it's recommended to remove the image from the source -# repository's container registry, so that the image from the main -# repository's registry will be used there as well. - -.debian-container: - variables: - FDO_DISTRIBUTION_VERSION: bookworm-slim - -.container: - stage: container - extends: - - .container+build-rules - - .incorporate-templates-commit - variables: - FDO_REPO_SUFFIX: $CI_JOB_NAME - FDO_DISTRIBUTION_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh' - # no need to pull the whole repo to build the container image - GIT_STRATEGY: none - -.use-base-image: - extends: - - .container - - .incorporate-base-tag+templates-commit - -# Debian based x86_64 build image base -debian/x86_64_build-base: - extends: - - .fdo.container-build@debian - - .container - - .debian-container - variables: - MESA_IMAGE_TAG: &debian-x86_64_build-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - rules: - # python-test requires debian/x86_64_build, which requires this job - - !reference [python-test, rules] - - !reference [.container, rules] - -.use-debian/x86_64_build-base: - extends: - - .fdo.container-build@debian - - .debian-container - - .use-base-image - variables: - MESA_BASE_IMAGE: ${DEBIAN_X86_64_BUILD_BASE_IMAGE} - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_ARTIFACTS_BASE_TAG: *debian-x86_64_build-base - needs: - - debian/x86_64_build-base - -# Debian based x86_64 main build image -debian/x86_64_build: - extends: - - .use-debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-x86_64_build ${DEBIAN_BUILD_TAG} - rules: - # python-test requires this job - - !reference [python-test, rules] - - !reference [.use-debian/x86_64_build-base, rules] - -.use-debian/x86_64_build: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_IMAGE_PATH: ${DEBIAN_X86_64_BUILD_IMAGE_PATH} - MESA_IMAGE_TAG: *debian-x86_64_build - needs: - - debian/x86_64_build - -# Debian based x86_32 cross-build image -debian/x86_32_build: - extends: - - .use-debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-x86_32_build ${DEBIAN_BUILD_TAG} - -.use-debian/x86_32_build: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_IMAGE_PATH: "debian/x86_32_build" - MESA_IMAGE_TAG: *debian-x86_32_build - needs: - - debian/x86_32_build - -# Debian based ppc64el cross-build image -debian/ppc64el_build: - extends: - - .use-debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG} - -.use-debian/ppc64el_build: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_IMAGE_PATH: "debian/ppc64el_build" - MESA_IMAGE_TAG: *debian-ppc64el_build - needs: - - debian/ppc64el_build - -# Debian based s390x cross-build image -debian/s390x_build: - extends: - - .use-debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG} - -.use-debian/s390x_build: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_IMAGE_PATH: "debian/s390x_build" - MESA_IMAGE_TAG: *debian-s390x_build - needs: - - debian/s390x_build - -# Android NDK cross-build image -debian/android_build: - extends: - - .use-debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-android_build ${DEBIAN_BUILD_TAG} - ANDROID_SDK_VERSION: 33 - ANDROID_NDK: android-ndk-r25b - -.use-debian/android_build: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_build-base - MESA_IMAGE_PATH: "debian/android_build" - MESA_IMAGE_TAG: *debian-android_build - needs: - - debian/android_build - -# Debian based x86_64 test image base -debian/x86_64_test-base: - extends: debian/x86_64_build-base - variables: - MESA_IMAGE_TAG: &debian-x86_64_test-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}--${KERNEL_TAG}" - -.use-debian/x86_64_test-base: - extends: - - .fdo.container-build@debian - - .debian-container - - .use-base-image - variables: - MESA_BASE_IMAGE: ${DEBIAN_X86_64_TEST_BASE_IMAGE} - MESA_BASE_TAG: *debian-x86_64_test-base - needs: - - debian/x86_64_test-base - -# Debian based x86_64 test image for GL -debian/x86_64_test-gl: - extends: .use-debian/x86_64_test-base - variables: - MESA_IMAGE_TAG: &debian-x86_64_test-gl ${DEBIAN_X86_64_TEST_GL_TAG} - -.use-debian/x86_64_test-gl: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_test-base - MESA_IMAGE_PATH: ${DEBIAN_X86_64_TEST_IMAGE_GL_PATH} - MESA_IMAGE_TAG: *debian-x86_64_test-gl - needs: - - debian/x86_64_test-gl - -# Debian based x86_64 test image for VK -debian/x86_64_test-vk: - extends: .use-debian/x86_64_test-base - variables: - MESA_IMAGE_TAG: &debian-x86_64_test-vk ${DEBIAN_X86_64_TEST_VK_TAG} - -.use-debian/x86_64_test-vk: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_test-base - MESA_IMAGE_PATH: ${DEBIAN_X86_64_TEST_IMAGE_VK_PATH} - MESA_IMAGE_TAG: *debian-x86_64_test-vk - needs: - - debian/x86_64_test-vk - -# Debian based x86_64 test image for Android -.debian/x86_64_test-android: - extends: .use-debian/x86_64_test-base - variables: - MESA_IMAGE_TAG: &debian-x86_64_test-android ${DEBIAN_X86_64_TEST_ANDROID_TAG} - ANDROID_NDK: android-ndk-r25b - -.use-debian/x86_64_test-android: - extends: - - .set-image-base-tag - variables: - MESA_BASE_TAG: *debian-x86_64_test-base - MESA_IMAGE_PATH: ${DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH} - MESA_IMAGE_TAG: *debian-x86_64_test-android - needs: - - debian/x86_64_test-android - -# Debian based ARM build image -debian/arm64_build: - extends: - - .fdo.container-build@debian - - .container - - .debian-container - tags: - - aarch64 - variables: - MESA_IMAGE_TAG: &debian-arm64_build "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - -.use-debian/arm64_build: - extends: - - .set-image - variables: - MESA_IMAGE_PATH: "debian/arm64_build" - MESA_IMAGE_TAG: *debian-arm64_build - MESA_ARTIFACTS_TAG: *debian-arm64_build - needs: - - debian/arm64_build - - -# Alpine based x86_64 build image -.alpine/x86_64_build-base: - extends: - - .fdo.container-build@alpine - - .container - variables: - FDO_DISTRIBUTION_VERSION: "edge" # switch to 3.20 when gets released - FDO_BASE_IMAGE: alpine:$FDO_DISTRIBUTION_VERSION # since cbuild ignores it - -# Alpine based x86_64 build image -alpine/x86_64_build: - extends: - - .alpine/x86_64_build-base - variables: - MESA_IMAGE_TAG: &alpine-x86_64_build ${ALPINE_X86_64_BUILD_TAG} - -.use-alpine/x86_64_build: - extends: - - .set-image - variables: - MESA_IMAGE_PATH: "alpine/x86_64_build" - MESA_IMAGE_TAG: *alpine-x86_64_build - needs: - - alpine/x86_64_build - -# Alpine based x86_64 image for LAVA SSH dockerized client -alpine/x86_64_lava_ssh_client: - extends: - - .alpine/x86_64_build-base - variables: - MESA_IMAGE_TAG: &alpine-x86_64_lava_ssh_client ${ALPINE_X86_64_LAVA_SSH_TAG} - -# Fedora based x86_64 build image -fedora/x86_64_build: - extends: - - .fdo.container-build@fedora - - .container - variables: - FDO_DISTRIBUTION_VERSION: 38 - MESA_IMAGE_TAG: &fedora-x86_64_build ${FEDORA_X86_64_BUILD_TAG} - -.use-fedora/x86_64_build: - extends: - - .set-image - variables: - MESA_IMAGE_PATH: "fedora/x86_64_build" - MESA_IMAGE_TAG: *fedora-x86_64_build - needs: - - fedora/x86_64_build - - -.kernel+rootfs: - extends: - - .container+build-rules - - .debian-container - stage: container - variables: - GIT_STRATEGY: fetch - MESA_ROOTFS_TAG: &kernel-rootfs ${KERNEL_ROOTFS_TAG} - DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}" - script: - - .gitlab-ci/container/lava_build.sh - -kernel+rootfs_x86_64: - extends: - - .use-debian/x86_64_build-base - - .kernel+rootfs - image: "$FDO_BASE_IMAGE" - variables: - DEBIAN_ARCH: "amd64" - DISTRIBUTION_TAG: &distribution-tag-x86_64 "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}" - -kernel+rootfs_arm64: - extends: - - .use-debian/arm64_build - - .kernel+rootfs - tags: - - aarch64 - variables: - DEBIAN_ARCH: "arm64" - -kernel+rootfs_arm32: - extends: - - kernel+rootfs_arm64 - variables: - DEBIAN_ARCH: "armhf" - -# Cannot use anchors defined here from included files, so use extends: instead -.use-kernel+rootfs-arm: - variables: - DISTRIBUTION_TAG: *distribution-tag-arm - MESA_ROOTFS_TAG: *kernel-rootfs - -.use-kernel+rootfs-x86_64: - variables: - DISTRIBUTION_TAG: *distribution-tag-x86_64 - MESA_ROOTFS_TAG: *kernel-rootfs - -# x86_64 image with ARM64 & ARM32 kernel & rootfs for baremetal testing -.debian/arm_test: - extends: - - .fdo.container-build@debian - - .container - - .debian-container - # Don't want the .container rules - - .container+build-rules - variables: - FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}" - ARTIFACTS_PREFIX: "https://${S3_HOST}/${S3_KERNEL_BUCKET}" - ARTIFACTS_SUFFIX: "${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}" - MESA_ARTIFACTS_TAG: *debian-arm64_build - MESA_ROOTFS_TAG: *kernel-rootfs - -debian/arm32_test: - extends: - - .debian/arm_test - needs: - - kernel+rootfs_arm32 - variables: - MESA_IMAGE_TAG: &debian-arm32_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - -debian/arm64_test: - extends: - - .debian/arm_test - needs: - - kernel+rootfs_arm64 - variables: - MESA_IMAGE_TAG: &debian-arm64_test "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - -.use-debian/arm_test: - variables: - MESA_ROOTFS_TAG: *kernel-rootfs - -.use-debian/arm32_test: - image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}" - extends: - - .use-debian/arm_test - variables: - MESA_IMAGE_PATH: "debian/arm32_test" - MESA_IMAGE_TAG: *debian-arm32_test - needs: - - debian/arm_test - -.use-debian/arm64_test: - image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${KERNEL_TAG}--${MESA_TEMPLATES_COMMIT}" - extends: - - .use-debian/arm_test - variables: - MESA_IMAGE_PATH: "debian/arm64_test" - MESA_IMAGE_TAG: *debian-arm64_test - needs: - - debian/arm_test - -# Native Windows docker builds -# -# Unlike the above Linux-based builds - including MinGW builds which -# cross-compile for Windows - which use the freedesktop ci-templates, we -# cannot use the same scheme here. As Windows lacks support for -# Docker-in-Docker, and Podman does not run natively on Windows, we have -# to open-code much of the same ourselves. -# -# This is achieved by first running in a native Windows shell instance -# (host PowerShell) in the container stage to build and push the image, -# then in the build stage by executing inside Docker. - -.windows-docker-msvc: - variables: - MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}" - MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}" - extends: - - .windows-docker-tags - -.windows_container_build: - inherit: - default: [retry] - extends: - - .container - - .windows-docker-msvc - - .windows-shell-tags - rules: - - !reference [.microsoft-farm-container-rules, rules] - - !reference [.container+build-rules, rules] - variables: - GIT_STRATEGY: fetch # we do actually need the full repository though - MESA_BASE_IMAGE: None - script: - - .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE ${DOCKERFILE} ${MESA_BASE_IMAGE} - -windows_msvc: - inherit: - default: [retry] - extends: - - .windows_container_build - variables: - MESA_IMAGE_PATH: &windows_msvc_image_path ${WINDOWS_X64_MSVC_PATH} - MESA_IMAGE_TAG: ${WINDOWS_X64_MSVC_TAG} - DOCKERFILE: Dockerfile_msvc - MESA_BASE_IMAGE: "mcr.microsoft.com/windows/server:ltsc2022" - -windows_build_msvc: - inherit: - default: [retry] - extends: - - .windows_container_build - rules: - - !reference [.microsoft-farm-rules, rules] - - !reference [.container+build-rules, rules] - variables: - MESA_IMAGE_PATH: &windows_build_image_path ${WINDOWS_X64_BUILD_PATH} - MESA_IMAGE_TAG: &windows_build_image_tag ${WINDOWS_X64_MSVC_TAG}--${WINDOWS_X64_BUILD_TAG} - DOCKERFILE: Dockerfile_build - MESA_BASE_IMAGE_PATH: *windows_msvc_image_path - MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${WINDOWS_X64_MSVC_TAG}" - timeout: 2h 30m # LLVM takes ages - needs: - - windows_msvc - -windows_test_msvc: - inherit: - default: [retry] - extends: - - .windows_container_build - rules: - - !reference [.microsoft-farm-rules, rules] - - !reference [.container+build-rules, rules] - variables: - MESA_IMAGE_PATH: &windows_test_image_path ${WINDOWS_X64_TEST_PATH} - MESA_IMAGE_TAG: &windows_test_image_tag ${WINDOWS_X64_MSVC_TAG}--${WINDOWS_X64_TEST_TAG} - DOCKERFILE: Dockerfile_test - MESA_BASE_IMAGE_PATH: *windows_msvc_image_path - MESA_BASE_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_BASE_IMAGE_PATH}:${WINDOWS_X64_MSVC_TAG}" - timeout: 2h 30m - needs: - - windows_msvc - -.use-windows_build_msvc: - inherit: - default: [retry] - extends: .windows-docker-msvc - image: "$MESA_IMAGE" - variables: - MESA_IMAGE_PATH: *windows_build_image_path - MESA_IMAGE_TAG: *windows_build_image_tag - needs: - - windows_build_msvc - -.use-windows_test_msvc: - inherit: - default: [retry] - extends: .windows-docker-msvc - image: "$MESA_IMAGE" - variables: - MESA_IMAGE_PATH: *windows_test_image_path - MESA_IMAGE_TAG: *windows_test_image_tag diff --git a/.gitlab-ci/container/install-wine-apitrace.sh b/.gitlab-ci/container/install-wine-apitrace.sh deleted file mode 100644 index 40ce5493f..000000000 --- a/.gitlab-ci/container/install-wine-apitrace.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -APITRACE_VERSION="11.1" -APITRACE_VERSION_DATE="" - -curl -L -O --retry 4 -f --retry-all-errors --retry-delay 60 \ - "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" -7zr x "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" \ - "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \ - "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe" -mv "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64 -rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64.7z" - - diff --git a/.gitlab-ci/container/install-wine-dxvk.sh b/.gitlab-ci/container/install-wine-dxvk.sh deleted file mode 100755 index 9448a9b79..000000000 --- a/.gitlab-ci/container/install-wine-dxvk.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -set -e - -overrideDll() { - if ! wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$1" /d native /f; then - echo -e "Failed to add override for $1" - exit 1 - fi -} - -dxvk_install_release() { - local DXVK_VERSION=${1:?} - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ - -O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz" - tar xzpf dxvk-"${DXVK_VERSION}".tar.gz - cp "dxvk-${DXVK_VERSION}"/x64/*.dll "$WINEPREFIX/drive_c/windows/system32/" - overrideDll d3d9 - overrideDll d3d10core - overrideDll d3d11 - overrideDll dxgi - rm -rf "dxvk-${DXVK_VERSION}" - rm dxvk-"${DXVK_VERSION}".tar.gz -} - -dxvk_install_release "2.1" diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh deleted file mode 100755 index 10b2a2734..000000000 --- a/.gitlab-ci/container/lava_build.sh +++ /dev/null @@ -1,372 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. -# shellcheck disable=SC2034 # Variables are used in scripts called from here -# shellcheck disable=SC2086 # we want word splitting -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# KERNEL_ROOTFS_TAG - -set -e -set -o xtrace - -export DEBIAN_FRONTEND=noninteractive -export LLVM_VERSION="${LLVM_VERSION:=15}" - -check_minio() -{ - S3_PATH="${S3_HOST}/${S3_KERNEL_BUCKET}/$1/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}" - if curl -L --retry 4 -f --retry-delay 60 -s -X HEAD \ - "https://${S3_PATH}/done"; then - echo "Remote files are up-to-date, skip rebuilding them." - exit - fi -} - -check_minio "${FDO_UPSTREAM_REPO}" -check_minio "${CI_PROJECT_PATH}" - -. .gitlab-ci/container/container_pre_build.sh - -# Install rust, which we'll be using for deqp-runner. It will be cleaned up at the end. -. .gitlab-ci/container/build-rust.sh - -if [[ "$DEBIAN_ARCH" = "arm64" ]]; then - GCC_ARCH="aarch64-linux-gnu" - KERNEL_ARCH="arm64" - SKQP_ARCH="arm64" - DEFCONFIG="arch/arm64/configs/defconfig" - DEVICE_TREES="rk3399-gru-kevin.dtb" - DEVICE_TREES+=" meson-g12b-a311d-khadas-vim3.dtb" - DEVICE_TREES+=" meson-gxl-s805x-libretech-ac.dtb" - DEVICE_TREES+=" meson-gxm-khadas-vim2.dtb" - DEVICE_TREES+=" sun50i-h6-pine-h64.dtb" - DEVICE_TREES+=" imx8mq-nitrogen.dtb" - DEVICE_TREES+=" mt8192-asurada-spherion-r0.dtb" - DEVICE_TREES+=" mt8183-kukui-jacuzzi-juniper-sku16.dtb" - DEVICE_TREES+=" tegra210-p3450-0000.dtb" - DEVICE_TREES+=" apq8016-sbc.dtb" - DEVICE_TREES+=" apq8096-db820c.dtb" - DEVICE_TREES+=" sc7180-trogdor-lazor-limozeen-nots-r5.dtb" - DEVICE_TREES+=" sc7180-trogdor-kingoftown.dtb" - DEVICE_TREES+=" sm8350-hdk.dtb" - KERNEL_IMAGE_NAME="Image" - -elif [[ "$DEBIAN_ARCH" = "armhf" ]]; then - GCC_ARCH="arm-linux-gnueabihf" - KERNEL_ARCH="arm" - SKQP_ARCH="arm" - DEFCONFIG="arch/arm/configs/multi_v7_defconfig" - DEVICE_TREES="rk3288-veyron-jaq.dtb" - DEVICE_TREES+=" sun8i-h3-libretech-all-h3-cc.dtb" - DEVICE_TREES+=" imx6q-cubox-i.dtb" - DEVICE_TREES+=" tegra124-jetson-tk1.dtb" - KERNEL_IMAGE_NAME="zImage" - . .gitlab-ci/container/create-cross-file.sh armhf - CONTAINER_ARCH_PACKAGES=( - libegl1-mesa-dev:armhf - libelf-dev:armhf - libgbm-dev:armhf - libgles2-mesa-dev:armhf - libpng-dev:armhf - libudev-dev:armhf - libvulkan-dev:armhf - libwaffle-dev:armhf - libwayland-dev:armhf - libx11-xcb-dev:armhf - libxkbcommon-dev:armhf - ) -else - GCC_ARCH="x86_64-linux-gnu" - KERNEL_ARCH="x86_64" - SKQP_ARCH="x64" - DEFCONFIG="arch/x86/configs/x86_64_defconfig" - DEVICE_TREES="" - KERNEL_IMAGE_NAME="bzImage" - CONTAINER_ARCH_PACKAGES=( - libasound2-dev libcap-dev libfdt-dev libva-dev wayland-protocols p7zip wine - ) -fi - -# Determine if we're in a cross build. -if [[ -e /cross_file-$DEBIAN_ARCH.txt ]]; then - EXTRA_MESON_ARGS="--cross-file /cross_file-$DEBIAN_ARCH.txt" - EXTRA_CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=/toolchain-$DEBIAN_ARCH.cmake" - - if [ $DEBIAN_ARCH = arm64 ]; then - RUST_TARGET="aarch64-unknown-linux-gnu" - elif [ $DEBIAN_ARCH = armhf ]; then - RUST_TARGET="armv7-unknown-linux-gnueabihf" - fi - rustup target add $RUST_TARGET - export EXTRA_CARGO_ARGS="--target $RUST_TARGET" - - export ARCH=${KERNEL_ARCH} - export CROSS_COMPILE="${GCC_ARCH}-" -fi - -# no need to remove these at end, image isn't saved at the end -CONTAINER_EPHEMERAL=( - automake - bc - "clang-${LLVM_VERSION}" - cmake - curl - mmdebstrap - git - glslang-tools - libdrm-dev - libegl1-mesa-dev - libxext-dev - libfontconfig-dev - libgbm-dev - libgl-dev - libgles2-mesa-dev - libglu1-mesa-dev - libglx-dev - libpng-dev - libssl-dev - libudev-dev - libvulkan-dev - libwaffle-dev - libwayland-dev - libx11-xcb-dev - libxcb-dri2-0-dev - libxkbcommon-dev - libwayland-dev - ninja-build - openssh-server - patch - protobuf-compiler - python-is-python3 - python3-distutils - python3-mako - python3-numpy - python3-serial - python3-venv - unzip - zstd -) - -echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list - -apt-get update -apt-get install -y --no-remove \ - -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' \ - "${CONTAINER_EPHEMERAL[@]}" \ - "${CONTAINER_ARCH_PACKAGES[@]}" \ - ${EXTRA_LOCAL_PACKAGES} - -ROOTFS=/lava-files/rootfs-${DEBIAN_ARCH} -mkdir -p "$ROOTFS" - -# rootfs packages -PKG_BASE=( - tzdata mount -) -PKG_CI=( - firmware-realtek - bash ca-certificates curl - initramfs-tools jq netcat-openbsd dropbear openssh-server - libasan8 - git - python3-dev python3-pip python3-setuptools python3-wheel - weston # Wayland - xinit xserver-xorg-core xwayland # X11 -) -PKG_MESA_DEP=( - libdrm2 libsensors5 libexpat1 # common - libvulkan1 # vulkan - libx11-6 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrender1 libxshmfence1 libxxf86vm1 # X11 -) -PKG_DEP=( - libpng16-16 - libwaffle-1-0 - libpython3.11 python3 python3-lxml python3-mako python3-numpy python3-packaging python3-pil python3-renderdoc python3-requests python3-simplejson python3-yaml # Python - sntp - strace - waffle-utils - zstd -) -# arch dependent rootfs packages -[ "$DEBIAN_ARCH" = "arm64" ] && PKG_ARCH=( - libgl1 libglu1-mesa - libvulkan-dev - firmware-linux-nonfree firmware-qcom-media - libfontconfig1 -) -[ "$DEBIAN_ARCH" = "amd64" ] && PKG_ARCH=( - firmware-amd-graphics - firmware-misc-nonfree - libgl1 libglu1-mesa - inetutils-syslogd iptables libcap2 - libfontconfig1 - spirv-tools - libelf1 libfdt1 "libllvm${LLVM_VERSION}" - libva2 libva-drm2 - libvulkan-dev - socat - sysvinit-core - wine -) -[ "$DEBIAN_ARCH" = "armhf" ] && PKG_ARCH=( - firmware-misc-nonfree -) - -mmdebstrap \ - --variant=apt \ - --arch="${DEBIAN_ARCH}" \ - --components main,contrib,non-free-firmware \ - --include "${PKG_BASE[*]} ${PKG_CI[*]} ${PKG_DEP[*]} ${PKG_MESA_DEP[*]} ${PKG_ARCH[*]}" \ - bookworm \ - "$ROOTFS/" \ - "http://deb.debian.org/debian" \ - "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" - -############### Install mold -. .gitlab-ci/container/build-mold.sh - -############### Setuping -if [ "$DEBIAN_ARCH" = "amd64" ]; then - . .gitlab-ci/container/setup-wine.sh "/dxvk-wine64" - . .gitlab-ci/container/install-wine-dxvk.sh - mv /dxvk-wine64 $ROOTFS -fi - -############### Installing -if [ "$DEBIAN_ARCH" = "amd64" ]; then - . .gitlab-ci/container/install-wine-apitrace.sh - mkdir -p "$ROOTFS/apitrace-msvc-win64" - mv /apitrace-msvc-win64/bin "$ROOTFS/apitrace-msvc-win64" - rm -rf /apitrace-msvc-win64 -fi - -############### Building -STRIP_CMD="${GCC_ARCH}-strip" -mkdir -p $ROOTFS/usr/lib/$GCC_ARCH - -############### Build Vulkan validation layer (for zink) -if [ "$DEBIAN_ARCH" = "amd64" ]; then - . .gitlab-ci/container/build-vulkan-validation.sh - mv /usr/lib/x86_64-linux-gnu/libVkLayer_khronos_validation.so $ROOTFS/usr/lib/x86_64-linux-gnu/ - mkdir -p $ROOTFS/usr/share/vulkan/explicit_layer.d - mv /usr/share/vulkan/explicit_layer.d/* $ROOTFS/usr/share/vulkan/explicit_layer.d/ -fi - -############### Build apitrace -. .gitlab-ci/container/build-apitrace.sh -mkdir -p $ROOTFS/apitrace -mv /apitrace/build $ROOTFS/apitrace -rm -rf /apitrace - -############### Build ANGLE -if [[ "$DEBIAN_ARCH" = "amd64" ]]; then - . .gitlab-ci/container/build-angle.sh - mv /angle /lava-files/rootfs-${DEBIAN_ARCH}/. - rm -rf /angle -fi - -############### Build dEQP runner -. .gitlab-ci/container/build-deqp-runner.sh -mkdir -p $ROOTFS/usr/bin -mv /usr/local/bin/*-runner $ROOTFS/usr/bin/. - - -############### Build dEQP -DEQP_API=GL \ -DEQP_TARGET=surfaceless \ -. .gitlab-ci/container/build-deqp.sh - -DEQP_API=GLES \ -DEQP_TARGET=surfaceless \ -. .gitlab-ci/container/build-deqp.sh - -DEQP_API=VK \ -DEQP_TARGET=default \ -. .gitlab-ci/container/build-deqp.sh - -mv /deqp $ROOTFS/. - - -############### Build SKQP -if [[ "$DEBIAN_ARCH" = "arm64" ]] \ - || [[ "$DEBIAN_ARCH" = "amd64" ]]; then - . .gitlab-ci/container/build-skqp.sh - mv /skqp $ROOTFS/. -fi - -############### Build piglit -PIGLIT_OPTS="-DPIGLIT_BUILD_DMA_BUF_TESTS=ON -DPIGLIT_BUILD_GLX_TESTS=ON" . .gitlab-ci/container/build-piglit.sh -mv /piglit $ROOTFS/. - -############### Build libva tests -if [[ "$DEBIAN_ARCH" = "amd64" ]]; then - . .gitlab-ci/container/build-va-tools.sh - mv /va/bin/* $ROOTFS/usr/bin/ -fi - -############### Build Crosvm -if [[ ${DEBIAN_ARCH} = "amd64" ]]; then - . .gitlab-ci/container/build-crosvm.sh - mv /usr/local/bin/crosvm $ROOTFS/usr/bin/ - mv /usr/local/lib/libvirglrenderer.* $ROOTFS/usr/lib/$GCC_ARCH/ - mkdir -p $ROOTFS/usr/local/libexec/ - mv /usr/local/libexec/virgl* $ROOTFS/usr/local/libexec/ -fi - -############### Build ci-kdl -section_start kdl "Prepare a venv for kdl" -. .gitlab-ci/container/build-kdl.sh -mv ci-kdl.venv $ROOTFS -section_end kdl - -############### Build local stuff for use by igt and kernel testing, which -############### will reuse most of our container build process from a specific -############### hash of the Mesa tree. -if [[ -e ".gitlab-ci/local/build-rootfs.sh" ]]; then - . .gitlab-ci/local/build-rootfs.sh -fi - - -############### Build kernel -. .gitlab-ci/container/build-kernel.sh - -############### Delete rust, since the tests won't be compiling anything. -rm -rf /root/.cargo -rm -rf /root/.rustup - -############### Delete firmware files we don't need -if [ "$DEBIAN_ARCH" = "amd64" ]; then - dpkg -L firmware-misc-nonfree | grep -v "i915" | xargs rm || true -fi - -############### Fill rootfs -cp .gitlab-ci/container/setup-rootfs.sh $ROOTFS/. -cp .gitlab-ci/container/strip-rootfs.sh $ROOTFS/. -cp .gitlab-ci/container/debian/llvm-snapshot.gpg.key $ROOTFS/. -cp .gitlab-ci/container/debian/winehq.gpg.key $ROOTFS/. -chroot $ROOTFS bash /setup-rootfs.sh -rm $ROOTFS/{llvm-snapshot,winehq}.gpg.key -rm "$ROOTFS/setup-rootfs.sh" -rm "$ROOTFS/strip-rootfs.sh" -cp /etc/wgetrc $ROOTFS/etc/. - -if [ "${DEBIAN_ARCH}" = "arm64" ]; then - mkdir -p /lava-files/rootfs-arm64/lib/firmware/qcom/sm8350/ # for firmware imported later - # Make a gzipped copy of the Image for db410c. - gzip -k /lava-files/Image - KERNEL_IMAGE_NAME+=" Image.gz" -fi - -ROOTFSTAR="lava-rootfs.tar.zst" -du -ah "$ROOTFS" | sort -h | tail -100 -pushd $ROOTFS - tar --zstd -cf /lava-files/${ROOTFSTAR} . -popd - -. .gitlab-ci/container/container_post_build.sh - -ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/"${ROOTFSTAR}" \ - https://${S3_PATH}/"${ROOTFSTAR}" - -touch /lava-files/done -ci-fairy s3cp --token-file "${S3_JWT_FILE}" /lava-files/done https://${S3_PATH}/done diff --git a/.gitlab-ci/container/patches/build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch b/.gitlab-ci/container/patches/build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch deleted file mode 100644 index 7839b0e55..000000000 --- a/.gitlab-ci/container/patches/build-deqp-egl_Correct-EGL_EXT_config_select_group-extension-query.patch +++ /dev/null @@ -1,45 +0,0 @@ -From cab41ed387c66a5e7f3454c547fc9ea53587ec1e Mon Sep 17 00:00:00 2001 -From: David Heidelberg -Date: Thu, 9 May 2024 14:08:59 -0700 -Subject: [PATCH] Correct EGL_EXT_config_select_group extension query - -EGL_EXT_config_select_group is a display extension, -not a client extension. - -Affects: -dEQP-EGL.functional.choose_config.simple.selection_and_sort.* - -Ref: https://github.com/KhronosGroup/EGL-Registry/pull/199 - -Fixes: 88ba9ac270db ("Implement support for the EGL_EXT_config_select_group extension") - -Change-Id: I38956511bdcb8e99d585ea9b99aeab53da0457e2 -Signed-off-by: David Heidelberg ---- - framework/egl/egluConfigInfo.cpp | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/framework/egl/egluConfigInfo.cpp b/framework/egl/egluConfigInfo.cpp -index 88c30fd65..10936055a 100644 ---- a/framework/egl/egluConfigInfo.cpp -+++ b/framework/egl/egluConfigInfo.cpp -@@ -129,7 +129,6 @@ void queryCoreConfigInfo (const Library& egl, EGLDisplay display, EGLConfig conf - void queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, eglw::EGLConfig config, ConfigInfo* dst) - { - const std::vector extensions = getDisplayExtensions(egl, display); -- const std::vector clientExtensions = getClientExtensions(egl); - - if (de::contains(extensions.begin(), extensions.end(), "EGL_EXT_yuv_surface")) - { -@@ -159,7 +158,7 @@ void queryExtConfigInfo (const eglw::Library& egl, eglw::EGLDisplay display, egl - else - dst->colorComponentType = EGL_COLOR_COMPONENT_TYPE_FIXED_EXT; - -- if (de::contains(clientExtensions.begin(), clientExtensions.end(), "EGL_EXT_config_select_group")) -+ if (hasExtension(egl, display, "EGL_EXT_config_select_group")) - { - egl.getConfigAttrib(display, config, EGL_CONFIG_SELECT_GROUP_EXT, (EGLint*)&dst->groupId); - --- -2.43.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch b/.gitlab-ci/container/patches/build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch deleted file mode 100644 index 9431941b7..000000000 --- a/.gitlab-ci/container/patches/build-deqp-gl_Allow-running-on-Android-from-the-command-line.patch +++ /dev/null @@ -1,182 +0,0 @@ -From dc97ee83a813f6b170079ddf2a04bbb06221a5a7 Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso -Date: Fri, 26 Aug 2022 18:24:27 +0200 -Subject: [PATCH 1/2] Allow running on Android from the command line - -For testing the Android EGL platform without having to go via the -Android activity manager, build deqp-egl. - -Tests that render to native windows are unsupported, as command line -programs cannot create windows on Android. - -$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja -$ ninja -C build modules/egl/deqp-egl - -Signed-off-by: Tomeu Vizoso ---- - CMakeLists.txt | 38 ++----------------- - .../android/tcuAndroidNativeActivity.cpp | 36 +++++++++--------- - .../platform/android/tcuAndroidPlatform.cpp | 12 +++++- - 3 files changed, 34 insertions(+), 52 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index eb58cc7ba..98b8fc6cc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -272,7 +272,7 @@ include_directories( - external/vulkancts/framework/vulkan - ) - --if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # On Android deqp modules are compiled as libraries and linked into final .so - set(DEQP_MODULE_LIBRARIES ) - set(DEQP_MODULE_ENTRY_POINTS ) -@@ -316,7 +316,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE) - set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -338,7 +338,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS}) - target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS}) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -390,37 +390,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL}) - add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL}) - - # Single-binary targets --if (DE_OS_IS_ANDROID) -- include_directories(executor) -- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan) -- -- set(DEQP_SRCS -- framework/platform/android/tcuAndroidMain.cpp -- framework/platform/android/tcuAndroidJNI.cpp -- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp -- framework/platform/android/tcuTestLogParserJNI.cpp -- ${DEQP_MODULE_ENTRY_POINTS} -- ) -- -- set(DEQP_LIBS -- tcutil-platform -- xecore -- ${DEQP_MODULE_LIBRARIES} -- ) -- -- add_library(deqp SHARED ${DEQP_SRCS}) -- target_link_libraries(deqp ${DEQP_LIBS}) -- -- # Separate out the debug information because it's enormous -- add_custom_command(TARGET deqp POST_BUILD -- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $.debug $ -- COMMAND ${CMAKE_STRIP} -g $) -- -- # Needed by OpenGL CTS that defines its own activity but depends on -- # common Android support code. -- target_include_directories(deqp PRIVATE framework/platform/android) -- --elseif (DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # Code sign identity - set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build") - -diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp -index 6f8cd8fc5..b83e30f41 100644 ---- a/framework/platform/android/tcuAndroidNativeActivity.cpp -+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp -@@ -116,23 +116,25 @@ namespace Android - NativeActivity::NativeActivity (ANativeActivity* activity) - : m_activity(activity) - { -- activity->instance = (void*)this; -- activity->callbacks->onStart = onStartCallback; -- activity->callbacks->onResume = onResumeCallback; -- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -- activity->callbacks->onPause = onPauseCallback; -- activity->callbacks->onStop = onStopCallback; -- activity->callbacks->onDestroy = onDestroyCallback; -- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -- activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -- activity->callbacks->onLowMemory = onLowMemoryCallback; -+ if (activity) { -+ activity->instance = (void*)this; -+ activity->callbacks->onStart = onStartCallback; -+ activity->callbacks->onResume = onResumeCallback; -+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -+ activity->callbacks->onPause = onPauseCallback; -+ activity->callbacks->onStop = onStopCallback; -+ activity->callbacks->onDestroy = onDestroyCallback; -+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -+ activity->callbacks->onLowMemory = onLowMemoryCallback; -+ } - } - - NativeActivity::~NativeActivity (void) -diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index b8a35898c..cf02e6b70 100644 ---- a/framework/platform/android/tcuAndroidPlatform.cpp -+++ b/framework/platform/android/tcuAndroidPlatform.cpp -@@ -22,6 +22,7 @@ - *//*--------------------------------------------------------------------*/ - - #include "tcuAndroidPlatform.hpp" -+#include "tcuAndroidNativeActivity.hpp" - #include "tcuAndroidUtil.hpp" - #include "gluRenderContext.hpp" - #include "egluNativeDisplay.hpp" -@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams& - Window* window = m_windowRegistry.tryAcquireWindow(); - - if (!window) -- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__); -+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__); - - return new NativeWindow(window, params.width, params.height, format); - } -@@ -292,6 +293,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity) - - try - { -+ if (!activity) -+ throw tcu::InternalError("No activity (running from command line?"); -+ - const size_t totalMemory = getTotalAndroidSystemMemory(activity); - print("Device has %.2f MiB of system memory\n", static_cast(totalMemory) / static_cast(MiB)); - return totalMemory; -@@ -388,3 +392,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const - - } // Android - } // tcu -+ -+tcu::Platform* createPlatform (void) -+{ -+ tcu::Android::NativeActivity activity(NULL); -+ return new tcu::Android::Platform(activity); -+} --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch b/.gitlab-ci/container/patches/build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch deleted file mode 100644 index 3c0b72c43..000000000 --- a/.gitlab-ci/container/patches/build-deqp-gl_Android-prints-to-stdout-instead-of-logcat.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001 -From: Helen Koike -Date: Tue, 27 Sep 2022 12:35:22 -0300 -Subject: [PATCH 2/2] Android prints to stdout instead of logcat - -Signed-off-by: Helen Koike ---- - framework/qphelper/qpDebugOut.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c -index 6579e9f48..c200c6f6b 100644 ---- a/framework/qphelper/qpDebugOut.c -+++ b/framework/qphelper/qpDebugOut.c -@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args) - } - - /* print() implementation. */ --#if (DE_OS == DE_OS_ANDROID) -+#if (0) - - #include - --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch b/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch deleted file mode 100644 index 9431941b7..000000000 --- a/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch +++ /dev/null @@ -1,182 +0,0 @@ -From dc97ee83a813f6b170079ddf2a04bbb06221a5a7 Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso -Date: Fri, 26 Aug 2022 18:24:27 +0200 -Subject: [PATCH 1/2] Allow running on Android from the command line - -For testing the Android EGL platform without having to go via the -Android activity manager, build deqp-egl. - -Tests that render to native windows are unsupported, as command line -programs cannot create windows on Android. - -$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja -$ ninja -C build modules/egl/deqp-egl - -Signed-off-by: Tomeu Vizoso ---- - CMakeLists.txt | 38 ++----------------- - .../android/tcuAndroidNativeActivity.cpp | 36 +++++++++--------- - .../platform/android/tcuAndroidPlatform.cpp | 12 +++++- - 3 files changed, 34 insertions(+), 52 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index eb58cc7ba..98b8fc6cc 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -272,7 +272,7 @@ include_directories( - external/vulkancts/framework/vulkan - ) - --if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # On Android deqp modules are compiled as libraries and linked into final .so - set(DEQP_MODULE_LIBRARIES ) - set(DEQP_MODULE_ENTRY_POINTS ) -@@ -316,7 +316,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE) - set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -338,7 +338,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS}) - target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS}) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -390,37 +390,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL}) - add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL}) - - # Single-binary targets --if (DE_OS_IS_ANDROID) -- include_directories(executor) -- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan) -- -- set(DEQP_SRCS -- framework/platform/android/tcuAndroidMain.cpp -- framework/platform/android/tcuAndroidJNI.cpp -- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp -- framework/platform/android/tcuTestLogParserJNI.cpp -- ${DEQP_MODULE_ENTRY_POINTS} -- ) -- -- set(DEQP_LIBS -- tcutil-platform -- xecore -- ${DEQP_MODULE_LIBRARIES} -- ) -- -- add_library(deqp SHARED ${DEQP_SRCS}) -- target_link_libraries(deqp ${DEQP_LIBS}) -- -- # Separate out the debug information because it's enormous -- add_custom_command(TARGET deqp POST_BUILD -- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $.debug $ -- COMMAND ${CMAKE_STRIP} -g $) -- -- # Needed by OpenGL CTS that defines its own activity but depends on -- # common Android support code. -- target_include_directories(deqp PRIVATE framework/platform/android) -- --elseif (DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # Code sign identity - set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build") - -diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp -index 6f8cd8fc5..b83e30f41 100644 ---- a/framework/platform/android/tcuAndroidNativeActivity.cpp -+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp -@@ -116,23 +116,25 @@ namespace Android - NativeActivity::NativeActivity (ANativeActivity* activity) - : m_activity(activity) - { -- activity->instance = (void*)this; -- activity->callbacks->onStart = onStartCallback; -- activity->callbacks->onResume = onResumeCallback; -- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -- activity->callbacks->onPause = onPauseCallback; -- activity->callbacks->onStop = onStopCallback; -- activity->callbacks->onDestroy = onDestroyCallback; -- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -- activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -- activity->callbacks->onLowMemory = onLowMemoryCallback; -+ if (activity) { -+ activity->instance = (void*)this; -+ activity->callbacks->onStart = onStartCallback; -+ activity->callbacks->onResume = onResumeCallback; -+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -+ activity->callbacks->onPause = onPauseCallback; -+ activity->callbacks->onStop = onStopCallback; -+ activity->callbacks->onDestroy = onDestroyCallback; -+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -+ activity->callbacks->onLowMemory = onLowMemoryCallback; -+ } - } - - NativeActivity::~NativeActivity (void) -diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index b8a35898c..cf02e6b70 100644 ---- a/framework/platform/android/tcuAndroidPlatform.cpp -+++ b/framework/platform/android/tcuAndroidPlatform.cpp -@@ -22,6 +22,7 @@ - *//*--------------------------------------------------------------------*/ - - #include "tcuAndroidPlatform.hpp" -+#include "tcuAndroidNativeActivity.hpp" - #include "tcuAndroidUtil.hpp" - #include "gluRenderContext.hpp" - #include "egluNativeDisplay.hpp" -@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams& - Window* window = m_windowRegistry.tryAcquireWindow(); - - if (!window) -- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__); -+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__); - - return new NativeWindow(window, params.width, params.height, format); - } -@@ -292,6 +293,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity) - - try - { -+ if (!activity) -+ throw tcu::InternalError("No activity (running from command line?"); -+ - const size_t totalMemory = getTotalAndroidSystemMemory(activity); - print("Device has %.2f MiB of system memory\n", static_cast(totalMemory) / static_cast(MiB)); - return totalMemory; -@@ -388,3 +392,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const - - } // Android - } // tcu -+ -+tcu::Platform* createPlatform (void) -+{ -+ tcu::Android::NativeActivity activity(NULL); -+ return new tcu::Android::Platform(activity); -+} --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch b/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch deleted file mode 100644 index 3c0b72c43..000000000 --- a/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001 -From: Helen Koike -Date: Tue, 27 Sep 2022 12:35:22 -0300 -Subject: [PATCH 2/2] Android prints to stdout instead of logcat - -Signed-off-by: Helen Koike ---- - framework/qphelper/qpDebugOut.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c -index 6579e9f48..c200c6f6b 100644 ---- a/framework/qphelper/qpDebugOut.c -+++ b/framework/qphelper/qpDebugOut.c -@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args) - } - - /* print() implementation. */ --#if (DE_OS == DE_OS_ANDROID) -+#if (0) - - #include - --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch b/.gitlab-ci/container/patches/build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch deleted file mode 100644 index dda871c00..000000000 --- a/.gitlab-ci/container/patches/build-deqp-vk_Allow-running-on-Android-from-the-command-line.patch +++ /dev/null @@ -1,173 +0,0 @@ -From dc97ee83a813f6b170079ddf2a04bbb06221a5a7 Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso -Date: Fri, 26 Aug 2022 18:24:27 +0200 -Subject: [PATCH 1/2] Allow running on Android from the command line - -For testing the Android EGL platform without having to go via the -Android activity manager, build deqp-egl. - -Tests that render to native windows are unsupported, as command line -programs cannot create windows on Android. - -$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja -$ ninja -C build modules/egl/deqp-egl - -Signed-off-by: Tomeu Vizoso ---- - CMakeLists.txt | 36 ++----------------- - .../android/tcuAndroidNativeActivity.cpp | 36 ++++++++++--------- - .../platform/android/tcuAndroidPlatform.cpp | 12 ++++++- - 3 files changed, 33 insertions(+), 51 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f9c61d0db..d6ad2990b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -272,7 +272,7 @@ include_directories( - external/vulkancts/framework/vulkan - ) - --if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # On Android deqp modules are compiled as libraries and linked into final .so - set(DEQP_MODULE_LIBRARIES ) - set(DEQP_MODULE_ENTRY_POINTS ) -@@ -316,7 +316,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE) - set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -390,37 +390,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL}) - add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL}) - - # Single-binary targets --if (DE_OS_IS_ANDROID) -- include_directories(executor) -- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan) -- -- set(DEQP_SRCS -- framework/platform/android/tcuAndroidMain.cpp -- framework/platform/android/tcuAndroidJNI.cpp -- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp -- framework/platform/android/tcuTestLogParserJNI.cpp -- ${DEQP_MODULE_ENTRY_POINTS} -- ) -- -- set(DEQP_LIBS -- tcutil-platform -- xecore -- ${DEQP_MODULE_LIBRARIES} -- ) -- -- add_library(deqp SHARED ${DEQP_SRCS}) -- target_link_libraries(deqp ${DEQP_LIBS}) -- -- # Separate out the debug information because it's enormous -- add_custom_command(TARGET deqp POST_BUILD -- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $.debug $ -- COMMAND ${CMAKE_STRIP} -g $) -- -- # Needed by OpenGL CTS that defines its own activity but depends on -- # common Android support code. -- target_include_directories(deqp PRIVATE framework/platform/android) -- --elseif (DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # Code sign identity - set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build") - -diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp -index 6f8cd8fc5..b83e30f41 100644 ---- a/framework/platform/android/tcuAndroidNativeActivity.cpp -+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp -@@ -116,23 +116,25 @@ namespace Android - NativeActivity::NativeActivity (ANativeActivity* activity) - : m_activity(activity) - { -- activity->instance = (void*)this; -- activity->callbacks->onStart = onStartCallback; -- activity->callbacks->onResume = onResumeCallback; -- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -- activity->callbacks->onPause = onPauseCallback; -- activity->callbacks->onStop = onStopCallback; -- activity->callbacks->onDestroy = onDestroyCallback; -- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -- activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -- activity->callbacks->onLowMemory = onLowMemoryCallback; -+ if (activity) { -+ activity->instance = (void*)this; -+ activity->callbacks->onStart = onStartCallback; -+ activity->callbacks->onResume = onResumeCallback; -+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -+ activity->callbacks->onPause = onPauseCallback; -+ activity->callbacks->onStop = onStopCallback; -+ activity->callbacks->onDestroy = onDestroyCallback; -+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -+ activity->callbacks->onLowMemory = onLowMemoryCallback; -+ } - } - - NativeActivity::~NativeActivity (void) -diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index b8a35898c..cf02e6b70 100644 ---- a/framework/platform/android/tcuAndroidPlatform.cpp -+++ b/framework/platform/android/tcuAndroidPlatform.cpp -@@ -22,6 +22,7 @@ - *//*--------------------------------------------------------------------*/ - - #include "tcuAndroidPlatform.hpp" -+#include "tcuAndroidNativeActivity.hpp" - #include "tcuAndroidUtil.hpp" - #include "gluRenderContext.hpp" - #include "egluNativeDisplay.hpp" -@@ -170,7 +171,7 @@ eglu::NativeWindow* NativeWindowFactory::createWindow (const eglu::WindowParams& - Window* window = m_windowRegistry.tryAcquireWindow(); - - if (!window) -- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__); -+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__); - - return new NativeWindow(window, params.width, params.height, format); - } -@@ -292,6 +293,9 @@ static size_t getTotalSystemMemory (ANativeActivity* activity) - - try - { -+ if (!activity) -+ throw tcu::InternalError("No activity (running from command line?"); -+ - const size_t totalMemory = getTotalAndroidSystemMemory(activity); - print("Device has %.2f MiB of system memory\n", static_cast(totalMemory) / static_cast(MiB)); - return totalMemory; -@@ -388,3 +392,9 @@ bool Platform::hasDisplay (vk::wsi::Type wsiType) const - - } // Android - } // tcu -+ -+tcu::Platform* createPlatform (void) -+{ -+ tcu::Android::NativeActivity activity(NULL); -+ return new tcu::Android::Platform(activity); -+} --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch b/.gitlab-ci/container/patches/build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch deleted file mode 100644 index 3c0b72c43..000000000 --- a/.gitlab-ci/container/patches/build-deqp-vk_Android-prints-to-stdout-instead-of-logcat.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001 -From: Helen Koike -Date: Tue, 27 Sep 2022 12:35:22 -0300 -Subject: [PATCH 2/2] Android prints to stdout instead of logcat - -Signed-off-by: Helen Koike ---- - framework/qphelper/qpDebugOut.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c -index 6579e9f48..c200c6f6b 100644 ---- a/framework/qphelper/qpDebugOut.c -+++ b/framework/qphelper/qpDebugOut.c -@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args) - } - - /* print() implementation. */ --#if (DE_OS == DE_OS_ANDROID) -+#if (0) - - #include - --- -2.42.0 - diff --git a/.gitlab-ci/container/patches/build-skqp_BUILD.gn.patch b/.gitlab-ci/container/patches/build-skqp_BUILD.gn.patch deleted file mode 100644 index a1e82af6b..000000000 --- a/.gitlab-ci/container/patches/build-skqp_BUILD.gn.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/BUILD.gn b/BUILD.gn -index d2b1407..7b60c90 100644 ---- a/BUILD.gn -+++ b/BUILD.gn -@@ -144,7 +144,7 @@ config("skia_public") { - - # Skia internal APIs, used by Skia itself and a few test tools. - config("skia_private") { -- visibility = [ ":*" ] -+ visibility = [ "*" ] - - include_dirs = [ - "include/private", diff --git a/.gitlab-ci/container/patches/build-skqp_fetch_gn.patch b/.gitlab-ci/container/patches/build-skqp_fetch_gn.patch deleted file mode 100644 index 545cf2af7..000000000 --- a/.gitlab-ci/container/patches/build-skqp_fetch_gn.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/bin/fetch-gn b/bin/fetch-gn -index d5e94a2..59c4591 100755 ---- a/bin/fetch-gn -+++ b/bin/fetch-gn -@@ -5,39 +5,44 @@ - # Use of this source code is governed by a BSD-style license that can be - # found in the LICENSE file. - --import hashlib - import os -+import platform - import shutil - import stat - import sys --import urllib2 -+import tempfile -+import zipfile -+ -+if sys.version_info[0] < 3: -+ from urllib2 import urlopen -+else: -+ from urllib.request import urlopen - - os.chdir(os.path.join(os.path.dirname(__file__), os.pardir)) - --dst = 'bin/gn.exe' if 'win32' in sys.platform else 'bin/gn' -+gnzip = os.path.join(tempfile.mkdtemp(), 'gn.zip') -+with open(gnzip, 'wb') as f: -+ OS = {'darwin': 'mac', 'linux': 'linux', 'linux2': 'linux', 'win32': 'windows'}[sys.platform] -+ cpu = {'amd64': 'amd64', 'arm64': 'arm64', 'x86_64': 'amd64', 'aarch64': 'arm64'}[platform.machine().lower()] - --sha1 = '2f27ff0b6118e5886df976da5effa6003d19d1ce' if 'linux' in sys.platform else \ -- '9be792dd9010ce303a9c3a497a67bcc5ac8c7666' if 'darwin' in sys.platform else \ -- 'eb69be2d984b4df60a8c21f598135991f0ad1742' # Windows -+ rev = 'd62642c920e6a0d1756316d225a90fd6faa9e21e' -+ url = 'https://chrome-infra-packages.appspot.com/dl/gn/gn/{}-{}/+/git_revision:{}'.format( -+ OS,cpu,rev) -+ f.write(urlopen(url).read()) - --def sha1_of_file(path): -- h = hashlib.sha1() -- if os.path.isfile(path): -- with open(path, 'rb') as f: -- h.update(f.read()) -- return h.hexdigest() -+gn = 'gn.exe' if 'win32' in sys.platform else 'gn' -+with zipfile.ZipFile(gnzip, 'r') as f: -+ f.extract(gn, 'bin') - --if sha1_of_file(dst) != sha1: -- with open(dst, 'wb') as f: -- f.write(urllib2.urlopen('https://chromium-gn.storage-download.googleapis.com/' + sha1).read()) -+gn = os.path.join('bin', gn) - -- os.chmod(dst, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | -- stat.S_IRGRP | stat.S_IXGRP | -- stat.S_IROTH | stat.S_IXOTH ) -+os.chmod(gn, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | -+ stat.S_IRGRP | stat.S_IXGRP | -+ stat.S_IROTH | stat.S_IXOTH ) - - # We'll also copy to a path that depot_tools' GN wrapper will expect to find the binary. - copy_path = 'buildtools/linux64/gn' if 'linux' in sys.platform else \ - 'buildtools/mac/gn' if 'darwin' in sys.platform else \ - 'buildtools/win/gn.exe' - if os.path.isdir(os.path.dirname(copy_path)): -- shutil.copy(dst, copy_path) -+ shutil.copy(gn, copy_path) diff --git a/.gitlab-ci/container/patches/build-skqp_git-sync-deps.patch b/.gitlab-ci/container/patches/build-skqp_git-sync-deps.patch deleted file mode 100644 index d088349ad..000000000 --- a/.gitlab-ci/container/patches/build-skqp_git-sync-deps.patch +++ /dev/null @@ -1,142 +0,0 @@ -Patch based from diff with skia repository from commit -013397884c73959dc07cb0a26ee742b1cdfbda8a - -Adds support for Python3, but removes the constraint of only SHA based refs in -DEPS -diff --git a/tools/git-sync-deps b/tools/git-sync-deps -index c7379c0b5c..f63d4d9ccf 100755 ---- a/tools/git-sync-deps -+++ b/tools/git-sync-deps -@@ -43,7 +43,7 @@ def git_executable(): - A string suitable for passing to subprocess functions, or None. - """ - envgit = os.environ.get('GIT_EXECUTABLE') -- searchlist = ['git'] -+ searchlist = ['git', 'git.bat'] - if envgit: - searchlist.insert(0, envgit) - with open(os.devnull, 'w') as devnull: -@@ -94,21 +94,25 @@ def is_git_toplevel(git, directory): - try: - toplevel = subprocess.check_output( - [git, 'rev-parse', '--show-toplevel'], cwd=directory).strip() -- return os.path.realpath(directory) == os.path.realpath(toplevel) -+ return os.path.realpath(directory) == os.path.realpath(toplevel.decode()) - except subprocess.CalledProcessError: - return False - - --def status(directory, checkoutable): -- def truncate(s, length): -+def status(directory, commithash, change): -+ def truncate_beginning(s, length): -+ return s if len(s) <= length else '...' + s[-(length-3):] -+ def truncate_end(s, length): - return s if len(s) <= length else s[:(length - 3)] + '...' -+ - dlen = 36 -- directory = truncate(directory, dlen) -- checkoutable = truncate(checkoutable, 40) -- sys.stdout.write('%-*s @ %s\n' % (dlen, directory, checkoutable)) -+ directory = truncate_beginning(directory, dlen) -+ commithash = truncate_end(commithash, 40) -+ symbol = '>' if change else '@' -+ sys.stdout.write('%-*s %s %s\n' % (dlen, directory, symbol, commithash)) - - --def git_checkout_to_directory(git, repo, checkoutable, directory, verbose): -+def git_checkout_to_directory(git, repo, commithash, directory, verbose): - """Checkout (and clone if needed) a Git repository. - - Args: -@@ -117,8 +121,7 @@ def git_checkout_to_directory(git, repo, checkoutable, directory, verbose): - repo (string) the location of the repository, suitable - for passing to `git clone`. - -- checkoutable (string) a tag, branch, or commit, suitable for -- passing to `git checkout` -+ commithash (string) a commit, suitable for passing to `git checkout` - - directory (string) the path into which the repository - should be checked out. -@@ -129,7 +132,12 @@ def git_checkout_to_directory(git, repo, checkoutable, directory, verbose): - """ - if not os.path.isdir(directory): - subprocess.check_call( -- [git, 'clone', '--quiet', repo, directory]) -+ [git, 'clone', '--quiet', '--no-checkout', repo, directory]) -+ subprocess.check_call([git, 'checkout', '--quiet', commithash], -+ cwd=directory) -+ if verbose: -+ status(directory, commithash, True) -+ return - - if not is_git_toplevel(git, directory): - # if the directory exists, but isn't a git repo, you will modify -@@ -145,11 +153,11 @@ def git_checkout_to_directory(git, repo, checkoutable, directory, verbose): - with open(os.devnull, 'w') as devnull: - # If this fails, we will fetch before trying again. Don't spam user - # with error infomation. -- if 0 == subprocess.call([git, 'checkout', '--quiet', checkoutable], -+ if 0 == subprocess.call([git, 'checkout', '--quiet', commithash], - cwd=directory, stderr=devnull): - # if this succeeds, skip slow `git fetch`. - if verbose: -- status(directory, checkoutable) # Success. -+ status(directory, commithash, False) # Success. - return - - # If the repo has changed, always force use of the correct repo. -@@ -159,18 +167,24 @@ def git_checkout_to_directory(git, repo, checkoutable, directory, verbose): - - subprocess.check_call([git, 'fetch', '--quiet'], cwd=directory) - -- subprocess.check_call([git, 'checkout', '--quiet', checkoutable], cwd=directory) -+ subprocess.check_call([git, 'checkout', '--quiet', commithash], cwd=directory) - - if verbose: -- status(directory, checkoutable) # Success. -+ status(directory, commithash, True) # Success. - - - def parse_file_to_dict(path): - dictionary = {} -- execfile(path, dictionary) -+ with open(path) as f: -+ exec('def Var(x): return vars[x]\n' + f.read(), dictionary) - return dictionary - - -+def is_sha1_sum(s): -+ """SHA1 sums are 160 bits, encoded as lowercase hexadecimal.""" -+ return len(s) == 40 and all(c in '0123456789abcdef' for c in s) -+ -+ - def git_sync_deps(deps_file_path, command_line_os_requests, verbose): - """Grab dependencies, with optional platform support. - -@@ -204,19 +218,19 @@ def git_sync_deps(deps_file_path, command_line_os_requests, verbose): - raise Exception('%r is parent of %r' % (other_dir, directory)) - list_of_arg_lists = [] - for directory in sorted(dependencies): -- if not isinstance(dependencies[directory], basestring): -+ if not isinstance(dependencies[directory], str): - if verbose: -- print 'Skipping "%s".' % directory -+ sys.stdout.write( 'Skipping "%s".\n' % directory) - continue - if '@' in dependencies[directory]: -- repo, checkoutable = dependencies[directory].split('@', 1) -+ repo, commithash = dependencies[directory].split('@', 1) - else: -- raise Exception("please specify commit or tag") -+ raise Exception("please specify commit") - - relative_directory = os.path.join(deps_file_directory, directory) - - list_of_arg_lists.append( -- (git, repo, checkoutable, relative_directory, verbose)) -+ (git, repo, commithash, relative_directory, verbose)) - - multithread(git_checkout_to_directory, list_of_arg_lists) - diff --git a/.gitlab-ci/container/patches/build-skqp_gl.patch b/.gitlab-ci/container/patches/build-skqp_gl.patch deleted file mode 100644 index 7467ee4a4..000000000 --- a/.gitlab-ci/container/patches/build-skqp_gl.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/tools/skqp/src/skqp.cpp b/tools/skqp/src/skqp.cpp -index 50ed9db01d..938217000d 100644 ---- a/tools/skqp/src/skqp.cpp -+++ b/tools/skqp/src/skqp.cpp -@@ -448,7 +448,7 @@ inline void write(SkWStream* wStream, const T& text) { - - void SkQP::makeReport() { - SkASSERT_RELEASE(fAssetManager); -- int glesErrorCount = 0, vkErrorCount = 0, gles = 0, vk = 0; -+ int glErrorCount = 0, glesErrorCount = 0, vkErrorCount = 0, gl = 0, gles = 0, vk = 0; - - if (!sk_isdir(fReportDirectory.c_str())) { - SkDebugf("Report destination does not exist: '%s'\n", fReportDirectory.c_str()); -@@ -460,6 +460,7 @@ void SkQP::makeReport() { - htmOut.writeText(kDocHead); - for (const SkQP::RenderResult& run : fRenderResults) { - switch (run.fBackend) { -+ case SkQP::SkiaBackend::kGL: ++gl; break; - case SkQP::SkiaBackend::kGLES: ++gles; break; - case SkQP::SkiaBackend::kVulkan: ++vk; break; - default: break; -@@ -477,15 +478,17 @@ void SkQP::makeReport() { - } - write(&htmOut, SkStringPrintf(" f(%s);\n", str.c_str())); - switch (run.fBackend) { -+ case SkQP::SkiaBackend::kGL: ++glErrorCount; break; - case SkQP::SkiaBackend::kGLES: ++glesErrorCount; break; - case SkQP::SkiaBackend::kVulkan: ++vkErrorCount; break; - default: break; - } - } - htmOut.writeText(kDocMiddle); -- write(&htmOut, SkStringPrintf("

gles errors: %d (of %d)
\n" -+ write(&htmOut, SkStringPrintf("

gl errors: %d (of %d)
\n" -+ "gles errors: %d (of %d)
\n" - "vk errors: %d (of %d)

\n", -- glesErrorCount, gles, vkErrorCount, vk)); -+ glErrorCount, gl, glesErrorCount, gles, vkErrorCount, vk)); - htmOut.writeText(kDocTail); - SkFILEWStream unitOut(SkOSPath::Join(fReportDirectory.c_str(), kUnitTestReportPath).c_str()); - SkASSERT_RELEASE(unitOut.isValid()); diff --git a/.gitlab-ci/container/patches/build-skqp_is_clang.py.patch b/.gitlab-ci/container/patches/build-skqp_is_clang.py.patch deleted file mode 100644 index af6f6cff3..000000000 --- a/.gitlab-ci/container/patches/build-skqp_is_clang.py.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/gn/BUILDCONFIG.gn b/gn/BUILDCONFIG.gn -index 454334a..1797594 100644 ---- a/gn/BUILDCONFIG.gn -+++ b/gn/BUILDCONFIG.gn -@@ -80,7 +80,7 @@ if (current_cpu == "") { - is_clang = is_android || is_ios || is_mac || - (cc == "clang" && cxx == "clang++") || clang_win != "" - if (!is_clang && !is_win) { -- is_clang = exec_script("gn/is_clang.py", -+ is_clang = exec_script("//gn/is_clang.py", - [ - cc, - cxx, diff --git a/.gitlab-ci/container/patches/build-skqp_nima.patch b/.gitlab-ci/container/patches/build-skqp_nima.patch deleted file mode 100644 index a7ad032e3..000000000 --- a/.gitlab-ci/container/patches/build-skqp_nima.patch +++ /dev/null @@ -1,18 +0,0 @@ -Nima-Cpp is not available anymore inside googlesource, revert to github one -Simulates `git revert 49233d2521054037ded7d760427c4a0dc1e11356` - -diff --git a/DEPS b/DEPS -index 7e0b941..c88b064 100644 ---- a/DEPS -+++ b/DEPS -@@ -33,8 +33,8 @@ deps = { - #"third_party/externals/v8" : "https://chromium.googlesource.com/v8/v8.git@5f1ae66d5634e43563b2d25ea652dfb94c31a3b4", - "third_party/externals/wuffs" : "https://skia.googlesource.com/external/github.com/google/wuffs.git@fda3c4c9863d9f9fcec58ae66508c4621fc71ea5", - "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@47af7c547f8551bd25424e56354a2ae1e9062859", -- "third_party/externals/Nima-Cpp" : "https://skia.googlesource.com/external/github.com/2d-inc/Nima-Cpp.git@4bd02269d7d1d2e650950411325eafa15defb084", -- "third_party/externals/Nima-Math-Cpp" : "https://skia.googlesource.com/external/github.com/2d-inc/Nima-Math-Cpp.git@e0c12772093fa8860f55358274515b86885f0108", -+ "third_party/externals/Nima-Cpp" : "https://github.com/2d-inc/Nima-Cpp.git@4bd02269d7d1d2e650950411325eafa15defb084", -+ "third_party/externals/Nima-Math-Cpp" : "https://github.com/2d-inc/Nima-Math-Cpp.git@e0c12772093fa8860f55358274515b86885f0108", - - "../src": { - "url": "https://chromium.googlesource.com/chromium/src.git@ccf3465732e5d5363f0e44a8fac54550f62dd1d0", diff --git a/.gitlab-ci/container/setup-rootfs.sh b/.gitlab-ci/container/setup-rootfs.sh deleted file mode 100644 index 596f50c46..000000000 --- a/.gitlab-ci/container/setup-rootfs.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. -# When changing this file, you need to bump the following -# .gitlab-ci/image-tags.yml tags: -# KERNEL_ROOTFS_TAG -set -ex - -export DEBIAN_FRONTEND=noninteractive - -# Needed for ci-fairy, this revision is able to upload files to -# MinIO and doesn't depend on git -pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 - -# Needed for manipulation with traces yaml files. -pip3 install --break-system-packages yq - -passwd root -d -chsh -s /bin/sh - -cat > /init <crashdialog.reg < ${STDERR_FIFO} & -DMESG_PID=$! - -# Transfer the errors and crosvm-script output via a pair of virtio-vsocks -socat -d -u pipe:${STDERR_FIFO} vsock-listen:${VSOCK_STDERR} & -socat -d -U vsock-listen:${VSOCK_STDOUT} \ - system:"stdbuf -eL bash ${VM_TEMP_DIR}/crosvm-script.sh 2> ${STDERR_FIFO}; echo \$? > ${VM_TEMP_DIR}/exit_code",nofork - -kill ${DMESG_PID} -wait - -sync -poweroff -d -n -f || true - -sleep 1 # Just in case init would exit before the kernel shuts down the VM diff --git a/.gitlab-ci/crosvm-runner.sh b/.gitlab-ci/crosvm-runner.sh deleted file mode 100755 index 3464e8774..000000000 --- a/.gitlab-ci/crosvm-runner.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting -set -e - -# If run outside of a deqp-runner invoction (e.g. piglit trace replay), then act -# the same as the first thread in its threadpool. -THREAD=${DEQP_RUNNER_THREAD:-0} - -# -# Helper to generate CIDs for virtio-vsock based communication with processes -# running inside crosvm guests. -# -# A CID is a 32-bit Context Identifier to be assigned to a crosvm instance -# and must be unique across the host system. For this purpose, let's take -# the least significant 25 bits from CI_JOB_ID as a base and generate a 7-bit -# prefix number to handle up to 128 concurrent crosvm instances per job runner. -# -# As a result, the following variables are set: -# - VSOCK_CID: the crosvm unique CID to be passed as a run argument -# -# - VSOCK_STDOUT, VSOCK_STDERR: the port numbers the guest should accept -# vsock connections on in order to transfer output messages -# -# - VM_TEMP_DIR: the temporary directory path used to pass additional -# context data towards the guest -# -set_vsock_context() { - [ -n "${CI_JOB_ID}" ] || { - echo "Missing or unset CI_JOB_ID env variable" >&2 - exit 1 - } - - VM_TEMP_DIR="/tmp-vm.${THREAD}" - # Clear out any leftover files from a previous run. - rm -rf $VM_TEMP_DIR - mkdir $VM_TEMP_DIR || return 1 - - VSOCK_CID=$(((CI_JOB_ID & 0x1ffffff) | ((THREAD & 0x7f) << 25))) - VSOCK_STDOUT=5001 - VSOCK_STDERR=5002 - - return 0 -} - -# The dEQP binary needs to run from the directory it's in -if [ -n "${1##*.sh}" ] && [ -z "${1##*"deqp"*}" ]; then - DEQP_BIN_DIR=$(dirname "$1") - export DEQP_BIN_DIR -fi - -VM_SOCKET=crosvm-${THREAD}.sock - -# Terminate any existing crosvm, if a previous invocation of this shell script -# was terminated due to timeouts. This "vm stop" may fail if the crosvm died -# without cleaning itself up. -if [ -e $VM_SOCKET ]; then - crosvm stop $VM_SOCKET || true - # Wait for socats from that invocation to drain - sleep 5 - rm -rf $VM_SOCKET || true -fi - -set_vsock_context || { echo "Could not generate crosvm vsock CID" >&2; exit 1; } - -# Securely pass the current variables to the crosvm environment -echo "Variables passed through:" -SCRIPT_DIR=$(readlink -en "${0%/*}") -${SCRIPT_DIR}/common/generate-env.sh | tee ${VM_TEMP_DIR}/crosvm-env.sh -cp ${SCRIPT_DIR}/setup-test-env.sh ${VM_TEMP_DIR}/setup-test-env.sh - -# Set the crosvm-script as the arguments of the current script -echo ". ${VM_TEMP_DIR}/setup-test-env.sh" > ${VM_TEMP_DIR}/crosvm-script.sh -echo "$@" >> ${VM_TEMP_DIR}/crosvm-script.sh - -# Setup networking -/usr/sbin/iptables-legacy -w -t nat -A POSTROUTING -o eth0 -j MASQUERADE -echo 1 > /proc/sys/net/ipv4/ip_forward - -# Start background processes to receive output from guest -socat -u vsock-connect:${VSOCK_CID}:${VSOCK_STDERR},retry=200,interval=0.1 stderr & -socat -u vsock-connect:${VSOCK_CID}:${VSOCK_STDOUT},retry=200,interval=0.1 stdout & - -# Prepare to start crosvm -unset DISPLAY -unset XDG_RUNTIME_DIR - -CROSVM_KERN_ARGS="quiet console=null root=my_root rw rootfstype=virtiofs ip=192.168.30.2::192.168.30.1:255.255.255.0:crosvm:eth0" -CROSVM_KERN_ARGS="${CROSVM_KERN_ARGS} init=${SCRIPT_DIR}/crosvm-init.sh -- ${VSOCK_STDOUT} ${VSOCK_STDERR} ${VM_TEMP_DIR}" - -[ "${CROSVM_GALLIUM_DRIVER}" = "llvmpipe" ] && \ - CROSVM_LIBGL_ALWAYS_SOFTWARE=true || CROSVM_LIBGL_ALWAYS_SOFTWARE=false - -set +e -x - -# We aren't testing the host driver here, so we don't need to validate NIR on the host -NIR_DEBUG="novalidate" \ -LIBGL_ALWAYS_SOFTWARE=${CROSVM_LIBGL_ALWAYS_SOFTWARE} \ -GALLIUM_DRIVER=${CROSVM_GALLIUM_DRIVER} \ -VK_DRIVER_FILES=$CI_PROJECT_DIR/install/share/vulkan/icd.d/${CROSVM_VK_DRIVER}_icd.x86_64.json \ -crosvm --no-syslog run \ - --gpu "${CROSVM_GPU_ARGS}" --gpu-render-server "path=/usr/local/libexec/virgl_render_server" \ - -m "${CROSVM_MEMORY:-4096}" -c "${CROSVM_CPU:-2}" --disable-sandbox \ - --shared-dir /:my_root:type=fs:writeback=true:timeout=60:cache=always \ - --net "host-ip=192.168.30.1,netmask=255.255.255.0,mac=AA:BB:CC:00:00:12" \ - -s $VM_SOCKET \ - --cid ${VSOCK_CID} -p "${CROSVM_KERN_ARGS}" \ - /lava-files/${KERNEL_IMAGE_NAME:-bzImage} > ${VM_TEMP_DIR}/crosvm 2>&1 - -CROSVM_RET=$? - -[ ${CROSVM_RET} -eq 0 ] && { - # The actual return code is the crosvm guest script's exit code - CROSVM_RET=$(cat ${VM_TEMP_DIR}/exit_code 2>/dev/null) - # Force error when the guest script's exit code is not available - CROSVM_RET=${CROSVM_RET:-1} -} - -# Show crosvm output on error to help with debugging -[ ${CROSVM_RET} -eq 0 ] || { - set +x - echo "Dumping crosvm output.." >&2 - cat ${VM_TEMP_DIR}/crosvm >&2 - set -x -} - -exit ${CROSVM_RET} diff --git a/.gitlab-ci/cuttlefish-runner.sh b/.gitlab-ci/cuttlefish-runner.sh deleted file mode 100755 index 562de581c..000000000 --- a/.gitlab-ci/cuttlefish-runner.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -section_start cuttlefish_setup "cuttlefish: setup" -set -xe - -export HOME=/cuttlefish -export PATH=$PATH:/cuttlefish/bin -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${CI_PROJECT_DIR}/install/lib/:/cuttlefish/lib64 -export EGL_PLATFORM=surfaceless - -syslogd - -chown root.kvm /dev/kvm - -/etc/init.d/cuttlefish-host-resources start - -cd /cuttlefish - -launch_cvd --verbosity=DEBUG --report_anonymous_usage_stats=n --cpus=8 --memory_mb=8192 --gpu_mode="$ANDROID_GPU_MODE" --daemon --enable_minimal_mode=true --guest_enforce_security=false --use_overlay=false -sleep 1 - -cd - - -adb connect vsock:3:5555 -ADB="adb -s vsock:3:5555" - -$ADB root -sleep 1 -$ADB shell echo Hi from Android -# shellcheck disable=SC2035 -$ADB logcat dEQP:D *:S & - -# overlay vendor - -OV_TMPFS="/data/overlay-remount" -$ADB shell mkdir -p "$OV_TMPFS" -$ADB shell mount -t tmpfs none "$OV_TMPFS" - -$ADB shell mkdir -p "$OV_TMPFS/vendor-upper" -$ADB shell mkdir -p "$OV_TMPFS/vendor-work" - -opts="lowerdir=/vendor,upperdir=$OV_TMPFS/vendor-upper,workdir=$OV_TMPFS/vendor-work" -$ADB shell mount -t overlay -o "$opts" none /vendor - -$ADB shell setenforce 0 - -# deqp - -$ADB push /deqp/modules/egl/deqp-egl-android /data/. -$ADB push /deqp/assets/gl_cts/data/mustpass/egl/aosp_mustpass/3.2.6.x/egl-main.txt /data/ -$ADB push /deqp-runner/deqp-runner /data/. - -# download Android Mesa from S3 -MESA_ANDROID_ARTIFACT_URL=https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst -curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -o ${S3_ARTIFACT_NAME}.tar.zst ${MESA_ANDROID_ARTIFACT_URL} -tar -xvf ${S3_ARTIFACT_NAME}.tar.zst -rm "${S3_ARTIFACT_NAME}.tar.zst" & - -$ADB push install/all-skips.txt /data/. -$ADB push install/$GPU_VERSION-flakes.txt /data/. -$ADB push install/deqp-$DEQP_SUITE.toml /data/. - -# remove 32 bits libs from /vendor/lib - -$ADB shell rm /vendor/lib/dri/${ANDROID_DRIVER}_dri.so -$ADB shell rm /vendor/lib/libglapi.so -$ADB shell rm /vendor/lib/egl/libGLES_mesa.so - -$ADB shell rm /vendor/lib/egl/libEGL_angle.so -$ADB shell rm /vendor/lib/egl/libEGL_emulation.so -$ADB shell rm /vendor/lib/egl/libGLESv1_CM_angle.so -$ADB shell rm /vendor/lib/egl/libGLESv1_CM_emulation.so -$ADB shell rm /vendor/lib/egl/libGLESv2_angle.so -$ADB shell rm /vendor/lib/egl/libGLESv2_emulation.so - -# replace on /vendor/lib64 - -$ADB push install/lib/dri/${ANDROID_DRIVER}_dri.so /vendor/lib64/dri/${ANDROID_DRIVER}_dri.so -$ADB push install/lib/libglapi.so /vendor/lib64/libglapi.so -$ADB push install/lib/libEGL.so /vendor/lib64/egl/libEGL_mesa.so - -$ADB shell rm /vendor/lib64/egl/libEGL_angle.so -$ADB shell rm /vendor/lib64/egl/libEGL_emulation.so -$ADB shell rm /vendor/lib64/egl/libGLESv1_CM_angle.so -$ADB shell rm /vendor/lib64/egl/libGLESv1_CM_emulation.so -$ADB shell rm /vendor/lib64/egl/libGLESv2_angle.so -$ADB shell rm /vendor/lib64/egl/libGLESv2_emulation.so - - -RESULTS=/data/results -uncollapsed_section_switch cuttlefish_test "cuttlefish: testing" - -set +e -$ADB shell "mkdir /data/results; cd /data; ./deqp-runner \ - suite \ - --suite /data/deqp-$DEQP_SUITE.toml \ - --output $RESULTS \ - --skips /data/all-skips.txt $DEQP_SKIPS \ - --flakes /data/$GPU_VERSION-flakes.txt \ - --testlog-to-xml /deqp/executor/testlog-to-xml \ - --fraction-start $CI_NODE_INDEX \ - --fraction $(( CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $DEQP_RUNNER_OPTIONS" - -EXIT_CODE=$? -set -e -section_switch cuttlefish_results "cuttlefish: gathering the results" - -$ADB pull $RESULTS results - -cp /cuttlefish/cuttlefish/instances/cvd-1/logs/logcat results -cp /cuttlefish/cuttlefish/instances/cvd-1/kernel.log results -cp /cuttlefish/cuttlefish/instances/cvd-1/logs/launcher.log results - -section_end cuttlefish_results -exit $EXIT_CODE diff --git a/.gitlab-ci/deqp-runner.sh b/.gitlab-ci/deqp-runner.sh deleted file mode 100755 index dd09e3498..000000000 --- a/.gitlab-ci/deqp-runner.sh +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -section_start test_setup "deqp: preparing test setup" - -set -ex - -# Needed so configuration files can contain paths to files in /install -ln -sf "$CI_PROJECT_DIR"/install /install - -if [ -z "$GPU_VERSION" ]; then - echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in .gitlab-ci/gpu-version-*.txt)' - exit 1 -fi - -INSTALL=$(realpath -s "$PWD"/install) - -# Set up the driver environment. -export LD_LIBRARY_PATH="$INSTALL"/lib/:$LD_LIBRARY_PATH -export EGL_PLATFORM=surfaceless -export VK_DRIVER_FILES="$PWD"/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.${VK_CPU:-$(uname -m)}.json -export OCL_ICD_VENDORS="$PWD"/install/etc/OpenCL/vendors/ - -if [ -n "$USE_ANGLE" ]; then - export LD_LIBRARY_PATH=/angle:$LD_LIBRARY_PATH -fi - -RESULTS="$PWD/${DEQP_RESULTS_DIR:-results}" -mkdir -p "$RESULTS" - -# Ensure Mesa Shader Cache resides on tmpfs. -SHADER_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache} -SHADER_CACHE_DIR=${MESA_SHADER_CACHE_DIR:-${SHADER_CACHE_HOME}/mesa_shader_cache} - -findmnt -n tmpfs ${SHADER_CACHE_HOME} || findmnt -n tmpfs ${SHADER_CACHE_DIR} || { - mkdir -p ${SHADER_CACHE_DIR} - mount -t tmpfs -o nosuid,nodev,size=2G,mode=1755 tmpfs ${SHADER_CACHE_DIR} -} - -if [ -z "$DEQP_SUITE" ]; then - if [ -z "$DEQP_VER" ]; then - echo 'DEQP_SUITE must be set to the name of your deqp-gpu_version.toml, or DEQP_VER must be set to something like "gles2", "gles31-khr" or "vk" for the test run' - exit 1 - fi - - DEQP_WIDTH=${DEQP_WIDTH:-256} - DEQP_HEIGHT=${DEQP_HEIGHT:-256} - DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0} - - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=${DEQP_SURFACE_TYPE:-pbuffer}" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG" - DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" - - if [ "$DEQP_VER" = "vk" ] && [ -z "$VK_DRIVER" ]; then - echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run' - exit 1 - fi - - # Generate test case list file. - if [ "$DEQP_VER" = "vk" ]; then - MUSTPASS=/deqp/mustpass/vk-main.txt - DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk - elif [ "$DEQP_VER" = "gles2" ] || [ "$DEQP_VER" = "gles3" ] || [ "$DEQP_VER" = "gles31" ] || [ "$DEQP_VER" = "egl" ]; then - MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt - DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER - elif [ "$DEQP_VER" = "gles2-khr" ] || [ "$DEQP_VER" = "gles3-khr" ] || [ "$DEQP_VER" = "gles31-khr" ] || [ "$DEQP_VER" = "gles32-khr" ]; then - MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt - DEQP=/deqp/external/openglcts/modules/glcts - else - MUSTPASS=/deqp/mustpass/$DEQP_VER-main.txt - DEQP=/deqp/external/openglcts/modules/glcts - fi - - cp $MUSTPASS /tmp/case-list.txt - - # If the caselist is too long to run in a reasonable amount of time, let the job - # specify what fraction (1/n) of the caselist we should run. Note: N~M is a gnu - # sed extension to match every nth line (first line is #1). - if [ -n "$DEQP_FRACTION" ]; then - sed -ni 1~$DEQP_FRACTION"p" /tmp/case-list.txt - fi - - # If the job is parallel at the gitab job level, take the corresponding fraction - # of the caselist. - if [ -n "$CI_NODE_INDEX" ]; then - sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt - fi - - if [ ! -s /tmp/case-list.txt ]; then - echo "Caselist generation failed" - exit 1 - fi -fi - -if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then - DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt" -fi - -# Default to an empty known flakes file if it doesn't exist. -touch $INSTALL/$GPU_VERSION-flakes.txt - - -if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$VK_DRIVER-skips.txt" -fi - -if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt" -fi - -if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$DRIVER_NAME-skips.txt" -fi - -if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/$GPU_VERSION-skips.txt" -fi - -if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/x11-skips.txt" -fi - -if [ "$PIGLIT_PLATFORM" = "gbm" ]; then - DEQP_SKIPS="$DEQP_SKIPS $INSTALL/gbm-skips.txt" -fi - -if [ -n "$VK_DRIVER" ] && [ -z "$DEQP_SUITE" ]; then - # Bump the number of tests per group to reduce the startup time of VKCTS. - DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --tests-per-group ${DEQP_RUNNER_TESTS_PER_GROUP:-5000}" -fi - -# Set the path to VK validation layer settings (in case it ends up getting loaded) -# Note: If you change the format of this filename, look through the rest of the -# tree for other places that need to be kept in sync (e.g. -# src/gallium/drivers/zink/ci/gitlab-ci-inc.yml) -export VK_LAYER_SETTINGS_PATH=$INSTALL/$GPU_VERSION-validation-settings.txt - -report_load() { - echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)" - echo "# of CPU cores: $(grep -c processor /proc/cpuinfo)" -} - -if [ "$GALLIUM_DRIVER" = "virpipe" ]; then - # deqp is to use virpipe, and virgl_test_server llvmpipe - export GALLIUM_DRIVER="$GALLIUM_DRIVER" - - VTEST_ARGS="--use-egl-surfaceless" - if [ "$VIRGL_HOST_API" = "GLES" ]; then - VTEST_ARGS="$VTEST_ARGS --use-gles" - fi - - GALLIUM_DRIVER=llvmpipe \ - virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 & - - sleep 1 -fi - -if [ -z "$DEQP_SUITE" ]; then - if [ -n "$DEQP_EXPECTED_RENDERER" ]; then - export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --renderer-check $DEQP_EXPECTED_RENDERER" - fi - if [ $DEQP_VER != vk ] && [ $DEQP_VER != egl ]; then - VER=$(sed 's/[() ]/./g' "$INSTALL/VERSION") - export DEQP_RUNNER_OPTIONS="$DEQP_RUNNER_OPTIONS --version-check $VER" - fi -fi - -uncollapsed_section_switch deqp "deqp: deqp-runner" - -# Print the detailed version with the list of backports and local patches -for api in vk gl gles; do - deqp_version_log=/deqp/version-$api - if [ -r "$deqp_version_log" ]; then - cat "$deqp_version_log" - fi -done - -set +e -if [ -z "$DEQP_SUITE" ]; then - deqp-runner \ - run \ - --deqp $DEQP \ - --output $RESULTS \ - --caselist /tmp/case-list.txt \ - --skips $INSTALL/all-skips.txt $DEQP_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --testlog-to-xml /deqp/executor/testlog-to-xml \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $DEQP_RUNNER_OPTIONS \ - -- \ - $DEQP_OPTIONS -else - # If you change the format of the suite toml filenames or the - # $GPU_VERSION-{fails,flakes,skips}.txt filenames, look through the rest - # of the tree for other places that need to be kept in sync (e.g. - # src/**/ci/gitlab-ci*.yml) - deqp-runner \ - suite \ - --suite $INSTALL/deqp-$DEQP_SUITE.toml \ - --output $RESULTS \ - --skips $INSTALL/all-skips.txt $DEQP_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --testlog-to-xml /deqp/executor/testlog-to-xml \ - --fraction-start $CI_NODE_INDEX \ - --fraction $((CI_NODE_TOTAL * ${DEQP_FRACTION:-1})) \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $DEQP_RUNNER_OPTIONS -fi - -DEQP_EXITCODE=$? -set -e - -set +x - -report_load - -section_switch test_post_process "deqp: post-processing test results" -set -x - -# Remove all but the first 50 individual XML files uploaded as artifacts, to -# save fd.o space when you break everything. -find $RESULTS -name \*.xml | \ - sort -n | - sed -n '1,+49!p' | \ - xargs rm -f - -# If any QPA XMLs are there, then include the XSL/CSS in our artifacts. -find $RESULTS -name \*.xml \ - -exec cp /deqp/testlog.css /deqp/testlog.xsl "$RESULTS/" ";" \ - -quit - -deqp-runner junit \ - --testsuite dEQP \ - --results $RESULTS/failures.csv \ - --output $RESULTS/junit.xml \ - --limit 50 \ - --template "See $ARTIFACTS_BASE_URL/results/{{testcase}}.xml" - -# Report the flakes to the IRC channel for monitoring (if configured): -if [ -n "$FLAKES_CHANNEL" ]; then - python3 $INSTALL/report-flakes.py \ - --host irc.oftc.net \ - --port 6667 \ - --results $RESULTS/results.csv \ - --known-flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --channel "$FLAKES_CHANNEL" \ - --runner "$CI_RUNNER_DESCRIPTION" \ - --job "$CI_JOB_ID" \ - --url "$CI_JOB_URL" \ - --branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \ - --branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}" || true -fi - -# Compress results.csv to save on bandwidth during the upload of artifacts to -# GitLab. This reduces the size in a VKCTS run from 135 to 7.6MB, and takes -# 0.17s on a Ryzen 5950X (16 threads, 0.95s when limited to 1 thread). -zstd --rm -T0 -8q "$RESULTS/results.csv" -o "$RESULTS/results.csv.zst" - -section_end test_post_process - -exit $DEQP_EXITCODE diff --git a/.gitlab-ci/docs b/.gitlab-ci/docs deleted file mode 120000 index af422dba8..000000000 --- a/.gitlab-ci/docs +++ /dev/null @@ -1 +0,0 @@ -../docs/ci \ No newline at end of file diff --git a/.gitlab-ci/download-git-cache.sh b/.gitlab-ci/download-git-cache.sh deleted file mode 100644 index 27fb7a930..000000000 --- a/.gitlab-ci/download-git-cache.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env bash - -set +e -set -o xtrace - -# if we run this script outside of gitlab-ci for testing, ensure -# we got meaningful variables -CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(mktemp -d)/$CI_PROJECT_NAME} - -if [[ -e $CI_PROJECT_DIR/.git ]] -then - echo "Repository already present, skip cache download" - exit -fi - -TMP_DIR=$(mktemp -d) - -echo "$(date +"%F %T") Downloading archived master..." -if ! /usr/bin/wget \ - -O "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" \ - "https://${S3_HOST}/${S3_GITCACHE_BUCKET}/${FDO_UPSTREAM_REPO}/$CI_PROJECT_NAME.tar.gz"; -then - echo "Repository cache not available" - exit -fi - -set -e - -rm -rf "$CI_PROJECT_DIR" -echo "$(date +"%F %T") Extracting tarball into '$CI_PROJECT_DIR'..." -mkdir -p "$CI_PROJECT_DIR" -tar xzf "$TMP_DIR/$CI_PROJECT_NAME.tar.gz" -C "$CI_PROJECT_DIR" -rm -rf "$TMP_DIR" -chmod a+w "$CI_PROJECT_DIR" - -echo "$(date +"%F %T") Git cache download done" diff --git a/.gitlab-ci/farm-rules.yml b/.gitlab-ci/farm-rules.yml deleted file mode 100644 index eaddaa9fb..000000000 --- a/.gitlab-ci/farm-rules.yml +++ /dev/null @@ -1,341 +0,0 @@ -# The logic for each $FARM is as follows: -# -# If the disable file exists, we are disabling the farm, or it's already -# disabled: -# - exists: [ .ci-farms-disabled/$FARM ] -# when: never -# -# Otherwise, changing the disable file means removing it, so we are -# re-enabling the farm: -# - changes: [ .ci-farms-disabled/$FARM ] -# if: '$CI_PIPELINE_SOURCE != "schedule"' -# when: on_success -# Note: the "manual" variant of each farm rules changes the above to `never`, -# so that jobs meant to be manual don't run in re-enablement MRs. This is the -# only difference between `.$FARM-farm-rules` and `.$FARM-farm-manual-rules`. -# -# If any other disable file is modified, we are disabling/re-enabling another -# farm: -# - changes: [ .ci-farms-disabled/* ] -# if: '$CI_PIPELINE_SOURCE != "schedule"' -# when: never -# -# The `not schedule` condition is there to make sure scheduled pipelines -# contains all the jobs, as `changes` conditions in scheduled pipelines are -# always evaluated to `true`. -# -# The "fallback", if none of these rules match, is usually the list of files -# that are used by a driver. See the various `.$DRIVER-rules` in the -# corresponding `src/**/ci/gitlab-ci.yml`. - -.microsoft-farm-rules: - rules: - - exists: [ .ci-farms-disabled/microsoft ] # 1. Is disabled, never run - when: never - - changes: [ .ci-farms-disabled/microsoft ] # 2. Removed from disabled, run - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] # 3. We touched other farms in MR, do not run - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - # 4. Fall-through (other rules or on_success) - -.microsoft-farm-manual-rules: - rules: - # Allow triggering jobs manually in other cases if any files affecting the - # pipeline were changed - - exists: [ .ci-farms-disabled/microsoft ] - when: never - - changes: [ .ci-farms-disabled/microsoft ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.microsoft-farm-rules, rules] - -.microsoft-farm-container-rules: - rules: - # Allow triggering jobs manually in other cases if any files affecting the - # pipeline were changed - - exists: [ .ci-farms-disabled/microsoft ] - when: never - - changes: [ .ci-farms-disabled/microsoft ] - if: '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_BRANCH' - when: on_success - - changes: [ .ci-farms-disabled/microsoft ] - if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"' - when: on_success - - changes: [ .ci-farms-disabled/microsoft ] - if: '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_COMMIT_BRANCH' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_BRANCH' - when: never - - changes: [ .ci-farms-disabled/* ] - if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event"' - when: never - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_COMMIT_BRANCH' - when: never - - -.collabora-farm-rules: - rules: - - exists: [ .ci-farms-disabled/collabora ] - when: never - - if: '$CI_PIPELINE_SOURCE != "schedule"' - changes: [ .ci-farms-disabled/collabora ] - when: on_success - - if: '$CI_PIPELINE_SOURCE != "schedule"' - changes: [ .ci-farms-disabled/* ] - when: never - -.collabora-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/collabora ] - when: never - - if: '$CI_PIPELINE_SOURCE != "schedule"' - changes: [ .ci-farms-disabled/collabora ] - when: never - - !reference [.collabora-farm-rules, rules] - - -.igalia-farm-rules: - rules: - - exists: [ .ci-farms-disabled/igalia ] - when: never - - changes: [ .ci-farms-disabled/igalia ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.igalia-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/igalia ] - when: never - - changes: [ .ci-farms-disabled/igalia ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.igalia-farm-rules, rules] - - -.lima-farm-rules: - rules: - - exists: [ .ci-farms-disabled/lima ] - when: never - - changes: [ .ci-farms-disabled/lima ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.lima-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/lima ] - when: never - - changes: [ .ci-farms-disabled/lima ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.lima-farm-rules, rules] - - -.anholt-farm-rules: - rules: - - exists: [ .ci-farms-disabled/anholt ] - when: never - - changes: [ .ci-farms-disabled/anholt ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.anholt-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/anholt ] - when: never - - changes: [ .ci-farms-disabled/anholt ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.anholt-farm-rules, rules] - - -.valve-farm-rules: - rules: - - exists: [ .ci-farms-disabled/valve-mupuf ] - if: '$RUNNER_FARM_LOCATION == "mupuf"' - when: never - - exists: [ .ci-farms-disabled/valve-kws ] - if: '$RUNNER_FARM_LOCATION == "keywords"' - when: never - - changes: [ .ci-farms-disabled/valve-mupuf ] - if: '$RUNNER_FARM_LOCATION == "mupuf" && $CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/valve-kws ] - if: '$RUNNER_FARM_LOCATION == "keywords" && $CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.valve-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/valve-mupuf ] - if: '$RUNNER_FARM_LOCATION == "mupuf"' - when: never - - exists: [ .ci-farms-disabled/valve-kws ] - if: '$RUNNER_FARM_LOCATION == "keywords"' - when: never - - changes: [ .ci-farms-disabled/valve-mupuf ] - if: '$RUNNER_FARM_LOCATION == "mupuf" && $CI_PIPELINE_SOURCE != "schedule"' - when: never - - changes: [ .ci-farms-disabled/valve-kws ] - if: '$RUNNER_FARM_LOCATION == "keywords" && $CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.valve-farm-rules, rules] - - -.austriancoder-farm-rules: - rules: - - exists: [ .ci-farms-disabled/austriancoder ] - when: never - - changes: [ .ci-farms-disabled/austriancoder ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.austriancoder-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/austriancoder ] - when: never - - changes: [ .ci-farms-disabled/austriancoder ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.austriancoder-farm-rules, rules] - - -.freedreno-farm-rules: - rules: - - exists: [ .ci-farms-disabled/freedreno ] - when: never - - changes: [ .ci-farms-disabled/freedreno ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.freedreno-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/freedreno ] - when: never - - changes: [ .ci-farms-disabled/freedreno ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.freedreno-farm-rules, rules] - -.vmware-farm-rules: - rules: - - exists: [ .ci-farms-disabled/vmware ] - when: never - - changes: [ .ci-farms-disabled/vmware ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.vmware-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/vmware ] - when: never - - changes: [ .ci-farms-disabled/vmware ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.vmware-farm-rules, rules] - -.ondracka-farm-rules: - rules: - - exists: [ .ci-farms-disabled/ondracka ] - when: never - - changes: [ .ci-farms-disabled/ondracka ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: on_success - - changes: [ .ci-farms-disabled/* ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - -.ondracka-farm-manual-rules: - rules: - - exists: [ .ci-farms-disabled/ondracka ] - when: never - - changes: [ .ci-farms-disabled/ondracka ] - if: '$CI_PIPELINE_SOURCE != "schedule"' - when: never - - !reference [.ondracka-farm-rules, rules] - - -# Skip container & build jobs when disabling any farm, and run them if any -# farm gets re-enabled. -# Only apply these rules in MR context, because otherwise we get a false -# positive on files being 'created' when pushing to a new branch, and break -# our pipeline -.disable-farm-mr-rules: - rules: - # changes(disabled) + exists(disabled) = disabling the farm - # Note: this cannot be simplified into a single `.ci-farms-disabled/*` rule - # because if there are more than one disabled farm and we only re-enable - # one, the exits(.ci-farms-disabled/*) would match and what should be - # a farm re-enable pipeline will be detected as a farm disable pipeline. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/microsoft ] - exists: [ .ci-farms-disabled/microsoft ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/collabora ] - exists: [ .ci-farms-disabled/collabora ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/igalia ] - exists: [ .ci-farms-disabled/igalia ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/lima ] - exists: [ .ci-farms-disabled/lima ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/anholt ] - exists: [ .ci-farms-disabled/anholt ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/valve-mupuf ] - exists: [ .ci-farms-disabled/valve-mupuf ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/valve-kws ] - exists: [ .ci-farms-disabled/valve-kws ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/austriancoder ] - exists: [ .ci-farms-disabled/austriancoder ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/freedreno ] - exists: [ .ci-farms-disabled/freedreno ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/ondracka ] - exists: [ .ci-farms-disabled/ondracka ] - when: never - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: [ .ci-farms-disabled/vmware ] - exists: [ .ci-farms-disabled/vmware ] - when: never - # Any other change to ci-farms/* means some farm is getting re-enabled. - # Run jobs in Marge pipelines (and let it fallback to manual otherwise) - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "marge-bot"' - changes: [ .ci-farms/* ] - when: on_success diff --git a/.gitlab-ci/fossilize-runner.sh b/.gitlab-ci/fossilize-runner.sh deleted file mode 100755 index af0182bb9..000000000 --- a/.gitlab-ci/fossilize-runner.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -ex - -if [ -z "$VK_DRIVER" ]; then - echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run' - exit 1 -fi - -INSTALL=$PWD/install - -# Set up the driver environment. -export LD_LIBRARY_PATH="$INSTALL/lib/" -export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json" - -# To store Fossilize logs on failure. -RESULTS="$PWD/results" -mkdir -p results - -"$INSTALL/fossils/fossils.sh" "$INSTALL/fossils.yml" "$RESULTS" diff --git a/.gitlab-ci/fossils.yml b/.gitlab-ci/fossils.yml deleted file mode 100644 index f33ed18a4..000000000 --- a/.gitlab-ci/fossils.yml +++ /dev/null @@ -1,10 +0,0 @@ -fossils-db: - repo: "https://gitlab.freedesktop.org/hakzsam/fossils-db" - commit: "5626cedcb58bd95a7b79a9664651818aea92b21c" - -fossils: - - path: sascha-willems/database.foz - - path: parallel-rdp/small_subgroup.foz - - path: parallel-rdp/small_uber_subgroup.foz - - path: parallel-rdp/subgroup.foz - - path: parallel-rdp/uber_subgroup.foz diff --git a/.gitlab-ci/fossils/fossils.sh b/.gitlab-ci/fossils/fossils.sh deleted file mode 100755 index e50312d64..000000000 --- a/.gitlab-ci/fossils/fossils.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting -# shellcheck disable=SC2155 - -FOSSILS_SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -FOSSILS_YAML="$(readlink -f "$1")" -FOSSILS_RESULTS="$2" - -clone_fossils_db() -{ - local repo="$1" - local commit="$2" - rm -rf fossils-db - git clone --no-checkout "$repo" fossils-db - (cd fossils-db || return; git reset "$commit" || git reset "origin/$commit") -} - -query_fossils_yaml() -{ - python3 "$FOSSILS_SCRIPT_DIR/query_fossils_yaml.py" \ - --file "$FOSSILS_YAML" "$@" -} - -create_clean_git() -{ - rm -rf .clean_git - cp -R .git .clean_git -} - -restore_clean_git() -{ - rm -rf .git - cp -R .clean_git .git -} - -fetch_fossil() -{ - local fossil="${1//,/?}" - echo -n "[fetch_fossil] Fetching $1... " - local output=$(git lfs pull -I "$fossil" 2>&1) - local ret=0 - if [[ $? -ne 0 || ! -f "$1" ]]; then - echo "ERROR" - echo "$output" - ret=1 - else - echo "OK" - fi - restore_clean_git - return $ret -} - -if [[ -n "$(query_fossils_yaml fossils_db_repo)" ]]; then - clone_fossils_db "$(query_fossils_yaml fossils_db_repo)" \ - "$(query_fossils_yaml fossils_db_commit)" - cd fossils-db || return -else - echo "Warning: No fossils-db entry in $FOSSILS_YAML, assuming fossils-db is current directory" -fi - -# During git operations various git objects get created which -# may take up significant space. Store a clean .git instance, -# which we restore after various git operations to keep our -# storage consumption low. -create_clean_git - -for fossil in $(query_fossils_yaml fossils) -do - fetch_fossil "$fossil" || exit $? - if ! fossilize-replay --num-threads 4 $fossil 1>&2 2> $FOSSILS_RESULTS/fossil_replay.txt; - then - echo "Replay of $fossil failed" - grep "pipeline crashed or hung" $FOSSILS_RESULTS/fossil_replay.txt - exit 1 - fi - rm $fossil -done - -exit $ret diff --git a/.gitlab-ci/fossils/query_fossils_yaml.py b/.gitlab-ci/fossils/query_fossils_yaml.py deleted file mode 100644 index 42e4b8e1c..000000000 --- a/.gitlab-ci/fossils/query_fossils_yaml.py +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/python3 - -# Copyright (c) 2019 Collabora Ltd -# Copyright (c) 2020 Valve Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# SPDX-License-Identifier: MIT - -import argparse -import yaml - -def cmd_fossils_db_repo(args): - with open(args.file, 'r') as f: - y = yaml.safe_load(f) - print(y['fossils-db']['repo']) - -def cmd_fossils_db_commit(args): - with open(args.file, 'r') as f: - y = yaml.safe_load(f) - print(y['fossils-db']['commit']) - -def cmd_fossils(args): - with open(args.file, 'r') as f: - y = yaml.safe_load(f) - - fossils = list(y['fossils']) - if len(fossils) == 0: - return - - print('\n'.join((t['path'] for t in fossils))) - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('--file', required=True, - help='the name of the yaml file') - - subparsers = parser.add_subparsers(help='sub-command help') - - parser_fossils_db_repo = subparsers.add_parser('fossils_db_repo') - parser_fossils_db_repo.set_defaults(func=cmd_fossils_db_repo) - - parser_fossils_db_commit = subparsers.add_parser('fossils_db_commit') - parser_fossils_db_commit.set_defaults(func=cmd_fossils_db_commit) - - parser_fossils = subparsers.add_parser('fossils') - parser_fossils.set_defaults(func=cmd_fossils) - - args = parser.parse_args() - args.func(args) - -if __name__ == "__main__": - main() diff --git a/.gitlab-ci/gbm-skips.txt b/.gitlab-ci/gbm-skips.txt deleted file mode 100644 index 9067df7e8..000000000 --- a/.gitlab-ci/gbm-skips.txt +++ /dev/null @@ -1,7 +0,0 @@ -# gbm does not support reading the front buffer after a swapbuffers, and that's -# intentional. Don't bother running these tests when PIGLIT_PLATFORM=gbm. -# -# Note that this doesn't include tests like fbo-sys-blit, which draw/read front -# but don't swap. -spec@!opengl 1.0@gl-1.0-swapbuffers-behavior -spec@!opengl 1.1@read-front diff --git a/.gitlab-ci/gtest-runner.sh b/.gitlab-ci/gtest-runner.sh deleted file mode 100755 index c4ae1e741..000000000 --- a/.gitlab-ci/gtest-runner.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -INSTALL=$PWD/install - -# Set up the driver environment. -export LD_LIBRARY_PATH=$INSTALL/lib/ - -RESULTS="$PWD/${GTEST_RESULTS_DIR:-results}" -mkdir -p "$RESULTS" - -export LIBVA_DRIVERS_PATH=$INSTALL/lib/dri/ -# libva spams driver open info by default, and that happens per testcase. -export LIBVA_MESSAGING_LEVEL=1 - -if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then - GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt" -fi - -# Default to an empty known flakes file if it doesn't exist. -touch "$INSTALL/$GPU_VERSION-flakes.txt" - -if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then - GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt" -fi - -if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then - GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt" -fi - -if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then - GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt" -fi - -set +e - -gtest-runner \ - run \ - --gtest $GTEST \ - --output ${RESULTS} \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - $GTEST_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --fraction-start ${CI_NODE_INDEX:-1} \ - --fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \ - --env "LD_PRELOAD=$TEST_LD_PRELOAD" \ - $GTEST_RUNNER_OPTIONS - -GTEST_EXITCODE=$? - -deqp-runner junit \ - --testsuite gtest \ - --results $RESULTS/failures.csv \ - --output $RESULTS/junit.xml \ - --limit 50 \ - --template "See $ARTIFACTS_BASE_URL/results/{{testcase}}.xml" - -# Report the flakes to the IRC channel for monitoring (if configured): -if [ -n "$FLAKES_CHANNEL" ]; then - python3 $INSTALL/report-flakes.py \ - --host irc.oftc.net \ - --port 6667 \ - --results $RESULTS/results.csv \ - --known-flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --channel "$FLAKES_CHANNEL" \ - --runner "$CI_RUNNER_DESCRIPTION" \ - --job "$CI_JOB_ID" \ - --url "$CI_JOB_URL" \ - --branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \ - --branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}" || true -fi - -exit $GTEST_EXITCODE diff --git a/.gitlab-ci/image-tags.yml b/.gitlab-ci/image-tags.yml deleted file mode 100644 index cccbf4184..000000000 --- a/.gitlab-ci/image-tags.yml +++ /dev/null @@ -1,46 +0,0 @@ -# Keep the tags below under 20 chars each, as they end up combined into -# docker image tags, and docker has a length limit of 128 chars total in tags. -# -# The word after the date doesn't need to be overly descriptive, it exists -# purely to avoid the risk of two people updating an image tag on the same day -# while working on different changes, so it doesn't matter whether that word -# will make sense to someone else. Aim for "nobody else will pick that word -# for their change". -# -# If you update a tag and you get an error like this: -# cannot parse input: "$image:$tag": invalid reference format -# check the length of $tag; if it's > 128 chars you need to shorten your tag. - -variables: - DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base" - DEBIAN_BASE_TAG: "20240412-pycparser" - - DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build" - DEBIAN_BUILD_TAG: "20240723-241cbindgen" - - DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base" - - DEBIAN_X86_64_TEST_IMAGE_GL_PATH: "debian/x86_64_test-gl" - DEBIAN_X86_64_TEST_IMAGE_VK_PATH: "debian/x86_64_test-vk" - DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android" - - DEBIAN_X86_64_TEST_ANDROID_TAG: "20240423-deqp" - DEBIAN_X86_64_TEST_GL_TAG: "20240514-egltrans241" - DEBIAN_X86_64_TEST_VK_TAG: "20240423-deqp" - KERNEL_ROOTFS_TAG: "20240507-kernel241" - - ALPINE_X86_64_BUILD_TAG: "20240412-pycparser" - ALPINE_X86_64_LAVA_SSH_TAG: "20240401-wlproto" - FEDORA_X86_64_BUILD_TAG: "20240412-pycparser" - KERNEL_TAG: "v6.6.21-mesa-f8ea" - KERNEL_REPO: "gfx-ci/linux" - PKG_REPO_REV: "3cc12a2a" - - WINDOWS_X64_MSVC_PATH: "windows/x86_64_msvc" - WINDOWS_X64_MSVC_TAG: "20231222-msvc" - - WINDOWS_X64_BUILD_PATH: "windows/x86_64_build" - WINDOWS_X64_BUILD_TAG: "20240405-vainfo-ci-1" - - WINDOWS_X64_TEST_PATH: "windows/x86_64_test" - WINDOWS_X64_TEST_TAG: "20240405-vainfo-ci-1" diff --git a/.gitlab-ci/lava/exceptions.py b/.gitlab-ci/lava/exceptions.py deleted file mode 100644 index 5066d3375..000000000 --- a/.gitlab-ci/lava/exceptions.py +++ /dev/null @@ -1,41 +0,0 @@ -from datetime import timedelta - - -class MesaCIException(Exception): - pass - - -class MesaCIRetriableException(MesaCIException): - pass - - -class MesaCITimeoutError(MesaCIRetriableException): - def __init__(self, *args, timeout_duration: timedelta) -> None: - super().__init__(*args) - self.timeout_duration = timeout_duration - - -class MesaCIRetryError(MesaCIRetriableException): - def __init__(self, *args, retry_count: int, last_job: None) -> None: - super().__init__(*args) - self.retry_count = retry_count - self.last_job = last_job - - -class MesaCIFatalException(MesaCIException): - """Exception raised when the Mesa CI script encounters a fatal error that - prevents the script from continuing.""" - - def __init__(self, *args) -> None: - super().__init__(*args) - - -class MesaCIParseException(MesaCIRetriableException): - pass - - -class MesaCIKnownIssueException(MesaCIRetriableException): - """Exception raised when the Mesa CI script finds something in the logs that - is known to cause the LAVA job to eventually fail""" - - pass diff --git a/.gitlab-ci/lava/lava-gitlab-ci.yml b/.gitlab-ci/lava/lava-gitlab-ci.yml deleted file mode 100755 index 2a91a66e6..000000000 --- a/.gitlab-ci/lava/lava-gitlab-ci.yml +++ /dev/null @@ -1,157 +0,0 @@ -variables: - LAVA_SSH_CLIENT_IMAGE: "${CI_REGISTRY_IMAGE}/alpine/x86_64_lava_ssh_client:${ALPINE_X86_64_LAVA_SSH_TAG}--${MESA_TEMPLATES_COMMIT}" - - -.lava-test: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - variables: - GIT_STRATEGY: none # testing doesn't build anything from source - FDO_CI_CONCURRENT: 6 # should be replaced by per-machine definitions - # proxy used to cache data locally - FDO_HTTP_CACHE_URI: "http://caching-proxy/cache/?uri=" - # base system generated by the container build job, shared between many pipelines - BASE_SYSTEM_HOST_PREFIX: "${S3_HOST}/${S3_KERNEL_BUCKET}" - BASE_SYSTEM_MAINLINE_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${FDO_UPSTREAM_REPO}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}" - BASE_SYSTEM_FORK_HOST_PATH: "${BASE_SYSTEM_HOST_PREFIX}/${CI_PROJECT_PATH}/${DISTRIBUTION_TAG}/${DEBIAN_ARCH}" - # per-job build artifacts - JOB_ROOTFS_OVERLAY_PATH: "${JOB_ARTIFACTS_BASE}/job-rootfs-overlay.tar.gz" - JOB_RESULTS_PATH: "${JOB_ARTIFACTS_BASE}/results.tar.zst" - S3_ARTIFACT_NAME: "mesa-${ARCH}-default-debugoptimized" - S3_RESULTS_UPLOAD: "${JOB_ARTIFACTS_BASE}" - PIGLIT_NO_WINDOW: 1 - VISIBILITY_GROUP: "Collabora+fdo" - script: - - ./artifacts/lava/lava-submit.sh - artifacts: - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME}" - when: always - paths: - - results/ - exclude: - - results/*.shader_cache - reports: - junit: results/junit.xml - tags: - - $RUNNER_TAG - after_script: - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 -s "https://${JOB_RESULTS_PATH}" | tar --zstd -x - needs: - - alpine/x86_64_lava_ssh_client - - !reference [.required-for-hardware-jobs, needs] - -.lava-test:arm32: - variables: - ARCH: arm32 - DEBIAN_ARCH: armhf - KERNEL_IMAGE_NAME: zImage - KERNEL_IMAGE_TYPE: "zimage" - BOOT_METHOD: u-boot - extends: - - .use-debian/arm64_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm32 - - .use-debian/x86_64_build - - .lava-test - - .use-kernel+rootfs-arm - needs: - - !reference [.lava-test, needs] - - kernel+rootfs_arm32 - - debian/x86_64_build - - debian-arm32 - -.lava-test-deqp:arm32: - extends: - - .lava-test:arm32 - variables: - HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - -.lava-test:arm64: - variables: - ARCH: arm64 - DEBIAN_ARCH: arm64 - KERNEL_IMAGE_NAME: Image - KERNEL_IMAGE_TYPE: "image" - BOOT_METHOD: u-boot - extends: - - .use-debian/arm64_build # for same $MESA_ARTIFACTS_TAG as in kernel+rootfs_arm64 - - .use-debian/x86_64_build - - .lava-test - - .use-kernel+rootfs-arm - dependencies: - - debian-arm64 - needs: - - !reference [.lava-test, needs] - - kernel+rootfs_arm64 - - debian/x86_64_build - - debian-arm64 - -.lava-test-deqp:arm64: - variables: - HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - extends: - - .lava-test:arm64 - -.lava-test:x86_64: - variables: - ARCH: x86_64 - DEBIAN_ARCH: amd64 - KERNEL_IMAGE_NAME: bzImage - KERNEL_IMAGE_TYPE: "zimage" - BOOT_METHOD: u-boot - extends: - - .use-debian/x86_64_build-base # for same $MESA_ARTIFACTS_BASE_TAG as in kernel+rootfs_x86_64 - - .use-debian/x86_64_build - - .lava-test - - .use-kernel+rootfs-x86_64 - needs: - - !reference [.lava-test, needs] - - kernel+rootfs_x86_64 - - debian-testing - -.lava-test-deqp:x86_64: - variables: - HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - extends: - - .lava-test:x86_64 - -.lava-traces-base: - variables: - HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh" - # until we overcome Infrastructure issues, give traces extra 5 min before timeout - DEVICE_HANGING_TIMEOUT_SEC: 600 - artifacts: - reports: - junit: results/junit.xml - -.lava-piglit: - variables: - PIGLIT_REPLAY_DEVICE_NAME: "gl-${GPU_VERSION}" - PIGLIT_RESULTS: "${GPU_VERSION}-${PIGLIT_PROFILES}" - HWCI_TEST_SCRIPT: "/install/piglit/piglit-runner.sh" - -.lava-piglit-traces:x86_64: - extends: - - .lava-test:x86_64 - - .lava-piglit - - .lava-traces-base - -.lava-piglit-traces:arm32: - extends: - - .lava-test:arm32 - - .lava-piglit - - .lava-traces-base - -.lava-piglit-traces:arm64: - extends: - - .lava-test:arm64 - - .lava-piglit - - .lava-traces-base - -.lava-piglit:x86_64: - extends: - - .lava-test:x86_64 - - .lava-piglit - -.lava-piglit:arm64: - extends: - - .lava-test:arm64 - - .lava-piglit diff --git a/.gitlab-ci/lava/lava-pytest.sh b/.gitlab-ci/lava/lava-pytest.sh deleted file mode 100755 index 786a669b9..000000000 --- a/.gitlab-ci/lava/lava-pytest.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: MIT -# © Collabora Limited -# Author: Guilherme Gallo - -# This script runs unit/integration tests related with LAVA CI tools -# shellcheck disable=SC1091 # The relative paths in this file only become valid at runtime. - -set -ex - -# Use this script in a python virtualenv for isolation -python3 -m venv .venv -. .venv/bin/activate -python3 -m pip install --break-system-packages -r "${CI_PROJECT_DIR}/.gitlab-ci/lava/requirements-test.txt" - -TEST_DIR=${CI_PROJECT_DIR}/.gitlab-ci/tests - -PYTHONPATH="${TEST_DIR}:${PYTHONPATH}" python3 -m \ - pytest "${TEST_DIR}" \ - -W ignore::DeprecationWarning \ - --junitxml=artifacts/ci_scripts_report.xml \ - -m 'not slow' diff --git a/.gitlab-ci/lava/lava-submit.sh b/.gitlab-ci/lava/lava-submit.sh deleted file mode 100755 index 3531437f7..000000000 --- a/.gitlab-ci/lava/lava-submit.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -# If we run in the fork (not from mesa or Marge-bot), reuse mainline kernel and rootfs, if exist. -BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_MAINLINE_HOST_PATH}" -if [ "$CI_PROJECT_PATH" != "$FDO_UPSTREAM_REPO" ]; then - if ! curl -s -X HEAD -L --retry 4 -f --retry-delay 60 \ - "https://${BASE_SYSTEM_MAINLINE_HOST_PATH}/done"; then - echo "Using kernel and rootfs from the fork, cached from mainline is unavailable." - BASE_SYSTEM_HOST_PATH="${BASE_SYSTEM_FORK_HOST_PATH}" - else - echo "Using the cached mainline kernel and rootfs." - fi -fi - -rm -rf results -mkdir -p results/job-rootfs-overlay/ - -cp artifacts/ci-common/capture-devcoredump.sh results/job-rootfs-overlay/ -cp artifacts/ci-common/init-*.sh results/job-rootfs-overlay/ -cp artifacts/ci-common/intel-gpu-freq.sh results/job-rootfs-overlay/ -cp artifacts/ci-common/kdl.sh results/job-rootfs-overlay/ -cp "$SCRIPTS_DIR"/setup-test-env.sh results/job-rootfs-overlay/ - -# Prepare env vars for upload. -section_start variables "Variables passed through:" -artifacts/ci-common/generate-env.sh | tee results/job-rootfs-overlay/set-job-env-vars.sh -section_end variables - -tar zcf job-rootfs-overlay.tar.gz -C results/job-rootfs-overlay/ . -ci-fairy s3cp --token-file "${S3_JWT_FILE}" job-rootfs-overlay.tar.gz "https://${JOB_ROOTFS_OVERLAY_PATH}" - -ARTIFACT_URL="${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME:?}.tar.zst" - -touch results/lava.log -tail -f results/lava.log & -PYTHONPATH=artifacts/ artifacts/lava/lava_job_submitter.py \ - submit \ - --dump-yaml \ - --pipeline-info "$CI_JOB_NAME: $CI_PIPELINE_URL on $CI_COMMIT_REF_NAME ${CI_NODE_INDEX}/${CI_NODE_TOTAL}" \ - --rootfs-url-prefix "https://${BASE_SYSTEM_HOST_PATH}" \ - --kernel-url-prefix "${KERNEL_IMAGE_BASE}/${DEBIAN_ARCH}" \ - --kernel-external "${FORCE_KERNEL_TAG}" \ - --build-url "${ARTIFACT_URL}" \ - --job-rootfs-overlay-url "${FDO_HTTP_CACHE_URI:-}https://${JOB_ROOTFS_OVERLAY_PATH}" \ - --job-timeout-min ${JOB_TIMEOUT:-30} \ - --first-stage-init artifacts/ci-common/init-stage1.sh \ - --ci-project-dir "${CI_PROJECT_DIR}" \ - --device-type "${DEVICE_TYPE}" \ - --dtb-filename "${DTB}" \ - --jwt-file "${S3_JWT_FILE}" \ - --kernel-image-name "${KERNEL_IMAGE_NAME}" \ - --kernel-image-type "${KERNEL_IMAGE_TYPE}" \ - --boot-method "${BOOT_METHOD}" \ - --visibility-group "${VISIBILITY_GROUP}" \ - --lava-tags "${LAVA_TAGS}" \ - --mesa-job-name "$CI_JOB_NAME" \ - --structured-log-file "results/lava_job_detail.json" \ - --ssh-client-image "${LAVA_SSH_CLIENT_IMAGE}" \ - --project-name "${CI_PROJECT_NAME}" \ - >> results/lava.log diff --git a/.gitlab-ci/lava/lava_job_submitter.py b/.gitlab-ci/lava/lava_job_submitter.py deleted file mode 100755 index 41dbec605..000000000 --- a/.gitlab-ci/lava/lava_job_submitter.py +++ /dev/null @@ -1,564 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2020 - 2023 Collabora Limited -# Authors: -# Gustavo Padovan -# Guilherme Gallo -# -# SPDX-License-Identifier: MIT - -"""Send a job to LAVA, track it and collect log back""" - -import contextlib -import json -import pathlib -import sys -import time -from collections import defaultdict -from dataclasses import dataclass, fields -from datetime import datetime, timedelta, timezone -from os import environ, getenv, path -from typing import Any, Optional - -import fire -from lavacli.utils import flow_yaml as lava_yaml - -from lava.exceptions import ( - MesaCIException, - MesaCIFatalException, - MesaCIRetriableException, - MesaCIParseException, - MesaCIRetryError, - MesaCITimeoutError, -) -from lava.utils import ( - CONSOLE_LOG, - GitlabSection, - LAVAJob, - LAVAJobDefinition, - LogFollower, - LogSectionType, - call_proxy, - fatal_err, - hide_sensitive_data, - print_log, - setup_lava_proxy, -) -from lava.utils import DEFAULT_GITLAB_SECTION_TIMEOUTS as GL_SECTION_TIMEOUTS - -# Initialize structural logging with a defaultdict, it can be changed for more -# sophisticated dict-like data abstractions. -STRUCTURAL_LOG = defaultdict(list) - -try: - from ci.structured_logger import StructuredLogger -except ImportError as e: - print_log( - f"Could not import StructuredLogger library: {e}. " - "Falling back to defaultdict based structured logger." - ) - -# Timeout in seconds to decide if the device from the dispatched LAVA job has -# hung or not due to the lack of new log output. -DEVICE_HANGING_TIMEOUT_SEC = int(getenv("DEVICE_HANGING_TIMEOUT_SEC", 5 * 60)) - -# How many seconds the script should wait before try a new polling iteration to -# check if the dispatched LAVA job is running or waiting in the job queue. -WAIT_FOR_DEVICE_POLLING_TIME_SEC = int( - getenv("LAVA_WAIT_FOR_DEVICE_POLLING_TIME_SEC", 1) -) - -# How many seconds the script will wait to let LAVA finalize the job and give -# the final details. -WAIT_FOR_LAVA_POST_PROCESSING_SEC = int(getenv("LAVA_WAIT_LAVA_POST_PROCESSING_SEC", 5)) -WAIT_FOR_LAVA_POST_PROCESSING_RETRIES = int( - getenv("LAVA_WAIT_LAVA_POST_PROCESSING_RETRIES", 6) -) - -# How many seconds to wait between log output LAVA RPC calls. -LOG_POLLING_TIME_SEC = int(getenv("LAVA_LOG_POLLING_TIME_SEC", 5)) - -# How many retries should be made when a timeout happen. -NUMBER_OF_RETRIES_TIMEOUT_DETECTION = int( - getenv("LAVA_NUMBER_OF_RETRIES_TIMEOUT_DETECTION", 2) -) - -CI_JOB_TIMEOUT_SEC = int(getenv("CI_JOB_TIMEOUT", 3600)) -# How many seconds the script will wait to let LAVA run the job and give the final details. -EXPECTED_JOB_DURATION_SEC = int(getenv("EXPECTED_JOB_DURATION_SEC", 60 * 10)) -# CI_JOB_STARTED is given by GitLab CI/CD in UTC timezone by default. -CI_JOB_STARTED_AT_RAW = getenv("CI_JOB_STARTED_AT", "") -CI_JOB_STARTED_AT: datetime = ( - datetime.fromisoformat(CI_JOB_STARTED_AT_RAW) - if CI_JOB_STARTED_AT_RAW - else datetime.now(timezone.utc) -) - - -def raise_exception_from_metadata(metadata: dict, job_id: int) -> None: - """ - Investigate infrastructure errors from the job metadata. - If it finds an error, raise it as MesaCIRetriableException. - """ - if "result" not in metadata or metadata["result"] != "fail": - return - if "error_type" in metadata: - error_type = metadata["error_type"] - if error_type == "Infrastructure": - raise MesaCIRetriableException( - f"LAVA job {job_id} failed with Infrastructure Error. Retry." - ) - if error_type == "Job": - # This happens when LAVA assumes that the job cannot terminate or - # with mal-formed job definitions. As we are always validating the - # jobs, only the former is probable to happen. E.g.: When some LAVA - # action timed out more times than expected in job definition. - raise MesaCIRetriableException( - f"LAVA job {job_id} failed with JobError " - "(possible LAVA timeout misconfiguration/bug). Retry." - ) - if "case" in metadata and metadata["case"] == "validate": - raise MesaCIRetriableException( - f"LAVA job {job_id} failed validation (possible download error). Retry." - ) - - -def raise_lava_error(job) -> None: - # Look for infrastructure errors, raise them, and retry if we see them. - results_yaml = call_proxy(job.proxy.results.get_testjob_results_yaml, job.job_id) - results = lava_yaml.load(results_yaml) - for res in results: - metadata = res["metadata"] - raise_exception_from_metadata(metadata, job.job_id) - - # If we reach this far, it means that the job ended without hwci script - # result and no LAVA infrastructure problem was found - job.status = "fail" - - -def show_final_job_data(job, colour=f"{CONSOLE_LOG['BOLD']}{CONSOLE_LOG['FG_GREEN']}"): - with GitlabSection( - "job_data", - "LAVA job info", - type=LogSectionType.LAVA_POST_PROCESSING, - start_collapsed=True, - colour=colour, - ): - wait_post_processing_retries: int = WAIT_FOR_LAVA_POST_PROCESSING_RETRIES - while not job.is_post_processed() and wait_post_processing_retries > 0: - # Wait a little until LAVA finishes processing metadata - time.sleep(WAIT_FOR_LAVA_POST_PROCESSING_SEC) - wait_post_processing_retries -= 1 - - if not job.is_post_processed(): - waited_for_sec: int = ( - WAIT_FOR_LAVA_POST_PROCESSING_RETRIES - * WAIT_FOR_LAVA_POST_PROCESSING_SEC - ) - print_log( - f"Waited for {waited_for_sec} seconds " - "for LAVA to post-process the job, it haven't finished yet. " - "Dumping it's info anyway" - ) - - details: dict[str, str] = job.show() - for field, value in details.items(): - print(f"{field:<15}: {value}") - job.refresh_log() - - -def fetch_logs(job, max_idle_time, log_follower) -> None: - is_job_hanging(job, max_idle_time) - - time.sleep(LOG_POLLING_TIME_SEC) - new_log_lines = fetch_new_log_lines(job) - parsed_lines = parse_log_lines(job, log_follower, new_log_lines) - - for line in parsed_lines: - print_log(line) - - -def is_job_hanging(job, max_idle_time): - # Poll to check for new logs, assuming that a prolonged period of - # silence means that the device has died and we should try it again - if datetime.now() - job.last_log_time > max_idle_time: - max_idle_time_min = max_idle_time.total_seconds() / 60 - - raise MesaCITimeoutError( - f"{CONSOLE_LOG['BOLD']}" - f"{CONSOLE_LOG['FG_YELLOW']}" - f"LAVA job {job.job_id} does not respond for {max_idle_time_min} " - "minutes. Retry." - f"{CONSOLE_LOG['RESET']}", - timeout_duration=max_idle_time, - ) - - -def parse_log_lines(job, log_follower, new_log_lines): - if log_follower.feed(new_log_lines): - # If we had non-empty log data, we can assure that the device is alive. - job.heartbeat() - parsed_lines = log_follower.flush() - - # Only parse job results when the script reaches the end of the logs. - # Depending on how much payload the RPC scheduler.jobs.logs get, it may - # reach the LAVA_POST_PROCESSING phase. - if log_follower.current_section.type in ( - LogSectionType.TEST_CASE, - LogSectionType.LAVA_POST_PROCESSING, - ): - parsed_lines = job.parse_job_result_from_log(parsed_lines) - return parsed_lines - - -def fetch_new_log_lines(job): - # The XMLRPC binary packet may be corrupted, causing a YAML scanner error. - # Retry the log fetching several times before exposing the error. - for _ in range(5): - with contextlib.suppress(MesaCIParseException): - new_log_lines = job.get_logs() - break - else: - raise MesaCIParseException - return new_log_lines - - -def submit_job(job): - try: - job.submit() - except Exception as mesa_ci_err: - raise MesaCIRetriableException( - f"Could not submit LAVA job. Reason: {mesa_ci_err}" - ) from mesa_ci_err - - -def wait_for_job_get_started(job, attempt_no): - print_log(f"Waiting for job {job.job_id} to start.") - while not job.is_started(): - current_job_duration_sec: int = int( - (datetime.now(timezone.utc) - CI_JOB_STARTED_AT).total_seconds() - ) - remaining_time_sec: int = max(0, CI_JOB_TIMEOUT_SEC - current_job_duration_sec) - if remaining_time_sec < EXPECTED_JOB_DURATION_SEC: - job.cancel() - raise MesaCIFatalException( - f"{CONSOLE_LOG['BOLD']}" - f"{CONSOLE_LOG['FG_YELLOW']}" - f"Job {job.job_id} only has {remaining_time_sec} seconds " - "remaining to run, but it is expected to take at least " - f"{EXPECTED_JOB_DURATION_SEC} seconds." - f"{CONSOLE_LOG['RESET']}", - ) - time.sleep(WAIT_FOR_DEVICE_POLLING_TIME_SEC) - job.refresh_log() - print_log(f"Job {job.job_id} started.") - - -def bootstrap_log_follower() -> LogFollower: - gl = GitlabSection( - id="lava_boot", - header="LAVA boot", - type=LogSectionType.LAVA_BOOT, - start_collapsed=True, - ) - print(gl.start()) - return LogFollower(starting_section=gl) - - -def follow_job_execution(job, log_follower): - with log_follower: - max_idle_time = timedelta(seconds=DEVICE_HANGING_TIMEOUT_SEC) - # Start to check job's health - job.heartbeat() - while not job.is_finished: - fetch_logs(job, max_idle_time, log_follower) - structural_log_phases(job, log_follower) - - # Mesa Developers expect to have a simple pass/fail job result. - # If this does not happen, it probably means a LAVA infrastructure error - # happened. - if job.status not in ["pass", "fail"]: - raise_lava_error(job) - - # LogFollower does some cleanup after the early exit (trigger by - # `hwci: pass|fail` regex), let's update the phases after the cleanup. - structural_log_phases(job, log_follower) - - -def structural_log_phases(job, log_follower): - phases: dict[str, Any] = { - s.header.split(" - ")[0]: { - k: str(getattr(s, k)) for k in ("start_time", "end_time") - } - for s in log_follower.section_history - } - job.log["dut_job_phases"] = phases - - -def print_job_final_status(job): - if job.status == "running": - job.status = "hung" - - color = LAVAJob.COLOR_STATUS_MAP.get(job.status, CONSOLE_LOG["FG_RED"]) - print_log( - f"{color}" - f"LAVA Job finished with status: {job.status}" - f"{CONSOLE_LOG['RESET']}" - ) - - job.refresh_log() - show_final_job_data(job, colour=f"{CONSOLE_LOG['BOLD']}{color}") - - -def execute_job_with_retries( - proxy, job_definition, retry_count, jobs_log -) -> Optional[LAVAJob]: - last_failed_job = None - for attempt_no in range(1, retry_count + 2): - # Need to get the logger value from its object to enable autosave - # features, if AutoSaveDict is enabled from StructuredLogging module - jobs_log.append({}) - job_log = jobs_log[-1] - job = LAVAJob(proxy, job_definition, job_log) - STRUCTURAL_LOG["dut_attempt_counter"] = attempt_no - try: - job_log["submitter_start_time"] = datetime.now().isoformat() - submit_job(job) - wait_for_job_get_started(job, attempt_no) - log_follower: LogFollower = bootstrap_log_follower() - follow_job_execution(job, log_follower) - return job - - except (MesaCIException, KeyboardInterrupt) as exception: - job.handle_exception(exception) - - finally: - print_job_final_status(job) - # If LAVA takes too long to post process the job, the submitter - # gives up and proceeds. - job_log["submitter_end_time"] = datetime.now().isoformat() - last_failed_job = job - print_log( - f"{CONSOLE_LOG['BOLD']}" - f"Finished executing LAVA job in the attempt #{attempt_no}" - f"{CONSOLE_LOG['RESET']}" - ) - if job.exception and not isinstance(job.exception, MesaCIRetriableException): - break - - return last_failed_job - - -def retriable_follow_job(proxy, job_definition) -> LAVAJob: - number_of_retries = NUMBER_OF_RETRIES_TIMEOUT_DETECTION - - last_attempted_job = execute_job_with_retries( - proxy, job_definition, number_of_retries, STRUCTURAL_LOG["dut_jobs"] - ) - - if last_attempted_job.exception is not None: - # Infra failed in all attempts - raise MesaCIRetryError( - f"{CONSOLE_LOG['BOLD']}" - f"{CONSOLE_LOG['FG_RED']}" - "Job failed after it exceeded the number of " - f"{number_of_retries} retries." - f"{CONSOLE_LOG['RESET']}", - retry_count=number_of_retries, - last_job=last_attempted_job, - ) - - return last_attempted_job - - -@dataclass -class PathResolver: - def __post_init__(self): - for field in fields(self): - value = getattr(self, field.name) - if not value: - continue - if field.type == pathlib.Path: - value = pathlib.Path(value) - setattr(self, field.name, value.resolve()) - - -@dataclass -class LAVAJobSubmitter(PathResolver): - boot_method: str - ci_project_dir: str - device_type: str - job_timeout_min: int # The job timeout in minutes - build_url: str = None - dtb_filename: str = None - dump_yaml: bool = False # Whether to dump the YAML payload to stdout - first_stage_init: str = None - jwt_file: pathlib.Path = None - kernel_image_name: str = None - kernel_image_type: str = "" - kernel_url_prefix: str = None - kernel_external: str = None - lava_tags: str = "" # Comma-separated LAVA tags for the job - mesa_job_name: str = "mesa_ci_job" - pipeline_info: str = "" - rootfs_url_prefix: str = None - validate_only: bool = False # Whether to only validate the job, not execute it - visibility_group: str = None # Only affects LAVA farm maintainers - job_rootfs_overlay_url: str = None - structured_log_file: pathlib.Path = None # Log file path with structured LAVA log - ssh_client_image: str = None # x86_64 SSH client image to follow the job's output - project_name: str = None # Project name to be used in the job name - __structured_log_context = contextlib.nullcontext() # Structured Logger context - - def __post_init__(self) -> None: - super().__post_init__() - # Remove mesa job names with spaces, which breaks the lava-test-case command - self.mesa_job_name = self.mesa_job_name.split(" ")[0] - - if not self.structured_log_file: - return - - self.__structured_log_context = StructuredLoggerWrapper(self).logger_context() - self.proxy = setup_lava_proxy() - - def __prepare_submission(self) -> str: - # Overwrite the timeout for the testcases with the value offered by the - # user. The testcase running time should be at least 4 times greater than - # the other sections (boot and setup), so we can safely ignore them. - # If LAVA fails to stop the job at this stage, it will fall back to the - # script section timeout with a reasonable delay. - GL_SECTION_TIMEOUTS[LogSectionType.TEST_CASE] = timedelta( - minutes=self.job_timeout_min - ) - - job_definition = LAVAJobDefinition(self).generate_lava_job_definition() - - if self.dump_yaml: - self.dump_job_definition(job_definition) - - validation_job = LAVAJob(self.proxy, job_definition) - if errors := validation_job.validate(): - fatal_err(f"Error in LAVA job definition: {errors}") - print_log("LAVA job definition validated successfully") - - return job_definition - - @classmethod - def is_under_ci(cls): - ci_envvar: str = getenv("CI", "false") - return ci_envvar.lower() == "true" - - def dump_job_definition(self, job_definition) -> None: - with GitlabSection( - "yaml_dump", - "LAVA job definition (YAML)", - type=LogSectionType.LAVA_BOOT, - start_collapsed=True, - ): - print(hide_sensitive_data(job_definition)) - - def submit(self) -> None: - """ - Prepares and submits the LAVA job. - If `validate_only` is True, it validates the job without submitting it. - If the job finishes with a non-pass status or encounters an exception, - the program exits with a non-zero return code. - """ - job_definition: str = self.__prepare_submission() - - if self.validate_only: - return - - with self.__structured_log_context: - last_attempt_job = None - try: - last_attempt_job = retriable_follow_job(self.proxy, job_definition) - - except MesaCIRetryError as retry_exception: - last_attempt_job = retry_exception.last_job - - except Exception as exception: - STRUCTURAL_LOG["job_combined_fail_reason"] = str(exception) - raise exception - - finally: - self.finish_script(last_attempt_job) - - def print_log_artifact_url(self): - relative_log_path = self.structured_log_file.relative_to(pathlib.Path.cwd()) - full_path = f"$ARTIFACTS_BASE_URL/{relative_log_path}" - artifact_url = path.expandvars(full_path) - - print_log(f"Structural Logging data available at: {artifact_url}") - - def finish_script(self, last_attempt_job): - if self.is_under_ci() and self.structured_log_file: - self.print_log_artifact_url() - - if not last_attempt_job: - # No job was run, something bad happened - STRUCTURAL_LOG["job_combined_status"] = "script_crash" - current_exception = str(sys.exc_info()[1]) - STRUCTURAL_LOG["job_combined_fail_reason"] = current_exception - print(f"Interrupting the script. Reason: {current_exception}") - raise SystemExit(1) - - STRUCTURAL_LOG["job_combined_status"] = last_attempt_job.status - - if last_attempt_job.status != "pass": - raise SystemExit(1) - - -class StructuredLoggerWrapper: - def __init__(self, submitter: LAVAJobSubmitter) -> None: - self.__submitter: LAVAJobSubmitter = submitter - - def _init_logger(self): - STRUCTURAL_LOG["fixed_tags"] = self.__submitter.lava_tags - STRUCTURAL_LOG["dut_job_type"] = self.__submitter.device_type - STRUCTURAL_LOG["job_combined_fail_reason"] = None - STRUCTURAL_LOG["job_combined_status"] = "not_submitted" - STRUCTURAL_LOG["dut_attempt_counter"] = 0 - - # Initialize dut_jobs list to enable appends - STRUCTURAL_LOG["dut_jobs"] = [] - - @contextlib.contextmanager - def _simple_logger_context(self): - log_file = pathlib.Path(self.__submitter.structured_log_file) - log_file.parent.mkdir(parents=True, exist_ok=True) - try: - # Truncate the file - log_file.write_text("") - yield - finally: - log_file.write_text(json.dumps(STRUCTURAL_LOG, indent=2)) - - def logger_context(self): - context = contextlib.nullcontext() - try: - global STRUCTURAL_LOG - STRUCTURAL_LOG = StructuredLogger( - self.__submitter.structured_log_file, truncate=True - ).data - except NameError: - context = self._simple_logger_context() - - self._init_logger() - return context - - -if __name__ == "__main__": - # given that we proxy from DUT -> LAVA dispatcher -> LAVA primary -> us -> - # GitLab runner -> GitLab primary -> user, safe to say we don't need any - # more buffering - sys.stdout.reconfigure(line_buffering=True) - sys.stderr.reconfigure(line_buffering=True) - # LAVA farm is giving datetime in UTC timezone, let's set it locally for the - # script run. - # Setting environ here will not affect the system time, as the os.environ - # lifetime follows the script one. - environ["TZ"] = "UTC" - time.tzset() - - fire.Fire(LAVAJobSubmitter) diff --git a/.gitlab-ci/lava/requirements-test.txt b/.gitlab-ci/lava/requirements-test.txt deleted file mode 100644 index 0ff561db9..000000000 --- a/.gitlab-ci/lava/requirements-test.txt +++ /dev/null @@ -1,6 +0,0 @@ --r requirements.txt -freezegun==1.1.0 -hypothesis==6.67.1 -pytest==7.2.1 -pytest-cov==3.0.0 -PyYAML==5.3.1 diff --git a/.gitlab-ci/lava/requirements.txt b/.gitlab-ci/lava/requirements.txt deleted file mode 100644 index e89021f3f..000000000 --- a/.gitlab-ci/lava/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -lavacli==1.5.2 -fire==0.5.0 diff --git a/.gitlab-ci/lava/utils/__init__.py b/.gitlab-ci/lava/utils/__init__.py deleted file mode 100644 index e2388bb68..000000000 --- a/.gitlab-ci/lava/utils/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from .console_format import CONSOLE_LOG -from .gitlab_section import GitlabSection -from .lava_job import LAVAJob -from .lava_job_definition import LAVAJobDefinition -from .lava_proxy import call_proxy, setup_lava_proxy -from .log_follower import ( - LogFollower, - fatal_err, - fix_lava_gitlab_section_log, - hide_sensitive_data, - print_log, -) -from .log_section import ( - DEFAULT_GITLAB_SECTION_TIMEOUTS, - FALLBACK_GITLAB_SECTION_TIMEOUT, - LogSection, - LogSectionType, -) diff --git a/.gitlab-ci/lava/utils/console_format.py b/.gitlab-ci/lava/utils/console_format.py deleted file mode 100644 index 3ad760059..000000000 --- a/.gitlab-ci/lava/utils/console_format.py +++ /dev/null @@ -1,10 +0,0 @@ -CONSOLE_LOG = { - "FG_GREEN": "\x1b[1;32;5;197m", - "FG_RED": "\x1b[1;38;5;197m", - "FG_YELLOW": "\x1b[1;33;5;197m", - "FG_MAGENTA": "\x1b[1;35;5;197m", - "RESET": "\x1b[0m", - "UNDERLINED": "\x1b[3m", - "BOLD": "\x1b[1m", - "DIM": "\x1b[2m", -} diff --git a/.gitlab-ci/lava/utils/constants.py b/.gitlab-ci/lava/utils/constants.py deleted file mode 100644 index 82f0b66fc..000000000 --- a/.gitlab-ci/lava/utils/constants.py +++ /dev/null @@ -1,32 +0,0 @@ -from os import getenv - -# How many attempts should be made when a timeout happen during LAVA device boot. -NUMBER_OF_ATTEMPTS_LAVA_BOOT = int(getenv("LAVA_NUMBER_OF_ATTEMPTS_LAVA_BOOT", 3)) - - -# Supports any integers in [0, 100]. -# The scheduler considers the job priority when ordering the queue -# to consider which job should run next. -JOB_PRIORITY = int(getenv("JOB_PRIORITY", 75)) - -# Use UART over the default SSH mechanism to follow logs. -# Caution: this can lead to device silence in some devices in Mesa CI. -FORCE_UART = bool(getenv("LAVA_FORCE_UART", False)) - -# How many times the r8152 error may happen to consider it a known issue. -KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER: int = 10 -KNOWN_ISSUE_R8152_PATTERNS: tuple[str, ...] = ( - r"r8152 \S+ eth0: Tx status -71", - r"nfs: server \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} not responding, still trying", -) - -# This is considered noise, since LAVA produces this log after receiving a package of feedback -# messages. -LOG_DEBUG_FEEDBACK_NOISE = "Listened to connection for namespace 'dut' done" - -A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN = 3 -A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT = 30 -A6XX_GPU_RECOVERY_FAILURE_MESSAGE = ( - "cx gdsc didn't collapse", - "Timeout waiting for GMU OOB", -) diff --git a/.gitlab-ci/lava/utils/gitlab_section.py b/.gitlab-ci/lava/utils/gitlab_section.py deleted file mode 100644 index 034afb4eb..000000000 --- a/.gitlab-ci/lava/utils/gitlab_section.py +++ /dev/null @@ -1,103 +0,0 @@ -from __future__ import annotations - -import re -from dataclasses import dataclass, field -from datetime import datetime, timedelta -from typing import TYPE_CHECKING, Optional - -from lava.utils.console_format import CONSOLE_LOG - -if TYPE_CHECKING: - from lava.utils.log_section import LogSectionType - - -# TODO: Add section final status to assist with monitoring -@dataclass -class GitlabSection: - id: str - header: str - type: LogSectionType - start_collapsed: bool = False - escape: str = "\x1b[0K" - colour: str = f"{CONSOLE_LOG['BOLD']}{CONSOLE_LOG['FG_GREEN']}" - __start_time: Optional[datetime] = field(default=None, init=False) - __end_time: Optional[datetime] = field(default=None, init=False) - - @classmethod - def section_id_filter(cls, value) -> str: - return str(re.sub(r"[^\w_-]+", "-", value)) - - def __post_init__(self): - self.id = self.section_id_filter(self.id) - - @property - def has_started(self) -> bool: - return self.__start_time is not None - - @property - def has_finished(self) -> bool: - return self.__end_time is not None - - @property - def start_time(self) -> datetime: - return self.__start_time - - @property - def end_time(self) -> Optional[datetime]: - return self.__end_time - - def get_timestamp(self, time: datetime) -> str: - unix_ts = datetime.timestamp(time) - return str(int(unix_ts)) - - def section(self, marker: str, header: str, time: datetime) -> str: - preamble = f"{self.escape}section_{marker}" - collapse = marker == "start" and self.start_collapsed - collapsed = "[collapsed=true]" if collapse else "" - section_id = f"{self.id}{collapsed}" - - timestamp = self.get_timestamp(time) - before_header = ":".join([preamble, timestamp, section_id]) - colored_header = f"{self.colour}{header}\x1b[0m" if header else "" - header_wrapper = "\r" + f"{self.escape}{colored_header}" - - return f"{before_header}{header_wrapper}" - - def __str__(self) -> str: - status = "NS" if not self.has_started else "F" if self.has_finished else "IP" - delta = self.delta_time() - elapsed_time = "N/A" if delta is None else str(delta) - return ( - f"GitlabSection({self.id}, {self.header}, {self.type}, " - f"SC={self.start_collapsed}, S={status}, ST={self.start_time}, " - f"ET={self.end_time}, ET={elapsed_time})" - ) - - def __enter__(self): - print(self.start()) - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - print(self.end()) - - def start(self) -> str: - assert not self.has_finished, "Starting an already finished section" - self.__start_time = datetime.now() - return self.section(marker="start", header=self.header, time=self.__start_time) - - def end(self) -> str: - assert self.has_started, "Ending an uninitialized section" - self.__end_time = datetime.now() - assert ( - self.__end_time >= self.__start_time - ), "Section execution time will be negative" - return self.section(marker="end", header="", time=self.__end_time) - - def delta_time(self) -> Optional[timedelta]: - if self.__start_time and self.__end_time: - return self.__end_time - self.__start_time - - if self.has_started: - return datetime.now() - self.__start_time - - return None diff --git a/.gitlab-ci/lava/utils/lava_farm.py b/.gitlab-ci/lava/utils/lava_farm.py deleted file mode 100644 index dfd51ab9b..000000000 --- a/.gitlab-ci/lava/utils/lava_farm.py +++ /dev/null @@ -1,35 +0,0 @@ -import os -import re -from enum import Enum - - -class LavaFarm(Enum): - """Enum class representing the different LAVA farms.""" - - LIMA = 1 - COLLABORA = 2 - UNKNOWN = 3 - - -LAVA_FARM_RUNNER_PATTERNS: dict[LavaFarm, str] = { - # Lima pattern comes first, since it has the same prefix as the - # Collabora pattern. - LavaFarm.LIMA: r"^mesa-ci-[\x01-\x7F]+-lava-lima$", - LavaFarm.COLLABORA: r"^mesa-ci-[\x01-\x7F]+-lava-[\x01-\x7F]+$", - LavaFarm.UNKNOWN: r"^[\x01-\x7F]+", -} - - -def get_lava_farm() -> LavaFarm: - """ - Returns the LAVA farm based on the RUNNER_TAG environment variable. - - :return: The LAVA farm - """ - runner_tag: str = os.getenv("RUNNER_TAG", "unknown") - - for farm, pattern in LAVA_FARM_RUNNER_PATTERNS.items(): - if re.match(pattern, runner_tag): - return farm - - raise ValueError(f"Unknown LAVA runner tag: {runner_tag}") diff --git a/.gitlab-ci/lava/utils/lava_job.py b/.gitlab-ci/lava/utils/lava_job.py deleted file mode 100644 index f05168dac..000000000 --- a/.gitlab-ci/lava/utils/lava_job.py +++ /dev/null @@ -1,191 +0,0 @@ -import re -import xmlrpc -from collections import defaultdict -from datetime import datetime -from typing import Any, Optional - -from lava.exceptions import ( - MesaCIException, - MesaCIRetriableException, - MesaCIKnownIssueException, - MesaCIParseException, - MesaCITimeoutError, -) -from lava.utils import CONSOLE_LOG -from lava.utils.log_follower import print_log -from lavacli.utils import flow_yaml as lava_yaml - -from .lava_proxy import call_proxy - - -class LAVAJob: - COLOR_STATUS_MAP: dict[str, str] = { - "pass": CONSOLE_LOG["FG_GREEN"], - "hung": CONSOLE_LOG["FG_YELLOW"], - "fail": CONSOLE_LOG["FG_RED"], - "canceled": CONSOLE_LOG["FG_MAGENTA"], - } - - def __init__(self, proxy, definition, log=defaultdict(str)) -> None: - self._job_id = None - self.proxy = proxy - self.definition = definition - self.last_log_line = 0 - self.last_log_time = None - self._is_finished = False - self.log: dict[str, Any] = log - self.status = "not_submitted" - self.__exception: Optional[Exception] = None - - def heartbeat(self) -> None: - self.last_log_time: datetime = datetime.now() - self.status = "running" - - @property - def status(self) -> str: - return self._status - - @status.setter - def status(self, new_status: str) -> None: - self._status = new_status - self.log["status"] = self._status - - @property - def job_id(self) -> int: - return self._job_id - - @job_id.setter - def job_id(self, new_id: int) -> None: - self._job_id = new_id - self.log["lava_job_id"] = self._job_id - - @property - def is_finished(self) -> bool: - return self._is_finished - - @property - def exception(self) -> Optional[Exception]: - return self.__exception - - @exception.setter - def exception(self, exception: Exception) -> None: - self.__exception = exception - self.log["dut_job_fail_reason"] = repr(self.__exception) - - def validate(self) -> Optional[dict]: - """Returns a dict with errors, if the validation fails. - - Returns: - Optional[dict]: a dict with the validation errors, if any - """ - return call_proxy(self.proxy.scheduler.jobs.validate, self.definition, True) - - def show(self) -> dict[str, str]: - return call_proxy(self.proxy.scheduler.jobs.show, self._job_id) - - def get_lava_time(self, key, data) -> Optional[str]: - return data[key].value if data[key] else None - - def refresh_log(self) -> None: - details = self.show() - self.log["dut_start_time"] = self.get_lava_time("start_time", details) - self.log["dut_submit_time"] = self.get_lava_time("submit_time", details) - self.log["dut_end_time"] = self.get_lava_time("end_time", details) - self.log["dut_name"] = details.get("device") - self.log["dut_state"] = details.get("state") - - def submit(self) -> bool: - try: - self.job_id = call_proxy(self.proxy.scheduler.jobs.submit, self.definition) - self.status = "submitted" - self.refresh_log() - except MesaCIException: - return False - return True - - def lava_state(self) -> str: - job_state: dict[str, str] = call_proxy( - self.proxy.scheduler.job_state, self._job_id - ) - return job_state["job_state"] - - def cancel(self): - if self._job_id: - self.proxy.scheduler.jobs.cancel(self._job_id) - # If we don't have yet set another job's status, let's update it - # with canceled one - if self.status == "running": - self.status = "canceled" - - def is_started(self) -> bool: - waiting_states = ("Submitted", "Scheduling", "Scheduled") - return self.lava_state() not in waiting_states - - def is_post_processed(self) -> bool: - return self.lava_state() != "Running" - - def _load_log_from_data(self, data) -> list[str]: - lines = [] - if isinstance(data, xmlrpc.client.Binary): - # We are dealing with xmlrpc.client.Binary - # Let's extract the data - data = data.data - # When there is no new log data, the YAML is empty - if loaded_lines := lava_yaml.load(data): - lines: list[str] = loaded_lines - self.last_log_line += len(lines) - return lines - - def get_logs(self) -> list[str]: - try: - (finished, data) = call_proxy( - self.proxy.scheduler.jobs.logs, self._job_id, self.last_log_line - ) - self._is_finished = finished - return self._load_log_from_data(data) - - except Exception as mesa_ci_err: - raise MesaCIParseException( - f"Could not get LAVA job logs. Reason: {mesa_ci_err}" - ) from mesa_ci_err - - def parse_job_result_from_log( - self, lava_lines: list[dict[str, str]] - ) -> list[dict[str, str]]: - """Use the console log to catch if the job has completed successfully or - not. Returns the list of log lines until the result line.""" - - last_line = None # Print all lines. lines[:None] == lines[:] - - for idx, line in enumerate(lava_lines): - if result := re.search(r"hwci: mesa: (pass|fail)", line): - self._is_finished = True - self.status = result[1] - - last_line = idx + 1 - # We reached the log end here. hwci script has finished. - break - return lava_lines[:last_line] - - def handle_exception(self, exception: Exception): - print_log(exception) - self.cancel() - self.exception = exception - - # Give more accurate status depending on exception - if isinstance(exception, MesaCIKnownIssueException): - self.status = "canceled" - elif isinstance(exception, MesaCITimeoutError): - self.status = "hung" - elif isinstance(exception, MesaCIRetriableException): - self.status = "failed" - elif isinstance(exception, KeyboardInterrupt): - self.status = "interrupted" - print_log("LAVA job submitter was interrupted. Cancelling the job.") - raise - elif isinstance(exception, MesaCIException): - self.status = "interrupted" - print_log("LAVA job submitter was interrupted. Cancelling the job.") - raise - else: - self.status = "job_submitter_error" diff --git a/.gitlab-ci/lava/utils/lava_job_definition.py b/.gitlab-ci/lava/utils/lava_job_definition.py deleted file mode 100644 index 1227297d0..000000000 --- a/.gitlab-ci/lava/utils/lava_job_definition.py +++ /dev/null @@ -1,231 +0,0 @@ -from io import StringIO -from typing import TYPE_CHECKING, Any - -from ruamel.yaml import YAML - -from lava.utils.lava_farm import LavaFarm, get_lava_farm -from lava.utils.ssh_job_definition import ( - generate_docker_test, - generate_dut_test, - wrap_boot_action, - wrap_final_deploy_action, -) -from lava.utils.uart_job_definition import ( - fastboot_boot_action, - fastboot_deploy_actions, - tftp_boot_action, - tftp_deploy_actions, - qemu_boot_action, - qemu_deploy_actions, - uart_test_actions, -) - -if TYPE_CHECKING: - from lava.lava_job_submitter import LAVAJobSubmitter - -from .constants import FORCE_UART, JOB_PRIORITY, NUMBER_OF_ATTEMPTS_LAVA_BOOT - - -class LAVAJobDefinition: - """ - This class is responsible for generating the YAML payload to submit a LAVA - job. - """ - - def __init__(self, job_submitter: "LAVAJobSubmitter") -> None: - self.job_submitter: "LAVAJobSubmitter" = job_submitter - - def has_ssh_support(self) -> bool: - if FORCE_UART: - return False - - # Only Collabora's farm supports to run docker container as a LAVA actions, - # which is required to follow the job in a SSH section - current_farm = get_lava_farm() - - return current_farm == LavaFarm.COLLABORA - - def generate_lava_yaml_payload(self) -> dict[str, Any]: - """ - Generates a YAML payload for submitting a LAVA job, based on the provided arguments. - - Args: - None - - Returns: - a dictionary containing the values generated by the `generate_metadata` function and the - actions for the LAVA job submission. - """ - args = self.job_submitter - values = self.generate_metadata() - nfsrootfs = { - "url": f"{args.rootfs_url_prefix}/lava-rootfs.tar.zst", - "compression": "zstd", - } - - init_stage1_steps = self.init_stage1_steps() - artifact_download_steps = self.artifact_download_steps() - - deploy_actions = [] - boot_action = [] - test_actions = uart_test_actions(args, init_stage1_steps, artifact_download_steps) - - if args.boot_method == "fastboot": - deploy_actions = fastboot_deploy_actions(self, nfsrootfs) - boot_action = fastboot_boot_action(args) - elif args.boot_method == "qemu-nfs": - deploy_actions = qemu_deploy_actions(self, nfsrootfs) - boot_action = qemu_boot_action(args) - else: # tftp - deploy_actions = tftp_deploy_actions(self, nfsrootfs) - boot_action = tftp_boot_action(args) - - if self.has_ssh_support(): - wrap_final_deploy_action(deploy_actions[-1]) - # SSH jobs use namespaces to differentiate between the DUT and the - # docker container. Every LAVA action needs an explicit namespace, when we are not using - # the default one. - for deploy_action in deploy_actions: - deploy_action["namespace"] = "dut" - wrap_boot_action(boot_action) - test_actions = ( - generate_dut_test(args, init_stage1_steps), - generate_docker_test(args, artifact_download_steps), - ) - - values["actions"] = [ - *[{"deploy": d} for d in deploy_actions], - {"boot": boot_action}, - *[{"test": t} for t in test_actions], - ] - - return values - - def generate_lava_job_definition(self) -> str: - """ - Generates a LAVA job definition in YAML format and returns it as a string. - - Returns: - a string representation of the job definition generated by analysing job submitter - arguments and environment variables - """ - job_stream = StringIO() - yaml = YAML() - yaml.width = 4096 - yaml.dump(self.generate_lava_yaml_payload(), job_stream) - return job_stream.getvalue() - - def generate_metadata(self) -> dict[str, Any]: - # General metadata and permissions - values = { - "job_name": f"{self.job_submitter.project_name}: {self.job_submitter.pipeline_info}", - "device_type": self.job_submitter.device_type, - "visibility": {"group": [self.job_submitter.visibility_group]}, - "priority": JOB_PRIORITY, - "context": {"extra_nfsroot_args": " init=/init rootwait usbcore.quirks=0bda:8153:k"}, - "timeouts": { - "job": {"minutes": self.job_submitter.job_timeout_min}, - "actions": { - "depthcharge-retry": { - # Could take between 1 and 1.5 min in slower boots - "minutes": 4 - }, - "depthcharge-start": { - # Should take less than 1 min. - "minutes": 1, - }, - "depthcharge-action": { - # This timeout englobes the entire depthcharge timing, - # including retries - "minutes": 5 - * NUMBER_OF_ATTEMPTS_LAVA_BOOT, - }, - }, - }, - } - - if self.job_submitter.lava_tags: - values["tags"] = self.job_submitter.lava_tags.split(",") - - # QEMU lava jobs mandate proper arch value in the context - if self.job_submitter.boot_method == "qemu-nfs": - values["context"]["arch"] = self.job_submitter.mesa_job_name.split(":")[1] - - return values - - def attach_kernel_and_dtb(self, deploy_field): - if self.job_submitter.kernel_image_type: - deploy_field["kernel"]["type"] = self.job_submitter.kernel_image_type - if self.job_submitter.dtb_filename: - deploy_field["dtb"] = { - "url": f"{self.job_submitter.kernel_url_prefix}/" - f"{self.job_submitter.dtb_filename}.dtb" - } - - def attach_external_modules(self, deploy_field): - if self.job_submitter.kernel_external: - deploy_field["modules"] = { - "url": f"{self.job_submitter.kernel_url_prefix}/modules.tar.zst", - "compression": "zstd" - } - - def artifact_download_steps(self): - """ - This function is responsible for setting up the SSH server in the DUT and to - export the first boot environment to a file. - """ - # Putting JWT pre-processing and mesa download, within init-stage1.sh file, - # as we do with non-SSH version. - download_steps = [ - "set -ex", - "curl -L --retry 4 -f --retry-all-errors --retry-delay 60 " - f"{self.job_submitter.job_rootfs_overlay_url} | tar -xz -C /", - f"mkdir -p {self.job_submitter.ci_project_dir}", - f"curl -L --retry 4 -f --retry-all-errors --retry-delay 60 {self.job_submitter.build_url} | " - f"tar --zstd -x -C {self.job_submitter.ci_project_dir}", - ] - - # If the JWT file is provided, we will use it to authenticate with the cloud - # storage provider and will hide it from the job output in Gitlab. - if self.job_submitter.jwt_file: - with open(self.job_submitter.jwt_file) as jwt_file: - download_steps += [ - "set +x # HIDE_START", - f'echo -n "{jwt_file.read()}" > "{self.job_submitter.jwt_file}"', - "set -x # HIDE_END", - f'echo "export S3_JWT_FILE={self.job_submitter.jwt_file}" >> /set-job-env-vars.sh', - ] - else: - download_steps += [ - "echo Could not find jwt file, disabling S3 requests...", - "sed -i '/S3_RESULTS_UPLOAD/d' /set-job-env-vars.sh", - ] - - return download_steps - - def init_stage1_steps(self) -> list[str]: - run_steps = [] - # job execution script: - # - inline .gitlab-ci/common/init-stage1.sh - # - fetch and unpack per-pipeline build artifacts from build job - # - fetch and unpack per-job environment from lava-submit.sh - # - exec .gitlab-ci/common/init-stage2.sh - - with open(self.job_submitter.first_stage_init, "r") as init_sh: - # For vmware farm, patch nameserver as 8.8.8.8 is off limit. - # This is temporary and will be reverted once the farm is moved. - if self.job_submitter.mesa_job_name.startswith("vmware-"): - run_steps += [x.rstrip().replace("nameserver 8.8.8.8", "nameserver 10.25.198.110") for x in init_sh if not x.startswith("#") and x.rstrip()] - else: - run_steps += [x.rstrip() for x in init_sh if not x.startswith("#") and x.rstrip()] - - # We cannot distribute the Adreno 660 shader firmware inside rootfs, - # since the license isn't bundled inside the repository - if self.job_submitter.device_type == "sm8350-hdk": - run_steps.append( - "curl -L --retry 4 -f --retry-all-errors --retry-delay 60 " - + "https://github.com/allahjasif1990/hdk888-firmware/raw/main/a660_zap.mbn " - + '-o "/lib/firmware/qcom/sm8350/a660_zap.mbn"' - ) - - return run_steps diff --git a/.gitlab-ci/lava/utils/lava_log_hints.py b/.gitlab-ci/lava/utils/lava_log_hints.py deleted file mode 100644 index 3a35ae97c..000000000 --- a/.gitlab-ci/lava/utils/lava_log_hints.py +++ /dev/null @@ -1,106 +0,0 @@ -from __future__ import annotations - -import re -from datetime import datetime, timedelta -from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Any, Optional, Sequence - -if TYPE_CHECKING: - from lava.utils import LogFollower - -from lava.exceptions import MesaCIKnownIssueException -from lava.utils.console_format import CONSOLE_LOG -from lava.utils.constants import ( - KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER, - LOG_DEBUG_FEEDBACK_NOISE, - KNOWN_ISSUE_R8152_PATTERNS, - A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN, - A6XX_GPU_RECOVERY_FAILURE_MESSAGE, - A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT, -) -from lava.utils.log_section import LogSectionType - - -def search_known_issue_patterns(patterns: Sequence[str], line: str) -> str: - for pattern in patterns: - if re.search(pattern, line): - return pattern - return "" - - -@dataclass -class LAVALogHints: - log_follower: LogFollower - r8152_issue_consecutive_counter: int = field(default=0, init=False) - reboot_counter: int = field(default=0, init=False) - a6xx_gpu_recovery_fail_counter: int = field(default=0, init=False) - a6xx_gpu_first_fail_time: Optional[datetime] = field(default=None, init=False) - - def raise_known_issue(self, message) -> None: - raise MesaCIKnownIssueException( - "Found known issue: " - f"{CONSOLE_LOG['FG_MAGENTA']}" - f"{message}" - f"{CONSOLE_LOG['RESET']}" - ) - - def detect_failure(self, new_lines: list[dict[str, Any]]): - for line in new_lines: - if line["msg"] == LOG_DEBUG_FEEDBACK_NOISE: - continue - self.detect_r8152_issue(line) - self.detect_forced_reboot(line) - self.detect_a6xx_gpu_recovery_failure(line) - - def detect_r8152_issue(self, line): - if self.log_follower.phase in ( - LogSectionType.LAVA_BOOT, - LogSectionType.TEST_CASE, - ) and line["lvl"] in ("feedback", "target"): - if search_known_issue_patterns(KNOWN_ISSUE_R8152_PATTERNS, line["msg"]): - if ( - self.r8152_issue_consecutive_counter - < KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER - ): - self.r8152_issue_consecutive_counter += 1 - return - - self.raise_known_issue( - "Probable network issue failure encountered, retrying the job" - ) - - # Reset the status, as the `nfs... still trying` complaint was not detected - self.r8152_issue_consecutive_counter = 0 - - def detect_forced_reboot(self, line: dict[str, Any]) -> None: - if ( - self.log_follower.phase == LogSectionType.TEST_CASE - and line["lvl"] == "feedback" - ): - if re.search(r"^Reboot requested", line["msg"]): - self.reboot_counter += 1 - - if self.reboot_counter > 0: - self.raise_known_issue( - "Forced reboot detected during test phase, failing the job..." - ) - - # If the a6xx gpu repeatedly fails to recover over a short period of time, - # then successful recovery is unlikely so cancel the job preemptively. - def detect_a6xx_gpu_recovery_failure(self, line: dict[str, Any]) -> None: - if search_known_issue_patterns(A6XX_GPU_RECOVERY_FAILURE_MESSAGE, line["msg"]): - time_of_failure = datetime.fromisoformat(line["dt"]) - self.a6xx_gpu_recovery_fail_counter += 1 - - if self.a6xx_gpu_first_fail_time is None: - self.a6xx_gpu_first_fail_time = time_of_failure - - if self.a6xx_gpu_recovery_fail_counter == A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT: - time_since_first_fail = time_of_failure - self.a6xx_gpu_first_fail_time - if time_since_first_fail <= timedelta(minutes=A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN): - self.raise_known_issue( - "Repeated GPU recovery failure detected: cancelling the job" - ) - else: - self.a6xx_gpu_first_fail_time = None - self.a6xx_gpu_recovery_fail_counter = 0 diff --git a/.gitlab-ci/lava/utils/lava_proxy.py b/.gitlab-ci/lava/utils/lava_proxy.py deleted file mode 100644 index 581ec4603..000000000 --- a/.gitlab-ci/lava/utils/lava_proxy.py +++ /dev/null @@ -1,44 +0,0 @@ -import time -import traceback -import urllib -import urllib.parse -import xmlrpc -import xmlrpc.client - -import lavacli - -from .log_follower import fatal_err, print_log - - -def setup_lava_proxy(): - config = lavacli.load_config("default") - uri, usr, tok = (config.get(key) for key in ("uri", "username", "token")) - uri_obj = urllib.parse.urlparse(uri) - uri_str = f"{uri_obj.scheme}://{usr}:{tok}@{uri_obj.netloc}{uri_obj.path}" - transport = lavacli.RequestsTransport( - uri_obj.scheme, - config.get("proxy"), - config.get("timeout", 120.0), - config.get("verify_ssl_cert", True), - ) - proxy = xmlrpc.client.ServerProxy(uri_str, allow_none=True, transport=transport) - - print_log(f'Proxy for {config["uri"]} created.') - - return proxy - - -def call_proxy(fn, *args): - retries = 60 - for n in range(1, retries + 1): - try: - return fn(*args) - except xmlrpc.client.ProtocolError as err: - if n == retries: - traceback.print_exc() - fatal_err(f"A protocol error occurred (Err {err.errcode} {err.errmsg})") - else: - time.sleep(15) - except xmlrpc.client.Fault as err: - traceback.print_exc() - fatal_err(f"FATAL: Fault: {err.faultString} (code: {err.faultCode})", err) diff --git a/.gitlab-ci/lava/utils/log_follower.py b/.gitlab-ci/lava/utils/log_follower.py deleted file mode 100644 index 7d54f8844..000000000 --- a/.gitlab-ci/lava/utils/log_follower.py +++ /dev/null @@ -1,332 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2022 Collabora Limited -# Author: Guilherme Gallo -# -# SPDX-License-Identifier: MIT - -""" -Some utilities to analyse logs, create gitlab sections and other quality of life -improvements -""" - -import logging -import re -import sys -from dataclasses import dataclass, field -from datetime import datetime, timedelta -from typing import Optional, Union - -from lava.exceptions import MesaCITimeoutError -from lava.utils.console_format import CONSOLE_LOG -from lava.utils.gitlab_section import GitlabSection -from lava.utils.lava_farm import LavaFarm, get_lava_farm -from lava.utils.lava_log_hints import LAVALogHints -from lava.utils.log_section import ( - DEFAULT_GITLAB_SECTION_TIMEOUTS, - FALLBACK_GITLAB_SECTION_TIMEOUT, - LOG_SECTIONS, - LogSectionType, -) - - -@dataclass -class LogFollower: - starting_section: Optional[GitlabSection] = None - _current_section: Optional[GitlabSection] = None - section_history: list[GitlabSection] = field(default_factory=list, init=False) - timeout_durations: dict[LogSectionType, timedelta] = field( - default_factory=lambda: DEFAULT_GITLAB_SECTION_TIMEOUTS, - ) - fallback_timeout: timedelta = FALLBACK_GITLAB_SECTION_TIMEOUT - _buffer: list[str] = field(default_factory=list, init=False) - log_hints: LAVALogHints = field(init=False) - lava_farm: LavaFarm = field(init=False, default=get_lava_farm()) - _merge_next_line: str = field(default_factory=str, init=False) - - def __post_init__(self): - # Make it trigger current_section setter to populate section history - self.current_section = self.starting_section - section_is_created = bool(self._current_section) - section_has_started = bool( - self._current_section and self._current_section.has_started - ) - self.log_hints = LAVALogHints(self) - assert ( - section_is_created == section_has_started - ), "Can't follow logs beginning from uninitialized GitLab sections." - - # Initialize fix_lava_gitlab_section_log generator - self.gl_section_fix_gen = fix_lava_gitlab_section_log() - next(self.gl_section_fix_gen) - - @property - def current_section(self): - return self._current_section - - @current_section.setter - def current_section(self, new_section: GitlabSection) -> None: - if old_section := self._current_section: - self.section_history.append(old_section) - self._current_section = new_section - - @property - def phase(self) -> LogSectionType: - return ( - self._current_section.type - if self._current_section - else LogSectionType.UNKNOWN - ) - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """Cleanup existing buffer if this object gets out from the context""" - self.clear_current_section() - last_lines = self.flush() - for line in last_lines: - print(line) - - def watchdog(self): - if not self._current_section: - return - - timeout_duration = self.timeout_durations.get( - self._current_section.type, self.fallback_timeout - ) - - if self._current_section.delta_time() > timeout_duration: - raise MesaCITimeoutError( - f"Gitlab Section {self._current_section} has timed out", - timeout_duration=timeout_duration, - ) - - def clear_current_section(self): - if self._current_section and not self._current_section.has_finished: - self._buffer.append(self._current_section.end()) - self.current_section = None - - def update_section(self, new_section: GitlabSection): - # Sections can have redundant regex to find them to mitigate LAVA - # interleaving kmsg and stderr/stdout issue. - if self.current_section and self.current_section.id == new_section.id: - return - self.clear_current_section() - self.current_section = new_section - self._buffer.append(new_section.start()) - - def manage_gl_sections(self, line): - if isinstance(line["msg"], list): - logging.debug("Ignoring messages as list. Kernel dumps.") - return - - for log_section in LOG_SECTIONS: - if new_section := log_section.from_log_line_to_section(line): - self.update_section(new_section) - break - - def detect_kernel_dump_line(self, line: dict[str, Union[str, list]]) -> bool: - # line["msg"] can be a list[str] when there is a kernel dump - if isinstance(line["msg"], list): - return line["lvl"] == "debug" - - # result level has dict line["msg"] - if not isinstance(line["msg"], str): - return False - - # we have a line, check if it is a kernel message - if re.search(r"\[[\d\s]{5}\.[\d\s]{6}\] +\S{2,}", line["msg"]): - print_log(f"{CONSOLE_LOG['BOLD']}{line['msg']}{CONSOLE_LOG['RESET']}") - return True - - return False - - def remove_trailing_whitespace(self, line: dict[str, str]) -> None: - """ - Removes trailing whitespace from the end of the `msg` value in the log line dictionary. - - Args: - line: A dictionary representing a single log line. - - Note: - LAVA treats carriage return characters as a line break, so each carriage return in an output console - is mapped to a console line in LAVA. This method removes trailing `\r\n` characters from log lines. - """ - msg: Optional[str] = line.get("msg") - if not msg: - return False - - messages = [msg] if isinstance(msg, str) else msg - - for message in messages: - # LAVA logs brings raw messages, which includes newlines characters as \r\n. - line["msg"]: str = re.sub(r"\r\n$", "", message) - - def merge_carriage_return_lines(self, line: dict[str, str]) -> bool: - """ - Merges lines that end with a carriage return character into a single line. - - Args: - line: A dictionary representing a single log line. - - Returns: - A boolean indicating whether the current line has been merged with the next line. - - Note: - LAVA treats carriage return characters as a line break, so each carriage return in an output console - is mapped to a console line in LAVA. - """ - if line["msg"].endswith("\r"): - self._merge_next_line += line["msg"] - return True - - if self._merge_next_line: - line["msg"] = self._merge_next_line + line["msg"] - self._merge_next_line = "" - - return False - - def ignore_dut_feedback_lines(self, line: dict[str, str]) -> bool: - """ - Ignores feedback lines from LAVA. - If we only receive this level of message for some time, it means that the job is - misbehaving. E.g Rebooting. - - Args: - line: A dictionary representing a single log line. - - Returns: - A boolean indicating whether the current line is a feedback line. - """ - if line["lvl"] == "feedback" and line["ns"] == "dut": - return True - if line["lvl"] == "debug": - # This message happens after LAVA end receiving the feedback from the DUT - if line["msg"] == "Listened to connection for namespace 'dut' done": - return True - return False - - def feed(self, new_lines: list[dict[str, str]]) -> bool: - """Input data to be processed by LogFollower instance - Returns true if the DUT (device under test) seems to be alive. - """ - - self.watchdog() - - # No signal of job health in the log - is_job_healthy = False - - for line in new_lines: - self.remove_trailing_whitespace(line) - - if self.detect_kernel_dump_line(line): - continue - - if self.merge_carriage_return_lines(line): - continue - - if self.ignore_dut_feedback_lines(line): - continue - - # At least we are fed with a non-kernel dump log, it seems that the - # job is progressing - is_job_healthy = True - self.manage_gl_sections(line) - if parsed_line := self.parse_lava_line(line): - self._buffer.append(parsed_line) - - self.log_hints.detect_failure(new_lines) - - return is_job_healthy - - def flush(self) -> list[str]: - buffer = self._buffer - self._buffer = [] - return buffer - - def parse_lava_line(self, line) -> Optional[str]: - prefix = "" - suffix = "" - - if line["lvl"] in ["results", "feedback", "debug"]: - return - elif line["lvl"] in ["warning", "error"]: - prefix = CONSOLE_LOG["FG_RED"] - suffix = CONSOLE_LOG["RESET"] - elif line["lvl"] == "input": - prefix = "$ " - suffix = "" - elif line["lvl"] == "target" and self.lava_farm != LavaFarm.COLLABORA: - # gl_section_fix_gen will output the stored line if it can't find a - # match for the first split line - # So we can recover it and put it back to the buffer - if recovered_first_line := self.gl_section_fix_gen.send(line): - self._buffer.append(recovered_first_line) - - return f'{prefix}{line["msg"]}{suffix}' - -def fix_lava_gitlab_section_log(): - """This function is a temporary solution for the Gitlab section markers - splitting problem. Gitlab parses the following lines to define a collapsible - gitlab section in their log: - - \x1b[0Ksection_start:timestamp:section_id[collapsible=true/false]\r\x1b[0Ksection_header - - \x1b[0Ksection_end:timestamp:section_id\r\x1b[0K - There is some problem in message passing between the LAVA dispatcher and the - device under test (DUT), that replaces \r control characters into \n. When - this problem is fixed on the LAVA side, one should remove this function. - """ - while True: - line = yield False - first_line = None - split_line_pattern = re.compile(r"\x1b\[0K(section_\w+):(\d+):([^\s\r]+)$") - second_line_pattern = re.compile(r"\x1b\[0K([\S ]+)?") - - if not re.search(split_line_pattern, line["msg"]): - continue - - first_line = line["msg"] - # Delete the current line and hold this log line stream to be able to - # possibly merge it with the next line. - line["msg"] = "" - line = yield False - - # This code reached when we detect a possible first split line - if re.search(second_line_pattern, line["msg"]): - assert first_line - line["msg"] = f"{first_line}\r{line['msg']}" - else: - # The current line doesn't match with the previous one, send back the - # latter to give the user the chance to recover it. - yield first_line - - - -def print_log(msg: str, *args) -> None: - # Reset color from timestamp, since `msg` can tint the terminal color - print(f"{CONSOLE_LOG['RESET']}{datetime.now()}: {msg}", *args) - - -def fatal_err(msg, exception=None): - colored_msg = f"{CONSOLE_LOG['FG_RED']}" - print_log(colored_msg, f"{msg}", f"{CONSOLE_LOG['RESET']}") - if exception: - raise exception - sys.exit(1) - - -def hide_sensitive_data(yaml_data: str, start_hide: str = "HIDE_START", end_hide: str = "HIDE_END") -> str: - skip_line = False - dump_data: list[str] = [] - for line in yaml_data.splitlines(True): - if start_hide in line: - skip_line = True - elif end_hide in line: - skip_line = False - - if skip_line: - continue - - dump_data.append(line) - - return "".join(dump_data) diff --git a/.gitlab-ci/lava/utils/log_section.py b/.gitlab-ci/lava/utils/log_section.py deleted file mode 100644 index 25620a615..000000000 --- a/.gitlab-ci/lava/utils/log_section.py +++ /dev/null @@ -1,113 +0,0 @@ -import re -from dataclasses import dataclass -from datetime import timedelta -from enum import Enum, auto -from os import getenv -from typing import Optional, Pattern, Union - -from lava.utils.gitlab_section import GitlabSection - - -class LogSectionType(Enum): - UNKNOWN = auto() - LAVA_BOOT = auto() - TEST_DUT_SUITE = auto() - TEST_SUITE = auto() - TEST_CASE = auto() - LAVA_POST_PROCESSING = auto() - - -# Empirically, successful device boot in LAVA time takes less than 3 -# minutes. -# LAVA itself is configured to attempt thrice to boot the device, -# summing up to 9 minutes. -# It is better to retry the boot than cancel the job and re-submit to avoid -# the enqueue delay. -LAVA_BOOT_TIMEOUT = int(getenv("LAVA_BOOT_TIMEOUT", 9)) - -# Test DUT suite phase is where the initialization happens in DUT, not on docker. -# The device will be listening to SSH session until the end of the job. -LAVA_TEST_DUT_SUITE_TIMEOUT = int(getenv("JOB_TIMEOUT", 60)) - -# Test suite phase is where the initialization happens on docker. -LAVA_TEST_SUITE_TIMEOUT = int(getenv("LAVA_TEST_SUITE_TIMEOUT", 5)) - -# Test cases may take a long time, this script has no right to interrupt -# them. But if the test case takes almost 1h, it will never succeed due to -# Gitlab job timeout. -LAVA_TEST_CASE_TIMEOUT = int(getenv("JOB_TIMEOUT", 60)) - -# LAVA post processing may refer to a test suite teardown, or the -# adjustments to start the next test_case -LAVA_POST_PROCESSING_TIMEOUT = int(getenv("LAVA_POST_PROCESSING_TIMEOUT", 5)) - -FALLBACK_GITLAB_SECTION_TIMEOUT = timedelta(minutes=10) -DEFAULT_GITLAB_SECTION_TIMEOUTS = { - LogSectionType.LAVA_BOOT: timedelta(minutes=LAVA_BOOT_TIMEOUT), - LogSectionType.TEST_DUT_SUITE: timedelta(minutes=LAVA_TEST_DUT_SUITE_TIMEOUT), - LogSectionType.TEST_SUITE: timedelta(minutes=LAVA_TEST_SUITE_TIMEOUT), - LogSectionType.TEST_CASE: timedelta(minutes=LAVA_TEST_CASE_TIMEOUT), - LogSectionType.LAVA_POST_PROCESSING: timedelta( - minutes=LAVA_POST_PROCESSING_TIMEOUT - ), -} - - -@dataclass(frozen=True) -class LogSection: - regex: Union[Pattern, str] - levels: tuple[str] - section_id: str - section_header: str - section_type: LogSectionType - collapsed: bool = False - - def from_log_line_to_section( - self, lava_log_line: dict[str, str] - ) -> Optional[GitlabSection]: - if lava_log_line["lvl"] not in self.levels: - return - - if match := re.search(self.regex, lava_log_line["msg"]): - section_id = self.section_id.format(*match.groups()) - section_header = self.section_header.format(*match.groups()) - timeout = DEFAULT_GITLAB_SECTION_TIMEOUTS[self.section_type] - return GitlabSection( - id=section_id, - header=f"{section_header} - Timeout: {timeout}", - type=self.section_type, - start_collapsed=self.collapsed, - ) - - -LOG_SECTIONS = ( - LogSection( - regex=re.compile(r"? ([^>]*)"), - levels=("target", "debug"), - section_id="{}", - section_header="test_case {}", - section_type=LogSectionType.TEST_CASE, - ), - LogSection( - regex=re.compile(r"? ([^>]*ssh.*server.*)"), - levels=("debug"), - section_id="{}", - section_header="[dut] test_suite {}", - section_type=LogSectionType.TEST_DUT_SUITE, - ), - LogSection( - regex=re.compile(r"? ([^>]*)"), - levels=("debug"), - section_id="{}", - section_header="[docker] test_suite {}", - section_type=LogSectionType.TEST_SUITE, - ), - LogSection( - regex=re.compile(r"ENDTC>? ([^>]+)"), - levels=("target", "debug"), - section_id="post-{}", - section_header="Post test_case {}", - collapsed=True, - section_type=LogSectionType.LAVA_POST_PROCESSING, - ), -) diff --git a/.gitlab-ci/lava/utils/ssh_job_definition.py b/.gitlab-ci/lava/utils/ssh_job_definition.py deleted file mode 100644 index eae8f6c23..000000000 --- a/.gitlab-ci/lava/utils/ssh_job_definition.py +++ /dev/null @@ -1,196 +0,0 @@ -""" -In a few words: some devices in Mesa CI has problematic serial connection, they -may hang (become silent) intermittently. Every time it hangs for minutes, the -job is retried, causing delays in the overall pipeline executing, ultimately -blocking legit MRs to merge. - -To reduce reliance on UART, we explored LAVA features, such as running docker -containers as a test alongside the DUT one, to be able to create an SSH server -in the DUT the earliest possible and an SSH client in a docker container, to -establish a SSH session between both, allowing the console output to be passed -via SSH pseudo terminal, instead of relying in the error-prone UART. - -In more detail, we aim to use "export -p" to share the initial boot environment -with SSH LAVA test-cases. -The "init-stage1.sh" script handles tasks such as system mounting and network -setup, which are necessary for allocating a pseudo-terminal under "/dev/pts". -Although these chores are not required for establishing an SSH session, they are -essential for proper functionality to the target script given by HWCI_SCRIPT -environment variable. - -Therefore, we have divided the job definition into four parts: - -1. [DUT] Logging in to DUT and run the SSH server with root access. -2. [DUT] Running the "init-stage1.sh" script for the first SSH test case. -3. [DUT] Export the first boot environment to `/dut-env-vars.sh` file. -4. [SSH] Enabling the pseudo-terminal for colors and running the "init-stage2.sh" -script after sourcing "dut-env-vars.sh" again for the second SSH test case. -""" - - -import re -from typing import TYPE_CHECKING, Any, Iterable - -from ruamel.yaml.scalarstring import LiteralScalarString - -from .constants import NUMBER_OF_ATTEMPTS_LAVA_BOOT - -if TYPE_CHECKING: - from ..lava_job_submitter import LAVAJobSubmitter - -# Very early SSH server setup. Uses /dut_ready file to flag it is done. -SSH_SERVER_COMMANDS = { - "auto_login": { - "login_commands": [ - "dropbear -R -B", - "touch /dut_ready", - ], - "login_prompt": "ogin:", - # To login as root, the username should be empty - "username": "", - } -} - -# TODO: Extract this inline script to a shell file, like we do with -# init-stage[12].sh -# The current way is difficult to maintain because one has to deal with escaping -# characters for both Python and the resulting job definition YAML. -# Plus, it always good to lint bash scripts with shellcheck. -DOCKER_COMMANDS = [ - """set -ex -timeout 1m bash << EOF -while [ -z "$(lava-target-ip)" ]; do - echo Waiting for DUT to join LAN; - sleep 1; -done -EOF - -ping -c 5 -w 60 $(lava-target-ip) - -lava_ssh_test_case() { - set -x - local test_case="${1}" - shift - lava-test-case \"${test_case}\" --shell \\ - ssh ${SSH_PTY_ARGS:--T} \\ - -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \\ - root@$(lava-target-ip) \"${@}\" -}""", -] - - -def to_yaml_block(steps_array: Iterable[str], escape_vars=[]) -> LiteralScalarString: - def escape_envvar(match): - return "\\" + match.group(0) - - filtered_array = [s for s in steps_array if s.strip() and not s.startswith("#")] - final_str = "\n".join(filtered_array) - - for escape_var in escape_vars: - # Find env vars and add '\\' before them - final_str = re.sub(rf"\${escape_var}*", escape_envvar, final_str) - return LiteralScalarString(final_str) - - -def generate_dut_test(args: "LAVAJobSubmitter", first_stage_steps: list[str]) -> dict[str, Any]: - # Commands executed on DUT. - # Trying to execute the minimal number of commands, because the console data is - # retrieved via UART, which is hang-prone in some devices. - return { - "namespace": "dut", - "definitions": [ - { - "from": "inline", - "name": "setup-ssh-server", - "path": "inline-setup-ssh-server", - "repository": { - "metadata": { - "format": "Lava-Test Test Definition 1.0", - "name": "dut-env-export", - }, - "run": { - "steps": [ - to_yaml_block(first_stage_steps), - "export -p > /dut-env-vars.sh", # Exporting the first boot environment - ], - }, - }, - } - ], - } - - -def generate_docker_test( - args: "LAVAJobSubmitter", artifact_download_steps: list[str] -) -> dict[str, Any]: - # This is a growing list of commands that will be executed by the docker - # guest, which will be the SSH client. - docker_commands = [] - - # LAVA test wrapping Mesa CI job in a SSH session. - init_stages_test = { - "namespace": "container", - "timeout": {"minutes": args.job_timeout_min}, - "failure_retry": 3, - "definitions": [ - { - "name": "docker_ssh_client", - "from": "inline", - "path": "inline/docker_ssh_client.yaml", - "repository": { - "metadata": { - "name": "mesa", - "description": "Mesa test plan", - "format": "Lava-Test Test Definition 1.0", - }, - "run": {"steps": docker_commands}, - }, - } - ], - "docker": { - "image": args.ssh_client_image, - }, - } - - docker_commands += [ - to_yaml_block(DOCKER_COMMANDS, escape_vars=["LAVA_TARGET_IP"]), - "lava_ssh_test_case 'wait_for_dut_login' << EOF", - "while [ ! -e /dut_ready ]; do sleep 1; done;", - "EOF", - to_yaml_block( - ( - "lava_ssh_test_case 'artifact_download' 'bash --' << EOF", - "source /dut-env-vars.sh", - *artifact_download_steps, - "EOF", - ) - ), - "export SSH_PTY_ARGS=-tt", - # Putting CI_JOB name as the testcase name, it may help LAVA farm - # maintainers with monitoring - f"lava_ssh_test_case '{args.project_name}_{args.mesa_job_name}' " - # Changing directory to /, as the HWCI_SCRIPT expects that - "'\"cd / && /init-stage2.sh\"'", - ] - - return init_stages_test - - -def wrap_final_deploy_action(final_deploy_action: dict): - wrap = { - "namespace": "dut", - "failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT, - "timeout": {"minutes": 10}, - } - - final_deploy_action.update(wrap) - - -def wrap_boot_action(boot_action: dict): - wrap = { - "namespace": "dut", - "failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT, - **SSH_SERVER_COMMANDS, - } - - boot_action.update(wrap) diff --git a/.gitlab-ci/lava/utils/uart_job_definition.py b/.gitlab-ci/lava/utils/uart_job_definition.py deleted file mode 100644 index d375898ad..000000000 --- a/.gitlab-ci/lava/utils/uart_job_definition.py +++ /dev/null @@ -1,181 +0,0 @@ -from typing import TYPE_CHECKING, Any - -if TYPE_CHECKING: - from ..lava_job_submitter import LAVAJobSubmitter - from .lava_job_definition import LAVAJobDefinition - -from .constants import NUMBER_OF_ATTEMPTS_LAVA_BOOT - -# Use the same image that is being used for the hardware enablement and health-checks. -# They are pretty small (<100MB) and have all the tools we need to run LAVA, so it is a safe choice. -# You can find the Dockerfile here: -# https://gitlab.collabora.com/lava/health-check-docker/-/blob/main/Dockerfile -# And the registry here: https://gitlab.collabora.com/lava/health-check-docker/container_registry/ -DOCKER_IMAGE = "registry.gitlab.collabora.com/lava/health-check-docker" - - -def fastboot_deploy_actions( - job_definition: "LAVAJobDefinition", nfsrootfs -) -> tuple[dict[str, Any], ...]: - args = job_definition.job_submitter - fastboot_deploy_nfs = { - "timeout": {"minutes": 10}, - "to": "nfs", - "nfsrootfs": nfsrootfs, - } - - fastboot_deploy_prepare = { - "timeout": {"minutes": 5}, - "to": "downloads", - "os": "oe", - "images": { - "kernel": { - "url": f"{args.kernel_url_prefix}/{args.kernel_image_name}", - }, - }, - "postprocess": { - "docker": { - "image": DOCKER_IMAGE, - "steps": [ - f"cat Image.gz {args.dtb_filename}.dtb > Image.gz+dtb", - "mkbootimg --kernel Image.gz+dtb" - + ' --cmdline "root=/dev/nfs rw nfsroot=$NFS_SERVER_IP:$NFS_ROOTFS,tcp,hard rootwait ip=dhcp init=/init"' - + " --pagesize 4096 --base 0x80000000 -o boot.img", - ], - } - }, - } - - fastboot_deploy = { - "timeout": {"minutes": 2}, - "to": "fastboot", - "docker": { - "image": DOCKER_IMAGE, - }, - "images": { - "boot": {"url": "downloads://boot.img"}, - }, - } - - # URLs to our kernel rootfs to boot from, both generated by the base - # container build - job_definition.attach_kernel_and_dtb(fastboot_deploy_prepare["images"]) - job_definition.attach_external_modules(fastboot_deploy_nfs) - - return (fastboot_deploy_nfs, fastboot_deploy_prepare, fastboot_deploy) - - -def tftp_deploy_actions(job_definition: "LAVAJobDefinition", nfsrootfs) -> tuple[dict[str, Any]]: - args = job_definition.job_submitter - tftp_deploy = { - "timeout": {"minutes": 5}, - "to": "tftp", - "os": "oe", - "kernel": { - "url": f"{args.kernel_url_prefix}/{args.kernel_image_name}", - }, - "nfsrootfs": nfsrootfs, - } - job_definition.attach_kernel_and_dtb(tftp_deploy) - job_definition.attach_external_modules(tftp_deploy) - - return (tftp_deploy,) - - -def qemu_deploy_actions(job_definition: "LAVAJobDefinition", nfsrootfs) -> tuple[dict[str, Any]]: - args = job_definition.job_submitter - qemu_deploy = { - "timeout": {"minutes": 5}, - "to": "nfs", - "images": { - "kernel": { - "image_arg": "-kernel {kernel}", - "url": f"{args.kernel_url_prefix}/{args.kernel_image_name}", - }, - "nfsrootfs": nfsrootfs, - }, - } - job_definition.attach_external_modules(qemu_deploy) - - return (qemu_deploy,) - - -def uart_test_actions( - args: "LAVAJobSubmitter", init_stage1_steps: list[str], artifact_download_steps: list[str] -) -> tuple[dict[str, Any]]: - # skeleton test definition: only declaring each job as a single 'test' - # since LAVA's test parsing is not useful to us - run_steps = [] - test = { - "timeout": {"minutes": args.job_timeout_min}, - "failure_retry": 1, - "definitions": [ - { - "name": "mesa", - "from": "inline", - "lava-signal": "kmsg", - "path": "inline/mesa.yaml", - "repository": { - "metadata": { - "name": "mesa", - "description": "Mesa test plan", - "os": ["oe"], - "scope": ["functional"], - "format": "Lava-Test Test Definition 1.0", - }, - "run": {"steps": run_steps}, - }, - } - ], - } - - run_steps += init_stage1_steps - run_steps += artifact_download_steps - - run_steps += [ - f"mkdir -p {args.ci_project_dir}", - f"curl {args.build_url} | tar --zstd -x -C {args.ci_project_dir}", - # Sleep a bit to give time for bash to dump shell xtrace messages into - # console which may cause interleaving with LAVA_SIGNAL_STARTTC in some - # devices like a618. - "sleep 1", - # Putting CI_JOB name as the testcase name, it may help LAVA farm - # maintainers with monitoring - f"lava-test-case '{args.project_name}_{args.mesa_job_name}' --shell /init-stage2.sh", - ] - - return (test,) - - -def tftp_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]: - tftp_boot = { - "failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT, - "method": args.boot_method, - "prompts": ["lava-shell:"], - "commands": "nfs", - } - - return tftp_boot - - -def qemu_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]: - qemu_boot = { - "failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT, - "method": args.boot_method, - "prompts": ["lava-shell:"], - } - - return qemu_boot - - -def fastboot_boot_action(args: "LAVAJobSubmitter") -> dict[str, Any]: - fastboot_boot = { - "timeout": {"minutes": 2}, - "docker": {"image": DOCKER_IMAGE}, - "failure_retry": NUMBER_OF_ATTEMPTS_LAVA_BOOT, - "method": args.boot_method, - "prompts": ["lava-shell:"], - "commands": ["set_active a"], - } - - return fastboot_boot diff --git a/.gitlab-ci/meson/build.sh b/.gitlab-ci/meson/build.sh deleted file mode 100755 index 82d590d5f..000000000 --- a/.gitlab-ci/meson/build.sh +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC1003 # works for us now... -# shellcheck disable=SC2086 # we want word splitting - -section_switch meson-cross-file "meson: cross file generate" - -set -e -set -o xtrace - -CROSS_FILE=/cross_file-"$CROSS".txt - -export PATH=$PATH:$PWD/.gitlab-ci/build - -touch native.file -printf > native.file "%s\n" \ - "[binaries]" \ - "c = 'compiler-wrapper-${CC:-gcc}.sh'" \ - "cpp = 'compiler-wrapper-${CXX:-g++}.sh'" - -# We need to control the version of llvm-config we're using, so we'll -# tweak the cross file or generate a native file to do so. -if test -n "$LLVM_VERSION"; then - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" - echo "llvm-config = '$(which "$LLVM_CONFIG")'" >> native.file - if [ -n "$CROSS" ]; then - sed -i -e '/\[binaries\]/a\' -e "llvm-config = '$(which "$LLVM_CONFIG")'" $CROSS_FILE - fi - $LLVM_CONFIG --version -fi - -# cross-xfail-$CROSS, if it exists, contains a list of tests that are expected -# to fail for the $CROSS configuration, one per line. you can then mark those -# tests in their meson.build with: -# -# test(..., -# should_fail: meson.get_external_property('xfail', '').contains(t), -# ) -# -# where t is the name of the test, and the '' is the string to search when -# not cross-compiling (which is empty, because for amd64 everything is -# expected to pass). -if [ -n "$CROSS" ]; then - CROSS_XFAIL=.gitlab-ci/cross-xfail-"$CROSS" - if [ -s "$CROSS_XFAIL" ]; then - sed -i \ - -e '/\[properties\]/a\' \ - -e "xfail = '$(tr '\n' , < $CROSS_XFAIL)'" \ - "$CROSS_FILE" - fi -fi - -if [ -n "$HOST_BUILD_OPTIONS" ]; then - section_switch meson-host-configure "meson: host configure" - - # Stash the PKG_CONFIG_LIBDIR so that we can use the base x86_64 image - # libraries. - tmp_pkg_config_libdir=$PKG_CONFIG_LIBDIR - unset PKG_CONFIG_LIBDIR - - # Compile a host version for the few tools we need for a cross build (for - # now just intel-clc) - rm -rf _host_build - meson setup _host_build \ - --native-file=native.file \ - -D prefix=/usr \ - -D libdir=lib \ - ${HOST_BUILD_OPTIONS} - - pushd _host_build - - section_switch meson-host-build "meson: host build" - - meson configure - ninja - ninja install - popd - - # Restore PKG_CONFIG_LIBDIR - if [ -n "$tmp_pkg_config_libdir" ]; then - export PKG_CONFIG_LIBDIR=$tmp_pkg_config_libdir - fi -fi - -# Only use GNU time if available, not any shell built-in command -case $CI_JOB_NAME in - # ASAN leak detection is incompatible with strace - *-asan*) - if test -f /usr/bin/time; then - MESON_TEST_ARGS+=--wrapper=$PWD/.gitlab-ci/meson/time.sh - fi - Xvfb :0 -screen 0 1024x768x16 & - export DISPLAY=:0.0 - ;; - *) - if test -f /usr/bin/time -a -f /usr/bin/strace; then - MESON_TEST_ARGS+=--wrapper=$PWD/.gitlab-ci/meson/time-strace.sh - fi - ;; -esac - -section_switch meson-configure "meson: configure" - -rm -rf _build -meson setup _build \ - --native-file=native.file \ - --wrap-mode=nofallback \ - --force-fallback-for perfetto,syn,paste \ - ${CROSS+--cross "$CROSS_FILE"} \ - -D prefix=$PWD/install \ - -D libdir=lib \ - -D buildtype=${BUILDTYPE:?} \ - -D build-tests=true \ - -D c_args="$(echo -n $C_ARGS)" \ - -D c_link_args="$(echo -n $C_LINK_ARGS)" \ - -D cpp_args="$(echo -n $CPP_ARGS)" \ - -D cpp_link_args="$(echo -n $CPP_LINK_ARGS)" \ - -D enable-glcpp-tests=false \ - -D libunwind=${UNWIND} \ - ${DRI_LOADERS} \ - ${GALLIUM_ST} \ - -D gallium-opencl=disabled \ - -D gallium-drivers=${GALLIUM_DRIVERS:-[]} \ - -D vulkan-drivers=${VULKAN_DRIVERS:-[]} \ - -D video-codecs=all \ - -D werror=true \ - ${EXTRA_OPTION} -cd _build -meson configure - -uncollapsed_section_switch meson-build "meson: build" - -if command -V mold &> /dev/null ; then - mold --run ninja -else - ninja -fi - - -uncollapsed_section_switch meson-test "meson: test" -LC_ALL=C.UTF-8 meson test --num-processes "${FDO_CI_CONCURRENT:-4}" --print-errorlogs ${MESON_TEST_ARGS} -section_switch meson-install "meson: install" -if command -V mold &> /dev/null ; then - mold --run ninja install -else - ninja install -fi -cd .. -section_end meson-install diff --git a/.gitlab-ci/meson/time-strace.sh b/.gitlab-ci/meson/time-strace.sh deleted file mode 100755 index 53bfd6ac3..000000000 --- a/.gitlab-ci/meson/time-strace.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -if [[ -z "$STRACEDIR" ]]; then - STRACEDIR=meson-logs/strace/$(for i in "$@"; do basename -z -- $i; echo -n _; done).$$ -fi - -mkdir -p $STRACEDIR - -# If the test times out, meson sends SIGTERM to this process. -# Simply exec'ing "time" would result in no output from that in this case. -# Instead, we need to run "time" in the background, catch the signals and -# propagate them to the actual test process. - -/usr/bin/time -v strace -ff -tt -T -o $STRACEDIR/log "$@" & -TIMEPID=$! -STRACEPID=$(ps --ppid $TIMEPID -o pid=) -TESTPID=$(ps --ppid $STRACEPID -o pid=) - -if test "x$TESTPID" != x; then - trap 'kill -TERM $TESTPID; wait $TIMEPID; exit $?' TERM -fi - -wait $TIMEPID -EXITCODE=$? - -# Only keep strace logs if the test timed out -rm -rf $STRACEDIR & - -exit $EXITCODE diff --git a/.gitlab-ci/meson/time.sh b/.gitlab-ci/meson/time.sh deleted file mode 100755 index cde6bb718..000000000 --- a/.gitlab-ci/meson/time.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# If the test times out, meson sends SIGTERM to this process. -# Simply exec'ing "time" would result in no output from that in this case. -# Instead, we need to run "time" in the background, catch the signals and -# propagate them to the actual test process. - -/usr/bin/time -v "$@" & -TIMEPID=$! -TESTPID=$(ps --ppid $TIMEPID -o pid=) - -if test "x$TESTPID" != x; then - trap 'kill -TERM $TESTPID; wait $TIMEPID; exit $?' TERM -fi - -wait $TIMEPID -exit $? diff --git a/.gitlab-ci/piglit/disable-vs_in.diff b/.gitlab-ci/piglit/disable-vs_in.diff deleted file mode 100644 index 5eba5939c..000000000 --- a/.gitlab-ci/piglit/disable-vs_in.diff +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/generated_tests/CMakeLists.txt b/generated_tests/CMakeLists.txt -index 738526546..6f89048cd 100644 ---- a/generated_tests/CMakeLists.txt -+++ b/generated_tests/CMakeLists.txt -@@ -206,11 +206,6 @@ piglit_make_generated_tests( - templates/gen_variable_index_write_tests/vs.shader_test.mako - templates/gen_variable_index_write_tests/fs.shader_test.mako - templates/gen_variable_index_write_tests/helpers.mako) --piglit_make_generated_tests( -- vs_in_fp64.list -- gen_vs_in_fp64.py -- templates/gen_vs_in_fp64/columns.shader_test.mako -- templates/gen_vs_in_fp64/regular.shader_test.mako) - piglit_make_generated_tests( - shader_framebuffer_fetch_tests.list - gen_shader_framebuffer_fetch_tests.py) -@@ -279,7 +274,6 @@ add_custom_target(gen-gl-tests - gen_extensions_defined.list - vp-tex.list - variable_index_write_tests.list -- vs_in_fp64.list - gpu_shader4_tests.list - ) - -diff --git a/tests/sanity.py b/tests/sanity.py -index 12f1614c9..9019087e2 100644 ---- a/tests/sanity.py -+++ b/tests/sanity.py -@@ -100,7 +100,6 @@ shader_tests = ( - 'spec/arb_tessellation_shader/execution/barrier-patch.shader_test', - 'spec/arb_tessellation_shader/execution/built-in-functions/tcs-any-bvec4-using-if.shader_test', - 'spec/arb_tessellation_shader/execution/sanity.shader_test', -- 'spec/arb_vertex_attrib_64bit/execution/vs_in/vs-input-uint_uvec4-double_dmat3x4_array2-position.shader_test', - 'spec/glsl-1.50/execution/geometry-basic.shader_test', - 'spec/oes_viewport_array/viewport-gs-write-simple.shader_test', - ) diff --git a/.gitlab-ci/piglit/piglit-runner.sh b/.gitlab-ci/piglit/piglit-runner.sh deleted file mode 100755 index b279c1007..000000000 --- a/.gitlab-ci/piglit/piglit-runner.sh +++ /dev/null @@ -1,131 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -if [ -z "$GPU_VERSION" ]; then - echo 'GPU_VERSION must be set to something like "llvmpipe" or "freedreno-a630" (the name used in your ci/gpu-version-*.txt)' - exit 1 -fi - -INSTALL="$PWD/install" - -# Set up the driver environment. -export LD_LIBRARY_PATH="$INSTALL/lib/" -export EGL_PLATFORM=surfaceless -export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json" - -RESULTS=$PWD/${PIGLIT_RESULTS_DIR:-results} -mkdir -p $RESULTS - -# Ensure Mesa Shader Cache resides on tmpfs. -SHADER_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache} -SHADER_CACHE_DIR=${MESA_SHADER_CACHE_DIR:-${SHADER_CACHE_HOME}/mesa_shader_cache} - -findmnt -n tmpfs ${SHADER_CACHE_HOME} || findmnt -n tmpfs ${SHADER_CACHE_DIR} || { - mkdir -p ${SHADER_CACHE_DIR} - mount -t tmpfs -o nosuid,nodev,size=2G,mode=1755 tmpfs ${SHADER_CACHE_DIR} -} - -if [ "$GALLIUM_DRIVER" = "virpipe" ]; then - # deqp is to use virpipe, and virgl_test_server llvmpipe - export GALLIUM_DRIVER="$GALLIUM_DRIVER" - - VTEST_ARGS="--use-egl-surfaceless" - if [ "$VIRGL_HOST_API" = "GLES" ]; then - VTEST_ARGS="$VTEST_ARGS --use-gles" - fi - - GALLIUM_DRIVER=llvmpipe \ - GALLIVM_PERF="nopt" \ - virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 & - - sleep 1 -fi - -if [ -n "$PIGLIT_FRACTION" ] || [ -n "$CI_NODE_INDEX" ]; then - FRACTION=$((${PIGLIT_FRACTION:-1} * ${CI_NODE_TOTAL:-1})) -PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --fraction $FRACTION" -fi - -# If the job is parallel at the gitab job level, take the corresponding fraction -# of the caselist. -if [ -n "$CI_NODE_INDEX" ]; then - PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --fraction-start ${CI_NODE_INDEX}" -fi - -if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then - PIGLIT_RUNNER_OPTIONS="$PIGLIT_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt" -fi - -# Default to an empty known flakes file if it doesn't exist. -touch $INSTALL/$GPU_VERSION-flakes.txt - -if [ -n "$VK_DRIVER" ] && [ -e "$INSTALL/$VK_DRIVER-skips.txt" ]; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$VK_DRIVER-skips.txt" -fi - -if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GALLIUM_DRIVER-skips.txt" -fi - -if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$DRIVER_NAME-skips.txt" -fi - -if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/$GPU_VERSION-skips.txt" -fi - -if [ "$PIGLIT_PLATFORM" != "gbm" ] ; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/x11-skips.txt" -fi - -if [ "$PIGLIT_PLATFORM" = "gbm" ]; then - PIGLIT_SKIPS="$PIGLIT_SKIPS $INSTALL/gbm-skips.txt" -fi - -set +e - -piglit-runner \ - run \ - --piglit-folder /piglit \ - --output $RESULTS \ - --jobs ${FDO_CI_CONCURRENT:-4} \ - --skips $INSTALL/all-skips.txt $PIGLIT_SKIPS \ - --flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --profile $PIGLIT_PROFILES \ - --process-isolation \ - $PIGLIT_RUNNER_OPTIONS \ - -v -v - -PIGLIT_EXITCODE=$? - -deqp-runner junit \ - --testsuite $PIGLIT_PROFILES \ - --results $RESULTS/failures.csv \ - --output $RESULTS/junit.xml \ - --limit 50 \ - --template "See $ARTIFACTS_BASE_URL/results/{{testcase}}.xml" - -# Report the flakes to the IRC channel for monitoring (if configured): -if [ -n "$FLAKES_CHANNEL" ]; then - python3 $INSTALL/report-flakes.py \ - --host irc.oftc.net \ - --port 6667 \ - --results $RESULTS/results.csv \ - --known-flakes $INSTALL/$GPU_VERSION-flakes.txt \ - --channel "$FLAKES_CHANNEL" \ - --runner "$CI_RUNNER_DESCRIPTION" \ - --job "$CI_JOB_ID" \ - --url "$CI_JOB_URL" \ - --branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \ - --branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}" || true -fi - -# Compress results.csv to save on bandwidth during the upload of artifacts to -# GitLab. This reduces a full piglit run to 550 KB, down from 6 MB, and takes -# 55ms on my Ryzen 5950X (with or without parallelism). -zstd --rm -T0 -8qc $RESULTS/results.csv -o $RESULTS/results.csv.zst - -exit $PIGLIT_EXITCODE diff --git a/.gitlab-ci/piglit/piglit-traces.sh b/.gitlab-ci/piglit/piglit-traces.sh deleted file mode 100755 index 18a4b543e..000000000 --- a/.gitlab-ci/piglit/piglit-traces.sh +++ /dev/null @@ -1,241 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2035 # FIXME glob -# shellcheck disable=SC2086 # we want word splitting - -set -ex - -# Our rootfs may not have "less", which apitrace uses during apitrace dump -export PAGER=cat # FIXME: export everywhere - -INSTALL=$(realpath -s "$PWD"/install) -S3_ARGS="--token-file ${S3_JWT_FILE}" - -RESULTS=$(realpath -s "$PWD"/results) -mkdir -p "$RESULTS" - -export PIGLIT_REPLAY_DESCRIPTION_FILE="$INSTALL/$PIGLIT_TRACES_FILE" - -# FIXME: guess why /usr/local/bin is not included in all runners PATH. -# Needed because yq and ci-fairy are installed there. -PATH="/usr/local/bin:$PATH" - -if [ "$PIGLIT_REPLAY_SUBCOMMAND" = "profile" ]; then - yq -iY 'del(.traces[][] | select(.label[]? == "no-perf"))' \ - "$PIGLIT_REPLAY_DESCRIPTION_FILE" -else - # keep the images for the later upload - export PIGLIT_REPLAY_EXTRA_ARGS="--keep-image ${PIGLIT_REPLAY_EXTRA_ARGS}" -fi - -# WINE -case "$PIGLIT_REPLAY_DEVICE_NAME" in - vk-*) - export WINEPREFIX="/dxvk-wine64" - ;; - *) - export WINEPREFIX="/generic-wine64" - ;; -esac - -#PATH="/opt/wine-stable/bin/:$PATH" # WineHQ path - -# Avoid asking about Gecko or Mono instalation -export WINEDLLOVERRIDES="mscoree=d;mshtml=d" # FIXME: drop, not needed anymore? (wine dir is already created) - - -# Set up the environment. -# Modifiying here directly LD_LIBRARY_PATH may cause problems when -# using a command wrapper. Hence, we will just set it when running the -# command. -export __LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/" -if [ -n "${VK_DRIVER}" ]; then - # Set environment for DXVK. - export DXVK_LOG_LEVEL="info" - export DXVK_LOG="$RESULTS/dxvk" - [ -d "$DXVK_LOG" ] || mkdir -pv "$DXVK_LOG" - export DXVK_STATE_CACHE=0 - export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.${VK_CPU:-$(uname -m)}.json" -fi - -# Sanity check to ensure that our environment is sufficient to make our tests -# run against the Mesa built by CI, rather than any installed distro version. -MESA_VERSION=$(head -1 "$INSTALL/VERSION" | sed 's/\./\\./g') - -# wrapper to supress +x to avoid spamming the log -quiet() { - set +x - "$@" - set -x -} - -# Set environment for apitrace executable. -export PATH="/apitrace/build:$PATH" -export PIGLIT_REPLAY_WINE_BINARY=wine -export PIGLIT_REPLAY_WINE_APITRACE_BINARY="/apitrace-msvc-win64/bin/apitrace.exe" -export PIGLIT_REPLAY_WINE_D3DRETRACE_BINARY="/apitrace-msvc-win64/bin/d3dretrace.exe" - -echo "Version:" -apitrace version 2>/dev/null || echo "apitrace not found (Linux)" - -SANITY_MESA_VERSION_CMD="wflinfo" - -HANG_DETECTION_CMD="" - -# Set up the platform windowing system. -if [ "$EGL_PLATFORM" = "surfaceless" ]; then - # Use the surfaceless EGL platform. - export DISPLAY= - export WAFFLE_PLATFORM="surfaceless_egl" - - SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD --platform surfaceless_egl --api gles2" - - if [ "$GALLIUM_DRIVER" = "virpipe" ]; then - # piglit is to use virpipe, and virgl_test_server llvmpipe - export GALLIUM_DRIVER="$GALLIUM_DRIVER" - - LD_LIBRARY_PATH="$__LD_LIBRARY_PATH" \ - GALLIUM_DRIVER=llvmpipe \ - VTEST_USE_EGL_SURFACELESS=1 \ - VTEST_USE_GLES=1 \ - virgl_test_server >"$RESULTS"/vtest-log.txt 2>&1 & - - sleep 1 - fi -elif [ "$PIGLIT_PLATFORM" = "gbm" ]; then - SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD --platform gbm --api gl" -elif [ "$PIGLIT_PLATFORM" = "mixed_glx_egl" ]; then - # It is assumed that you have already brought up your X server before - # calling this script. - SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD --platform glx --api gl" -else - SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD --platform glx --api gl --profile core" - # copy-paste from init-stage2.sh, please update accordingly - { - WESTON_X11_SOCK="/tmp/.X11-unix/X0" - export WAYLAND_DISPLAY=wayland-0 - export DISPLAY=:0 - mkdir -p /tmp/.X11-unix - - env \ - VK_DRIVER_FILES="/install/share/vulkan/icd.d/${VK_DRIVER}_icd.$(uname -m).json" \ - weston -Bheadless-backend.so --use-gl -Swayland-0 --xwayland --idle-time=0 & - - while [ ! -S "$WESTON_X11_SOCK" ]; do sleep 1; done - } -fi - -# If the job is parallel at the gitlab job level, will take the corresponding -# fraction of the caselist. -if [ -n "$CI_NODE_INDEX" ]; then - USE_CASELIST=1 -fi - -# shellcheck disable=SC2317 -replay_s3_upload_images() { - find "$RESULTS/$__PREFIX" -type f -name "*.png" -printf "%P\n" \ - | while read -r line; do - - __TRACE="${line%-*-*}" - if grep -q "^$__PREFIX/$__TRACE: pass$" ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.orig"; then - if [ "x$CI_PROJECT_PATH" != "x$FDO_UPSTREAM_REPO" ]; then - continue - fi - __S3_PATH="$PIGLIT_REPLAY_REFERENCE_IMAGES_BASE" - __DESTINATION_FILE_PATH="${line##*-}" - if curl -L -s -I "https://${__S3_PATH}/${__DESTINATION_FILE_PATH}" | grep -q "content-type: application/octet-stream" 2>/dev/null; then - continue - fi - else - __S3_PATH="$JOB_ARTIFACTS_BASE" - __DESTINATION_FILE_PATH="$__S3_TRACES_PREFIX/${line##*-}" - fi - - ci-fairy s3cp $S3_ARGS "$RESULTS/$__PREFIX/$line" \ - "https://${__S3_PATH}/${__DESTINATION_FILE_PATH}" - done -} - -SANITY_MESA_VERSION_CMD="$SANITY_MESA_VERSION_CMD | tee /tmp/version.txt | grep \"Mesa $MESA_VERSION\(\s\|$\)\"" - -if [ -d results ]; then - cd results && rm -rf ..?* .[!.]* * -fi -cd /piglit - -if [ -n "$USE_CASELIST" ]; then - PIGLIT_TESTS=$(printf "%s" "$PIGLIT_TESTS") - PIGLIT_GENTESTS="./piglit print-cmd $PIGLIT_TESTS replay --format \"{name}\" > /tmp/case-list.txt" - RUN_GENTESTS="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $PIGLIT_GENTESTS" - - eval $RUN_GENTESTS - - sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt - - PIGLIT_TESTS="--test-list /tmp/case-list.txt" -fi - -PIGLIT_OPTIONS=$(printf "%s" "$PIGLIT_OPTIONS") - -PIGLIT_TESTS=$(printf "%s" "$PIGLIT_TESTS") - -PIGLIT_CMD="./piglit run -l verbose --timeout 300 -j${FDO_CI_CONCURRENT:-4} $PIGLIT_OPTIONS $PIGLIT_TESTS replay "$(/usr/bin/printf "%q" "$RESULTS") - -RUN_CMD="export LD_LIBRARY_PATH=$__LD_LIBRARY_PATH; $SANITY_MESA_VERSION_CMD && $HANG_DETECTION_CMD $PIGLIT_CMD" - -# The replayer doesn't do any size or checksum verification for the traces in -# the replayer db, so if we had to restart the system due to intermittent device -# errors (or tried to cache replayer-db between runs, which would be nice to -# have), you could get a corrupted local trace that would spuriously fail the -# run. -rm -rf replayer-db - -# ANGLE: download compiled ANGLE runtime and the compiled restricted traces (all-in-one package) -if [ -n "$PIGLIT_REPLAY_ANGLE_TAG" ]; then - ARCH="amd64" - FILE="angle-bin-${ARCH}-${PIGLIT_REPLAY_ANGLE_TAG}.tar.zst" - ci-fairy s3cp $S3_ARGS "https://s3.freedesktop.org/mesa-tracie-private/${FILE}" "${FILE}" - mkdir -p replayer-db/angle - tar --zstd -xf ${FILE} -C replayer-db/angle/ -fi - -if ! eval $RUN_CMD; -then - printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION" -fi - -./piglit summary aggregate "$RESULTS" -o junit.xml - -PIGLIT_RESULTS="${PIGLIT_RESULTS:-replay}" -RESULTSFILE="$RESULTS/$PIGLIT_RESULTS.txt" -mkdir -p .gitlab-ci/piglit -./piglit summary console "$RESULTS"/results.json.bz2 \ - | tee ".gitlab-ci/piglit/$PIGLIT_RESULTS.txt.orig" \ - | head -n -1 | grep -v ": pass" \ - | sed '/^summary:/Q' \ - > $RESULTSFILE - -__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME" -__S3_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL" -__S3_TRACES_PREFIX="traces" - -if [ "$PIGLIT_REPLAY_SUBCOMMAND" != "profile" ]; then - quiet replay_s3_upload_images -fi - - -if [ ! -s $RESULTSFILE ]; then - exit 0 -fi - -./piglit summary html --exclude-details=pass \ -"$RESULTS"/summary "$RESULTS"/results.json.bz2 - -find "$RESULTS"/summary -type f -name "*.html" -print0 \ - | xargs -0 sed -i 's% install/VERSION -cp -Rp .gitlab-ci/bare-metal install/ -cp -Rp .gitlab-ci/common install/ -cp -Rp .gitlab-ci/piglit install/ -cp -Rp .gitlab-ci/fossils.yml install/ -cp -Rp .gitlab-ci/fossils install/ -cp -Rp .gitlab-ci/fossilize-runner.sh install/ -cp -Rp .gitlab-ci/crosvm-init.sh install/ -cp -Rp .gitlab-ci/*.txt install/ -cp -Rp .gitlab-ci/report-flakes.py install/ -cp -Rp .gitlab-ci/vkd3d-proton install/ -cp -Rp .gitlab-ci/setup-test-env.sh install/ -cp -Rp .gitlab-ci/*-runner.sh install/ -cp -Rp .gitlab-ci/bin/structured_logger.py install/ -cp -Rp .gitlab-ci/bin/custom_logger.py install/ -find . -path \*/ci/\*.txt \ - -o -path \*/ci/\*.toml \ - -o -path \*/ci/\*traces\*.yml \ - | xargs -I '{}' cp -p '{}' install/ - -# Tar up the install dir so that symlinks and hardlinks aren't each -# packed separately in the zip file. -mkdir -p artifacts/ -tar -cf artifacts/install.tar install -cp -Rp .gitlab-ci/common artifacts/ci-common -cp -Rp .gitlab-ci/lava artifacts/ -cp -Rp .gitlab-ci/b2c artifacts/ - -if [ -n "$S3_ARTIFACT_NAME" ]; then - # Pass needed files to the test stage - S3_ARTIFACT_NAME="$S3_ARTIFACT_NAME.tar.zst" - zstd artifacts/install.tar -o ${S3_ARTIFACT_NAME} - ci-fairy s3cp --token-file "${S3_JWT_FILE}" ${S3_ARTIFACT_NAME} https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME} -fi - -section_end prepare-artifacts diff --git a/.gitlab-ci/report-flakes.py b/.gitlab-ci/report-flakes.py deleted file mode 100644 index ed7009c9b..000000000 --- a/.gitlab-ci/report-flakes.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright © 2021 Google LLC -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import argparse -import io -import re -import socket -import time - - -class Connection: - def __init__(self, host, port, verbose): - self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.s.connect((host, port)) - self.s.setblocking(0) - self.verbose = verbose - - def send_line(self, line): - if self.verbose: - print(f"IRC: sending {line}") - self.s.sendall((line + '\n').encode()) - - def wait(self, secs): - for i in range(secs): - if self.verbose: - while True: - try: - data = self.s.recv(1024) - except io.BlockingIOError: - break - if data == "": - break - for line in data.decode().split('\n'): - print(f"IRC: received {line}") - time.sleep(1) - - def quit(self): - self.send_line("QUIT") - self.s.shutdown(socket.SHUT_WR) - self.s.close() - - -def read_flakes(results): - flakes = [] - csv = re.compile("(.*),(.*),(.*)") - for line in open(results, 'r').readlines(): - match = csv.match(line) - if match.group(2) == "Flake": - flakes.append(match.group(1)) - return flakes - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument('--host', type=str, - help='IRC server hostname', required=True) - parser.add_argument('--port', type=int, - help='IRC server port', required=True) - parser.add_argument('--results', type=str, - help='results.csv file from deqp-runner or piglit-runner', required=True) - parser.add_argument('--known-flakes', type=str, - help='*-flakes.txt file passed to deqp-runner or piglit-runner', required=True) - parser.add_argument('--channel', type=str, - help='Known flakes report channel', required=True) - parser.add_argument('--url', type=str, - help='$CI_JOB_URL', required=True) - parser.add_argument('--runner', type=str, - help='$CI_RUNNER_DESCRIPTION', required=True) - parser.add_argument('--branch', type=str, - help='optional branch name') - parser.add_argument('--branch-title', type=str, - help='optional branch title') - parser.add_argument('--job', type=str, - help='$CI_JOB_ID', required=True) - parser.add_argument('--verbose', "-v", action="store_true", - help='log IRC interactions') - args = parser.parse_args() - - flakes = read_flakes(args.results) - if not flakes: - exit(0) - - known_flakes = [] - for line in open(args.known_flakes).readlines(): - line = line.strip() - if not line or line.startswith("#"): - continue - known_flakes.append(re.compile(line)) - - irc = Connection(args.host, args.port, args.verbose) - - # The nick needs to be something unique so that multiple runners - # connecting at the same time don't race for one nick and get blocked. - # freenode has a 16-char limit on nicks (9 is the IETF standard, but - # various servers extend that). So, trim off the common prefixes of the - # runner name, and append the job ID so that software runners with more - # than one concurrent job (think swrast) don't collide. For freedreno, - # that gives us a nick as long as db410c-N-JJJJJJJJ, and it'll be a while - # before we make it to 9-digit jobs (we're at 7 so far). - nick = args.runner - nick = nick.replace('mesa-', '') - nick = nick.replace('google-freedreno-', '') - nick += f'-{args.job}' - irc.send_line(f"NICK {nick}") - irc.send_line(f"USER {nick} unused unused: Gitlab CI Notifier") - irc.wait(10) - irc.send_line(f"JOIN {args.channel}") - irc.wait(1) - - branchinfo = "" - if args.branch: - branchinfo = f" on branch {args.branch} ({args.branch_title})" - irc.send_line( - f"PRIVMSG {args.channel} :Flakes detected in job {args.url} on {args.runner}{branchinfo}:") - - for flake in flakes: - status = "NEW " - for known in known_flakes: - if known.match(flake): - status = "" - break - - irc.send_line(f"PRIVMSG {args.channel} :{status}{flake}") - - irc.send_line( - f"PRIVMSG {args.channel} :See {args.url}/artifacts/browse/results/") - - irc.quit() - - -if __name__ == '__main__': - main() diff --git a/.gitlab-ci/run-shader-db.sh b/.gitlab-ci/run-shader-db.sh deleted file mode 100755 index 0db5af13a..000000000 --- a/.gitlab-ci/run-shader-db.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash -set -e - -ARTIFACTSDIR=$(pwd)/shader-db -mkdir -p "$ARTIFACTSDIR" -export DRM_SHIM_DEBUG=true - -LIBDIR=$(pwd)/install/lib -export LD_LIBRARY_PATH=$LIBDIR - -cd /usr/local/shader-db - -for driver in freedreno intel lima v3d vc4; do - section_start shader-db-${driver} "Running shader-db for $driver" - env LD_PRELOAD="$LIBDIR/lib${driver}_noop_drm_shim.so" \ - ./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \ - > "$ARTIFACTSDIR/${driver}-shader-db.txt" - section_end shader-db-${driver} -done - -# Run shader-db over a number of supported chipsets for nouveau -#for chipset in 40 a3 c0 e4 f0 134 162; do -# section_start shader-db-nouveau-${chipset} "Running shader-db for nouveau - ${chipset}" -# env LD_PRELOAD="$LIBDIR/libnouveau_noop_drm_shim.so" \ -# NOUVEAU_CHIPSET=${chipset} \ -# ./run -j"${FDO_CI_CONCURRENT:-4}" ./shaders \ -# > "$ARTIFACTSDIR/nouveau-${chipset}-shader-db.txt" -# section_end shader-db-nouveau-${chipset} -#done - -# Run shader-db for r300 (RV370 and RV515) -for chipset in 0x5460 0x7140; do - section_start shader-db-r300-${chipset} "Running shader-db for r300 - ${chipset}" - env LD_PRELOAD="$LIBDIR/libradeon_noop_drm_shim.so" \ - RADEON_GPU_ID=${chipset} \ - ./run -j"${FDO_CI_CONCURRENT:-4}" -o r300 ./shaders \ - > "$ARTIFACTSDIR/r300-${chipset}-shader-db.txt" - section_end shader-db-r300-${chipset} -done diff --git a/.gitlab-ci/run-shellcheck.sh b/.gitlab-ci/run-shellcheck.sh deleted file mode 100755 index 9691ccd38..000000000 --- a/.gitlab-ci/run-shellcheck.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -CHECKPATH=".gitlab-ci" - -is_bash() { - [[ $1 == *.sh ]] && return 0 - [[ $1 == */bash-completion/* ]] && return 0 - [[ $(file -b --mime-type "$1") == text/x-shellscript ]] && return 0 - return 1 -} - -while IFS= read -r -d $'' file; do - if is_bash "$file" ; then - shellcheck -x -W0 -s bash "$file" - rc=$? - if [ "${rc}" -eq 0 ] - then - continue - else - exit 1 - fi - fi -done < <(find $CHECKPATH -type f \! -path "./.git/*" -print0) diff --git a/.gitlab-ci/run-yamllint.sh b/.gitlab-ci/run-yamllint.sh deleted file mode 100755 index 282508305..000000000 --- a/.gitlab-ci/run-yamllint.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -e - -# Run yamllint against all traces files. -find . -name '*traces*yml' -print0 | xargs -0 yamllint -d "{rules: {line-length: {max: 1000}}}" diff --git a/.gitlab-ci/setup-test-env.sh b/.gitlab-ci/setup-test-env.sh deleted file mode 100644 index 0cdd96ecf..000000000 --- a/.gitlab-ci/setup-test-env.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2048 -# shellcheck disable=SC2086 # we want word splitting -# shellcheck disable=SC2155 # mktemp usually not failing - -function x_off { - if [[ "$-" == *"x"* ]]; then - state_x=1 - set +x - else - state_x=0 - fi -} - -# TODO: implement x_on ! - -export JOB_START_S=$(date -u +"%s" -d "${CI_JOB_STARTED_AT:?}") - -function get_current_minsec { - DATE_S=$(date -u +"%s") - CURR_TIME=$((DATE_S-JOB_START_S)) - printf "%02d:%02d" $((CURR_TIME/60)) $((CURR_TIME%60)) -} - -function error { - x_off 2>/dev/null - RED="\e[0;31m" - ENDCOLOR="\e[0m" - # we force the following to be not in a section - section_end $CURRENT_SECTION - - CURR_MINSEC=$(get_current_minsec) - echo -e "\n${RED}[${CURR_MINSEC}] ERROR: $*${ENDCOLOR}\n" - [ "$state_x" -eq 0 ] || set -x -} - -function trap_err { - error ${CURRENT_SECTION:-'unknown-section'}: ret code: $* -} - -function build_section_start { - local section_params=$1 - shift - local section_name=$1 - CURRENT_SECTION=$section_name - shift - CYAN="\e[0;36m" - ENDCOLOR="\e[0m" - - CURR_MINSEC=$(get_current_minsec) - echo -e "\n\e[0Ksection_start:$(date +%s):$section_name$section_params\r\e[0K${CYAN}[${CURR_MINSEC}] $*${ENDCOLOR}\n" -} - -function section_start { - x_off 2>/dev/null - build_section_start "[collapsed=true]" $* - [ "$state_x" -eq 0 ] || set -x -} - -function build_section_end { - echo -e "\e[0Ksection_end:$(date +%s):$1\r\e[0K" - CURRENT_SECTION="" -} - -function section_end { - x_off >/dev/null - build_section_end $* - [ "$state_x" -eq 0 ] || set -x -} - -function section_switch { - x_off 2>/dev/null - if [ -n "$CURRENT_SECTION" ] - then - build_section_end $CURRENT_SECTION - fi - build_section_start "[collapsed=true]" $* - [ "$state_x" -eq 0 ] || set -x -} - -function uncollapsed_section_switch { - x_off 2>/dev/null - if [ -n "$CURRENT_SECTION" ] - then - build_section_end $CURRENT_SECTION - fi - build_section_start "" $* - [ "$state_x" -eq 0 ] || set -x -} - -export -f x_off -export -f get_current_minsec -export -f error -export -f trap_err -export -f build_section_start -export -f section_start -export -f build_section_end -export -f section_end -export -f section_switch -export -f uncollapsed_section_switch - -# Freedesktop requirement (needed for Wayland) -[ -n "${XDG_RUNTIME_DIR}" ] || export XDG_RUNTIME_DIR="$(mktemp -p "$PWD" -d xdg-runtime-XXXXXX)" - -set -E -trap 'trap_err $?' ERR diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml deleted file mode 100644 index 06f21acf5..000000000 --- a/.gitlab-ci/test-source-dep.yml +++ /dev/null @@ -1,253 +0,0 @@ -# This file list source dependencies to avoid creating/running jobs -# those outcome cannot be changed by the modifications from a branch. - -# Rule to filter for only scheduled pipelines. -.scheduled_pipeline-rules: - rules: - - if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"' - when: on_success - retry: - max: 1 - # Don't retry on script_failure, job_execution_timeout, runner_unsupported, - # stale_schedule, archived_failure, or unmet_prerequisites - when: - - api_failure - - runner_system_failure - - scheduler_failure - - data_integrity_failure - - unknown_failure - - -# Generic rule to not run the job during scheduled pipelines. Jobs that aren't -# something like a nightly run should include this rule. -.no_scheduled_pipelines-rules: - rules: - - if: *is-scheduled-pipeline - when: never - -# Rule for restricted traces jobs to only run for users with access to those -# traces (both https://gitlab.freedesktop.org/gfx-ci/tracie/traces-db-private -# for trace access, and minio bucket access for viewing result images from CI). -# -# This is a compromise, allowing some marked developers to have their MRs -# blocked on regressions to non-redistributable traces, while not blocking -# merges for other devs who would be unable to debug changes to them. -.restricted-rules: - rules: - # If the triggerer has access to the restricted traces and if it is pre-merge - - if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo|kwg|majanes|llanderwelin|zmike|vigneshraman)$/") && - ($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)' - when: never - -# Mesa core source file dependencies that may impact any test job -# --------------------------------------------------------------- -.core-rules: - rules: - - !reference [.no_scheduled_pipelines-rules, rules] - - changes: &core_file_list - - .gitlab-ci.yml - - .gitlab-ci/**/* - - include/**/* - - meson.build - - meson_options.txt - - build-support/**/* - - subprojects/**/* - - .gitattributes - - src/* - - src/compiler/**/* - - src/drm-shim/**/* - - src/gbm/**/* - - src/gtest/**/* - # Some src/util and src/compiler files use headers from mesa/ (e.g. - # mtypes.h). We should clean that up. - - src/mesa/**/*.h - - src/tool/**/* - - src/util/**/* - when: on_success - -# Same core dependencies for doing manual runs. -.core-manual-rules: - retry: !reference [.scheduled_pipeline-rules, retry] - rules: - # We only want manual jobs to show up when it's not marge's pre-merge CI - # run, otherwise she'll wait until her timeout. The exception is - # performance jobs, see below. - - if: '($GITLAB_USER_LOGIN == "marge-bot" && - $CI_PIPELINE_SOURCE == "merge_request_event" && - $CI_JOB_NAME !~ "/performance$/")' - when: never - - !reference [.scheduled_pipeline-rules, rules] - - changes: - *core_file_list - when: manual - -# Rules for performance jobs tracking. We want perf jobs to run as code is -# merged to main, but we don't want them to block marge. So, they need to have -# only when: never or when: manual, and a separate script maintained by -# Collabora triggers the manual job after merge to main. These "never" filters -# need to come before any paths with "manual". -.performance-rules: - rules: - - !reference [.no_scheduled_pipelines-rules, rules] - # Run only on pre-merge pipelines from Marge - - if: $MESA_CI_PERFORMANCE_ENABLED == null - when: never - # Allow the merge to complete even before the job completes (since it won't - # even start until the separate script triggers on it). - allow_failure: true - -.piglit-performance-base: - extends: - - .performance-rules - variables: - JOB_PRIORITY: 40 - PIGLIT_REPLAY_SUBCOMMAND: "profile" - PIGLIT_REPLAY_EXTRA_ARGS: "--db-path ${CI_PROJECT_DIR}/replayer-db/" - # More than this can hit OOM due to BOs leaked during the replay of the last frame - PIGLIT_REPLAY_LOOP_TIMES: 150 - # We don't want for more than one workload to be submitted to the GPU at a time - FDO_CI_CONCURRENT: 1 - # Piglit is very sparse in its status output and downloads of big traces can take a while - DEVICE_HANGING_TIMEOUT_SEC: 600 - GIT_STRATEGY: none - HWCI_FREQ_MAX: "true" - # Always use the same device - LAVA_TAGS: "cbg-0" - # Ensure that we are using the release build artifact - S3_ARTIFACT_NAME: mesa-${ARCH}-default-release - # Reset dependencies in performance jobs to enforce the release build artifact - dependencies: null - # Don't run in parallel. It is okay to performance jobs to take a little - # longer to finish, as they don't block marge from merging an MR. - parallel: null - -.piglit-performance:arm64: - extends: - - .piglit-performance-base - needs: - - debian/arm64_test - - debian-arm64-release - -.piglit-performance:x86_64: - extends: - - .piglit-performance-base - needs: - - kernel+rootfs_x86_64 - - debian-release - -# Mesa source file dependencies that may impact any GL driver test job. -.gallium-core-rules: - rules: - - !reference [.core-rules, rules] - - changes: &gallium_core_file_list - - src/gallium/* - - src/gallium/auxiliary/**/* - - src/gallium/drivers/* - - src/gallium/include/**/* - - src/gallium/frontends/dri/* - - src/gallium/frontends/glx/**/* - - src/gallium/targets/**/* - - src/gallium/tests/**/* - - src/gallium/winsys/* - when: on_success - -.gl-rules: - rules: - - !reference [.core-rules, rules] - - changes: &mesa_core_file_list - - src/egl/**/* - - src/glx/**/* - - src/loader/**/* - - src/mapi/**/* - - src/mesa/* - - src/mesa/main/**/* - - src/mesa/math/**/* - - src/mesa/program/**/* - - src/mesa/sparc/**/* - - src/mesa/state_tracker/**/* - - src/mesa/swrast/**/* - - src/mesa/swrast_setup/**/* - - src/mesa/vbo/**/* - - src/mesa/x86/**/* - - src/mesa/x86-64/**/* - when: on_success - - !reference [.gallium-core-rules, rules] - -.gl-manual-rules: - retry: !reference [.scheduled_pipeline-rules, retry] - rules: - - !reference [.core-manual-rules, rules] - - changes: - *mesa_core_file_list - when: manual - - changes: - *gallium_core_file_list - when: manual - -# Source file dependencies that may impact any Vulkan driver build or test -.vulkan-rules: - rules: - - !reference [.core-rules, rules] - - changes: &vulkan_file_list - - src/vulkan/**/* - when: on_success - -.vulkan-manual-rules: - retry: !reference [.scheduled_pipeline-rules, retry] - rules: - - !reference [.core-manual-rules, rules] - - changes: - *vulkan_file_list - when: manual - -# Rules for unusual architectures that only build a subset of drivers -.ppc64el-rules: - rules: - - !reference [.never-post-merge-rules, rules] - - !reference [.no_scheduled_pipelines-rules, rules] - - !reference [.zink-common-rules, rules] - - !reference [.softpipe-rules, rules] - - !reference [.llvmpipe-rules, rules] - - !reference [.lavapipe-rules, rules] - - !reference [.radv-rules, rules] - - !reference [.radeonsi-rules, rules] - - !reference [.virgl-rules, rules] - - !reference [.nouveau-rules, rules] - -.s390x-rules: - rules: - - !reference [.never-post-merge-rules, rules] - - !reference [.no_scheduled_pipelines-rules, rules] - - !reference [.zink-common-rules, rules] - - !reference [.softpipe-rules, rules] - - !reference [.llvmpipe-rules, rules] - - !reference [.lavapipe-rules, rules] - -# Rules for linters -.lint-rustfmt-rules: - rules: - - !reference [.never-post-merge-rules, rules] - - !reference [.no_scheduled_pipelines-rules, rules] - - changes: - - .gitlab-ci.yml - - .gitlab-ci/**/* - # in merge pipeline, formatting checks are not allowed to fail - - if: $GITLAB_USER_LOGIN == "marge-bot" && $CI_PIPELINE_SOURCE == "merge_request_event" - changes: &rust_file_list - - src/**/*.rs - when: on_success - allow_failure: false - # in other pipelines, formatting checks are allowed to fail - - changes: *rust_file_list - when: on_success - allow_failure: true - -# Rules for .mr-label-maker.yml -.mr-label-maker-rules: - rules: - - !reference [.never-post-merge-rules, rules] - - !reference [.no_scheduled_pipelines-rules, rules] - - if: $CI_PIPELINE_SOURCE == "merge_request_event" - changes: - - .mr-label-maker.yml - when: on_success diff --git a/.gitlab-ci/test/gitlab-ci.yml b/.gitlab-ci/test/gitlab-ci.yml deleted file mode 100644 index cbfba409b..000000000 --- a/.gitlab-ci/test/gitlab-ci.yml +++ /dev/null @@ -1,426 +0,0 @@ -.test: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - variables: - GIT_STRATEGY: none # testing doesn't build anything from source - before_script: - - !reference [default, before_script] - # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY - - rm -rf install - - tar -xf artifacts/install.tar - - section_start ldd_section "Checking ldd on driver build" - - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \; - - section_end ldd_section - artifacts: - when: always - name: "mesa_${CI_JOB_NAME}" - paths: - - results/ - rules: - - !reference [.never-post-merge-rules, rules] - -.formatting-check: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - stage: code-validation - extends: - - .use-debian/x86_64_build - variables: - GIT_STRATEGY: fetch - timeout: 10m - script: - - git diff --color=always --exit-code # Fails if there are diffs - tags: - - placeholder-job - -.rustfmt: - extends: - - .formatting-check - - .lint-rustfmt-rules - before_script: - - shopt -s globstar - - rustfmt --version - - rustfmt --verbose src/**/lib.rs - - rustfmt --verbose src/**/main.rs - -python-test: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - stage: code-validation - extends: - - .use-debian/x86_64_build - variables: - GIT_STRATEGY: fetch - timeout: 10m - script: - - cd bin/ci - - pip install --break-system-packages -r test/requirements.txt - - PYTHONPATH=. pytest -v - rules: - - !reference [.disable-farm-mr-rules, rules] - - !reference [.never-post-merge-rules, rules] - - if: $CI_PIPELINE_SOURCE == "schedule" - when: on_success - - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" - when: on_success - - if: $GITLAB_USER_LOGIN == "marge-bot" - changes: &bin_ci_files - - .gitlab-ci.yml - - .gitlab-ci/**/* - - bin/ci/**/* - when: on_success - - changes: *bin_ci_files - when: manual - -.test-gl: - extends: - - .test - - .use-debian/x86_64_test-gl - needs: - - debian/x86_64_test-gl - - debian-testing - - !reference [.required-for-hardware-jobs, needs] - variables: - DEBIAN_ARCH: amd64 - -.test-vk: - extends: - - .test - - .use-debian/x86_64_test-vk - needs: - - debian-testing - - debian/x86_64_test-vk - - !reference [.required-for-hardware-jobs, needs] - variables: - DEBIAN_ARCH: amd64 - -.test-cl: - extends: - - .test - - .use-debian/x86_64_test-gl - needs: - - debian/x86_64_test-gl - - !reference [.required-for-hardware-jobs, needs] - -.test-android: - extends: - - .test - - .use-debian/x86_64_test-android - variables: - S3_ARTIFACT_NAME: mesa-x86_64-android-debug - needs: - - job: debian-testing - artifacts: true # On the host we want the Linux build - - job: debian-android - artifacts: false # The Android build will be downloaded later - - job: debian/x86_64_test-android - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - timeout: 20m - script: - - ./install/cuttlefish-runner.sh - artifacts: - paths: - - results/ - -.vkd3d-proton-test: - artifacts: - when: on_failure - name: "mesa_${CI_JOB_NAME}" - paths: - - results/vkd3d-proton.log - script: - - ./install/vkd3d-proton/run.sh - -.piglit-test: - artifacts: - name: "mesa_${CI_JOB_NAME}" - paths: - - results - reports: - junit: results/junit.xml - variables: - PIGLIT_NO_WINDOW: 1 - HWCI_TEST_SCRIPT: "/install/piglit/piglit-runner.sh" - script: - - install/piglit/piglit-runner.sh - -.piglit-traces-test: - extends: - - .piglit-test - artifacts: - when: on_failure - name: "mesa_${CI_JOB_NAME}" - reports: - junit: results/junit.xml - paths: - - results/ - exclude: - - results/*.shader_cache - variables: - PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE} - # until we overcome Infrastructure issues, give traces extra 5 min before timeout - DEVICE_HANGING_TIMEOUT_SEC: 600 - script: - - section_start variables "Variables passed through:" - - install/common/generate-env.sh - - section_end variables - - install/piglit/piglit-traces.sh - -.deqp-test: - script: - - rm -rf results # Clear out old results if the docker container was cached - - ./install/deqp-runner.sh - artifacts: - exclude: - - results/*.shader_cache - reports: - junit: results/junit.xml - -.fossilize-test: - script: - - ./install/fossilize-runner.sh - artifacts: - when: on_failure - name: "mesa_${CI_JOB_NAME}" - paths: - - results/ - -.download_s3: - before_script: - - !reference [default, before_script] - # Use this instead of gitlab's artifacts download because it hits packet.net - # instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to - # improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for - # setup). - - section_start artifacts_download "Downloading artifacts from s3" - # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY - - rm -rf install - - (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x) - - section_end artifacts_download - -.baremetal-test: - extends: - - .test - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - before_script: - - !reference [.download_s3, before_script] - variables: - BM_ROOTFS: /rootfs-${DEBIAN_ARCH} - artifacts: - when: always - name: "mesa_${CI_JOB_NAME}" - paths: - - results/ - - serial*.txt - exclude: - - results/*.shader_cache - reports: - junit: results/junit.xml - -# ARM testing of bare-metal boards attached to an x86 gitlab-runner system -.baremetal-test-arm32: - extends: - - .baremetal-test - - .use-debian/arm32_test - variables: - DEBIAN_ARCH: armhf - S3_ARTIFACT_NAME: mesa-arm32-default-debugoptimized - needs: - - debian/arm32_test - - job: debian-arm32 - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system -.baremetal-test-arm64: - extends: - - .baremetal-test - - .use-debian/arm64_test - variables: - DEBIAN_ARCH: arm64 - S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized - needs: - - debian/arm64_test - - job: debian-arm64 - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -# ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build -.baremetal-arm32-asan-test: - extends: - - .baremetal-test - - .use-debian/arm32_test - variables: - DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so" - S3_ARTIFACT_NAME: mesa-arm32-asan-debugoptimized - needs: - - debian/arm32_test - - job: debian-arm32-asan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-arm64-asan-test: - extends: - - .baremetal-test - - .use-debian/arm64_test - variables: - DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.8:/install/lib/libdlclose-skip.so" - S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized - needs: - - debian/arm64_test - - job: debian-arm64-asan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-deqp-test: - variables: - HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - FDO_CI_CONCURRENT: 0 # Default to number of CPUs - -# For Valve's bare-metal testing farm jobs. -.b2c-test: - # It would be nice to use ci-templates within Mesa CI for this job's - # image:, but the integration is not possible for the current - # use-case. Within this job, two containers are managed. 1) the - # gitlab runner container from which the job is submitted to the - # DUT, and 2) the test container (e.g. debian/x86_64_test-vk) within - # which the test cases will run on the DUT. Since ci-templates and - # the associated image setting macros in this file rely on variables - # like FDO_DISTRIBUTION_TAG for *the* image, there is no way to - # depend on more than one image per job. So, the job container is - # built as part of the CI in the boot2container project. - image: registry.freedesktop.org/gfx-ci/ci-tron/mesa-trigger:2024-01-05.1 - timeout: 1h 40m - rules: - - if: $FORCE_KERNEL_TAG != null - when: never - variables: - # No need by default to pull the whole repo - GIT_STRATEGY: none - # boot2container initrd configuration parameters. - B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/gfx-ci/ci-tron/-/package_files/519/download' # Linux 6.1 - B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/mupuf/boot2container/-/releases/v0.9.10/downloads/initramfs.linux_amd64.cpio.xz' - B2C_JOB_SUCCESS_REGEX: '\[.*\]: Execution is over, pipeline status: 0\r$' - B2C_JOB_WARN_REGEX: '\*ERROR\* ring .* timeout' - B2C_LOG_LEVEL: 6 - B2C_POWEROFF_DELAY: 15 - B2C_SESSION_END_REGEX: '^.*It''s now safe to turn off your computer\r$' - B2C_SESSION_REBOOT_REGEX: '' - B2C_TIMEOUT_BOOT_MINUTES: 45 - B2C_TIMEOUT_BOOT_RETRIES: 0 - B2C_TIMEOUT_FIRST_MINUTES: 2 - B2C_TIMEOUT_FIRST_RETRIES: 3 - B2C_TIMEOUT_MINUTES: 5 - B2C_TIMEOUT_OVERALL_MINUTES: 90 - B2C_TIMEOUT_RETRIES: 0 - B2C_JOB_VOLUME_EXCLUSIONS: "*.shader_cache,install/*,*/install/*,*/vkd3d-proton.cache*,vkd3d-proton.cache*,*.qpa" - - # As noted in the top description, we make a distinction between the - # container used by gitlab-runner to queue the work, and the container - # used by the DUTs/test machines. To make this distinction quite clear, - # we rename the MESA_IMAGE variable into IMAGE_UNDER_TEST. - IMAGE_UNDER_TEST: "$MESA_IMAGE" - - INSTALL_TARBALL_NAME: "install.tar" - INSTALL_TARBALL: "./artifacts/${INSTALL_TARBALL_NAME}" - CI_B2C_ARTIFACTS: "./artifacts/b2c" - CI_COMMON_SCRIPTS: "./artifacts/ci-common" - B2C_JOB_TEMPLATE: "${CI_B2C_ARTIFACTS}/b2c.yml.jinja2.jinja2" - JOB_FOLDER: "job_folder" - - before_script: - # We don't want the tarball unpacking of .test, but will take the JWT bits. - - !reference [default, before_script] - - - | - set -eux - - # Useful as a hook point for runner admins. You may edit the - # config.toml for the Gitlab runner and use a bind-mount to - # populate the hook script with some executable commands. This - # allows quicker feedback than resubmitting pipelines and - # potentially having to wait for a debug build of Mesa to - # complete. - if [ -x /runner-before-script.sh ]; then - echo "Executing runner before-script hook..." - sh /runner-before-script.sh - if [ $? -ne 0 ]; then - echo "Runner hook failed, goodbye" - exit $? - fi - fi - - [ -s "$INSTALL_TARBALL" ] || exit 1 - [ -d "$CI_B2C_ARTIFACTS" ] || exit 1 - [ -d "$CI_COMMON_SCRIPTS" ] || exit 1 - - export B2C_CONTAINER_CMD="bash -euc 'tar xf ${INSTALL_TARBALL_NAME}; ./install/common/init-stage2.sh'" - - # The Valve CI gateway receives jobs in a YAML format. Create a - # job description from the CI environment. - python3 "$CI_B2C_ARTIFACTS"/generate_b2c.py - - cat b2c.yml.jinja2 - - rm -rf ${JOB_FOLDER} || true - mkdir -v ${JOB_FOLDER} - - # Create a script to regenerate the CI environment when this job - # begins running on the remote DUT. - set +x - "$CI_COMMON_SCRIPTS"/generate-env.sh > ${JOB_FOLDER}/set-job-env-vars.sh - echo "export SCRIPTS_DIR=./install" >> ${JOB_FOLDER}/set-job-env-vars.sh - echo "Variables passed through:" - cat ${JOB_FOLDER}/set-job-env-vars.sh - set -x - - # Copy the mesa install tarball to the job folder, for later extraction - mv "${INSTALL_TARBALL}" "${JOB_FOLDER}" - - script: | - slugify () { - echo "$1" | sed -r s/[~\^]+//g | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z - } - - # Submit the job to Valve's CI gateway service with the CI - # provisioned job_folder. - env PYTHONUNBUFFERED=1 executorctl \ - run -w b2c.yml.jinja2 -j $(slugify "$CI_JOB_NAME") -s ${JOB_FOLDER} -i "$CI_RUNNER_DESCRIPTION" - - # Anything our job places in results/ will be collected by the - # Gitlab coordinator for status presentation. results/junit.xml - # will be parsed by the UI for more detailed explanations of - # test execution. - after_script: - # Keep the results path the same as baremetal and LAVA - - mkdir -p "${JOB_FOLDER}"/results - - mv "${JOB_FOLDER}"/results results/ - - !reference [default, after_script] - - artifacts: - when: always - name: "mesa_${CI_JOB_NAME}" - paths: - - results - reports: - junit: results/**/junit.xml - -.b2c-x86_64-test-vk: - extends: - - .use-debian/x86_64_test-vk - - .b2c-test - needs: - - debian/x86_64_test-vk - - debian-testing - - !reference [.required-for-hardware-jobs, needs] - -.b2c-x86_64-test-gl: - extends: - - .use-debian/x86_64_test-gl - - .b2c-test - needs: - - debian/x86_64_test-gl - - debian-testing - - !reference [.required-for-hardware-jobs, needs] diff --git a/.gitlab-ci/tests/conftest.py b/.gitlab-ci/tests/conftest.py deleted file mode 100644 index ba021cc47..000000000 --- a/.gitlab-ci/tests/conftest.py +++ /dev/null @@ -1,74 +0,0 @@ -from collections import defaultdict -from unittest.mock import MagicMock, patch - -import pytest -import yaml -from freezegun import freeze_time -from hypothesis import settings - -from .lava.helpers import generate_testsuite_result, jobs_logs_response - -settings.register_profile("ci", max_examples=1000, derandomize=True) -settings.load_profile("ci") - -def pytest_configure(config): - config.addinivalue_line( - "markers", "slow: marks tests as slow (deselect with '-m \"not slow\"')" - ) - -@pytest.fixture -def mock_sleep(): - """Mock time.sleep to make test faster""" - with patch("time.sleep", return_value=None): - yield - - -@pytest.fixture -def frozen_time(mock_sleep): - with freeze_time() as frozen_time: - yield frozen_time - - -RESULT_GET_TESTJOB_RESULTS = [{"metadata": {"result": "test"}}] - - -@pytest.fixture -def mock_proxy(frozen_time): - def create_proxy_mock( - job_results=RESULT_GET_TESTJOB_RESULTS, - testsuite_results=[generate_testsuite_result()], - **kwargs - ): - proxy_mock = MagicMock() - proxy_submit_mock = proxy_mock.scheduler.jobs.submit - proxy_submit_mock.return_value = "1234" - - proxy_results_mock = proxy_mock.results.get_testjob_results_yaml - proxy_results_mock.return_value = yaml.safe_dump(job_results) - - proxy_test_suites_mock = proxy_mock.results.get_testsuite_results_yaml - proxy_test_suites_mock.return_value = yaml.safe_dump(testsuite_results) - - proxy_logs_mock = proxy_mock.scheduler.jobs.logs - proxy_logs_mock.return_value = jobs_logs_response() - - proxy_job_state = proxy_mock.scheduler.job_state - proxy_job_state.return_value = {"job_state": "Running"} - proxy_job_state.side_effect = frozen_time.tick(1) - - proxy_show_mock = proxy_mock.scheduler.jobs.show - proxy_show_mock.return_value = defaultdict( - str, - { - "device_type": "test_device", - "device": "test_device-cbg-1", - "state": "created", - }, - ) - - for key, value in kwargs.items(): - setattr(proxy_logs_mock, key, value) - - return proxy_mock - - yield create_proxy_mock diff --git a/.gitlab-ci/tests/data/FASTBOOT_force_uart=False_job_definition.yaml b/.gitlab-ci/tests/data/FASTBOOT_force_uart=False_job_definition.yaml deleted file mode 100644 index b2b5ee7e1..000000000 --- a/.gitlab-ci/tests/data/FASTBOOT_force_uart=False_job_definition.yaml +++ /dev/null @@ -1,142 +0,0 @@ -job_name: 'test-project: my_pipeline_info' -device_type: my_fastboot_device_type -visibility: - group: - - my_visibility_group -priority: 75 -context: - extra_nfsroot_args: ' init=/init rootwait usbcore.quirks=0bda:8153:k' -timeouts: - job: - minutes: 10 - actions: - depthcharge-retry: - minutes: 4 - depthcharge-start: - minutes: 1 - depthcharge-action: - minutes: 15 -actions: -- deploy: - timeout: - minutes: 10 - to: nfs - nfsrootfs: - url: None/lava-rootfs.tar.zst - compression: zstd - namespace: dut -- deploy: - timeout: - minutes: 5 - to: downloads - os: oe - images: - kernel: - url: None/None - dtb: - url: None/my_dtb_filename.dtb - postprocess: - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - steps: - - cat Image.gz my_dtb_filename.dtb > Image.gz+dtb - - mkbootimg --kernel Image.gz+dtb --cmdline "root=/dev/nfs rw nfsroot=$NFS_SERVER_IP:$NFS_ROOTFS,tcp,hard - rootwait ip=dhcp init=/init" --pagesize 4096 --base 0x80000000 -o boot.img - namespace: dut -- deploy: - timeout: - minutes: 10 - to: fastboot - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - images: - boot: - url: downloads://boot.img - namespace: dut - failure_retry: 3 -- boot: - timeout: - minutes: 2 - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - failure_retry: 3 - method: fastboot - prompts: - - 'lava-shell:' - commands: - - set_active a - namespace: dut - auto_login: - login_commands: - - dropbear -R -B - - touch /dut_ready - login_prompt: 'ogin:' - username: '' -- test: - namespace: dut - definitions: - - from: inline - name: setup-ssh-server - path: inline-setup-ssh-server - repository: - metadata: - format: Lava-Test Test Definition 1.0 - name: dut-env-export - run: - steps: - - |- - echo test FASTBOOT - - export -p > /dut-env-vars.sh -- test: - namespace: container - timeout: - minutes: 10 - failure_retry: 3 - definitions: - - name: docker_ssh_client - from: inline - path: inline/docker_ssh_client.yaml - repository: - metadata: - name: mesa - description: Mesa test plan - format: Lava-Test Test Definition 1.0 - run: - steps: - - |- - set -ex - timeout 1m bash << EOF - while [ -z "$(lava-target-ip)" ]; do - echo Waiting for DUT to join LAN; - sleep 1; - done - EOF - - ping -c 5 -w 60 $(lava-target-ip) - - lava_ssh_test_case() { - set -x - local test_case="${1}" - shift - lava-test-case "${test_case}" --shell \ - ssh ${SSH_PTY_ARGS:--T} \ - -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ - root@$(lava-target-ip) "${@}" - } - - lava_ssh_test_case 'wait_for_dut_login' << EOF - - while [ ! -e /dut_ready ]; do sleep 1; done; - - EOF - - |- - lava_ssh_test_case 'artifact_download' 'bash --' << EOF - source /dut-env-vars.sh - set -ex - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar -xz -C / - mkdir -p /ci/project/dir - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar --zstd -x -C /ci/project/dir - echo Could not find jwt file, disabling S3 requests... - sed -i '/S3_RESULTS_UPLOAD/d' /set-job-env-vars.sh - EOF - - export SSH_PTY_ARGS=-tt - - lava_ssh_test_case 'test-project_dut' '"cd / && /init-stage2.sh"' - docker: - image: diff --git a/.gitlab-ci/tests/data/FASTBOOT_force_uart=True_job_definition.yaml b/.gitlab-ci/tests/data/FASTBOOT_force_uart=True_job_definition.yaml deleted file mode 100644 index 65b817d80..000000000 --- a/.gitlab-ci/tests/data/FASTBOOT_force_uart=True_job_definition.yaml +++ /dev/null @@ -1,96 +0,0 @@ -job_name: 'test-project: my_pipeline_info' -device_type: my_fastboot_device_type -visibility: - group: - - my_visibility_group -priority: 75 -context: - extra_nfsroot_args: ' init=/init rootwait usbcore.quirks=0bda:8153:k' -timeouts: - job: - minutes: 10 - actions: - depthcharge-retry: - minutes: 4 - depthcharge-start: - minutes: 1 - depthcharge-action: - minutes: 15 -actions: -- deploy: - timeout: - minutes: 10 - to: nfs - nfsrootfs: - url: None/lava-rootfs.tar.zst - compression: zstd -- deploy: - timeout: - minutes: 5 - to: downloads - os: oe - images: - kernel: - url: None/None - dtb: - url: None/my_dtb_filename.dtb - postprocess: - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - steps: - - cat Image.gz my_dtb_filename.dtb > Image.gz+dtb - - mkbootimg --kernel Image.gz+dtb --cmdline "root=/dev/nfs rw nfsroot=$NFS_SERVER_IP:$NFS_ROOTFS,tcp,hard - rootwait ip=dhcp init=/init" --pagesize 4096 --base 0x80000000 -o boot.img -- deploy: - timeout: - minutes: 2 - to: fastboot - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - images: - boot: - url: downloads://boot.img -- boot: - timeout: - minutes: 2 - docker: - image: registry.gitlab.collabora.com/lava/health-check-docker - failure_retry: 3 - method: fastboot - prompts: - - 'lava-shell:' - commands: - - set_active a -- test: - timeout: - minutes: 10 - failure_retry: 1 - definitions: - - name: mesa - from: inline - lava-signal: kmsg - path: inline/mesa.yaml - repository: - metadata: - name: mesa - description: Mesa test plan - os: - - oe - scope: - - functional - format: Lava-Test Test Definition 1.0 - run: - steps: - - echo test FASTBOOT - - set -ex - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar -xz - -C / - - mkdir -p /ci/project/dir - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar --zstd - -x -C /ci/project/dir - - echo Could not find jwt file, disabling S3 requests... - - sed -i '/S3_RESULTS_UPLOAD/d' /set-job-env-vars.sh - - mkdir -p /ci/project/dir - - curl None | tar --zstd -x -C /ci/project/dir - - sleep 1 - - lava-test-case 'test-project_dut' --shell /init-stage2.sh diff --git a/.gitlab-ci/tests/data/UBOOT_force_uart=False_job_definition.yaml b/.gitlab-ci/tests/data/UBOOT_force_uart=False_job_definition.yaml deleted file mode 100644 index 721eba24c..000000000 --- a/.gitlab-ci/tests/data/UBOOT_force_uart=False_job_definition.yaml +++ /dev/null @@ -1,114 +0,0 @@ -job_name: 'test-project: my_pipeline_info' -device_type: my_uboot_device_type -visibility: - group: - - my_visibility_group -priority: 75 -context: - extra_nfsroot_args: ' init=/init rootwait usbcore.quirks=0bda:8153:k' -timeouts: - job: - minutes: 10 - actions: - depthcharge-retry: - minutes: 4 - depthcharge-start: - minutes: 1 - depthcharge-action: - minutes: 15 -actions: -- deploy: - timeout: - minutes: 10 - to: tftp - os: oe - kernel: - url: None/None - nfsrootfs: - url: None/lava-rootfs.tar.zst - compression: zstd - dtb: - url: None/my_dtb_filename.dtb - namespace: dut - failure_retry: 3 -- boot: - failure_retry: 3 - method: u-boot - prompts: - - 'lava-shell:' - commands: nfs - namespace: dut - auto_login: - login_commands: - - dropbear -R -B - - touch /dut_ready - login_prompt: 'ogin:' - username: '' -- test: - namespace: dut - definitions: - - from: inline - name: setup-ssh-server - path: inline-setup-ssh-server - repository: - metadata: - format: Lava-Test Test Definition 1.0 - name: dut-env-export - run: - steps: - - |- - echo test UBOOT - - export -p > /dut-env-vars.sh -- test: - namespace: container - timeout: - minutes: 10 - failure_retry: 3 - definitions: - - name: docker_ssh_client - from: inline - path: inline/docker_ssh_client.yaml - repository: - metadata: - name: mesa - description: Mesa test plan - format: Lava-Test Test Definition 1.0 - run: - steps: - - |- - set -ex - timeout 1m bash << EOF - while [ -z "$(lava-target-ip)" ]; do - echo Waiting for DUT to join LAN; - sleep 1; - done - EOF - - ping -c 5 -w 60 $(lava-target-ip) - - lava_ssh_test_case() { - set -x - local test_case="${1}" - shift - lava-test-case "${test_case}" --shell \ - ssh ${SSH_PTY_ARGS:--T} \ - -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ - root@$(lava-target-ip) "${@}" - } - - lava_ssh_test_case 'wait_for_dut_login' << EOF - - while [ ! -e /dut_ready ]; do sleep 1; done; - - EOF - - |- - lava_ssh_test_case 'artifact_download' 'bash --' << EOF - source /dut-env-vars.sh - set -ex - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar -xz -C / - mkdir -p /ci/project/dir - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar --zstd -x -C /ci/project/dir - echo Could not find jwt file, disabling S3 requests... - sed -i '/S3_RESULTS_UPLOAD/d' /set-job-env-vars.sh - EOF - - export SSH_PTY_ARGS=-tt - - lava_ssh_test_case 'test-project_dut' '"cd / && /init-stage2.sh"' - docker: - image: diff --git a/.gitlab-ci/tests/data/UBOOT_force_uart=True_job_definition.yaml b/.gitlab-ci/tests/data/UBOOT_force_uart=True_job_definition.yaml deleted file mode 100644 index 38ae766b5..000000000 --- a/.gitlab-ci/tests/data/UBOOT_force_uart=True_job_definition.yaml +++ /dev/null @@ -1,70 +0,0 @@ -job_name: 'test-project: my_pipeline_info' -device_type: my_uboot_device_type -visibility: - group: - - my_visibility_group -priority: 75 -context: - extra_nfsroot_args: ' init=/init rootwait usbcore.quirks=0bda:8153:k' -timeouts: - job: - minutes: 10 - actions: - depthcharge-retry: - minutes: 4 - depthcharge-start: - minutes: 1 - depthcharge-action: - minutes: 15 -actions: -- deploy: - timeout: - minutes: 5 - to: tftp - os: oe - kernel: - url: None/None - nfsrootfs: - url: None/lava-rootfs.tar.zst - compression: zstd - dtb: - url: None/my_dtb_filename.dtb -- boot: - failure_retry: 3 - method: u-boot - prompts: - - 'lava-shell:' - commands: nfs -- test: - timeout: - minutes: 10 - failure_retry: 1 - definitions: - - name: mesa - from: inline - lava-signal: kmsg - path: inline/mesa.yaml - repository: - metadata: - name: mesa - description: Mesa test plan - os: - - oe - scope: - - functional - format: Lava-Test Test Definition 1.0 - run: - steps: - - echo test UBOOT - - set -ex - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar -xz - -C / - - mkdir -p /ci/project/dir - - curl -L --retry 4 -f --retry-all-errors --retry-delay 60 None | tar --zstd - -x -C /ci/project/dir - - echo Could not find jwt file, disabling S3 requests... - - sed -i '/S3_RESULTS_UPLOAD/d' /set-job-env-vars.sh - - mkdir -p /ci/project/dir - - curl None | tar --zstd -x -C /ci/project/dir - - sleep 1 - - lava-test-case 'test-project_dut' --shell /init-stage2.sh diff --git a/.gitlab-ci/tests/lava/helpers.py b/.gitlab-ci/tests/lava/helpers.py deleted file mode 100644 index d78aa1c10..000000000 --- a/.gitlab-ci/tests/lava/helpers.py +++ /dev/null @@ -1,146 +0,0 @@ -from contextlib import nullcontext as does_not_raise -from datetime import datetime -from io import StringIO -from itertools import cycle -from typing import Any, Callable, Generator, Iterable, Optional, Tuple, Union - -from freezegun import freeze_time -from lava.utils.log_section import ( - DEFAULT_GITLAB_SECTION_TIMEOUTS, - FALLBACK_GITLAB_SECTION_TIMEOUT, - LogSectionType, -) -from lavacli.utils import flow_yaml as lava_yaml - - -def yaml_dump(data: dict[str, Any]) -> str: - stream = StringIO() - lava_yaml.dump(data, stream) - return stream.getvalue() - - -def section_timeout(section_type: LogSectionType) -> int: - return int( - DEFAULT_GITLAB_SECTION_TIMEOUTS.get( - section_type, FALLBACK_GITLAB_SECTION_TIMEOUT - ).total_seconds() - ) - - -def create_lava_yaml_msg( - dt: Callable = datetime.now, msg="test", lvl="target" -) -> dict[str, str]: - return {"dt": str(dt()), "msg": msg, "lvl": lvl} - - -def generate_testsuite_result( - name="test-mesa-ci", result="pass", metadata_extra=None, extra=None -): - if metadata_extra is None: - metadata_extra = {} - if extra is None: - extra = {} - return {"metadata": {"result": result, **metadata_extra}, "name": name} - - -def jobs_logs_response( - finished=False, msg=None, lvl="target", result=None -) -> Tuple[bool, str]: - timed_msg = {"dt": str(datetime.now()), "msg": "New message", "lvl": lvl} - if result: - timed_msg["lvl"] = "target" - timed_msg["msg"] = f"hwci: mesa: {result}" - - logs = [timed_msg] if msg is None else msg - - return finished, yaml_dump(logs) - - -def section_aware_message_generator( - messages: dict[LogSectionType, Iterable[int]], result: Optional[str] = None -) -> Iterable[tuple[dict, Iterable[int]]]: - default = [1] - - result_message_section = LogSectionType.TEST_CASE - - for section_type in LogSectionType: - delay = messages.get(section_type, default) - yield mock_lava_signal(section_type), delay - if result and section_type == result_message_section: - # To consider the job finished, the result `echo` should be produced - # in the correct section - yield create_lava_yaml_msg(msg=f"hwci: mesa: {result}"), delay - - -def message_generator(): - for section_type in LogSectionType: - yield mock_lava_signal(section_type) - - -def level_generator(): - # Tests all known levels by default - yield from cycle(("results", "feedback", "warning", "error", "debug", "target")) - - -def generate_n_logs( - n=1, - tick_fn: Union[Generator, Iterable[int], int] = 1, - level_fn=level_generator, - result="pass", -): - """Simulate a log partitionated in n components""" - level_gen = level_fn() - - if isinstance(tick_fn, Generator): - tick_gen = tick_fn - elif isinstance(tick_fn, Iterable): - tick_gen = cycle(tick_fn) - else: - tick_gen = cycle((tick_fn,)) - - with freeze_time(datetime.now()) as time_travel: - tick_sec: int = next(tick_gen) - while True: - # Simulate a scenario where the target job is waiting for being started - for _ in range(n - 1): - level: str = next(level_gen) - - time_travel.tick(tick_sec) - yield jobs_logs_response(finished=False, msg=[], lvl=level) - - time_travel.tick(tick_sec) - yield jobs_logs_response(finished=True, result=result) - - -def to_iterable(tick_fn): - if isinstance(tick_fn, Generator): - return tick_fn - elif isinstance(tick_fn, Iterable): - return cycle(tick_fn) - else: - return cycle((tick_fn,)) - - -def mock_logs(messages=None, result=None): - if messages is None: - messages = {} - with freeze_time(datetime.now()) as time_travel: - # Simulate a complete run given by message_fn - for msg, tick_list in section_aware_message_generator(messages, result): - for tick_sec in tick_list: - yield jobs_logs_response(finished=False, msg=[msg]) - time_travel.tick(tick_sec) - - -def mock_lava_signal(type: LogSectionType) -> dict[str, str]: - return { - LogSectionType.TEST_CASE: create_lava_yaml_msg( - msg=" case", lvl="debug" - ), - LogSectionType.TEST_SUITE: create_lava_yaml_msg( - msg=" suite", lvl="debug" - ), - LogSectionType.LAVA_POST_PROCESSING: create_lava_yaml_msg( - msg="", lvl="target" - ), - }.get(type, create_lava_yaml_msg()) diff --git a/.gitlab-ci/tests/test_lava_job_submitter.py b/.gitlab-ci/tests/test_lava_job_submitter.py deleted file mode 100644 index 025693969..000000000 --- a/.gitlab-ci/tests/test_lava_job_submitter.py +++ /dev/null @@ -1,476 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2022 Collabora Limited -# Author: Guilherme Gallo -# -# SPDX-License-Identifier: MIT - -import os -import xmlrpc.client -from contextlib import nullcontext as does_not_raise -from datetime import datetime -from itertools import islice, repeat -from pathlib import Path -from typing import Generator -from unittest.mock import MagicMock, patch - -import pytest -from lava.exceptions import MesaCIException, MesaCIRetryError, MesaCIFatalException -from lava.lava_job_submitter import ( - DEVICE_HANGING_TIMEOUT_SEC, - NUMBER_OF_RETRIES_TIMEOUT_DETECTION, - LAVAJob, - LAVAJobSubmitter, - bootstrap_log_follower, - follow_job_execution, - retriable_follow_job, - wait_for_job_get_started, -) -from lava.utils import LogSectionType - -from .lava.helpers import ( - generate_n_logs, - generate_testsuite_result, - jobs_logs_response, - mock_lava_signal, - mock_logs, - section_timeout, -) - -NUMBER_OF_MAX_ATTEMPTS = NUMBER_OF_RETRIES_TIMEOUT_DETECTION + 1 - - -@pytest.fixture -def mock_proxy_waiting_time(mock_proxy): - def update_mock_proxy(frozen_time, **kwargs): - wait_time = kwargs.pop("wait_time", 1) - proxy_mock = mock_proxy(**kwargs) - proxy_job_state = proxy_mock.scheduler.job_state - proxy_job_state.return_value = {"job_state": "Running"} - proxy_job_state.side_effect = frozen_time.tick(wait_time) - - return proxy_mock - - return update_mock_proxy - - -@pytest.fixture(params=[{"CI": "true"}, {"CI": "false"}], ids=["Under CI", "Local run"]) -def ci_environment(request): - with patch.dict(os.environ, request.param): - yield - - -@pytest.fixture -def lava_job_submitter( - ci_environment, - tmp_path, - mock_proxy, -): - os.chdir(tmp_path) - tmp_file = Path(tmp_path) / "log.json" - - with patch("lava.lava_job_submitter.setup_lava_proxy") as mock_setup_lava_proxy: - mock_setup_lava_proxy.return_value = mock_proxy() - yield LAVAJobSubmitter( - boot_method="test_boot", - ci_project_dir="test_dir", - device_type="test_device", - job_timeout_min=1, - structured_log_file=tmp_file, - ) - - -@pytest.mark.parametrize("exception", [RuntimeError, SystemError, KeyError]) -def test_submit_and_follow_respects_exceptions(mock_sleep, mock_proxy, exception): - with pytest.raises(MesaCIException): - proxy = mock_proxy(side_effect=exception) - job = LAVAJob(proxy, "") - log_follower = bootstrap_log_follower() - follow_job_execution(job, log_follower) - - -NETWORK_EXCEPTION = xmlrpc.client.ProtocolError("", 0, "test", {}) -XMLRPC_FAULT = xmlrpc.client.Fault(0, "test") - -PROXY_SCENARIOS = { - "simple pass case": (mock_logs(result="pass"), does_not_raise(), "pass", {}), - "simple fail case": (mock_logs(result="fail"), does_not_raise(), "fail", {}), - "simple hung case": ( - mock_logs( - messages={ - LogSectionType.TEST_CASE: [ - section_timeout(LogSectionType.TEST_CASE) + 1 - ] - * 1000 - }, - result="fail", - ), - pytest.raises(MesaCIRetryError), - "hung", - {}, - ), - "leftover dump from last job in boot section": ( - ( - mock_lava_signal(LogSectionType.LAVA_BOOT), - jobs_logs_response(finished=False, msg=None, result="fail"), - ), - pytest.raises(MesaCIRetryError), - "hung", - {}, - ), - "boot works at last retry": ( - mock_logs( - messages={ - LogSectionType.LAVA_BOOT: [ - section_timeout(LogSectionType.LAVA_BOOT) + 1 - ] - * NUMBER_OF_RETRIES_TIMEOUT_DETECTION - + [1] - }, - result="pass", - ), - does_not_raise(), - "pass", - {}, - ), - "test case took too long": pytest.param( - mock_logs( - messages={ - LogSectionType.TEST_CASE: [ - section_timeout(LogSectionType.TEST_CASE) + 1 - ] - * (NUMBER_OF_MAX_ATTEMPTS + 1) - }, - result="pass", - ), - pytest.raises(MesaCIRetryError), - "pass", - {}, - ), - "timed out more times than retry attempts": ( - generate_n_logs(n=4, tick_fn=9999999), - pytest.raises(MesaCIRetryError), - "fail", - {}, - ), - "long log case, no silence": ( - mock_logs( - messages={LogSectionType.TEST_CASE: [1] * (1000)}, - result="pass", - ), - does_not_raise(), - "pass", - {}, - ), - "no retries, testsuite succeed": ( - mock_logs(result="pass"), - does_not_raise(), - "pass", - {"testsuite_results": [generate_testsuite_result(result="pass")]}, - ), - "no retries, but testsuite fails": ( - mock_logs(result="fail"), - does_not_raise(), - "fail", - {"testsuite_results": [generate_testsuite_result(result="fail")]}, - ), - "no retries, one testsuite fails": ( - generate_n_logs(n=1, tick_fn=0, result="fail"), - does_not_raise(), - "fail", - { - "testsuite_results": [ - generate_testsuite_result(result="fail"), - generate_testsuite_result(result="pass"), - ] - }, - ), - "very long silence": ( - generate_n_logs(n=NUMBER_OF_MAX_ATTEMPTS + 1, tick_fn=100000), - pytest.raises(MesaCIRetryError), - "fail", - {}, - ), - # If a protocol error happens, _call_proxy will retry without affecting timeouts - "unstable connection, ProtocolError followed by final message": ( - (NETWORK_EXCEPTION, *list(mock_logs(result="pass"))), - does_not_raise(), - "pass", - {}, - ), - # After an arbitrary number of retries, _call_proxy should call sys.exit - "unreachable case, subsequent ProtocolErrors": ( - repeat(NETWORK_EXCEPTION), - pytest.raises(SystemExit), - "fail", - {}, - ), - "XMLRPC Fault": ([XMLRPC_FAULT], pytest.raises(MesaCIRetryError), False, {}), -} - - -@pytest.mark.parametrize( - "test_log, expectation, job_result, proxy_args", - PROXY_SCENARIOS.values(), - ids=PROXY_SCENARIOS.keys(), -) -def test_retriable_follow_job( - mock_sleep, - test_log, - expectation, - job_result, - proxy_args, - mock_proxy, -): - with expectation: - proxy = mock_proxy(side_effect=test_log, **proxy_args) - job: LAVAJob = retriable_follow_job(proxy, "") - assert job_result == job.status - - -WAIT_FOR_JOB_SCENARIOS = {"one log run taking (sec):": (mock_logs(result="pass"))} - - -@pytest.mark.parametrize("wait_time", (DEVICE_HANGING_TIMEOUT_SEC * 2,)) -@pytest.mark.parametrize( - "side_effect", - WAIT_FOR_JOB_SCENARIOS.values(), - ids=WAIT_FOR_JOB_SCENARIOS.keys(), -) -def test_simulate_a_long_wait_to_start_a_job( - frozen_time, - wait_time, - side_effect, - mock_proxy_waiting_time, -): - start_time = datetime.now() - job: LAVAJob = retriable_follow_job( - mock_proxy_waiting_time( - frozen_time, side_effect=side_effect, wait_time=wait_time - ), - "", - ) - - end_time = datetime.now() - delta_time = end_time - start_time - - assert job.status == "pass" - assert delta_time.total_seconds() >= wait_time - - -LONG_LAVA_QUEUE_SCENARIOS = { - "no_time_to_run": (0, pytest.raises(MesaCIFatalException)), - "enough_time_to_run": (9999999999, does_not_raise()), -} - - -@pytest.mark.parametrize( - "job_timeout, expectation", - LONG_LAVA_QUEUE_SCENARIOS.values(), - ids=LONG_LAVA_QUEUE_SCENARIOS.keys(), -) -def test_wait_for_job_get_started_no_time_to_run(monkeypatch, job_timeout, expectation): - monkeypatch.setattr("lava.lava_job_submitter.CI_JOB_TIMEOUT_SEC", job_timeout) - job = MagicMock() - # Make it escape the loop - job.is_started.side_effect = (False, False, True) - with expectation as e: - wait_for_job_get_started(job, 1) - if e: - job.cancel.assert_called_with() - - -CORRUPTED_LOG_SCENARIOS = { - "too much subsequent corrupted data": ( - [(False, "{'msg': 'Incomplete}")] * 100 + [jobs_logs_response(True)], - pytest.raises((MesaCIRetryError)), - ), - "one subsequent corrupted data": ( - [(False, "{'msg': 'Incomplete}")] * 2 + [jobs_logs_response(True)], - does_not_raise(), - ), -} - - -@pytest.mark.parametrize( - "data_sequence, expected_exception", - CORRUPTED_LOG_SCENARIOS.values(), - ids=CORRUPTED_LOG_SCENARIOS.keys(), -) -def test_log_corruption(mock_sleep, data_sequence, expected_exception, mock_proxy): - proxy_mock = mock_proxy() - proxy_logs_mock = proxy_mock.scheduler.jobs.logs - proxy_logs_mock.side_effect = data_sequence - with expected_exception: - retriable_follow_job(proxy_mock, "") - - -LAVA_RESULT_LOG_SCENARIOS = { - # the submitter should accept xtrace logs - "Bash xtrace echo with kmsg interleaving": ( - "echo hwci: mesa: pass[ 737.673352] ", - "pass", - ), - # the submitter should accept xtrace logs - "kmsg result print": ( - "[ 737.673352] hwci: mesa: pass", - "pass", - ), - # if the job result echo has a very bad luck, it still can be interleaved - # with kmsg - "echo output with kmsg interleaving": ( - "hwci: mesa: pass[ 737.673352] ", - "pass", - ), - "fail case": ( - "hwci: mesa: fail", - "fail", - ), -} - - -@pytest.mark.parametrize( - "message, expectation", - LAVA_RESULT_LOG_SCENARIOS.values(), - ids=LAVA_RESULT_LOG_SCENARIOS.keys(), -) -def test_parse_job_result_from_log(message, expectation, mock_proxy): - job = LAVAJob(mock_proxy(), "") - job.parse_job_result_from_log([message]) - - assert job.status == expectation - - -@pytest.mark.slow( - reason="Slow and sketchy test. Needs a LAVA log raw file at /tmp/log.yaml" -) -@pytest.mark.skipif( - not Path("/tmp/log.yaml").is_file(), reason="Missing /tmp/log.yaml file." -) -def test_full_yaml_log(mock_proxy, frozen_time, lava_job_submitter): - import random - - from lavacli.utils import flow_yaml as lava_yaml - - def time_travel_from_log_chunk(data_chunk): - if not data_chunk: - return - - first_log = lava_yaml.load(data_chunk[0])[0] - first_log_time = first_log["dt"] - frozen_time.move_to(first_log_time) - yield - - last_log = lava_yaml.load(data_chunk[-1])[0] - last_log_time = last_log["dt"] - frozen_time.move_to(last_log_time) - yield - - def time_travel_to_test_time(): - # Suppose that the first message timestamp of the entire LAVA job log is - # the same of from the job submitter execution - with open("/tmp/log.yaml", "r") as f: - first_log = f.readline() - first_log_time = lava_yaml.load(first_log)[0]["dt"] - frozen_time.move_to(first_log_time) - - def load_lines() -> Generator[tuple[bool, str], None, None]: - with open("/tmp/log.yaml", "r") as f: - # data = yaml.safe_load(f) - log_lines = f.readlines() - serial_message: str = "" - chunk_start_line = 0 - chunk_end_line = 0 - chunk_max_size = 100 - try: - while True: - chunk_end_line = chunk_start_line + random.randint(1, chunk_max_size) - # split the log in chunks of random size - log_chunk = list(islice(log_lines, chunk_start_line, chunk_end_line)) - chunk_start_line = chunk_end_line + 1 - serial_message = "".join(log_chunk) - # time_traveller_gen will make the time trave according to the timestamp from - # the message - time_traveller_gen = time_travel_from_log_chunk(log_chunk) - # Suppose that the first message timestamp is the same of - # log fetch RPC call - next(time_traveller_gen) - yield False, "[]" - # Travel to the same datetime of the last fetched log line - # in the chunk - next(time_traveller_gen) - yield False, serial_message - except StopIteration: - yield True, serial_message - return - - proxy = mock_proxy() - - def reset_logs(*args): - proxy.scheduler.jobs.logs.side_effect = load_lines() - - proxy.scheduler.jobs.submit = reset_logs - try: - time_travel_to_test_time() - start_time = datetime.now() - retriable_follow_job(proxy, "") - finally: - try: - # If the job fails, maybe there will be no structured log - print(lava_job_submitter.structured_log_file.read_text()) - finally: - end_time = datetime.now() - print("---- Reproduction log stats ----") - print(f"Start time: {start_time}") - print(f"End time: {end_time}") - print(f"Duration: {end_time - start_time}") - - -@pytest.mark.parametrize( - "validate_only,finished_job_status,expected_combined_status,expected_exit_code", - [ - (True, "pass", None, None), - (False, "pass", "pass", 0), - (False, "fail", "fail", 1), - ], - ids=[ - "validate_only_no_job_submission", - "successful_job_submission", - "failed_job_submission", - ], -) -def test_job_combined_status( - lava_job_submitter, - validate_only, - finished_job_status, - expected_combined_status, - expected_exit_code, -): - lava_job_submitter.validate_only = validate_only - - with patch( - "lava.lava_job_submitter.retriable_follow_job" - ) as mock_retriable_follow_job, patch( - "lava.lava_job_submitter.LAVAJobSubmitter._LAVAJobSubmitter__prepare_submission" - ) as mock_prepare_submission, patch("sys.exit"): - from lava.lava_job_submitter import STRUCTURAL_LOG - - mock_retriable_follow_job.return_value = MagicMock(status=finished_job_status) - - mock_job_definition = MagicMock(spec=str) - mock_prepare_submission.return_value = mock_job_definition - original_status: str = STRUCTURAL_LOG.get("job_combined_status") - - if validate_only: - lava_job_submitter.submit() - mock_retriable_follow_job.assert_not_called() - assert STRUCTURAL_LOG.get("job_combined_status") == original_status - return - - try: - lava_job_submitter.submit() - - except SystemExit as e: - assert e.code == expected_exit_code - - assert STRUCTURAL_LOG["job_combined_status"] == expected_combined_status diff --git a/.gitlab-ci/tests/utils/__init__.py b/.gitlab-ci/tests/utils/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/.gitlab-ci/tests/utils/test_lava_farm.py b/.gitlab-ci/tests/utils/test_lava_farm.py deleted file mode 100644 index e11586c6d..000000000 --- a/.gitlab-ci/tests/utils/test_lava_farm.py +++ /dev/null @@ -1,41 +0,0 @@ -import re - -import pytest -from hypothesis import given -from hypothesis import strategies as st -from lava.utils.lava_farm import LAVA_FARM_RUNNER_PATTERNS, LavaFarm, get_lava_farm - - -@given( - runner_tag=st.text( - alphabet=st.characters( - min_codepoint=1, max_codepoint=127, blacklist_categories=("C",) - ), - min_size=1, - ) -) -def test_get_lava_farm_invalid_tags(runner_tag): - with pytest.MonkeyPatch().context() as mp: - mp.setenv("RUNNER_TAG", runner_tag) - assert get_lava_farm() == LavaFarm.UNKNOWN - - -def test_get_lava_farm_no_tag(monkeypatch): - monkeypatch.delenv("RUNNER_TAG", raising=False) - assert get_lava_farm() == LavaFarm.UNKNOWN - - -@given( - st.fixed_dictionaries( - {k: st.from_regex(v) for k, v in LAVA_FARM_RUNNER_PATTERNS.items()} - ) -) -def test_get_lava_farm_valid_tags(runner_farm_tag: dict): - with pytest.MonkeyPatch().context() as mp: - for farm, tag in runner_farm_tag.items(): - try: - mp.setenv("RUNNER_TAG", tag) - except ValueError: - # hypothesis may generate null bytes in the string - continue - assert get_lava_farm() == farm diff --git a/.gitlab-ci/tests/utils/test_lava_job_definition.py b/.gitlab-ci/tests/utils/test_lava_job_definition.py deleted file mode 100644 index a02378a06..000000000 --- a/.gitlab-ci/tests/utils/test_lava_job_definition.py +++ /dev/null @@ -1,197 +0,0 @@ -import importlib -import os -import re -from itertools import chain -from pathlib import Path -from typing import Any, Iterable, Literal -from unittest import mock - -import lava.utils.constants -import pytest -from lava.lava_job_submitter import LAVAJobSubmitter -from lava.utils.lava_job_definition import LAVAJobDefinition -from ruamel.yaml import YAML - - -def flatten(iterable: Iterable[Iterable[Any]]) -> list[Any]: - return list(chain.from_iterable(iterable)) - - -# mock shell file -@pytest.fixture(scope="session") -def shell_file(tmp_path_factory): - def create_shell_file(content: str = "# test"): - shell_file = tmp_path_factory.mktemp("data") / "shell_file.sh" - shell_file.write_text(content) - return shell_file - - return create_shell_file - - -# fn to load the data file from $CWD/data using pathlib -def load_data_file(filename): - return Path(__file__).parent.parent / "data" / filename - - -def load_yaml_file(filename) -> dict: - with open(load_data_file(filename)) as f: - return YAML().load(f) - - -def job_submitter_factory(mode: Literal["UBOOT", "FASTBOOT"], shell_file): - if mode == "UBOOT": - boot_method = "u-boot" - device_type = "my_uboot_device_type" - elif mode == "FASTBOOT": - boot_method = "fastboot" - device_type = "my_fastboot_device_type" - - job_timeout_min = 10 - mesa_job_name = "dut test" - pipeline_info = "my_pipeline_info" - project_name = "test-project" - visibility_group = "my_visibility_group" - - return LAVAJobSubmitter( - boot_method=boot_method, - ci_project_dir="/ci/project/dir", - device_type=device_type, - dtb_filename="my_dtb_filename", - first_stage_init=shell_file, - job_timeout_min=job_timeout_min, - mesa_job_name=mesa_job_name, - pipeline_info=pipeline_info, - visibility_group=visibility_group, - project_name=project_name, - ) - - -@pytest.fixture -def clear_env_vars(autouse=True): - with mock.patch.dict(os.environ) as environ: - # Remove all LAVA-related environment variables to make the test more robust - # and deterministic, once a envvar is capable of overriding the default value - for key in environ: - if any(kw in key for kw in ("LAVA_", "CI_", "JOB_", "RUNNER_", "DEVICE_")): - del environ[key] - # reload lava.utils.constants to update the JOB_PRIORITY value - importlib.reload(lava.utils.constants) - importlib.reload(lava.utils.lava_job_definition) - yield - - -@pytest.fixture -def mock_collabora_farm(clear_env_vars, monkeypatch): - # Mock a Collabora farm-like device runner tag to enable SSH execution - monkeypatch.setenv("RUNNER_TAG", "mesa-ci-1234-lava-collabora") - - -@pytest.mark.parametrize("force_uart", [True, False], ids=["SSH", "UART"]) -@pytest.mark.parametrize("mode", ["UBOOT", "FASTBOOT"]) -def test_generate_lava_job_definition_sanity( - force_uart, mode, shell_file, mock_collabora_farm, monkeypatch -): - monkeypatch.setattr(lava.utils.lava_job_definition, "FORCE_UART", force_uart) - - init_script_content = f"echo test {mode}" - job_submitter = job_submitter_factory(mode, shell_file(init_script_content)) - job_definition = LAVAJobDefinition(job_submitter).generate_lava_job_definition() - - # Load the YAML output and check that it contains the expected keys and values - yaml = YAML() - job_dict = yaml.load(job_definition) - yaml.dump(job_dict, Path(f"/tmp/{mode}_force_uart={force_uart}_job_definition.yaml")) - assert job_dict["device_type"] == job_submitter.device_type - assert job_dict["visibility"]["group"] == [job_submitter.visibility_group] - assert job_dict["timeouts"]["job"]["minutes"] == job_submitter.job_timeout_min - assert job_dict["context"]["extra_nfsroot_args"] - assert job_dict["timeouts"]["actions"] - - assert len(job_dict["actions"]) == 3 if mode == "UART" else 5 - - last_test_action = job_dict["actions"][-1]["test"] - # TODO: Remove hardcoded "mesa" test name, as this submitter is being used by other projects - first_test_name = last_test_action["definitions"][0]["name"] - is_running_ssh = "ssh" in first_test_name - # if force_uart, is_ssh must be False. If is_ssh, force_uart must be False. Both can be False - assert not (is_running_ssh and force_uart) - assert last_test_action["failure_retry"] == 3 if is_running_ssh else 1 - - run_steps = "".join(last_test_action["definitions"][0]["repository"]["run"]["steps"]) - # Check for project name in lava-test-case - assert re.search(rf"lava.?\S*.test.case.*{job_submitter.project_name}", run_steps) - - action_names = flatten(j.keys() for j in job_dict["actions"]) - if is_running_ssh: - assert action_names == ( - [ - "deploy", - "boot", - "test", # DUT: SSH server - "test", # Docker: SSH client - ] - if mode == "UBOOT" - else [ - "deploy", # NFS - "deploy", # Image generation - "deploy", # Image deployment - "boot", - "test", # DUT: SSH server - "test", # Docker: SSH client - ] - ) - test_action_server = job_dict["actions"][-2]["test"] - # SSH server in the DUT - assert test_action_server["namespace"] == "dut" - # SSH client via docker - assert last_test_action["namespace"] == "container" - - boot_action = next(a["boot"] for a in job_dict["actions"] if "boot" in a) - assert boot_action["namespace"] == "dut" - - # SSH server bootstrapping - assert "dropbear" in "".join(boot_action["auto_login"]["login_commands"]) - return - - # ---- Not SSH job - assert action_names == ( - [ - "deploy", - "boot", - "test", - ] - if mode == "UBOOT" - else [ - "deploy", # NFS - "deploy", # Image generation - "deploy", # Image deployment - "boot", - "test", - ] - ) - assert init_script_content in run_steps - - -# use yaml files from tests/data/ to test the job definition generation -@pytest.mark.parametrize("force_uart", [False, True], ids=["SSH", "UART"]) -@pytest.mark.parametrize("mode", ["UBOOT", "FASTBOOT"]) -def test_lava_job_definition(mode, force_uart, shell_file, mock_collabora_farm, monkeypatch): - monkeypatch.setattr(lava.utils.lava_job_definition, "FORCE_UART", force_uart) - - yaml = YAML() - yaml.default_flow_style = False - - # Load the YAML output and check that it contains the expected keys and values - expected_job_dict = load_yaml_file(f"{mode}_force_uart={force_uart}_job_definition.yaml") - - init_script_content = f"echo test {mode}" - job_submitter = job_submitter_factory(mode, shell_file(init_script_content)) - job_definition = LAVAJobDefinition(job_submitter).generate_lava_job_definition() - - job_dict = yaml.load(job_definition) - - # Uncomment the following to update the expected YAML files - # yaml.dump(job_dict, Path(f"../../data/{mode}_force_uart={force_uart}_job_definition.yaml")) - - # Check that the generated job definition matches the expected one - assert job_dict == expected_job_dict diff --git a/.gitlab-ci/tests/utils/test_lava_log.py b/.gitlab-ci/tests/utils/test_lava_log.py deleted file mode 100644 index 18a0af4e0..000000000 --- a/.gitlab-ci/tests/utils/test_lava_log.py +++ /dev/null @@ -1,439 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2022 Collabora Limited -# Author: Guilherme Gallo -# -# SPDX-License-Identifier: MIT - -from datetime import datetime, timedelta - -import pytest -from lava.exceptions import MesaCIKnownIssueException, MesaCITimeoutError -from lava.utils import ( - GitlabSection, - LogFollower, - LogSectionType, - fix_lava_gitlab_section_log, - hide_sensitive_data, -) -from lava.utils.constants import ( - KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER, - A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN, - A6XX_GPU_RECOVERY_FAILURE_MESSAGE, - A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT, -) -from lava.utils.lava_log_hints import LAVALogHints - -from ..lava.helpers import ( - create_lava_yaml_msg, - does_not_raise, - lava_yaml, - mock_lava_signal, - yaml_dump, -) - -GITLAB_SECTION_SCENARIOS = { - "start collapsed": ( - "start", - True, - f"\x1b[0Ksection_start:mock_date:my_first_section[collapsed=true]\r\x1b[0K{GitlabSection.colour}my_header\x1b[0m", - ), - "start non_collapsed": ( - "start", - False, - f"\x1b[0Ksection_start:mock_date:my_first_section\r\x1b[0K{GitlabSection.colour}my_header\x1b[0m", - ), - "end collapsed": ( - "end", - True, - "\x1b[0Ksection_end:mock_date:my_first_section\r\x1b[0K", - ), - "end non_collapsed": ( - "end", - False, - "\x1b[0Ksection_end:mock_date:my_first_section\r\x1b[0K", - ), -} - -@pytest.mark.parametrize( - "method, collapsed, expectation", - GITLAB_SECTION_SCENARIOS.values(), - ids=GITLAB_SECTION_SCENARIOS.keys(), -) -def test_gitlab_section(method, collapsed, expectation): - gs = GitlabSection( - id="my_first_section", - header="my_header", - type=LogSectionType.TEST_CASE, - start_collapsed=collapsed, - ) - gs.get_timestamp = lambda x: "mock_date" - gs.start() - result = getattr(gs, method)() - assert result == expectation - - -def test_gl_sections(): - lines = [ - { - "dt": datetime.now(), - "lvl": "debug", - "msg": "Received signal: 0_setup-ssh-server 10145749_1.3.2.3.1", - }, - { - "dt": datetime.now(), - "lvl": "debug", - "msg": "Received signal: 0_mesa 5971831_1.3.2.3.1", - }, - # Redundant log message which triggers the same Gitlab Section, it - # should be ignored, unless the id is different - { - "dt": datetime.now(), - "lvl": "target", - "msg": "[ 7.778836] ", - }, - { - "dt": datetime.now(), - "lvl": "debug", - "msg": "Received signal: mesa-ci_iris-kbl-traces", - }, - # Another redundant log message - { - "dt": datetime.now(), - "lvl": "target", - "msg": "[ 16.997829] ", - }, - { - "dt": datetime.now(), - "lvl": "target", - "msg": "", - }, - ] - lf = LogFollower() - with lf: - for line in lines: - lf.manage_gl_sections(line) - parsed_lines = lf.flush() - - section_types = [s.type for s in lf.section_history] - - assert "section_start" in parsed_lines[0] - assert "collapsed=true" not in parsed_lines[0] - assert "section_end" in parsed_lines[1] - assert "section_start" in parsed_lines[2] - assert "collapsed=true" not in parsed_lines[2] - assert "section_end" in parsed_lines[3] - assert "section_start" in parsed_lines[4] - assert "collapsed=true" not in parsed_lines[4] - assert "section_end" in parsed_lines[5] - assert "section_start" in parsed_lines[6] - assert "collapsed=true" in parsed_lines[6] - assert section_types == [ - # LogSectionType.LAVA_BOOT, True, if LogFollower started with Boot section - LogSectionType.TEST_DUT_SUITE, - LogSectionType.TEST_SUITE, - LogSectionType.TEST_CASE, - LogSectionType.LAVA_POST_PROCESSING, - ] - - -def test_log_follower_flush(): - lines = [ - { - "dt": datetime.now(), - "lvl": "debug", - "msg": "Received signal: mesa-ci_iris-kbl-traces", - }, - { - "dt": datetime.now(), - "lvl": "target", - "msg": "", - }, - ] - lf = LogFollower() - lf.feed(lines) - parsed_lines = lf.flush() - empty = lf.flush() - lf.feed(lines) - repeated_parsed_lines = lf.flush() - - assert parsed_lines - assert not empty - assert repeated_parsed_lines - - -SENSITIVE_DATA_SCENARIOS = { - "no sensitive data tagged": ( - ["bla bla", "mytoken: asdkfjsde1341=="], - ["bla bla", "mytoken: asdkfjsde1341=="], - ["HIDEME"], - ), - "sensitive data tagged": ( - ["bla bla", "mytoken: asdkfjsde1341== # HIDEME"], - ["bla bla"], - ["HIDEME"], - ), - "sensitive data tagged with custom word": ( - ["bla bla", "mytoken: asdkfjsde1341== # DELETETHISLINE", "third line # NOTANYMORE"], - ["bla bla", "third line # NOTANYMORE"], - ["DELETETHISLINE", "NOTANYMORE"], - ), -} - - -@pytest.mark.parametrize( - "input, expectation, tags", - SENSITIVE_DATA_SCENARIOS.values(), - ids=SENSITIVE_DATA_SCENARIOS.keys(), -) -def test_hide_sensitive_data(input, expectation, tags): - yaml_data = yaml_dump(input) - yaml_result = hide_sensitive_data(yaml_data, *tags) - result = lava_yaml.load(yaml_result) - - assert result == expectation - - -GITLAB_SECTION_SPLIT_SCENARIOS = { - "Split section_start at target level": ( - "\x1b[0Ksection_start:1668454947:test_post_process[collapsed=true]\r\x1b[0Kpost-processing test results", - ( - "\x1b[0Ksection_start:1668454947:test_post_process[collapsed=true]", - "\x1b[0Kpost-processing test results", - ), - ), - "Split section_end at target level": ( - "\x1b[0Ksection_end:1666309222:test_post_process\r\x1b[0K", - ("\x1b[0Ksection_end:1666309222:test_post_process", "\x1b[0K"), - ), - "Second line is not split from the first": ( - ("\x1b[0Ksection_end:1666309222:test_post_process", "Any message"), - ("\x1b[0Ksection_end:1666309222:test_post_process", "Any message"), - ), -} - - -@pytest.mark.parametrize( - "expected_message, messages", - GITLAB_SECTION_SPLIT_SCENARIOS.values(), - ids=GITLAB_SECTION_SPLIT_SCENARIOS.keys(), -) -def test_fix_lava_gitlab_section_log(expected_message, messages): - fixed_messages = [] - gen = fix_lava_gitlab_section_log() - next(gen) - - for message in messages: - lava_log = create_lava_yaml_msg(msg=message, lvl="target") - if recovered_line := gen.send(lava_log): - fixed_messages.append((recovered_line, lava_log["msg"])) - fixed_messages.append(lava_log["msg"]) - - assert expected_message in fixed_messages - - -@pytest.mark.parametrize( - "expected_message, messages", - GITLAB_SECTION_SPLIT_SCENARIOS.values(), - ids=GITLAB_SECTION_SPLIT_SCENARIOS.keys(), -) -def test_lava_gitlab_section_log_collabora(expected_message, messages, monkeypatch): - """Check if LogFollower does not change the message if we are running in Collabora farm.""" - monkeypatch.setenv("RUNNER_TAG", "mesa-ci-x86_64-lava-test") - lf = LogFollower() - for message in messages: - lf.feed([create_lava_yaml_msg(msg=message)]) - new_messages = lf.flush() - new_messages = tuple(new_messages) if len(new_messages) > 1 else new_messages[0] - assert new_messages == expected_message - - -CARRIAGE_RETURN_SCENARIOS = { - "Carriage return at the end of the previous line": ( - ( - "\x1b[0Ksection_start:1677609903:test_setup[collapsed=true]\r\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m", - ), - ( - "\x1b[0Ksection_start:1677609903:test_setup[collapsed=true]\r", - "\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m\r\n", - ), - ), - "Newline at the end of the line": ( - ("\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m", "log"), - ("\x1b[0K\x1b[0;36m[303:44] deqp: preparing test setup\x1b[0m\r\n", "log"), - ), -} - - -@pytest.mark.parametrize( - "expected_message, messages", - CARRIAGE_RETURN_SCENARIOS.values(), - ids=CARRIAGE_RETURN_SCENARIOS.keys(), -) -def test_lava_log_merge_carriage_return_lines(expected_message, messages): - lf = LogFollower() - for message in messages: - lf.feed([create_lava_yaml_msg(msg=message)]) - new_messages = tuple(lf.flush()) - assert new_messages == expected_message - - -WATCHDOG_SCENARIOS = { - "1 second before timeout": ({"seconds": -1}, does_not_raise()), - "1 second after timeout": ({"seconds": 1}, pytest.raises(MesaCITimeoutError)), -} - - -@pytest.mark.parametrize( - "timedelta_kwargs, exception", - WATCHDOG_SCENARIOS.values(), - ids=WATCHDOG_SCENARIOS.keys(), -) -def test_log_follower_watchdog(frozen_time, timedelta_kwargs, exception): - lines = [ - { - "dt": datetime.now(), - "lvl": "debug", - "msg": "Received signal: mesa-ci_iris-kbl-traces", - }, - ] - td = {LogSectionType.TEST_CASE: timedelta(minutes=1)} - lf = LogFollower(timeout_durations=td) - lf.feed(lines) - frozen_time.tick( - lf.timeout_durations[LogSectionType.TEST_CASE] + timedelta(**timedelta_kwargs) - ) - lines = [create_lava_yaml_msg()] - with exception: - lf.feed(lines) - - -GITLAB_SECTION_ID_SCENARIOS = [ - ("a-good_name", "a-good_name"), - ("spaces are not welcome", "spaces-are-not-welcome"), - ("abc:amd64 1/3", "abc-amd64-1-3"), -] - - -@pytest.mark.parametrize("case_name, expected_id", GITLAB_SECTION_ID_SCENARIOS) -def test_gitlab_section_id(case_name, expected_id): - gl = GitlabSection( - id=case_name, header=case_name, type=LogSectionType.LAVA_POST_PROCESSING - ) - - assert gl.id == expected_id - - -def a618_network_issue_logs(level: str = "target") -> list: - net_error = create_lava_yaml_msg( - msg="[ 1733.599402] r8152 2-1.3:1.0 eth0: Tx status -71", lvl=level) - - nfs_error = create_lava_yaml_msg( - msg="[ 1733.604506] nfs: server 192.168.201.1 not responding, still trying", - lvl=level, - ) - - return [ - *(KNOWN_ISSUE_R8152_MAX_CONSECUTIVE_COUNTER*[net_error]), - nfs_error - ] - - -TEST_PHASE_LAVA_SIGNAL = mock_lava_signal(LogSectionType.TEST_CASE) -A618_NET_ISSUE_BOOT = a618_network_issue_logs(level="feedback") -A618_NET_ISSUE_TEST = [TEST_PHASE_LAVA_SIGNAL, *a618_network_issue_logs(level="target")] - - -A618_NETWORK_ISSUE_SCENARIOS = { - "Fail - R8152 kmsg during boot phase": ( - A618_NET_ISSUE_BOOT, - pytest.raises(MesaCIKnownIssueException), - ), - "Fail - R8152 kmsg during test phase": ( - A618_NET_ISSUE_TEST, - pytest.raises(MesaCIKnownIssueException), - ), - "Pass - Partial (1) R8152 kmsg during test phase": ( - A618_NET_ISSUE_TEST[:1], - does_not_raise(), - ), - "Pass - Partial (2) R8152 kmsg during test phase": ( - A618_NET_ISSUE_TEST[:2], - does_not_raise(), - ), - "Pass - Partial (3) subsequent R8152 kmsg during test phase": ( - [ - TEST_PHASE_LAVA_SIGNAL, - A618_NET_ISSUE_TEST[1], - A618_NET_ISSUE_TEST[1], - ], - does_not_raise(), - ), - "Pass - Partial (4) subsequent nfs kmsg during test phase": ( - [ - TEST_PHASE_LAVA_SIGNAL, - A618_NET_ISSUE_TEST[-1], - A618_NET_ISSUE_TEST[-1], - ], - does_not_raise(), - ), -} - - -@pytest.mark.parametrize( - "messages, expectation", - A618_NETWORK_ISSUE_SCENARIOS.values(), - ids=A618_NETWORK_ISSUE_SCENARIOS.keys(), -) -def test_detect_failure(messages, expectation): - boot_section = GitlabSection( - id="lava_boot", - header="LAVA boot", - type=LogSectionType.LAVA_BOOT, - start_collapsed=True, - ) - boot_section.start() - lf = LogFollower(starting_section=boot_section) - with expectation: - lf.feed(messages) - -def test_detect_a6xx_gpu_recovery_failure(frozen_time): - log_follower = LogFollower() - lava_log_hints = LAVALogHints(log_follower=log_follower) - failure_message = { - "dt": datetime.now().isoformat(), - "msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[0], - "lvl": "feedback", - } - with pytest.raises(MesaCIKnownIssueException): - for _ in range(A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT): - lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message) - # Simulate the passage of time within the watch period - frozen_time.tick(1) - failure_message["dt"] = datetime.now().isoformat() - -def test_detect_a6xx_gpu_recovery_success(frozen_time): - log_follower = LogFollower() - lava_log_hints = LAVALogHints(log_follower=log_follower) - failure_message = { - "dt": datetime.now().isoformat(), - "msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[0], - "lvl": "feedback", - } - # Simulate sending a tolerable number of failure messages - for _ in range(A6XX_GPU_RECOVERY_FAILURE_MAX_COUNT - 1): - lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message) - frozen_time.tick(1) - failure_message["dt"] = datetime.now().isoformat() - - # Simulate the passage of time outside of the watch period - frozen_time.tick(60 * A6XX_GPU_RECOVERY_WATCH_PERIOD_MIN + 1) - failure_message = { - "dt": datetime.now().isoformat(), - "msg": A6XX_GPU_RECOVERY_FAILURE_MESSAGE[1], - "lvl": "feedback", - } - with does_not_raise(): - lava_log_hints.detect_a6xx_gpu_recovery_failure(failure_message) - assert lava_log_hints.a6xx_gpu_first_fail_time is None, "a6xx_gpu_first_fail_time is not None" - assert lava_log_hints.a6xx_gpu_recovery_fail_counter == 0, "a6xx_gpu_recovery_fail_counter is not 0" diff --git a/.gitlab-ci/vkd3d-proton/run.sh b/.gitlab-ci/vkd3d-proton/run.sh deleted file mode 100755 index 25a021970..000000000 --- a/.gitlab-ci/vkd3d-proton/run.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash -# shellcheck disable=SC2035 # FIXME glob - -set -ex - -if [[ -z "$VK_DRIVER" ]]; then - exit 1 -fi - -INSTALL=$(realpath -s "$PWD"/install) - -RESULTS=$(realpath -s "$PWD"/results) - -# Set up the driver environment. -# Modifiying here directly LD_LIBRARY_PATH may cause problems when -# using a command wrapper. Hence, we will just set it when running the -# command. -export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$INSTALL/lib/:/vkd3d-proton-tests/x64/" - - -# Sanity check to ensure that our environment is sufficient to make our tests -# run against the Mesa built by CI, rather than any installed distro version. -MESA_VERSION=$(sed 's/\./\\./g' "$INSTALL/VERSION") - -# Set the Vulkan driver to use. -export VK_DRIVER_FILES="$INSTALL/share/vulkan/icd.d/${VK_DRIVER}_icd.x86_64.json" - -# Set environment for Wine. -export WINEDEBUG="-all" -export WINEPREFIX="/vkd3d-proton-wine64" -export WINEESYNC=1 - -# wrapper to supress +x to avoid spamming the log -quiet() { - set +x - "$@" - set -x -} - -set +e -if ! vulkaninfo | tee /tmp/version.txt | grep "\"Mesa $MESA_VERSION\(\s\|$\)\""; -then - printf "%s\n" "Found $(cat /tmp/version.txt), expected $MESA_VERSION" -fi -set -e - -if [ -d "$RESULTS" ]; then - cd "$RESULTS" && rm -rf ..?* .[!.]* * && cd - -else - mkdir "$RESULTS" -fi - -quiet printf "%s\n" "Running vkd3d-proton testsuite..." - -set +e -if ! /vkd3d-proton-tests/x64/bin/d3d12 > "$RESULTS/vkd3d-proton.log"; -then - # Check if the executable finished (ie. no segfault). - if ! grep "tests executed" "$RESULTS/vkd3d-proton.log" > /dev/null; then - error printf "%s\n" "Failed, see vkd3d-proton.log!" - exit 1 - fi - - # Collect all the failures - VKD3D_PROTON_RESULTS="${VKD3D_PROTON_RESULTS:-vkd3d-proton-results}" - RESULTSFILE="$RESULTS/$VKD3D_PROTON_RESULTS.txt" - mkdir -p .gitlab-ci/vkd3d-proton - grep "Test failed" "$RESULTS"/vkd3d-proton.log > "$RESULTSFILE" - - # Gather the list expected failures - if [ -f "$INSTALL/$VKD3D_PROTON_RESULTS.txt" ]; then - cp "$INSTALL/$VKD3D_PROTON_RESULTS.txt" \ - ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" - else - touch ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" - fi - - # Make sure that the failures found in this run match the current expectation - if ! diff -q ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE"; then - error printf "%s\n" "Changes found, see vkd3d-proton.log!" - quiet diff --color=always -u ".gitlab-ci/vkd3d-proton/$VKD3D_PROTON_RESULTS.txt.baseline" "$RESULTSFILE" - exit 1 - fi -fi - -printf "%s\n" "vkd3d-proton execution: SUCCESS" - -exit 0 diff --git a/.gitlab-ci/windows/Dockerfile_build b/.gitlab-ci/windows/Dockerfile_build deleted file mode 100644 index c4035aa75..000000000 --- a/.gitlab-ci/windows/Dockerfile_build +++ /dev/null @@ -1,19 +0,0 @@ -# escape=` - -ARG base_image -FROM ${base_image} - -COPY mesa_deps_vulkan_sdk.ps1 C:\ -RUN C:\mesa_deps_vulkan_sdk.ps1 - -COPY mesa_init_msvc.ps1 C:\ - -COPY mesa_deps_libva.ps1 C:\ -RUN C:\mesa_deps_libva.ps1 - -COPY mesa_deps_build.ps1 C:\ -RUN C:\mesa_deps_build.ps1 - -# When building, `--isolation=process` can leverage all cores and memory -# docker build --isolation=process -f .\Dockerfile_build -t mesa_dep --build-arg base_image=mesa_vs . - diff --git a/.gitlab-ci/windows/Dockerfile_msvc b/.gitlab-ci/windows/Dockerfile_msvc deleted file mode 100644 index 6eac925af..000000000 --- a/.gitlab-ci/windows/Dockerfile_msvc +++ /dev/null @@ -1,27 +0,0 @@ -# escape=` - -ARG base_image -FROM ${base_image} - -# https://www.thomasmaurer.ch/2019/07/how-to-install-and-update-powershell-7/ -# Wrapping the following command in cmd.exe -# iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet" -RUN powershell -ExecutionPolicy RemoteSigned -Command "$ErrorActionPreference = 'Stop'; iex ""& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet""" - -# Make sure any failure in PowerShell scripts is fatal -SHELL ["pwsh", "-ExecutionPolicy", "RemoteSigned", "-Command", "$ErrorActionPreference = 'Stop';"] -RUN Write-Output $PSVersionTable $ErrorActionPreference - -COPY mesa_deps_msvc.ps1 C:\ -RUN C:\mesa_deps_msvc.ps1 - -COPY mesa_deps_choco.ps1 C:\ -RUN C:\mesa_deps_choco.ps1 - -# Example usage: -# `base_image` should use windows image that can be run with `--isolation=process` option, -# since the resulting container will want to be used that way be later containers in the build process. -# Only --isolation=hyperv can succeed building this container locally, -# --isolation=process have network issue when installing Visual Studio and choco will crash -# docker build --isolation=hyperv -f .\Dockerfile_msvc -t mesa_vs --build-arg base_image="mcr.microsoft.com/windows:10.0.19041.1415" . - diff --git a/.gitlab-ci/windows/Dockerfile_test b/.gitlab-ci/windows/Dockerfile_test deleted file mode 100644 index d75e2a8fa..000000000 --- a/.gitlab-ci/windows/Dockerfile_test +++ /dev/null @@ -1,25 +0,0 @@ -# escape=` - -ARG base_image -FROM ${base_image} - -COPY mesa_deps_vulkan_sdk.ps1 C:\ -RUN C:\mesa_deps_vulkan_sdk.ps1 - -COPY mesa_deps_d3d.ps1 C:\ -RUN C:\mesa_deps_d3d.ps1 - -COPY mesa_deps_rust.ps1 C:\ -RUN C:\mesa_deps_rust.ps1 - -COPY mesa_init_msvc.ps1 C:\ - -COPY mesa_deps_libva.ps1 C:\ -RUN C:\mesa_deps_libva.ps1 - -COPY mesa_deps_test_piglit.ps1 C:\ -RUN C:\mesa_deps_test_piglit.ps1 -COPY mesa_deps_test_deqp.ps1 c:\ -RUN C:\mesa_deps_test_deqp.ps1 -COPY mesa_deps_test.ps1 C:\ -RUN C:\mesa_deps_test.ps1 diff --git a/.gitlab-ci/windows/README.md b/.gitlab-ci/windows/README.md deleted file mode 100644 index caf7c8f0b..000000000 --- a/.gitlab-ci/windows/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# Native Windows GitLab CI builds - -Unlike Linux, Windows cannot reuse the freedesktop ci-templates as they exist -as we do not have Podman, Skopeo, or even Docker-in-Docker builds available -under Windows. - -We still reuse the same model: build a base container with the core operating -system and infrequently-changed build dependencies, then execute Mesa builds -only inside that base container. This is open-coded in PowerShell scripts. - -## Base container build - -The base container build job executes the `mesa_container.ps1` script which -reproduces the ci-templates behaviour. It looks for the registry image in -the user's namespace, and exits if found. If not found, it tries to copy -the same image tag from the upstream Mesa repository. If that is not found, -the image is rebuilt inside the user's namespace. - -The rebuild executes `docker build` which calls `mesa_deps.ps1` inside the -container to fetch and install all build dependencies. This includes Visual -Studio Community Edition (downloaded from Microsoft, under the license which -allows use by open-source projects), other build tools from Chocolatey, and -finally Meson and Python dependencies from PyPI. - -This job is executed inside a Windows shell environment directly inside the -host, without Docker. - -## Mesa build - -The Mesa build runs inside the base container, executing `mesa_build.ps1`. -This simply compiles Mesa using Meson and Ninja, executing the build and -unit tests. Currently, no build artifacts are captured. - -## Using build scripts locally - -`*.ps1` scripts for building dockers are using PowerShell 7 to run diff --git a/.gitlab-ci/windows/deqp_runner_run.ps1 b/.gitlab-ci/windows/deqp_runner_run.ps1 deleted file mode 100644 index 136cf8e37..000000000 --- a/.gitlab-ci/windows/deqp_runner_run.ps1 +++ /dev/null @@ -1,37 +0,0 @@ -# VK_DRIVER_FILES environment variable is not used when running with -# elevated privileges. Add a key to the registry instead. -$hkey_path = "HKLM:\SOFTWARE\Khronos\Vulkan\Drivers\" -$hkey_name = Join-Path -Path $pwd -ChildPath "_install\share\vulkan\icd.d\dzn_icd.x86_64.json" -New-Item -Path $hkey_path -force -New-ItemProperty -Path $hkey_path -Name $hkey_name -Value 0 -PropertyType DWORD - -$results = New-Item -ItemType Directory results -$baseline = ".\_install\warp-fails.txt" -$suite = ".\_install\deqp-dozen.toml" - -$jobs = "" -if ($null -ne $env:FDO_CI_CONCURRENT) { - $jobs = "--jobs", "$($env:FDO_CI_CONCURRENT)" -} -if ($env:DEQP_FRACTION -eq $null) { - $env:DEQP_FRACTION = 1 -} - -$env:DZN_DEBUG = "warp" -$env:MESA_VK_IGNORE_CONFORMANCE_WARNING = "true" -deqp-runner suite --suite $($suite) ` ---output $($results) ` ---baseline $($baseline) ` ---testlog-to-xml C:\deqp\executor\testlog-to-xml.exe ` ---fraction $env:DEQP_FRACTION ` -$jobs -$deqpstatus = $? - -$template = "See $($env:ARTIFACTS_BASE_URL)/results/{{testcase}}.xml" -deqp-runner junit --testsuite dEQP --results "$($results)/failures.csv" --output "$($results)/junit.xml" --limit 50 --template $template -Copy-Item -Path "C:\deqp\testlog.css" -Destination $($results) -Copy-Item -Path "C:\deqp\testlog.xsl" -Destination $($results) - -if (!$deqpstatus) { - Exit 1 -} diff --git a/.gitlab-ci/windows/mesa_build.ps1 b/.gitlab-ci/windows/mesa_build.ps1 deleted file mode 100644 index ee93ff74f..000000000 --- a/.gitlab-ci/windows/mesa_build.ps1 +++ /dev/null @@ -1,89 +0,0 @@ -# Clear CI_COMMIT_MESSAGE and CI_COMMIT_DESCRIPTION for please meson -# when the commit message is complicated -$env:CI_COMMIT_MESSAGE="" -$env:CI_COMMIT_DESCRIPTION="" - -# force the CA cert cache to be rebuilt, in case Meson tries to access anything -Write-Host "Refreshing Windows TLS CA cache" -(New-Object System.Net.WebClient).DownloadString("https://github.com") >$null - -$env:PYTHONUTF8=1 - -Get-Date -Write-Host "Compiling Mesa" -$builddir = New-Item -Force -ItemType Directory -Name "_build" -$installdir = New-Item -Force -ItemType Directory -Name "_install" -$builddir=$builddir.FullName -$installdir=$installdir.FullName -$sourcedir=$PWD - -Remove-Item -Recurse -Force $builddir -Remove-Item -Recurse -Force $installdir -New-Item -ItemType Directory -Path $builddir -New-Item -ItemType Directory -Path $installdir - -Write-Output "*" > $builddir\.gitignore -Write-Output "*" > $installdir\.gitignore - -Write-Output builddir:$builddir -Write-Output installdir:$installdir -Write-Output sourcedir:$sourcedir - -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -$depsInstallPath="C:\mesa-deps" - -Push-Location $builddir - -meson setup ` ---default-library=shared ` ---buildtype=release ` ---wrap-mode=nodownload ` --Db_ndebug=false ` --Db_vscrt=mt ` ---cmake-prefix-path="$depsInstallPath" ` ---pkg-config-path="$depsInstallPath\lib\pkgconfig;$depsInstallPath\share\pkgconfig" ` ---prefix="$installdir" ` --Dllvm=enabled ` --Dshared-llvm=disabled ` --Dvulkan-drivers="swrast,amd,microsoft-experimental" ` --Dgallium-drivers="swrast,d3d12,zink" ` --Dgallium-va=enabled ` --Dvideo-codecs="all" ` --Dshared-glapi=enabled ` --Dgles1=enabled ` --Dgles2=enabled ` --Dgallium-opencl=icd ` --Dgallium-rusticl=false ` --Dopencl-spirv=true ` --Dmicrosoft-clc=enabled ` --Dstatic-libclc=all ` --Dspirv-to-dxil=true ` --Dbuild-tests=true ` --Dwerror=true ` --Dwarning_level=2 ` -$sourcedir && ` -meson install && ` -meson test --num-processes 32 --print-errorlogs - -$buildstatus = $? -Pop-Location - -Get-Date - -if (!$buildstatus) { - Write-Host "Mesa build or test failed" - Exit 1 -} - -Copy-Item ".\.gitlab-ci\windows\piglit_run.ps1" -Destination $installdir - -Copy-Item ".\.gitlab-ci\windows\spirv2dxil_check.ps1" -Destination $installdir -Copy-Item ".\.gitlab-ci\windows\spirv2dxil_run.ps1" -Destination $installdir - -Copy-Item ".\.gitlab-ci\windows\deqp_runner_run.ps1" -Destination $installdir - -Copy-Item ".\.gitlab-ci\windows\vainfo_run.ps1" -Destination $installdir - -Get-ChildItem -Recurse -Filter "ci" | Get-ChildItem -Include "*.txt","*.toml" | Copy-Item -Destination $installdir diff --git a/.gitlab-ci/windows/mesa_container.ps1 b/.gitlab-ci/windows/mesa_container.ps1 deleted file mode 100644 index cbb9e2235..000000000 --- a/.gitlab-ci/windows/mesa_container.ps1 +++ /dev/null @@ -1,58 +0,0 @@ -# Implements the equivalent of ci-templates container-ifnot-exists, using -# Docker directly as we don't have buildah/podman/skopeo available under -# Windows, nor can we execute Docker-in-Docker -$registry_uri = $args[0] -$registry_username = $args[1] -$registry_password = $args[2] -$registry_user_image = $args[3] -$registry_central_image = $args[4] -$build_dockerfile = $args[5] -$registry_base_image = $args[6] - -Set-Location -Path ".\.gitlab-ci\windows" - -docker --config "windows-docker.conf" login -u "$registry_username" -p "$registry_password" "$registry_uri" -if (!$?) { - Write-Host "docker login failed to $registry_uri" - Exit 1 -} - -# if the image already exists, don't rebuild it -docker --config "windows-docker.conf" pull "$registry_user_image" -if ($?) { - Write-Host "User image $registry_user_image already exists; not rebuilding" - docker --config "windows-docker.conf" logout "$registry_uri" - Exit 0 -} - -# if the image already exists upstream, copy it -docker --config "windows-docker.conf" pull "$registry_central_image" -if ($?) { - Write-Host "Copying central image $registry_central_image to user image $registry_user_image" - docker --config "windows-docker.conf" tag "$registry_central_image" "$registry_user_image" - docker --config "windows-docker.conf" push "$registry_user_image" - $pushstatus = $? - docker --config "windows-docker.conf" logout "$registry_uri" - if (!$pushstatus) { - Write-Host "Pushing image to $registry_user_image failed" - Exit 1 - } - Exit 0 -} - -Write-Host "No image found at $registry_user_image or $registry_central_image; rebuilding" -docker --config "windows-docker.conf" build --no-cache -t "$registry_user_image" -f "$build_dockerfile" --build-arg base_image="$registry_base_image" . -if (!$?) { - Write-Host "Container build failed" - docker --config "windows-docker.conf" logout "$registry_uri" - Exit 1 -} -Get-Date - -docker --config "windows-docker.conf" push "$registry_user_image" -$pushstatus = $? -docker --config "windows-docker.conf" logout "$registry_uri" -if (!$pushstatus) { - Write-Host "Pushing image to $registry_user_image failed" - Exit 1 -} diff --git a/.gitlab-ci/windows/mesa_deps_build.ps1 b/.gitlab-ci/windows/mesa_deps_build.ps1 deleted file mode 100644 index 3c83cc861..000000000 --- a/.gitlab-ci/windows/mesa_deps_build.ps1 +++ /dev/null @@ -1,169 +0,0 @@ - -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -# we want more secure TLS 1.2 for most things, but it breaks SourceForge -# downloads so must be done after Chocolatey use -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13; - -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "deps" | Out-Null - -$depsInstallPath="C:\mesa-deps" - -Get-Date -Write-Host "Cloning DirectX-Headers" -git clone -b v1.613.1 --depth=1 https://github.com/microsoft/DirectX-Headers deps/DirectX-Headers -if (!$?) { - Write-Host "Failed to clone DirectX-Headers repository" - Exit 1 -} -Write-Host "Building DirectX-Headers" -$dxheaders_build = New-Item -ItemType Directory -Path ".\deps\DirectX-Headers" -Name "build" -Push-Location -Path $dxheaders_build.FullName -meson .. --backend=ninja -Dprefix="$depsInstallPath" --buildtype=release -Db_vscrt=mt && ` -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $dxheaders_build -if (!$buildstatus) { - Write-Host "Failed to compile DirectX-Headers" - Exit 1 -} - -Get-Date -Write-Host "Cloning zlib" -git clone -b v1.3.1 --depth=1 https://github.com/madler/zlib deps/zlib -if (!$?) { - Write-Host "Failed to clone zlib repository" - Exit 1 -} -Write-Host "Downloading zlib meson build files" -Invoke-WebRequest -Uri "https://wrapdb.mesonbuild.com/v2/zlib_1.3.1-1/get_patch" -OutFile deps/zlib.zip -Expand-Archive -Path deps/zlib.zip -Destination deps/zlib -# Wrap archive puts build files in a version subdir -robocopy deps/zlib/zlib-1.3.1 deps/zlib /E -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path deps/zlib/zlib-1.3.1 -$zlib_build = New-Item -ItemType Directory -Path ".\deps\zlib" -Name "build" -Push-Location -Path $zlib_build.FullName -meson .. --backend=ninja -Dprefix="$depsInstallPath" --default-library=static --buildtype=release -Db_vscrt=mt && ` -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $zlib_build -if (!$buildstatus) { - Write-Host "Failed to compile zlib" - Exit 1 -} - -Get-Date -Write-Host "Cloning LLVM release/15.x" -git clone -b release/15.x --depth=1 https://github.com/llvm/llvm-project deps/llvm-project -if (!$?) { - Write-Host "Failed to clone LLVM repository" - Exit 1 -} - -Get-Date -Write-Host "Cloning SPIRV-LLVM-Translator" -git clone -b llvm_release_150 https://github.com/KhronosGroup/SPIRV-LLVM-Translator deps/llvm-project/llvm/projects/SPIRV-LLVM-Translator -if (!$?) { - Write-Host "Failed to clone SPIRV-LLVM-Translator repository" - Exit 1 -} - -Get-Date -# slightly convoluted syntax but avoids the CWD being under the PS filesystem meta-path -$llvm_build = New-Item -ItemType Directory -ErrorAction SilentlyContinue -Force -Path ".\deps\llvm-project" -Name "build" -Push-Location -Path $llvm_build.FullName -Write-Host "Compiling LLVM and Clang" -cmake ../llvm ` --GNinja ` --DCMAKE_BUILD_TYPE=Release ` --DLLVM_USE_CRT_RELEASE=MT ` --DCMAKE_PREFIX_PATH="$depsInstallPath" ` --DCMAKE_INSTALL_PREFIX="$depsInstallPath" ` --DLLVM_ENABLE_PROJECTS="clang" ` --DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" ` --DLLVM_OPTIMIZED_TABLEGEN=TRUE ` --DLLVM_ENABLE_ASSERTIONS=TRUE ` --DLLVM_INCLUDE_UTILS=OFF ` --DLLVM_INCLUDE_RUNTIMES=OFF ` --DLLVM_INCLUDE_TESTS=OFF ` --DLLVM_INCLUDE_EXAMPLES=OFF ` --DLLVM_INCLUDE_GO_TESTS=OFF ` --DLLVM_INCLUDE_BENCHMARKS=OFF ` --DLLVM_BUILD_LLVM_C_DYLIB=OFF ` --DLLVM_ENABLE_DIA_SDK=OFF ` --DCLANG_BUILD_TOOLS=ON ` --DLLVM_SPIRV_INCLUDE_TESTS=OFF ` --Wno-dev && ` -ninja -j32 install -$buildstatus = $? -Pop-Location -if (!$buildstatus) { - Write-Host "Failed to compile LLVM" - Exit 1 -} - -Get-Date -$libclc_build = New-Item -ItemType Directory -Path ".\deps\llvm-project" -Name "build-libclc" -Push-Location -Path $libclc_build.FullName -Write-Host "Compiling libclc" -# libclc can only be built with Ninja, because CMake's VS backend doesn't know how to compile new language types -cmake ../libclc ` --GNinja ` --DCMAKE_BUILD_TYPE=Release ` --DCMAKE_CXX_FLAGS="-m64" ` --DCMAKE_POLICY_DEFAULT_CMP0091=NEW ` --DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded ` --DCMAKE_INSTALL_PREFIX="$depsInstallPath" ` --DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" && ` -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libclc_build -if (!$buildstatus) { - Write-Host "Failed to compile libclc" - Exit 1 -} -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $llvm_build - -Get-Date -Write-Host "Cloning SPIRV-Tools" -git clone -b "vulkan-sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Tools deps/SPIRV-Tools -if (!$?) { - Write-Host "Failed to clone SPIRV-Tools repository" - Exit 1 -} -git clone -b "vulkan-sdk-$env:VULKAN_SDK_VERSION" --depth=1 https://github.com/KhronosGroup/SPIRV-Headers deps/SPIRV-Tools/external/SPIRV-Headers -if (!$?) { - Write-Host "Failed to clone SPIRV-Headers repository" - Exit 1 -} -Write-Host "Building SPIRV-Tools" -$spv_build = New-Item -ItemType Directory -Path ".\deps\SPIRV-Tools" -Name "build" -Push-Location -Path $spv_build.FullName -# SPIRV-Tools doesn't use multi-threaded MSVCRT, but we need it to -cmake .. ` --GNinja ` --DCMAKE_BUILD_TYPE=Release ` --DCMAKE_POLICY_DEFAULT_CMP0091=NEW ` --DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded ` --DCMAKE_INSTALL_PREFIX="$depsInstallPath" && ` -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $spv_build -if (!$buildstatus) { - Write-Host "Failed to compile SPIRV-Tools" - Exit 1 -} - -function Remove-Symlinks { - Get-ChildItem -Force -ErrorAction SilentlyContinue @Args | Where-Object { if($_.Attributes -match "ReparsePoint"){$_.Delete()} } -} -Remove-Symlinks -Path "deps" -Recurse -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "deps" | Out-Null - -Get-Date -Write-Host "Complete" diff --git a/.gitlab-ci/windows/mesa_deps_choco.ps1 b/.gitlab-ci/windows/mesa_deps_choco.ps1 deleted file mode 100644 index d2cbeb696..000000000 --- a/.gitlab-ci/windows/mesa_deps_choco.ps1 +++ /dev/null @@ -1,77 +0,0 @@ -# Download new TLS certs from Windows Update -Write-Host "Updating TLS certificate store at:" -Get-Date -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "_tlscerts" | Out-Null -$certdir = (New-Item -ItemType Directory -Name "_tlscerts") -certutil -syncwithWU "$certdir" -Foreach ($file in (Get-ChildItem -Path "$certdir\*" -Include "*.crt")) { - Import-Certificate -FilePath $file -CertStoreLocation Cert:\LocalMachine\Root | Out-Null -} -Remove-Item -Recurse -Path $certdir - -Write-Host "Installing graphics tools (DirectX debug layer) at:" -Get-Date -Set-Service -Name wuauserv -StartupType Manual -if (!$?) { - Write-Host "Failed to enable Windows Update" - Exit 1 -} - -For ($i = 0; $i -lt 5; $i++) { - Dism /online /quiet /add-capability /capabilityname:Tools.Graphics.DirectX~~~~0.0.1.0 - $graphics_tools_installed = $? - if ($graphics_tools_installed) { - Break - } -} - -if (!$graphics_tools_installed) { - Write-Host "Failed to install graphics tools" - Get-Content C:\Windows\Logs\DISM\dism.log - Exit 1 -} - -Write-Host "Installing Chocolatey at:" -Get-Date -Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) -Import-Module "$env:ProgramData\chocolatey\helpers\chocolateyProfile.psm1" -# Add Chocolatey's native install path -Update-SessionEnvironment -Write-Host "Installing Chocolatey packages at:" -Get-Date - -# Chocolatey tries to download winflexbison3 from github, which is not super reliable, and has no retry -# loop of its own - so we give it a helping hand here -For ($i = 0; $i -lt 5; $i++) { - choco install --no-progress -y python3 - $python_install = $? - choco install --allow-empty-checksums --no-progress -y cmake git git-lfs ninja pkgconfiglite winflexbison3 --installargs "ADD_CMAKE_TO_PATH=System" - $other_install = $? - $choco_installed = $other_install -and $python_install - if ($choco_installed) { - Break - } -} - -if (!$choco_installed) { - Write-Host "Couldn't install dependencies from Chocolatey" - Exit 1 -} - -# Add Chocolatey's newly installed package path -Update-SessionEnvironment - -Start-Process -NoNewWindow -Wait git -ArgumentList 'config --global core.autocrlf false' - -Write-Host "Upgrading pip at:" -Get-Date -python -m pip install --upgrade pip --progress-bar off -Write-Host "Installing python packages at:" -Get-Date -pip3 install packaging meson mako numpy --progress-bar off -if (!$?) { - Write-Host "Failed to install dependencies from pip" - Exit 1 -} -Write-Host "Installing python packages finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_d3d.ps1 b/.gitlab-ci/windows/mesa_deps_d3d.ps1 deleted file mode 100644 index d25b0ab48..000000000 --- a/.gitlab-ci/windows/mesa_deps_d3d.ps1 +++ /dev/null @@ -1,49 +0,0 @@ -# Downloading specified D3D runtime -# Touch this file needs update both WINDOWS_X64_BUILD_TAG WINDOWS_X64_TEST_TAG -# This file needs run in administrator mode - -$ProgressPreference = "SilentlyContinue" - -$depsInstallPath="C:\mesa-deps" - -Write-Host "Downloading DirectX 12 Agility SDK at:" -Get-Date -Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/1.613.2 -OutFile 'agility.zip' -Expand-Archive -Path 'agility.zip' -DestinationPath 'C:\agility' -# Copy Agility SDK into mesa-deps\bin\D3D12 -New-Item -ErrorAction SilentlyContinue -ItemType Directory -Path $depsInstallPath\bin -Name 'D3D12' -Copy-Item 'C:\agility\build\native\bin\x64\*.dll' -Destination $depsInstallPath\bin\D3D12 -Remove-Item 'agility.zip' -Remove-Item -Recurse 'C:\agility' - -Write-Host "Downloading Updated WARP at:" -Get-Date -Invoke-WebRequest -Uri https://www.nuget.org/api/v2/package/Microsoft.Direct3D.WARP/1.0.11 -OutFile 'warp.zip' -Expand-Archive -Path 'warp.zip' -DestinationPath 'C:\warp' -# Copy WARP into mesa-deps\bin -Copy-Item 'C:\warp\build\native\amd64\d3d10warp.dll' -Destination $depsInstallPath\bin -Remove-Item 'warp.zip' -Remove-Item -Recurse 'C:\warp' - -Write-Host "Downloading DirectXShaderCompiler release at:" -Get-Date -Invoke-WebRequest -Uri https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2403/dxc_2024_03_07.zip -OutFile 'DXC.zip' -Expand-Archive -Path 'DXC.zip' -DestinationPath 'C:\DXC' -# No more need to get dxil.dll from the VS install -Copy-Item 'C:\DXC\bin\x64\*.dll' -Destination 'C:\Windows\System32' -Remove-Item -Recurse 'DXC.zip' -Remove-Item -Recurse 'C:\DXC' - -Write-Host "Enabling developer mode at:" -Get-Date -# Create AppModelUnlock if it doesn't exist, required for enabling Developer Mode -$RegistryKeyPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock" -if (-not(Test-Path -Path $RegistryKeyPath)) { - New-Item -Path $RegistryKeyPath -ItemType Directory -Force -} - -# Add registry value to enable Developer Mode -New-ItemProperty -Path $RegistryKeyPath -Name AllowDevelopmentWithoutDevLicense -PropertyType DWORD -Value 1 -Force - -Write-Host "Complete download D3D at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_libva.ps1 b/.gitlab-ci/windows/mesa_deps_libva.ps1 deleted file mode 100644 index e6b9fb696..000000000 --- a/.gitlab-ci/windows/mesa_deps_libva.ps1 +++ /dev/null @@ -1,79 +0,0 @@ -# Compiling libva/libva-utils deps - -$ProgressPreference = "SilentlyContinue" -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "deps" | Out-Null -$depsInstallPath="C:\mesa-deps" - -Write-Host "Cloning libva at:" -Get-Date -git clone https://github.com/intel/libva.git deps/libva -if (!$?) { - Write-Host "Failed to clone libva repository" - Exit 1 -} - -Write-Host "Cloning libva finished at:" -Get-Date - -Write-Host "Building libva at:" -Get-Date - -Push-Location -Path ".\deps\libva" -Write-Host "Checking out libva..." -git checkout 2.21.0 -Pop-Location - -# libva already has a build dir in their repo, use builddir instead -$libva_build = New-Item -ItemType Directory -Path ".\deps\libva" -Name "builddir" -Push-Location -Path $libva_build.FullName -meson .. -Dprefix="$depsInstallPath" -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libva_build -if (!$buildstatus) { - Write-Host "Failed to compile libva" - Exit 1 -} - -Write-Host "Building libva finished at:" -Get-Date - -Write-Host "Cloning libva-utils at:" -Get-Date -git clone https://github.com/intel/libva-utils.git deps/libva-utils -if (!$?) { - Write-Host "Failed to clone libva-utils repository" - Exit 1 -} - -Write-Host "Cloning libva-utils finished at:" -Get-Date - -Write-Host "Building libva-utils at:" -Get-Date - -Push-Location -Path ".\deps\libva-utils" -Write-Host "Checking out libva-utils..." -git checkout 2.21.0 -Pop-Location - -Write-Host "Building libva-utils" -# libva-utils already has a build dir in their repo, use builddir instead -$libva_utils_build = New-Item -ItemType Directory -Path ".\deps\libva-utils" -Name "builddir" -Push-Location -Path $libva_utils_build.FullName -meson .. -Dprefix="$depsInstallPath" --pkg-config-path="$depsInstallPath\lib\pkgconfig;$depsInstallPath\share\pkgconfig" -ninja -j32 install -$buildstatus = $? -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libva_utils_build -if (!$buildstatus) { - Write-Host "Failed to compile libva-utils" - Exit 1 -} - -Write-Host "Building libva-utils finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_msvc.ps1 b/.gitlab-ci/windows/mesa_deps_msvc.ps1 deleted file mode 100644 index 50702ba5f..000000000 --- a/.gitlab-ci/windows/mesa_deps_msvc.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -# we want more secure TLS 1.2 for most things -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; - -# VS17.x is 2022 -$msvc_url = 'https://aka.ms/vs/17/release/vs_buildtools.exe' - -Write-Host "Downloading Visual Studio 2022 build tools at:" -Get-Date -Invoke-WebRequest -Uri $msvc_url -OutFile C:\vs_buildtools.exe - -Write-Host "Installing Visual Studio 2022 at:" -Get-Date -# Command line -# https://docs.microsoft.com/en-us/visualstudio/install/command-line-parameter-examples?view=vs-2022 -# Component ids -# https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-build-tools?view=vs-2022 -# https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community?view=vs-2022 -Start-Process -NoNewWindow -Wait -FilePath C:\vs_buildtools.exe ` --ArgumentList ` -"--wait", ` -"--quiet", ` -"--norestart", ` -"--nocache", ` -"--installPath", "C:\BuildTools", ` -"--add", "Microsoft.VisualStudio.Component.VC.Redist.14.Latest", ` -"--add", "Microsoft.VisualStudio.Component.VC.ASAN", ` # MSVC 2022 -"--add", "Microsoft.VisualStudio.Component.VC.ATL", ` -"--add", "Microsoft.VisualStudio.Component.VC.ATLMFC", ` -"--add", "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", ` -"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.ATL", ` # MSVC 2019 -"--add", "Microsoft.VisualStudio.Component.VC.14.29.16.11.MFC", ` -"--add", "Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", ` -"--add", "Microsoft.VisualStudio.Component.VC.Llvm.Clang", ` -"--add", "Microsoft.VisualStudio.Component.Graphics.Tools", ` -"--add", "Microsoft.VisualStudio.Component.Windows10SDK.20348" - -if (!$?) { - Write-Host "Failed to install Visual Studio tools" - Exit 1 -} -Remove-Item C:\vs_buildtools.exe -Force - -Write-Host "Installing Visual Studio 2022 finished at:" -Get-Date - -Exit 0 diff --git a/.gitlab-ci/windows/mesa_deps_rust.ps1 b/.gitlab-ci/windows/mesa_deps_rust.ps1 deleted file mode 100644 index 0545d2e09..000000000 --- a/.gitlab-ci/windows/mesa_deps_rust.ps1 +++ /dev/null @@ -1,17 +0,0 @@ -# Installing rust compiler -# Touch this file needs update both WINDOWS_X64_BUILD_TAG WINDOWS_X64_TEST_TAG -# This file needs run in administrator mode - -$ProgressPreference = "SilentlyContinue" - -Write-Host "Installing rust at:" -Get-Date -$url = 'https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe'; -Write-Host ('Downloading {0} ...' -f $url); -Invoke-WebRequest -Uri $url -OutFile 'rustup-init.exe'; -Write-Host "Installing rust toolchain" -.\rustup-init.exe -y; -Remove-Item rustup-init.exe; - -Write-Host "Installing rust finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_test.ps1 b/.gitlab-ci/windows/mesa_deps_test.ps1 deleted file mode 100644 index d53157c9b..000000000 --- a/.gitlab-ci/windows/mesa_deps_test.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -# Compiling tests deps - -$ProgressPreference = "SilentlyContinue" -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -$spirv_samples_source = Join-Path -Path "$PWD" -ChildPath "spirv-samples" - -Write-Host "Cloning spirv-samples at:" -Get-Date -New-Item -ItemType Directory -Path "$spirv_samples_source" | Out-Null -Push-Location -Path $spirv_samples_source -git init -git remote add origin https://github.com/dneto0/spirv-samples.git -git fetch --depth 1 origin 36372636df06a24c4e2de1551beee055db01b91d # of branch main -if (!$?) { - Write-Host "Failed to fetch spirv-samples repository" - Pop-Location - Exit 1 -} -git checkout FETCH_HEAD -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$spirv_samples_source\.git" | Out-Null - -Write-Host "Cloning spirv-samples finished at:" -Get-Date - -Write-Host "Complete Dockerfile_test at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_test_deqp.ps1 b/.gitlab-ci/windows/mesa_deps_test_deqp.ps1 deleted file mode 100644 index 503803c28..000000000 --- a/.gitlab-ci/windows/mesa_deps_test_deqp.ps1 +++ /dev/null @@ -1,88 +0,0 @@ -# Compiling deqp - -$ProgressPreference = "SilentlyContinue" -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -$source_dir = Join-Path -Path "$PWD" -ChildPath "src" -$deqp_source = Join-Path -Path "$source_dir" -ChildPath "VK-GL-CTS" -$deqp_build = Join-Path -Path "$PWD" -ChildPath "deqp" - -Write-Host "Cloning Vulkan and GL Conformance Tests at:" -Get-Date -New-Item -ItemType Directory -Path "$deqp_source" | Out-Null -Push-Location -Path $deqp_source -git init -git remote add origin https://github.com/KhronosGroup/VK-GL-CTS.git -git fetch --depth 1 origin 56114106d860c121cd6ff0c3b926ddc50c4c11fd # of branch vulkan-cts-1.3.4 -if (!$?) { - Write-Host "Failed to fetch deqp repository" - Pop-Location - Exit 1 -} -git checkout FETCH_HEAD - -Write-Host "Fetch sources inside $deqp_source at:" -Get-Date -# --insecure is due to SSL cert failures hitting sourceforge for zlib and -# libpng (sigh). The archives get their checksums checked anyway, and git -# always goes through ssh or https. -py .\external\fetch_sources.py --insecure -Pop-Location - -Write-Host "Compiling deqp at:" -Get-Date -New-Item -ItemType Directory -Path "$deqp_build" | Out-Null -Push-Location -Path $deqp_build -cmake -S $($deqp_source) ` --B . ` --GNinja ` --DCMAKE_BUILD_TYPE=Release ` --DDEQP_TARGET=default && ` -ninja -j32 -if (!$?) { - Write-Host "Failed to compile deqp" - Pop-Location - Exit 1 -} -Pop-Location - -# Copy test result templates -Copy-Item -Path "$($deqp_source)\doc\testlog-stylesheet\testlog.css" -Destination $deqp_build -Copy-Item -Path "$($deqp_source)\doc\testlog-stylesheet\testlog.xsl" -Destination $deqp_build - -# Copy Vulkan must-pass list -$deqp_mustpass = New-Item -ItemType Directory -Path $deqp_build -Name "mustpass" -$root_mustpass = Join-Path -Path $deqp_source -ChildPath "external\vulkancts\mustpass\main" -$files = Get-Content "$($root_mustpass)\vk-default.txt" -foreach($file in $files) { - Get-Content "$($root_mustpass)\$($file)" | Add-Content -Path "$($deqp_mustpass)\vk-main.txt" -} - -Write-Host "Installing deqp-runner at:" -Get-Date -$env:Path += ";$($env:USERPROFILE)\.cargo\bin" -cargo install --git https://gitlab.freedesktop.org/anholt/deqp-runner.git --tag v0.16.1 - -$depsInstallPath="C:\mesa-deps" -$vk_cts_bin = "$deqp_build\external\vulkancts\modules\vulkan" - -# Hard link Agility SDK into subfolder of Vulkan CTS -$agility_dest = New-Item -ItemType Directory -Path $vk_cts_bin -Name 'D3D12' -New-Item -ItemType HardLink -path $agility_dest\D3D12Core.dll -Value $depsInstallPath\bin\D3D12\D3D12Core.dll -New-Item -ItemType HardLink -path $agility_dest\d3d12SDKLayers.dll -Value $depsInstallPath\bin\D3D12\d3d12SDKLayers.dll - -# Hard link WARP next to Vulkan CTS -New-Item -ItemType HardLink -path $vk_cts_bin\d3d10warp.dll -Value $depsInstallPath\bin\d3d10warp.dll - -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$source_dir" | Out-Null - -# Cleanup deqp intermediate files -Get-ChildItem -Force -ErrorAction SilentlyContinue -Recurse "$deqp_build" | Where-Object { - if($_.FullName -match "CMake|.git|.lib"){ - Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $_.FullName | Out-Null - } -} - -Write-Host "Compiling deqp finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_test_piglit.ps1 b/.gitlab-ci/windows/mesa_deps_test_piglit.ps1 deleted file mode 100644 index c88537959..000000000 --- a/.gitlab-ci/windows/mesa_deps_test_piglit.ps1 +++ /dev/null @@ -1,103 +0,0 @@ -# Compiling Piglit - -$ProgressPreference = "SilentlyContinue" -$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent -. "$MyPath\mesa_init_msvc.ps1" - -$source_dir = Join-Path -Path "$PWD" -ChildPath "src" -$waffle_source = Join-Path -Path "$source_dir" -ChildPath "waffle" -$waffle_install = Join-Path -Path "$PWD" -ChildPath "waffle" -$piglit_source = Join-Path -Path "$PWD" -ChildPath "Piglit" - -Write-Host "Cloning Waffle at:" -Get-Date -New-Item -ItemType Directory -Path "$waffle_source" | Out-Null -Push-Location -Path $waffle_source -git init -git remote add origin https://gitlab.freedesktop.org/mesa/waffle.git -git fetch --depth 1 origin 950a1f35a718bc2a8e1dda75845e52651bb331a7 # of branch master -if (!$?) { - Write-Host "Failed to fetch Waffle repository" - Pop-Location - Exit 1 -} -git checkout FETCH_HEAD -Pop-Location - -Write-Host "Compiling Waffle at:" -Get-Date -$waffle_build = Join-Path -Path "$source_dir" -ChildPath "waffle\build" -New-Item -ItemType Directory -Path "$waffle_build" | Out-Null -Push-Location -Path $waffle_build -meson setup ` ---buildtype=release ` ---default-library=static ` ---prefix="$waffle_install" && ` -ninja -j32 install -if (!$?) { - Write-Host "Failed to compile or install Waffle" - Pop-Location - Exit 1 -} -Pop-Location -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$waffle_build" | Out-Null - -Write-Host "Downloading glext.h at:" -Get-Date -New-Item -ItemType Directory -Path "$source_dir\glext\GL" | Out-Null -Invoke-WebRequest -Uri 'https://github.com/KhronosGroup/OpenGL-Registry/raw/main/api/GL/glext.h' -OutFile "$source_dir\glext\GL\glext.h" | Out-Null - -Write-Host "Cloning Piglit at:" -Get-Date -New-Item -ItemType Directory -Path "$piglit_source" | Out-Null -Push-Location -Path $piglit_source -git init -git remote add origin https://gitlab.freedesktop.org/mesa/piglit.git -git fetch --depth 1 origin 814046fe6942eac660ee4a6cc5fcc54011a49945 # of branch main -if (!$?) { - Write-Host "Failed to fetch Piglit repository" - Pop-Location - Exit 1 -} -git checkout FETCH_HEAD - -Write-Host "Compiling Piglit at:" -Get-Date -cmake -S . -B . ` --GNinja ` --DCMAKE_BUILD_TYPE=Release ` --DPIGLIT_USE_WAFFLE=ON ` --DWaffle_INCLUDE_DIRS="$waffle_install\include\waffle-1" ` --DWaffle_LDFLAGS="$waffle_install\lib\libwaffle-1.a" ` --DGLEXT_INCLUDE_DIR="$source_dir\glext" && ` -ninja -j32 -if (!$?) { - Write-Host "Failed to compile Piglit" - Pop-Location - Exit 1 -} -Pop-Location - -$depsInstallPath="C:\mesa-deps" -$piglit_bin = "$piglit_source\bin" - -# Hard link Agility SDK into subfolder of piglit -$agility_dest = New-Item -ItemType Directory -Path $piglit_bin -Name 'D3D12' -New-Item -ItemType HardLink -path $agility_dest\D3D12Core.dll -Value $depsInstallPath\bin\D3D12\D3D12Core.dll -New-Item -ItemType HardLink -path $agility_dest\d3d12SDKLayers.dll -Value $depsInstallPath\bin\D3D12\d3d12SDKLayers.dll - -# Hard link WARP next to piglit -New-Item -ItemType HardLink -path $piglit_bin\d3d10warp.dll -Value $depsInstallPath\bin\d3d10warp.dll - -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$source_dir" | Out-Null -Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path "$waffle_install" | Out-Null - -# Cleanup piglit intermediate files -Get-ChildItem -Force -ErrorAction SilentlyContinue -Recurse "$piglit_source" | Where-Object { - if($_.FullName -match "CMake|.git|.lib"){ - Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $_.FullName | Out-Null - } -} - -Write-Host "Compiling Piglit finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 b/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 deleted file mode 100644 index f2d0ec248..000000000 --- a/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 +++ /dev/null @@ -1,39 +0,0 @@ -# Downloading specified vulkan sdk and vulkan runtime -# Touch this file needs update both WINDOWS_X64_BUILD_TAG WINDOWS_X64_TEST_TAG -# This file needs run in administrator mode - -$env:VULKAN_SDK_VERSION="1.3.275.0" - -$ProgressPreference = "SilentlyContinue" - -# Save environment VULKAN_SDK_VERSION to system -[System.Environment]::SetEnvironmentVariable('VULKAN_SDK_VERSION', "$env:VULKAN_SDK_VERSION", [System.EnvironmentVariableTarget]::Machine) - -$VULKAN_SDK_URL="https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanSDK-$env:VULKAN_SDK_VERSION-Installer.exe" -Write-Host "Downloading Vulkan-SDK $VULKAN_SDK_URL at:" -Get-Date -Invoke-WebRequest -Uri "$VULKAN_SDK_URL" -OutFile "${env:TMP}\vulkan_sdk.exe" | Out-Null -Write-Host "Installing Vulkan-SDK at:" -Get-Date -Start-Process -NoNewWindow -Wait "${env:TMP}\vulkan_sdk.exe" -ArgumentList "--am --al -c in" -if (!$?) { - Write-Host "Failed to install Vulkan SDK" - Exit 1 -} -Remove-Item "${env:TMP}\vulkan_sdk.exe" -Force - -$VULKAN_RUNTIME_URL="https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanRT-$env:VULKAN_SDK_VERSION-Installer.exe" -Write-Host "Downloading Vulkan-Runtime $VULKAN_RUNTIME_URL at:" -Get-Date -Invoke-WebRequest -Uri "$VULKAN_RUNTIME_URL" -OutFile "${env:TMP}\vulkan-runtime.exe" | Out-Null -Write-Host "Installing Vulkan-Runtime at:" -Get-Date -Start-Process -NoNewWindow -Wait "${env:TMP}\vulkan-runtime.exe" -ArgumentList '/S' -if (!$?) { - Write-Host "Failed to install Vulkan-Runtime" - Exit 1 -} -Remove-Item "${env:TMP}\vulkan-runtime.exe" -Force - -Write-Host "Installing Vulkan-Runtime finished at:" -Get-Date diff --git a/.gitlab-ci/windows/mesa_init_msvc.ps1 b/.gitlab-ci/windows/mesa_init_msvc.ps1 deleted file mode 100644 index 01aadb648..000000000 --- a/.gitlab-ci/windows/mesa_init_msvc.ps1 +++ /dev/null @@ -1,17 +0,0 @@ -$vsInstallPath=& "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -version 16.0 -property installationpath -Write-Output "vswhere.exe installPath: $vsInstallPath" -$vsInstallPath = if ("$vsInstallPath" -eq "" ) { "C:\BuildTools" } else { "$vsInstallPath" } -Write-Output "Final installPath: $vsInstallPath" -Import-Module (Join-Path $vsInstallPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll") -# https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B -# VS2015 14.0 use -vcvars_ver=14.0 -# VS2017 14.1 to 14.16 use -vcvars_ver=14.16 -# VS2019 14.20 to 14.29 use -vcvars_ver=14.29 -# VS2022 14.30 to 14.38 (not finished yet) use -vcvars_ver=14 to choose the newest version - -$vcvars_ver_arg=$args -if ($null -eq $vcvars_ver_arg[0]) { - $vcvars_ver_arg="-vcvars_ver=14.29" -} - -Enter-VsDevShell -VsInstallPath $vsInstallPath -SkipAutomaticLocation -DevCmdArguments "$vcvars_ver_arg -arch=x64 -no_logo -host_arch=amd64" diff --git a/.gitlab-ci/windows/piglit_run.ps1 b/.gitlab-ci/windows/piglit_run.ps1 deleted file mode 100644 index 2f787647f..000000000 --- a/.gitlab-ci/windows/piglit_run.ps1 +++ /dev/null @@ -1,20 +0,0 @@ -$env:PIGLIT_NO_FAST_SKIP = 1 -$env:PIGLIT_SPIRV_AS_BINARY = "C:\VulkanSDK\$env:VULKAN_SDK_VERSION\Bin\spirv-as.exe" - -Copy-Item -Path _install\bin\opengl32.dll -Destination C:\Piglit\bin\opengl32.dll -Copy-Item -Path _install\bin\libgallium_wgl.dll -Destination C:\Piglit\bin\libgallium_wgl.dll -Copy-Item -Path _install\bin\libglapi.dll -Destination C:\Piglit\bin\libglapi.dll - -$jobs = "" -if ($null -ne $env:FDO_CI_CONCURRENT) { - $jobs = "--jobs", "$($env:FDO_CI_CONCURRENT)" -} - -deqp-runner suite --output .\logs --suite "_install/$env:PIGLIT_SUITE" ` - --skips "_install/$env:PIGLIT_SKIPS" ` - --baseline "_install/$env:PIGLIT_BASELINE" ` - --flakes "_install/$env:PIGLIT_FLAKES" ` - $jobs -if (!$?) { - Exit 1 -} diff --git a/.gitlab-ci/windows/spirv2dxil_check.ps1 b/.gitlab-ci/windows/spirv2dxil_check.ps1 deleted file mode 100644 index 94735c9f1..000000000 --- a/.gitlab-ci/windows/spirv2dxil_check.ps1 +++ /dev/null @@ -1,46 +0,0 @@ -$exec_mode_to_stage = @{ Fragment = "fragment"; Vertex = "vertex"; GLCompute = "compute" } - -$spvasm_files = (Get-ChildItem C:\spirv-samples\spvasm\*.spvasm) | Sort-Object Name -foreach ($spvasm in $spvasm_files) { - $test_name = "Test:$($spvasm.Name):" - $spvfile = ($spvasm -replace '\.spvasm$', '.spv') - $content = Get-Content $spvasm - $spv_version = "1.0" - if ($content | Where-Object { $_ -match 'Version:\s(\d+\.\d+)' }) { - $spv_version = $Matches[1] - } - - $as_output = . "$env:VULKAN_SDK\Bin\spirv-as.exe" --target-env spv$spv_version --preserve-numeric-ids -o $spvfile $spvasm 2>&1 | % { if ($_ -is [System.Management.Automation.ErrorRecord]) { $_.Exception.Message } else { $_ } } | Out-String - if ($LASTEXITCODE -ne 0) { - Write-Output "$test_name Skip: Unable to assemble shader" - Write-Output "$as_output`n" - continue - } - - $entry_points = $content | Select-String -Pattern '^OpEntryPoint\s(\w+)[^"]+"(\w+)"' | Select-Object -ExpandProperty Matches -First 1 - if ($entry_points.Count -eq 0) { - Write-Output "$test_name Skip" - Write-Output "No OpEntryPoint not found`n" - continue - } - - foreach ($match in $entry_points) { - $exec_mode, $entry_point = $match.Groups[1].Value, $match.Groups[2].Value - $subtest = "$test_name$entry_point|${exec_mode}:" - $stage = $exec_mode_to_stage[$exec_mode] - if ($stage -eq '') { - Write-Output "$subtest Fail: Unknown shader type ($exec_mode)" - continue - } - - $s2d_output = .\_install\bin\spirv2dxil.exe -v -e "$entry_point" -s "$stage" -o NUL $spvfile 2>&1 | ForEach-Object { if ($_ -is [System.Management.Automation.ErrorRecord]) { $_.Exception.Message } else { $_ } } | Out-String - if ($LASTEXITCODE -eq 0) { - Write-Output "$subtest Pass" - } - else { - Write-Output "$subtest Fail" - $sanitized_output = $s2d_output -replace ', file .+, line \d+' -replace ' In file .+:\d+' - Write-Output "$sanitized_output`n" - } - } -} diff --git a/.gitlab-ci/windows/spirv2dxil_run.ps1 b/.gitlab-ci/windows/spirv2dxil_run.ps1 deleted file mode 100644 index ae6c1c2cd..000000000 --- a/.gitlab-ci/windows/spirv2dxil_run.ps1 +++ /dev/null @@ -1,16 +0,0 @@ -. .\_install\spirv2dxil_check.ps1 2>&1 | Set-Content -Path .\spirv2dxil_results.txt -$reference = Get-Content .\_install\spirv2dxil_reference.txt -$result = Get-Content .\spirv2dxil_results.txt -if (-Not ($reference -And $result)) { - Exit 1 -} - -$diff = Compare-Object -ReferenceObject $reference -DifferenceObject $result -if (-Not $diff) { - Exit 0 -} - -Write-Host "Unexpected change in results:" -Write-Output $diff | Format-Table -Property SideIndicator, InputObject -Wrap - -Exit 1 diff --git a/.gitlab-ci/windows/vainfo_run.ps1 b/.gitlab-ci/windows/vainfo_run.ps1 deleted file mode 100644 index a02e6c57d..000000000 --- a/.gitlab-ci/windows/vainfo_run.ps1 +++ /dev/null @@ -1,99 +0,0 @@ - -function Deploy-Dependencies { - param ( - [string] $deploy_directory - ) - - Write-Host "Copying libva runtime and driver at:" - Get-Date - - # Copy the VA runtime binaries from the mesa built dependencies so the versions match with the built mesa VA driver binary - $depsInstallPath="C:\mesa-deps" - Copy-Item "$depsInstallPath\bin\vainfo.exe" -Destination "$deploy_directory\vainfo.exe" - Copy-Item "$depsInstallPath\bin\va_win32.dll" -Destination "$deploy_directory\va_win32.dll" - Copy-Item "$depsInstallPath\bin\va.dll" -Destination "$deploy_directory\va.dll" - - # Copy Agility SDK into D3D12 subfolder of vainfo - New-Item -ItemType Directory -Force -Path "$deploy_directory\D3D12" | Out-Null - Copy-Item "$depsInstallPath\bin\D3D12\D3D12Core.dll" -Destination "$deploy_directory\D3D12\D3D12Core.dll" - Copy-Item "$depsInstallPath\bin\D3D12\d3d12SDKLayers.dll" -Destination "$deploy_directory\D3D12\d3d12SDKLayers.dll" - - # Copy WARP next to vainfo - Copy-Item "$depsInstallPath\bin\d3d10warp.dll" -Destination "$deploy_directory\d3d10warp.dll" - - Write-Host "Copying libva runtime and driver finished at:" - Get-Date -} - -function Check-VAInfo-Entrypoint { - param ( - [string] $vainfo_app_path, - [string] $entrypoint - ) - - $vainfo_run_cmd = "$vainfo_app_path --display win32 --device 0 2>&1 | Select-String $entrypoint -Quiet" - Write-Host "Running: $vainfo_run_cmd" - $vainfo_ret_code= Invoke-Expression $vainfo_run_cmd - if (-not($vainfo_ret_code)) { - return 0 - } - return 1 -} - -# Set testing environment variables -$successful_run=1 -$testing_dir="$PWD\_install\bin" # vaon12_drv_video.dll is placed on this directory by the build -$vainfo_app_path = "$testing_dir\vainfo.exe" - -# Deploy vainfo and dependencies -Deploy-Dependencies -deploy_directory $testing_dir - -# Set VA runtime environment variables -$env:LIBVA_DRIVER_NAME="vaon12" -$env:LIBVA_DRIVERS_PATH="$testing_dir" - -Write-Host "LIBVA_DRIVER_NAME: $env:LIBVA_DRIVER_NAME" -Write-Host "LIBVA_DRIVERS_PATH: $env:LIBVA_DRIVERS_PATH" - -# Check video processing entrypoint is supported -# Inbox WARP/D3D12 supports this entrypoint with VA frontend shaders support (e.g no video APIs support required) -$entrypoint = "VAEntrypointVideoProc" - -# First run without app verifier -Write-Host "Disabling appverifier for $vainfo_app_path and checking for the presence of $entrypoint supported..." -appverif.exe /disable * -for "$vainfo_app_path" -$result_without_appverifier = Check-VAInfo-Entrypoint -vainfo_app_path $vainfo_app_path -entrypoint $entrypoint -if ($result_without_appverifier -eq 1) { - Write-Host "Process exited successfully." -} else { - $successful_run=0 - Write-Error "Process exit not successful for $vainfo_run_cmd. Please see vainfo verbose output below for diagnostics..." - # verbose run to print more info on error (helpful to investigate issues from the CI output) - Invoke-Expression "$vainfo_app_path -a --display win32 --device help" - Invoke-Expression "$vainfo_app_path -a --display win32 --device 0" -} - -# Enable appverif and run again -Write-Host "Enabling appverifier for $vainfo_app_path and checking for the presence of $entrypoint supported..." -appverif.exe /logtofile enable -appverif.exe /verify "$vainfo_app_path" -appverif.exe /enable "Leak" -for "$vainfo_app_path" -$verifier_log_path="$testing_dir\vainfo_appverif_log.xml" -$result_with_appverifier = Check-VAInfo-Entrypoint -vainfo_app_path $vainfo_app_path -entrypoint $entrypoint -if ($result_with_appverifier -eq 1) { - Write-Host "Process exited successfully." - appverif.exe /logtofile disable -} else { - Write-Host "Process failed. Please see Application Verifier log contents below." - # Need to wait for appverif to exit before gathering log - Start-Process -Wait -FilePath "appverif.exe" -ArgumentList "-export", "log", "-for", "$vainfo_app_path", "-with", "to=$verifier_log_path" - Get-Content $verifier_log_path - Write-Error "Process exit not successful for $vainfo_run_cmd." - appverif.exe /logtofile disable - $successful_run=0 -} - -if ($successful_run -ne 1) { - Exit 1 -} - diff --git a/.gitlab-ci/x11-skips.txt b/.gitlab-ci/x11-skips.txt deleted file mode 100644 index 957f8b7c9..000000000 --- a/.gitlab-ci/x11-skips.txt +++ /dev/null @@ -1,19 +0,0 @@ -# These tests all read from the front buffer after a swap. Given that we -# run piglit tests in parallel in Mesa CI, and don't have a compositor -# running, the frontbuffer reads may end up with undefined results from -# windows overlapping us. -# -# Piglit does mark these tests as not to be run in parallel, but deqp-runner -# doesn't respect that. We need to extend deqp-runner to allow some tests to be -# marked as single-threaded and run after the rayon loop if we want to support -# them. -# -# Other front-buffer access tests like fbo-sys-blit, fbo-sys-sub-blit, or -# fcc-front-buffer-distraction don't appear here, because the DRI3 fake-front -# handling should be holding the pixels drawn by the test even if we happen to fail -# GL's window system pixel occlusion test. -# -# Note that glx skips don't appear here, they're in all-skips.txt (in case someone -# sets PIGLIT_PLATFORM=gbm to mostly use gbm, but still has an X server running). -spec@!opengl 1.0@gl-1.0-swapbuffers-behavior -spec@!opengl 1.1@read-front diff --git a/.gitlab/issue_templates/Bug Report - AMD Radeon Vulkan.md b/.gitlab/issue_templates/Bug Report - AMD Radeon Vulkan.md deleted file mode 100644 index 98251fb85..000000000 --- a/.gitlab/issue_templates/Bug Report - AMD Radeon Vulkan.md +++ /dev/null @@ -1,75 +0,0 @@ -### Before submitting your bug report: -- Check if a new version of Mesa is available which might have fixed the problem. -- If you can, check if the latest development version (git main) works better. -- Check if your bug has already been reported here. -- For any logs, backtraces, etc - use [code blocks](https://docs.gitlab.com/ee/user/markdown.html#code-spans-and-blocks), GitLab removes line breaks without this. - - Do not paste long logs directly into the description. Use https://gitlab.freedesktop.org/-/snippets/new, attachments, or a pastebin with a long expiration instead. -- As examples of good bug reports you may review one of these - #2598, #2615, #2608 - - -Otherwise, fill the requested information below. -And please remove anything that doesn't apply to keep things readable :) - - -The title should effectively distinguish this bug report from others and be specific to issue you encounter. When writing the title of the bug report, include a short description of the issue, the hardware/driver(s) affected and application(s) affected. - - -### Description - -Describe what you are doing, what you expect and what you're -seeing instead. How frequent is the issue? Is it a one time occurrence? Does it appear multiple times but randomly? Can you easily reproduce it? - -"It doesn't work" usually is not a helpful description of an issue. -The more detail about how things are going wrong, the better. - -### Screenshots/video files - -For rendering errors, attach screenshots of the problem and (if possible) of how it should look. For freezes, it may be useful to provide a screenshot of the affected game scene. Prefer screenshots over videos. - -### Log files (for system lockups / game freezes / crashes) - -- Backtrace (for crashes) -- Output of `dmesg` -- Hang reports: Run with `RADV_DEBUG=hang` and attach the files created in `$HOME/radv_dumps_*/` - -### Steps to reproduce - -How can Mesa developers reproduce the issue? When reporting a game issue, start explaining from a fresh save file and don't assume prior knowledge of the game's story. - -Example: - -1. `Start new game and enter second mission (takes about 10 minutes)` -2. `Talk to the NPC called "Frank"` -3. `Observe flickering on Frank's body` - -### System information - -Please post `inxi -GSC -xx` output ([fenced with triple backticks](https://docs.gitlab.com/ee/user/markdown.html#code-spans-and-blocks)) OR fill information below manually - - -- OS: (`cat /etc/os-release | grep "NAME"`) -- GPU: (`lspci -nn | grep VGA` or `lshw -C display -numeric`) -- Kernel version: (`uname -a`) -- Mesa version: (`glxinfo -B | grep "OpenGL version string"`) -- Desktop environment: (`env | grep XDG_CURRENT_DESKTOP`) - -#### If applicable -- Xserver version: (`sudo X -version`) -- DXVK version: -- Wine/Proton version: - - -### Regression - -Did it used to work in a previous Mesa version? It can greatly help to know when the issue started. - - -### API captures (if applicable, optional) - -Consider recording a [GFXReconstruct](https://github.com/LunarG/gfxreconstruct/blob/dev/USAGE_desktop_Vulkan.md) (preferred), [RenderDoc](https://renderdoc.org/), or [apitrace](https://github.com/apitrace/apitrace/blob/master/docs/USAGE.markdown) capture of the issue with the RADV driver active. This can tremendously help when debugging issues, but you're still encouraged to report issues if you can't provide a capture file. - -### Further information (optional) - -Does the issue reproduce with the LLVM backend (`RADV_DEBUG=llvm`) or on the AMDGPU-PRO drivers? - -Does your environment set any of the variables `ACO_DEBUG`, `RADV_DEBUG`, and `RADV_PERFTEST`? diff --git a/.gitlab/issue_templates/Bug Report.md b/.gitlab/issue_templates/Bug Report.md deleted file mode 100644 index 474bd8977..000000000 --- a/.gitlab/issue_templates/Bug Report.md +++ /dev/null @@ -1,58 +0,0 @@ -### Before submitting your bug report: -- Check if a new version of Mesa is available which might have fixed the problem. -- If you can, check if the latest development version (git main) works better. -- Check if your bug has already been reported here. -- For any logs, backtraces, etc - use [code blocks](https://docs.gitlab.com/ee/user/markdown.html#code-spans-and-blocks), GitLab removes line breaks without this. - - Do not paste long logs directly into the description. Use https://gitlab.freedesktop.org/-/snippets/new, attachments, or a pastebin with a long expiration instead. -- As examples of good bug reports you may review one of these - #2598, #2615, #2608 - - -Otherwise, please fill the requested information below. -And please remove anything that doesn't apply to keep things readable :) - - -The title should effectively distinguish this bug report from others and be specific to issue you encounter. When writing the title of the bug report, include a short description of the issue, the hardware/driver(s) affected and application(s) affected. - - -### System information - -Please post `inxi -GSC -xx` output ([fenced with triple backticks](https://docs.gitlab.com/ee/user/markdown.html#code-spans-and-blocks)) OR fill information below manually - - -- OS: (`cat /etc/os-release | grep "NAME"`) -- GPU: (`lspci -nn | grep VGA` or `lshw -C display -numeric`) -- Kernel version: (run `uname -a`) -- Mesa version: (`glxinfo -B | grep "OpenGL version string"`) -- Xserver version (if applicable): (`sudo X -version`) -- Desktop manager and compositor: - -#### If applicable -- DXVK version: -- Wine/Proton version: - - -### Describe the issue - -Please describe what you are doing, what you expect and what you're -seeing instead. How frequent is the issue? Is it a one time occurrence? Does it appear multiple times but randomly? Can you easily reproduce it? - -"It doesn't work" usually is not a helpful description of an issue. -The more detail about how things are going wrong, the better. - - -### Regression - -Did it used to work? It can greatly help to know when the issue started. - - -### Log files as attachment -- Output of `dmesg` -- Backtrace -- Gpu hang details - - -### Screenshots/video files (if applicable) - - - -### Any extra information would be greatly appreciated diff --git a/.gitlab/merge_request_templates/Default.md b/.gitlab/merge_request_templates/Default.md deleted file mode 100644 index 131e86ea4..000000000 --- a/.gitlab/merge_request_templates/Default.md +++ /dev/null @@ -1,6 +0,0 @@ -### What does this MR do and why? - - -``` -%{first_multiline_commit} -``` diff --git a/.mailmap b/.mailmap index 9f4f5d9fa..da782338b 100644 --- a/.mailmap +++ b/.mailmap @@ -84,6 +84,8 @@ Ben Widawsky Ben Widawsky Blair Sadewitz Blair Sadewitz +Bob Beckett + Boris Brezillon Boris Peterbarg reist @@ -157,6 +159,8 @@ Christopher James Halse Rogers Christop Christopher Li Chris Li Christopher Li Qicheng Christopher Li +Christopher Michael + Claudio Ciccani Claudio Ciccani @@ -168,7 +172,7 @@ Colin McDonald Connor Abbott Connor Abbott -Konstantin Kharlamov +Constantine Shablia Corbin Simpson Corbin Simpson @@ -192,6 +196,7 @@ David Miller davem69 David Heidelberg David Heidelberger David Heidelberg +David Heidelberg David Reveman @@ -231,7 +236,7 @@ Eric Engestrom Eric Engestrom Eric Engestrom -Erik Faye-Lund +Erik Faye-Lund Eugeni Dodonov @@ -246,9 +251,12 @@ Frank Binns Frank Henigman +Freya Gentz + George Sapountzis George Sapountzis Gert Wollny +Gert Wollny Gurchetan Singh @@ -370,6 +378,9 @@ Karl Schultz Karl Schultz Karl Schultz +Karmjit Mahil +Karmjit Mahil + Karol Herbst Karol Herbst Karol Herbst @@ -384,6 +395,8 @@ Keith Whitwell keithw Kevin Rogovin +Konstantin Kharlamov + Kristian Høgsberg Kristian Høgsberg Kristian Høgsberg @@ -573,9 +586,16 @@ Robert Hooker Rodrigo Vivi +Rohan Garg +Rohan Garg + Roland Scheidegger Roland Scheidegger +Roman Stratiienko +Roman Stratiienko +Roman Stratiienko + Roy Spliet Rune Petersen Rune Peterson @@ -652,7 +672,7 @@ Tom Stellard Tomasz Figa -Tomeu Vizoso +Tomeu Vizoso Topi Pohjolainen diff --git a/.mr-label-maker.yml b/.mr-label-maker.yml index 9294db5b9..a972b79a7 100644 --- a/.mr-label-maker.yml +++ b/.mr-label-maker.yml @@ -15,6 +15,7 @@ issues: 'clc': 'OpenCL' 'clover': 'clover' 'crocus': 'crocus' + 'd3d10umd': 'd3d10umd' 'd3d12': 'd3d12' 'docs': 'docs' 'dozen': 'dozen' @@ -22,10 +23,12 @@ issues: 'dzn': 'dozen' 'egl': 'EGL' 'etnaviv': 'etnaviv' + 'etnaviv/nn': ['etnaviv', 'teflon'] 'freedreno': 'freedreno' 'freedreno/ir3': ['freedreno', 'ir3'] 'gallium': 'gallium' 'gbm': 'gbm' + 'gfxstream': 'gfxstream' 'gitlab-ci': 'CI' 'glsl': 'GLSL' 'glvnd': 'GLVND' @@ -40,47 +43,49 @@ issues: 'iris': 'iris' 'isl': 'ISL' 'lima': 'lima' - 'lima/ppir' : 'lima' + 'lima/ppir': 'lima' 'llvmpipe': 'llvmpipe' - 'mesa' : 'mesa' - 'meson' : 'meson' + 'mesa': 'mesa' + 'meson': 'meson' 'microsoft/compiler': 'd3d12' - 'nak' : 'NAK' - 'nine' : 'nine' + 'nak': 'NAK' + 'nine': 'nine' 'nir': 'NIR' 'nir2dxil': 'd3d12' - 'nouveau' : 'nouveau' - 'nv30' : ['nouveau', 'nv30'] - 'nv50' : ['nouveau', 'nv50'] - 'nv50/ir' : 'nouveau' - 'nvc0' : ['nouveau', 'nvc0'] - 'nvk' : 'NVK' - 'panfrost' : 'panfrost' - 'pan/midgard' : 'panfrost' - 'pvr' : 'powervr' - 'r100' : 'r100' - 'r200' : 'r200' - 'r300' : 'r300' - 'r600' : 'r600' - 'radeonsi' : 'radeonsi' + 'nouveau': 'nouveau' + 'nv30': ['nouveau', 'nv30'] + 'nv50': ['nouveau', 'nv50'] + 'nv50/ir': 'nouveau' + 'nvc0': ['nouveau', 'nvc0'] + 'nvk': 'NVK' + 'panfrost': 'panfrost' + 'panvk': 'panvk' + 'pan/midgard': 'panfrost' + 'pvr': 'powervr' + 'r100': 'r100' + 'r200': 'r200' + 'r300': 'r300' + 'r600': 'r600' + 'radeonsi': 'radeonsi' 'radv': 'RADV' 'radv/aco': ['RADV', 'ACO'] 'rusticl': 'Rusticl' - 'softpipe' : 'softpipe' - 'spirv' : 'SPIR-V' - 'swr' : 'swr' - 'swrast' : 'swrast' - 'tegra' : 'tegra' - 'tgsi' : 'TGSI' + 'softpipe': 'softpipe' + 'spirv': 'SPIR-V' + 'swr': 'swr' + 'swrast': 'swrast' + 'teflon': 'teflon' + 'tegra': 'tegra' + 'tgsi': 'TGSI' 'turnip': 'turnip' - 'util' : 'util' + 'util': 'util' 'v3d': 'v3d' - 'vaapi' : 'VA-API' - 'vc4' : 'vc4' - 'vdpau' : 'VDPAU' - 'vieux' : 'vieux' - 'virgl' : 'virgl' - 'vmwgfx' : 'vmwgfx' + 'vaapi': 'VA-API' + 'vc4': 'vc4' + 'vdpau': 'VDPAU' + 'vieux': 'vieux' + 'virgl': 'virgl' + 'vmwgfx': 'vmwgfx' 'zink': 'zink' titles: &titles @@ -89,20 +94,20 @@ issues: 'coverity': 'coverity' 'deqp': 'deqp' 'feature request': 'feature request' - 'haiku' : 'haiku' + 'haiku': 'haiku' 'regression': 'regression' - 'i915_dri.so' : 'i915' - 'i965_dri.so' : 'i965' - 'iris_dri.so' : 'iris' - 'nouveau_dri.so' : 'nouveau' - 'nouveau_vieux_dri.so' : 'vieux' - 'r200_dri.so' : 'r200' - 'r300_dri.so' : 'r300' - 'r600_dri.so' : 'r600' - 'radeonsi_dri.so' : 'radeonsi' - 'swrast_dri.so' : 'swrast' - 'vmwgfx_dri.so' : 'vmwgfx' + 'i915_dri.so': 'i915' + 'i965_dri.so': 'i965' + 'iris_dri.so': 'iris' + 'nouveau_dri.so': 'nouveau' + 'nouveau_vieux_dri.so': 'vieux' + 'r200_dri.so': 'r200' + 'r300_dri.so': 'r300' + 'r600_dri.so': 'r600' + 'radeonsi_dri.so': 'radeonsi' + 'swrast_dri.so': 'swrast' + 'vmwgfx_dri.so': 'vmwgfx' merge_requests: topics: @@ -111,172 +116,193 @@ merge_requests: *titles paths: - '^.gitlab/issue_templates/' : ['docs'] - '^.gitlab-ci' : ['CI'] - '^.*/gitlab-ci(-inc)?.yml' : ['CI'] - '^.*/ci/deqp-.*\.toml' : ['CI'] - '^.*/ci/.*-(fails|flakes|skips)\.txt' : ['CI'] - '^.*/ci/(restricted-)?traces-.*\.yml' : ['CI'] - '^.*/ci/.*-validation-settings\.txt' : ['CI'] - '^.gitlab-ci/windows/' : ['Windows'] - '^bin/__init__.py$' : ['maintainer-scripts'] - '^bin/gen_release_notes' : ['maintainer-scripts'] - '^bin/git_sha1_gen.py$' : ['meson', 'android'] - '^bin/install_megadrivers.py$' : ['meson'] - '^bin/meson-cmd-extract.py$' : ['meson'] - '^bin/meson.build$' : ['meson'] - '^bin/pick-ui' : ['maintainer-scripts'] - '^bin/pick/' : ['maintainer-scripts'] - '^bin/post_version' : ['maintainer-scripts'] - '^bin/symbols-check.py$' : ['meson'] - '^docs/' : ['docs'] - '^include/drm-uapi/i915_drm.h' : ['intel'] - '^include/drm-uapi/xe_drm.h' : ['intel'] - '^include/vulkan/' : ['vulkan'] - '^meson_options.txt' : ['meson'] - '^README.rst' : ['docs'] - '^src/amd/addrlib/' : ['AMD common'] - '^src/amd/common/' : ['AMD common'] - '^src/amd/compiler/' : ['ACO'] - '^src/amd/llvm/' : ['AMD common'] - '^src/amd/registers/' : ['AMD common'] - '^src/amd/vulkan/' : ['RADV'] - '^src/asahi/' : ['asahi'] - '^src/broadcom/drm-shim/v3d' : ['v3d'] - '^src/broadcom/vulkan/' : ['v3dv'] - '^src/compiler/clc' : ['OpenCL'] - '^src/compiler/glsl' : ['GLSL'] - '^src/compiler/nir' : ['NIR'] - '^src/compiler/spirv/' : ['SPIR-V'] - '^src/egl/' : ['EGL'] - '^src/egl/drivers/wgl/' : ['wgl'] - '^src/etnaviv/' : ['etnaviv'] - '^src/freedreno/' : ['freedreno'] - '^src/freedreno/ir3/' : ['ir3'] - '^src/freedreno/vulkan/' : ['turnip'] - '^src/gallium/auxiliary/' : ['gallium'] - '^src/gallium/auxiliary/nir/' : ['NIR'] - '^src/gallium/auxiliary/nir/.*tgsi.*' : ['TGSI'] - '^src/gallium/auxiliary/tgsi/' : ['TGSI'] - '^src/gallium/docs/' : ['gallium'] - '^src/gallium/drivers/asahi/' : ['asahi'] - '^src/gallium/drivers/crocus/' : ['crocus'] - '^src/gallium/drivers/d3d12/' : ['d3d12'] - '^src/gallium/drivers/etnaviv/' : ['etnaviv'] - '^src/gallium/drivers/freedreno/' : ['freedreno'] - '^src/gallium/drivers/grate/' : ['tegra'] - '^src/gallium/drivers/i915/' : ['i915g'] - '^src/gallium/drivers/iris/' : ['iris'] - '^src/gallium/drivers/lima/' : ['lima'] - '^src/gallium/drivers/llvmpipe/' : ['llvmpipe'] - '^src/gallium/drivers/nouveau/' : ['nouveau'] - '^src/gallium/drivers/nouveau/nv30' : ['nv30'] - '^src/gallium/drivers/nouveau/nv50' : ['nv50'] - '^src/gallium/drivers/nouveau/nvc0' : ['nvc0'] - '^src/gallium/drivers/panfrost/' : ['panfrost'] - '^src/gallium/drivers/r300/' : ['r300'] - '^src/gallium/drivers/r600/' : ['r600'] - '^src/gallium/drivers/radeonsi' : ['radeonsi'] - '^src/gallium/drivers/softpipe' : ['softpipe'] - '^src/gallium/drivers/svga/' : ['svga'] - '^src/gallium/drivers/swr/' : ['swr'] - '^src/gallium/drivers/tegra/' : ['tegra'] - '^src/gallium/drivers/v3d/' : ['v3d'] - '^src/gallium/drivers/vc4/' : ['vc4'] - '^src/gallium/drivers/virgl/' : ['virgl'] - '^src/gallium/drivers/zink/' : ['zink'] - '^src/gallium/frontends/clover/' : ['clover'] - '^src/gallium/frontends/dri/' : ['gallium'] - '^src/gallium/frontends/glx/' : ['GLX'] - '^src/gallium/frontends/hgl/' : ['haiku'] - '^src/gallium/frontends/lavapipe/' : ['lavapipe'] - '^src/gallium/frontends/nine/' : ['nine'] - '^src/gallium/frontends/omx/' : ['omx'] - '^src/gallium/frontends/osmesa/' : ['osmesa'] - '^src/gallium/frontends/rusticl/' : ['Rusticl'] - '^src/gallium/frontends/va/' : ['VA-API'] - '^src/gallium/frontends/vdpau/' : ['VDPAU'] - '^src/gallium/frontends/wgl/' : ['wgl'] - # '^src/gallium/frontends/xa/' : [''] - '^src/gallium/include/' : ['gallium'] - '^src/gallium/targets/' : ['gallium'] - '^src/gallium/targets/opencl/' : ['clover'] - '^src/gallium/targets/osmesa/' : ['osmesa'] - '^src/gallium/targets/rusticl/' : ['Rusticl'] - '^src/gallium/tests/' : ['gallium'] - '^src/gallium/tools/' : ['gallium'] - # '^src/gallium/winsys/amdgpu/' : [''] - '^src/gallium/winsys/crocus/' : ['crocus'] - '^src/gallium/winsys/d3d12/' : ['d3d12'] - '^src/gallium/winsys/etnaviv/' : ['etnaviv'] - '^src/gallium/winsys/freedreno/' : ['freedreno'] - '^src/gallium/winsys/grate/' : ['tegra'] - '^src/gallium/winsys/i915/' : ['i915g'] - '^src/gallium/winsys/iris/' : ['iris'] - # '^src/gallium/winsys/kmsro/' : [''] - '^src/gallium/winsys/lima/' : ['lima'] - '^src/gallium/winsys/nouveau/' : ['nouveau'] - '^src/gallium/winsys/panfrost/' : ['panfrost'] - # '^src/gallium/winsys/radeon/' : ['radeon'] - '^src/gallium/winsys/svga/' : ['svga'] - # '^src/gallium/winsys/sw/' : [''] - '^src/gallium/winsys/sw/gdi/' : ['wgl'] - '^src/gallium/winsys/tegra/' : ['tegra'] - '^src/gallium/winsys/v3d/' : ['v3d'] - '^src/gallium/winsys/vc4/' : ['vc4'] - '^src/gallium/winsys/virgl/' : ['virgl'] - '^src/gbm/' : ['gbm'] - '^src/glx/' : ['GLX'] - '^src/imagination/' : ['powervr'] - '^src/intel/blorp/' : ['blorp'] - '^src/intel/common/' : ['intel'] - '^src/intel/compiler/' : ['intel-compiler'] - '^src/intel/compiler/brw' : ['intel-brw'] - '^src/intel/compiler/elk' : ['intel-elk'] - '^src/intel/dev/' : ['intel'] - '^src/intel/ds/' : ['intel'] - '^src/intel/genxml/' : ['intel'] - '^src/intel/isl/' : ['ISL'] - '^src/intel/nullhw-layer/' : ['intel'] - '^src/intel/perf/' : ['intel'] - '^src/intel/tools/' : ['intel-tools'] - '^src/intel/vulkan/' : ['ANV'] - '^src/intel/vulkan_hasvk/' : ['hasvk'] - '^src/loader/' : ['loader'] - '^src/mapi/' : ['mapi'] - '^src/mesa/drivers/dri/i915/' : ['i915'] - '^src/mesa/drivers/dri/i965/' : ['i965'] - '^src/mesa/drivers/dri/nouveau/' : ['vieux'] - '^src/mesa/drivers/dri/r200/' : ['r200'] - '^src/mesa/drivers/dri/radeon/' : ['radeon'] - '^src/mesa/drivers/dri/swrast/' : ['swrast'] - '^src/mesa/drivers/osmesa' : ['osmesa'] - '^src/mesa/main/' : ['mesa'] - '^src/mesa/state_tracker/.*glsl.*' : ['GLSL'] - '^src/mesa/state_tracker/.*tgsi.*' : ['TGSI'] - '^src/mesa/state_tracker/.*nir.*' : ['NIR'] - '^src/microsoft/clc/' : ['d3d12'] - '^src/microsoft/compiler/' : ['d3d12'] - '^src/microsoft/spirv_to_dxil/' : ['dozen'] - '^src/microsoft/vulkan/' : ['dozen'] - '^src/nouveau/codegen/' : ['nouveau'] - '^src/nouveau/compiler/' : ['NAK'] - '^src/nouveau/drm-shim/' : ['nouveau'] - '^src/nouveau/mme/' : ['NVK'] - '^src/nouveau/nil/' : ['NVK'] - '^src/nouveau/nvidia-headers/' : ['NVK'] - '^src/nouveau/vulkan/' : ['NVK'] - '^src/nouveau/winsys/' : ['NVK'] - '^src/panfrost/' : ['panfrost'] - '^src/virtio/vulkan/' : ['venus'] - '^src/virtio/venus-protocol/' : ['venus'] - '^src/virtio/ci/' : ['venus'] - '^src/util/' : ['util'] - '^src/util/00-mesa-defaults.conf' : ['drirc'] - '^src/vulkan/' : ['vulkan'] - '^VERSION$' : ['maintainer-scripts'] + '^.gitlab/issue_templates/': ['docs'] + '^.gitlab-ci': ['CI'] + '^.*/gitlab-ci(-inc)?.yml': ['CI'] + '^.*/ci/deqp-.*\.toml': ['CI'] + '^.*/ci/.*-(fails|flakes|skips)\.txt': ['CI-Expectations'] + '^.*/ci/(restricted-)?traces-.*\.yml': ['CI-Expectations', 'trace'] + '^.*/ci/.*-validation-settings\.txt': ['CI-Expectations'] + '^.*/ci/.*-vkd3d\.txt': ['CI-Expectations'] + '^.gitlab-ci/windows/': ['Windows'] + '^bin/__init__.py$': ['maintainer-scripts'] + '^bin/gen_release_notes': ['maintainer-scripts'] + '^bin/git_sha1_gen.py$': ['meson', 'android'] + '^bin/install_megadrivers.py$': ['meson'] + '^bin/meson-cmd-extract.py$': ['meson'] + '^bin/meson.build$': ['meson'] + '^bin/pick-ui': ['maintainer-scripts'] + '^bin/pick/': ['maintainer-scripts'] + '^bin/post_version': ['maintainer-scripts'] + '^bin/symbols-check.py$': ['meson'] + '^docs/': ['docs'] + '^include/drm-uapi/i915_drm.h': ['intel'] + '^include/drm-uapi/xe_drm.h': ['intel'] + '^include/vulkan/': ['vulkan'] + '^meson_options.txt': ['meson'] + '^README.rst': ['docs'] + '^src/amd/addrlib/': ['AMD common'] + '^src/amd/common/': ['AMD common'] + '^src/amd/compiler/': ['ACO'] + '^src/amd/llvm/': ['AMD common'] + '^src/amd/registers/': ['AMD common'] + '^src/amd/vulkan/': ['RADV'] + '^src/asahi/': ['asahi'] + '^src/broadcom/drm-shim/v3d': ['v3d'] + '^src/broadcom/vulkan/': ['v3dv'] + '^src/compiler/clc': ['OpenCL'] + '^src/compiler/glsl': ['GLSL'] + '^src/compiler/nir': ['NIR'] + '^src/compiler/spirv/': ['SPIR-V'] + '^src/egl/': ['EGL'] + '^src/egl/drivers/wgl/': ['wgl'] + '^src/etnaviv/': ['etnaviv'] + '^src/freedreno/afuc/': ['freedreno'] + '^src/freedreno/common/': ['freedreno'] + '^src/freedreno/computerator/': ['freedreno'] + '^src/freedreno/decode/': ['freedreno'] + '^src/freedreno/drm-shim/': ['freedreno'] + '^src/freedreno/drm/': ['freedreno'] + '^src/freedreno/ds/': ['freedreno'] + '^src/freedreno/fdl/': ['freedreno'] + '^src/freedreno/ir2/': ['freedreno'] + '^src/freedreno/ir3/': ['ir3'] + '^src/freedreno/isa/': ['freedreno'] + '^src/freedreno/perfcntrs/': ['freedreno'] + '^src/freedreno/registers/': ['freedreno'] + '^src/freedreno/rnn/': ['freedreno'] + '^src/freedreno/vulkan/': ['turnip'] + '^src/gallium/auxiliary/': ['gallium'] + '^src/gallium/auxiliary/nir/': ['NIR'] + '^src/gallium/auxiliary/nir/.*tgsi.*': ['TGSI'] + '^src/gallium/auxiliary/tgsi/': ['TGSI'] + '^src/gallium/docs/': ['gallium'] + '^src/gallium/drivers/asahi/': ['asahi'] + '^src/gallium/drivers/crocus/': ['crocus'] + '^src/gallium/drivers/d3d12/': ['d3d12'] + '^src/gallium/drivers/etnaviv/': ['etnaviv'] + '^src/gallium/drivers/etnaviv/etnaviv_ml_.*': ['teflon'] + '^src/gallium/drivers/freedreno/': ['freedreno'] + '^src/gallium/drivers/grate/': ['tegra'] + '^src/gallium/drivers/i915/': ['i915g'] + '^src/gallium/drivers/iris/': ['iris'] + '^src/gallium/drivers/lima/': ['lima'] + '^src/gallium/drivers/llvmpipe/': ['llvmpipe'] + '^src/gallium/drivers/nouveau/': ['nouveau'] + '^src/gallium/drivers/nouveau/nv30': ['nv30'] + '^src/gallium/drivers/nouveau/nv50': ['nv50'] + '^src/gallium/drivers/nouveau/nvc0': ['nvc0'] + '^src/gallium/drivers/panfrost/': ['panfrost'] + '^src/gallium/drivers/r300/': ['r300'] + '^src/gallium/drivers/r600/': ['r600'] + '^src/gallium/drivers/radeonsi': ['radeonsi'] + '^src/gallium/drivers/softpipe': ['softpipe'] + '^src/gallium/drivers/svga/': ['svga'] + '^src/gallium/drivers/swr/': ['swr'] + '^src/gallium/drivers/tegra/': ['tegra'] + '^src/gallium/drivers/v3d/': ['v3d'] + '^src/gallium/drivers/vc4/': ['vc4'] + '^src/gallium/drivers/virgl/': ['virgl'] + '^src/gallium/drivers/zink/': ['zink'] + '^src/gallium/frontends/clover/': ['clover'] + '^src/gallium/frontends/d3d10umd/': ['d3d10umd'] + '^src/gallium/frontends/dri/': ['gallium'] + '^src/gallium/frontends/glx/': ['GLX'] + '^src/gallium/frontends/hgl/': ['haiku'] + '^src/gallium/frontends/lavapipe/': ['lavapipe'] + '^src/gallium/frontends/nine/': ['nine'] + '^src/gallium/frontends/omx/': ['omx'] + '^src/gallium/frontends/osmesa/': ['osmesa'] + '^src/gallium/frontends/rusticl/': ['Rusticl'] + '^src/gallium/frontends/teflon/': ['teflon'] + '^src/gallium/frontends/va/': ['VA-API'] + '^src/gallium/frontends/vdpau/': ['VDPAU'] + '^src/gallium/frontends/wgl/': ['wgl'] + # '^src/gallium/frontends/xa/': [''] + '^src/gallium/include/': ['gallium'] + '^src/gallium/targets/': ['gallium'] + '^src/gallium/targets/d3d10umd': ['d3d10umd'] + '^src/gallium/targets/opencl/': ['clover'] + '^src/gallium/targets/osmesa/': ['osmesa'] + '^src/gallium/targets/rusticl/': ['Rusticl'] + '^src/gallium/tests/': ['gallium'] + '^src/gallium/tools/': ['gallium'] + # '^src/gallium/winsys/amdgpu/': [''] + '^src/gallium/winsys/crocus/': ['crocus'] + '^src/gallium/winsys/d3d12/': ['d3d12'] + '^src/gallium/winsys/etnaviv/': ['etnaviv'] + '^src/gallium/winsys/freedreno/': ['freedreno'] + '^src/gallium/winsys/grate/': ['tegra'] + '^src/gallium/winsys/i915/': ['i915g'] + '^src/gallium/winsys/iris/': ['iris'] + # '^src/gallium/winsys/kmsro/': [''] + '^src/gallium/winsys/lima/': ['lima'] + '^src/gallium/winsys/nouveau/': ['nouveau'] + '^src/gallium/winsys/panfrost/': ['panfrost'] + # '^src/gallium/winsys/radeon/': ['radeon'] + '^src/gallium/winsys/svga/': ['svga'] + # '^src/gallium/winsys/sw/': [''] + '^src/gallium/winsys/sw/gdi/': ['wgl'] + '^src/gallium/winsys/tegra/': ['tegra'] + '^src/gallium/winsys/v3d/': ['v3d'] + '^src/gallium/winsys/vc4/': ['vc4'] + '^src/gallium/winsys/virgl/': ['virgl'] + '^src/gbm/': ['gbm'] + '^src/gfxstream/': ['gfxstream'] + '^src/glx/': ['GLX'] + '^src/imagination/': ['powervr'] + '^src/intel/blorp/': ['blorp'] + '^src/intel/common/': ['intel'] + '^src/intel/compiler/': ['intel-compiler'] + '^src/intel/compiler/brw': ['intel-brw'] + '^src/intel/compiler/elk': ['intel-elk'] + '^src/intel/dev/': ['intel'] + '^src/intel/ds/': ['intel'] + '^src/intel/genxml/': ['intel'] + '^src/intel/isl/': ['ISL'] + '^src/intel/nullhw-layer/': ['intel'] + '^src/intel/perf/': ['intel'] + '^src/intel/tools/': ['intel-tools'] + '^src/intel/vulkan/': ['ANV'] + '^src/intel/vulkan_hasvk/': ['hasvk'] + '^src/loader/': ['loader'] + '^src/mapi/': ['mapi'] + '^src/mesa/drivers/dri/i915/': ['i915'] + '^src/mesa/drivers/dri/i965/': ['i965'] + '^src/mesa/drivers/dri/nouveau/': ['vieux'] + '^src/mesa/drivers/dri/r200/': ['r200'] + '^src/mesa/drivers/dri/radeon/': ['radeon'] + '^src/mesa/drivers/dri/swrast/': ['swrast'] + '^src/mesa/drivers/osmesa': ['osmesa'] + '^src/mesa/main/': ['mesa'] + '^src/mesa/state_tracker/.*glsl.*': ['GLSL'] + '^src/mesa/state_tracker/.*tgsi.*': ['TGSI'] + '^src/mesa/state_tracker/.*nir.*': ['NIR'] + '^src/microsoft/clc/': ['d3d12'] + '^src/microsoft/compiler/': ['d3d12'] + '^src/microsoft/spirv_to_dxil/': ['dozen'] + '^src/microsoft/vulkan/': ['dozen'] + '^src/nouveau/codegen/': ['nouveau'] + '^src/nouveau/compiler/': ['NAK'] + '^src/nouveau/drm-shim/': ['nouveau'] + '^src/nouveau/drm/': ['nouveau'] + '^src/nouveau/headers/': ['NVK'] + '^src/nouveau/mme/': ['NVK'] + '^src/nouveau/nil/': ['NVK'] + '^src/nouveau/vulkan/': ['NVK'] + '^src/nouveau/winsys/': ['NVK'] + '^src/panfrost/': ['panfrost'] + '^src/panfrost/vulkan/': ['panvk'] + '^src/virtio/vulkan/': ['venus'] + '^src/virtio/venus-protocol/': ['venus'] + '^src/virtio/ci/': ['venus'] + '^src/util/': ['util'] + '^src/util/00-mesa-defaults.conf': ['drirc'] + '^src/vulkan/': ['vulkan'] + '^src/vulkan/wsi/': ['wsi'] + '^VERSION$': ['maintainer-scripts'] - 'Android' : ['android'] - 'EGL' : ['EGL'] - 'meson.build' : ['meson'] - 'wayland' : ['wayland'] + 'Android': ['android'] + 'EGL': ['EGL'] + 'meson.build': ['meson'] + 'wayland': ['wayland'] diff --git a/.pick_status.json b/.pick_status.json index 87facb135..c0b4d545b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1,43709 +1,4909 @@ [ { - "sha": "235ce3df9baad0d7f0895e58c647914da00d7351", - "description": "llvmpipe/ci: bump timeout for nightly job to 1h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "9b779068c3a7a8ded00f1d2519fd01dd1d05f3d8", + "description": "anv: prevent access to destroyed vk_sync objects post submission", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "36ea90a3619f86e9bf0b51e2b0c28b213e08083d", "notes": null }, { - "sha": "aa9745427b917bb0613b753ccd59c6c1e6f07584", - "description": "ci: austriancoder farm maintenance", + "sha": "6c07c0b86234399f4dd183b3688cdf53d91ed849", + "description": "glsl/list: remove underscores in foreach_list_typed macros", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "26474f8d4a5ea1091fb23e6ffd44e0c085efde58", - "description": "nir_lower_mem_access_bit_sizes: Support load_kernel_input", + "sha": "66df2915131d50dfefeaea3adff43ce62b385030", + "description": "glsl/list: remove parenthesis in foreach_list_typed macros", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "50ff1e4f867287fa2bfce5a714c365957fbf098a", - "description": "radeonsi/vcn: add HDR sei in hevc enc", + "sha": "02e353a0664dde42aa970420a914a667fc14ed11", + "description": "glsl/list: add and use helpers in foreach_list_typed macros", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0460ededdafbf63c593c97dc699fa521e7b54403", - "description": "frontends/va: check hevc enc hdr sei", + "sha": "17045b9465cdae9f53b2eb4d4765a7950f23d7d1", + "description": "glsl/list: add comments above foreach macros", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b92134e088cfe0dad36d83f5a197875bdd644745", - "description": "aco: validate temp_rc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "65a54b4ec41f4de33c770ceb1535358d008fbaad", + "description": "nir/lcssa: fix premature exit of loop after rematerializing derefs", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "439e8c42cc4b46a8410e4afd8bc24fc3ed0ce1c8", "notes": null }, { - "sha": "53155ba12d6e561726f435e50cb9306b6af87969", - "description": "aco: add CompilationProgress::after_lower_to_hw", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "327e5465fca3275bac866729783d3f7c4ea11848", + "description": "nir/algebraic: check bit sizes in lowered unpack(pack()) optimization", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "894f7f438745f4f76ea21391a89752ce601f7e2d", "notes": null }, { - "sha": "6da7bd842c36fdd5279ae6eab168e5c658543d60", - "description": "aco/optimizer: update temp_rc when converting to uniform bool alu", + "sha": "ecd6ae12fbd487d759aaf347c6947a78483c1642", + "description": "nir/algebraic: fix iabs(ishr(iabs(a), b)) optimization", "nominated": true, - "nomination_type": 0, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "2b76de9b5dd58c444c194d4c77ef9d9643ae5ca6", "notes": null }, { - "sha": "0acc31a00136e8a954629888e1a822e3fa111020", - "description": "bin/ci: crnm: Reduce trace cluttering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "217d70fc38aaa6a20dd866d9d1f0c3d3f87a9255", + "description": "frontends/va: Use compositor blit with different number of planes", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ff18d1ec230ba305db8724db04d88b52a8d13d0d", - "description": "bin/ci: crnm: Fix pipeline monitoring skipping", + "sha": "6a01102efe165d51a90c0bfb9cad8ea75cc064d2", + "description": "frontends/va: Stop reallocating buffers in EndPicture", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3975366a88711b986a283f1b7ea56782506280b2", - "description": "bin/ci: crnm: Deal with `created` status", + "sha": "6bd21e4a062e796361c8585a6cd7c68ffa4bedea", + "description": "frontends/va: Check if target buffer is supported in EndPicture", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "87ce0ce0b19a59acd2fe223750dbe4064023e24a", - "description": "Revert \"vl/dri3: use loader's dri3 init code and delete everything else\"", + "sha": "7925f13a418f20da0bb4daa52543797e68b2e6df", + "description": "frontends/va: Stop reallocating according to JPEG sampling factor", "nominated": false, - "nomination_type": 2, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "586d0c4a9b5d9779092a18a9803837082b0b2100", + "because_sha": null, "notes": null }, { - "sha": "dc2755a4f807d5e86bb46e235202a07f848f482d", - "description": "rusticl/spirv: protect against 0 length in slice::from_raw_parts", - "nominated": true, + "sha": "0df7e80179bf7f7785af12b3953895f99fe1ebf1", + "description": "frontends/va: Stop reallocating buffers for protected playback", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "81f75e2a2dd803676d8db46207064e5724390559", - "description": "rusticl/api: protect against 0 length in slice::from_raw_parts", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "63fd685b31d9637030a9575a123919b64f71692d", + "description": "frontends/va: Stop reallocating from progressive to interlaced in EndPicture", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "84d16045d034cf34e782febea7cf7d933b730ba6", + "because_sha": null, "notes": null }, { - "sha": "ad6fb3406b500be4a78ef87f554fffcecff057dc", - "description": "rusticl/program: protect against 0 length in slice::from_raw_parts", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "910b81f73df567db236dbf90dbcc3d71ba1e931f", + "description": "frontends/va: Stop reallocating to prefered format in EndPicture", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "e028baa1772eeaa55393b1d01d5e5fb217474f95", + "because_sha": null, "notes": null }, { - "sha": "7a8b1dc6e56dc94f37700be8870651715b36b161", - "description": "rusticl: fix clippy lint having bounds defined in multiple places", + "sha": "c8a893becd0a9fd952339710d83d2084d0332aff", + "description": "frontends/va: Create surfaces with correct fourcc for RT format", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "734352ddfb91f14aab2dd43937d45a360044f5cf", + "because_sha": null, "notes": null }, { - "sha": "eb1f64a01eaf6ac6fbe874a4900a1174704b1250", - "description": "radeonsi/vcn: Fix MB/CTB calculation for slice encoding", + "sha": "f70ecba49a87f1a689cb1e4991c5b5277ba73f57", + "description": "radeonsi: Check all supported formats in si_vid_is_target_buffer_supported", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "36a13d2b3b067c2ce03a1ecd0a579d5e418d28d3", - "description": "freedreno: fix a7xx perfcntr countables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "ba5c65f10b453ec71264027119e390e11e7aae21", + "description": "nir: Get correct number of components", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "5ef2b8f1f2ebcdb4ffe5c98b3f4f48e584cb4b22", "notes": null }, { - "sha": "d60ae64527dfba55c998e869c743b519fbf90a3c", - "description": "tu/a750: Allow mutable images to have UBWC with all compatible formats", + "sha": "cf36fc134e43d9bfb85d0fc38ca01290a860e078", + "description": "radv: Set dump flags in a smarter way by default.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6a9676b79c785c53bcfb7e5992a108c8fd71d7c9", - "description": "ci/prepare-artifacts: check if we're about to overwrite ci config/expectations files", + "sha": "14ea24ab6fcdf88d0978f783727ad9dc7a688475", + "description": "radv: Also allow filtering SPIR-V dump per stage.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "197701b860dce7e3a7c56a6ac06f1bd90ec2203d", - "description": "ci/prepare-artifacts: use find's -exec instead of iterating over its output with xargs", + "sha": "e6eaf7b9508c27aef62b67e99ae7df12c2c5380a", + "description": "radv: Slightly reword preoptir debug flag.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1f70af7e9f2fe44d7e1f19b7067bc129723361e9", - "description": "bin/ci: update python-gitlab to 4.x", + "sha": "8c1e2ac03b94bc2f0998f2cdf9e3ff35d3fc7bf4", + "description": "radv: Refactor RADV_DEBUG=shaders to be a combination of other options.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d055edac11cf89e0f326e1761fc6ed44d87981f6", - "description": "docs/meson: add missing newline at the begining of code-block", + "sha": "6d5caabdd791d87ec88e53f96d8236ed1984db31", + "description": "radv: Separate option to dump backend IR.", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "324de97f480eba70c0bdeee434e2ee845e24c44f", + "because_sha": null, "notes": null }, { - "sha": "66de8b4b5cbbb317130dde765201b5720394ed00", - "description": "v3d: add a faster TLB blit path", + "sha": "649da9e744ece2912d546fb79f8a30ea11043d5a", + "description": "radv: Separate option to print shader disassembly.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9a9f2812519f7282a91f86e3e5758a4920de1be3", - "description": "v3d: support blitting straight from tile buffer", + "sha": "3f92c0bbe96de47be2a91d1eb9864df17290d739", + "description": "radv: Separate option to dump NIR.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9fbb11505ab9679a44fdce337fdeb8e5a3f0efa7", - "description": "v3d: move TLB blit checks to a helper", + "sha": "d94e65574fbc0105a2a3b5d6ce74f78131e21d89", + "description": "aco: Separate options for printing IR and recording disassembly.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ff58f0afbed9ff4f24c7cb5410c6f6427d4b66b2", - "description": "rpi4/ci: mark fs variant of arb_texture_buffer_object as flaky too", + "sha": "ab89fdc3d4111a98fc16fafd7c3a4d09d576c8c7", + "description": "radv: Add ability to dump shaders based on stage.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c5ee7e9bdc7b2a690843c103e73268edb32692fd", - "description": "anv: Disable legacy CCS setup in binding (xe2)", + "sha": "57161f516e4557c16e2b31fb5762339f3c541dd0", + "description": "radv: Mark GS copy shaders as internal.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e054068787557264b3c7d40ed81e9615d87701a8", - "description": "anv: Disable compression on legacy modifiers (xe2)", + "sha": "86795a6337706492dd16ffdd62e1776a07f63ce3", + "description": "ir3: fold shared movs into other movs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6b4def143c8f676c3647ff5fd865ecb3938a7dbd", - "description": "iris: Fix an assertion failure with compressed format", + "sha": "957db02fed592bfe80fa5aa6ca1e2a269ae5a2ef", + "description": "panvk: Advertise VK_EXT_host_query_reset", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "49c91a4ea0310fa90580d3dbcbb1a37a7b9db15c", - "description": "anv: Fix assertion failures on BMG (xe2)", + "sha": "89e65dd227cd624a5f8545e623e2aaa2bf4c8089", + "description": "panvk: Expose precise occlusion queries", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "beb0ea24696821d42b336a8170a61eb25c5022d7", + "because_sha": null, "notes": null }, { - "sha": "a629d829dc8d8fa9ac8c8b22da130a19e61d40a6", - "description": "glsl: make use of new tex src deref intrinsic", + "sha": "cbdb4757d4b61e994022d4dcd0469214bf08cba3", + "description": "panvk: Implement occlusion queries for CSF", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "017770ff14a59d39cf0935692726048ad733f251", - "description": "nir: add nir_tex_src_{sampler,texture}_deref_intrinsic", + "sha": "d1934e44fc8e5fccc31a0ffcc5357461466f3d81", + "description": "panvk: Implement occlusion queries for JM", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ef13ff00d1b9a6ac05374a396f045d359c18f5a9", - "description": "nir: create validate_tex_src_texture_deref() helper", + "sha": "61534faf4e2b031b64ee387558a44e7e06915c48", + "description": "panvk: Wire occlusion queries to internals", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "363119641498dac65e813f2057ff9f7424217064", - "description": "nvk: Disable sparse D32S8 cubes pre-Turing", + "sha": "be023a3fe0539d5d6c2a996148ae4fc668f94572", + "description": "panfrost: Remove faulty assert in cs_loop_conditional_*", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ec7924ab9036cdc4637c9878e152e4460794cb5b", - "description": "nvk: Default to NAK on Maxwell+", + "sha": "25248fae8392151997e6f84e80142c705b2f1960", + "description": "panvk: Take rasterization samples into account in draw", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "13cc4e48d1116dce9f6c96c05f0a2edc3c78efc3", - "description": "nak/sm50: Set f2f.high", + "sha": "0d0547ee4a90bcb514046ccedeb610bd7d54c3a4", + "description": "panvk: Only flag rw_nc pool as uncached on v10+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7b84319ec431d28d07472f9fc4d63cefdd96ec75", - "description": "nak: Manually flush denorms for nir_op_fquantize2f16 pre-Volta", + "sha": "ef4342e3c3080a698bd5ccb17f1e980b16a5a985", + "description": "radeonsi/ci: add options to test llvmpipe, softpipe, virgl, zink", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "315e8d6faa663610d9b17dde9e95e2f86a777a6e", - "description": "nak: Disallow isetp.x pre-Volta", - "nominated": false, - "nomination_type": 1, - "resolution": 4, + "sha": "51aa1d8381682789a666ed2e6575a79be7241f7a", + "description": "radeonsi: fix gl_FrontFace elimination when one side is culled", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": "a33507d621a13aa5af6d8cecc950879e96e1a6f2", + "because_sha": "55d81214c9d800c0667337808a82143ebab17c1a", "notes": null }, { - "sha": "c695fd7cd269673a399c68ae0fc43f5be67fad5a", - "description": "nak: Rework isetp64 on sm50 again", + "sha": "48c1c6247ccf4039af872947d2d550f434cc728d", + "description": "radeonsi: handle nir_intrinsic_component in kill_ps_outputs", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "efd86d6daa9b85498aef078ef24b4ff04aa2472e", + "because_sha": null, "notes": null }, { - "sha": "3d4a4a68a0fe91a5184c59323a1a882eb594c23d", - "description": "nak: Non-constant offsets are allowed on patch loads", + "sha": "5be9d76861c1f5cbcae66bee27d3e40a4851bd8b", + "description": "radeonsi: fix an assertion failure in si_shader_ps with AMD_DEBUG=mono", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "37a38f6744f3e81063d13995a974ccd383050514", + "because_sha": null, "notes": null }, { - "sha": "72eb0b6c13e59de8cd059826b6b12248448631ff", - "description": "nak: Add tests for OpPSetP", + "sha": "5b09aaf44d835734081c07f19c06e460808e71a0", + "description": "radeonsi: fix buffer_size for emulated GS statistics", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "29f909513bdd42ac6e8431990014f2ddb9a273d9", - "description": "nak: Add a PredSetOp::eval() helper", + "sha": "1fc454673ac5d446aa620f75edf47ac4a8aa94f1", + "description": "panvk: Implement VK_EXT_sampler_filter_minmax for v10", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "76e66beb5aeb878ba565c92cb5a51cd9b07aaebb", - "description": "nak: pre-Volta uses r0 to output the final GS handle", + "sha": "a5bcf566a96c10b4aba234bad676c3fd043fe9e3", + "description": "nir: lower INSTANCE_{ID,INDEX} to an offset load_instance_{index,id} respectively", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "63db105014861b0bbc4fc22d7c3bdc643e35868e", - "description": "nak: Rename OpFSOut to OpRegOut", + "sha": "b9be1f1f20d42d736f64ce95fc9240483958e1fd", + "description": "nir: introduce instance_index system value", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0b4bfefd6fcacf4ecad50568ee1cdc7d67765918", - "description": "nak/nir: Preserve rounding modes in split_64bit_conversions()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "2f13723c0aad358778d87ca7e844f438ca5fcfaf", + "description": "radv: add a new drirc option to disable DCC for mips and enable it for RDR2", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ec84d7ce74a0d397af736aace32aa5c97d53a3ba", - "description": "nak: Add tests for OpPopC and enable SrcMod::BNot", + "sha": "2e51d0c724f7d295a19a23ca2395140653d75227", + "description": "radv: add a helper to destroy a logical device", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "27ee9027da544e1226631e3ad92becb476233c8f", - "description": "nak: Use OpFoldData::get_u32_bnot_src() more places", + "sha": "2181ddf38307c40faff7e47971a9b201b0a3a726", + "description": "radv: destroy meta resources properly when creating the device failed", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1a6ca8e60152c7b0e10caf9e27e0b6571ed9f1f3", - "description": "nak/sm50: Set the not bit for OpLop2::srcs[0]", + "sha": "0b66cb1f82e429ae8146a8ca1dc37697b8f97339", + "description": "intel/brw: Allow extra SWSB encodings for Xe2", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "61076b04a7e8974fc7794b46e4ccd468a16a9df7", - "description": "nak: Add tests for OpIAdd2 and OpIAdd2X", + "sha": "1b13eea6425e490956ff13add72b20d5a569ce37", + "description": "intel/brw: Add test for combining SWSB dependencies in SENDs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "aa87c9c96d9ada1d21090b3c2dd3ec3185eeefbb", - "description": "nak/hw_tests: Use better test values for iadd tests", + "sha": "6714689613aebec164f55b7ba8db41c8261885ab", + "description": "nir/functions: force inlining for barriers.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6291440ee7e12d76de8a8b8c41ab43f2938bf3dc", - "description": "nak/hw_tests: Respect src_mod and src_swizzle in op auto-tests", + "sha": "46140977563d69428a1db23ee22d374f9b523d80", + "description": "meson: Remove experimental from gfxstream driver build", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f557423467d69f717fde98d562c39513521bcc94", - "description": "nak: Add source and destination types for carry values", + "sha": "0fb4609d944aedbfc7e4813c362410d357318672", + "description": "panvk: add support for VK_EXT_queue_family_foreign", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "eb5f333606448792f010add79c0ebb7e894ff59b", - "description": "nak: Assert no overflow when legalizing iadd with too many ineg modifiers", + "sha": "715d6e740a35b2d2d46ff40179390a87b161b814", + "description": "panvk: improve VK_QUEUE_FAMILY_EXTERNAL support", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "96812f6b721a0eead98da54a4b924e4b0ebf2130", - "description": "nak: Add tests for OpFlo", + "sha": "9e90e503625b552a427228d49c201ad0dbb55492", + "description": "panvk: add normalize_dependency", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "10701ac33122bd1b8fe2a137b55f62890cb2c615", - "description": "nak/hw_tests: Explicitly test equal cases in test_isetp64", + "sha": "0f47e362a610c23c433c13ba2eaa9d26b243d505", + "description": "rusticl: Use C-string literals for DiskCache::new", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "957e7b3451eafc7dd06803c5afe7cef206035107", - "description": "nak: Lower iadd64(x, -y) to isub64(x, y) in NIR", + "sha": "85aaeb4bf852848cc49eb1b014af63d0847086f0", + "description": "rusticl: Use C-string literals for NirShader::add_var", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8646ae7e23fc9dcfa16bd9e93b9311bde444274b", - "description": "nak/builder: Allow source modifiers in ineg64()", + "sha": "b9ccee00713dd7ad4d6f3e5455bd6491e0fee315", + "description": "rusticl/core: Use C-string literals for XPlatManager::get_proc_address_func", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7f0b8a82d089cd860237a8ff70d80a72e9c57f19", - "description": "nak: Add tests for nak_builder::ineg64", + "sha": "fab6fa2bc8af9153a8dae84f25ebb85d1a3b1345", + "description": "rusticl/cl_prop: Use C-string literals", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "73384c626d2ca646e744dc19d19d67b189e8b7b6", - "description": "nak: SrcMod::INeg cannot be folded", + "sha": "7ac2846c9602f7dc10dc6ac4211b1879752fb16d", + "description": "rusticl: Use C-string literals for spirv extension names", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c2b5d7ca4188f36c9aaeacc0f14e5faac2c245de", - "description": "nak/sm50: Add execution delays for more ops", + "sha": "612ad0cb70b266fd9e6bfb387122e4fe4d0224bb", + "description": "rusticl: Use C-string literals", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ce91e8875afacd7d4c2f0f81b30d552720c9b658", - "description": "nak: OpKill also needs a delay on Maxwell", + "sha": "62b8e053f74e63431feebb9aad2672a3e1f7b2a0", + "description": "mesa: Add rustfmt.toml", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c8eb8f946ae86a4f19c7653c5a05b70f9519e524", - "description": "nak: Add an optimization for CRS ops", + "sha": "0ff3e2a0f9178eb8bbad4b32b6a7af117c7c80a5", + "description": "compiler/rust: Use std::mem::offset_of!()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1cf945a5d1087ac2c10e899d87b5d00abd0d2c42", - "description": "nak: Add target labels to CRS pop instructions", + "sha": "190fbbe1d66925a9927854124b0568a3c913c99e", + "description": "nak/hw_test: Use std::mem::offset_of!()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9bbc6920640b71503519e513ccb9ce528a16fb8f", - "description": "nak/nir: Rework CRS handling", + "sha": "718407e806cf4639c3b8367eb40534dd3f29f0a7", + "description": "mesa: Bump required Rust version to 1.78", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cb5e10d0aacb3110d9972f1f6736a2902cfbd01f", - "description": "nak/nir: Add a few more NIR helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "795a36325af637079ea283d73ea56eab833771bd", + "description": "ac/gpu_info: Fix missing prototype mingw error", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "246051ebc6878ff980fe52f9d31ac08abf6943ee", "notes": null }, { - "sha": "f66ca6edc3df69a089c58e1c815c0e6f89db64f7", - "description": "nak/nir: Fix the reverse execlist iterator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "6d14cad330a34e15db6dae184c45c98c3256eeae", + "description": "freedreno: Fix resource tracking on repeated map with discard", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "0a62a874fc5b7387fb4e1da9183fb2c5a9d4b700", "notes": null }, { - "sha": "d19ea8524b31aed505e113efd7d883b81654815c", - "description": "nvk: Take CRS into account when allocating the SLM area", + "sha": "eb10dc2e7338b71f04ec3a7b120a5ac2e379f78f", + "description": "intel/dev: Add PTL 0xb0b0 PCI ID", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b78f7d208b10fbb9ce0c3a47aa672a9e074cb34f", - "description": "nak: Plumb through the call/return stack size", + "sha": "554494e2cdf76bca6622e64698dfd7e50143c0e5", + "description": "ir3,tu: filter debug flags included in the hash key", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3e935df2b099c4d246b689dad6bbc80bb484a1fc", - "description": "nak: Move the runner into the main nak crate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "d8c90806e4a103c63de534b2cb4fe662e1bee19d", + "description": "ir3,tu: include ir3 debug flags in shader hash key", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "c323848b0b70686e856d69699356b8cd71ddb6c8", "notes": null }, { - "sha": "ad90bf0500e07b1bc35f87a406f284c0a7fa7049", - "description": "freedreno/a6xx: Initial a7xx support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "4ec43c59da8f8f03a27f2ac4ea2481586071c3fc", + "description": "radeonsi/vcn: Use correct frame context buffer for preencode on VCN5", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "3c5fe03b92c4c645b0327734433d109edfe983c8", "notes": null }, { - "sha": "e6be78c7036ae89662b094e927bb1bfa4ec2be5a", - "description": "freedreno/a6xx: Rework CCU_CNTL emit for a7xx", + "sha": "c0edb9344f0423fa8731ded6f70afd53e9f50936", + "description": "rusticl: enable cl_khr_depth_images", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1f41d590595031537ab7013f3b4f11c0db9f8b20", - "description": "freedreno/a6xx: Refactor CP_EVENT_WRITE emit", + "sha": "67212c2fa61367426d26d937b7d5b8d740e973fb", + "description": "rusticl/device: advertize cl_khr_depth_images if supported", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b1937f76ff16a006ad5ccd6b9d4903b0170b7f9d", - "description": "freedreno/a6xx: Allocate lrcfc when needed for direction tracking", + "sha": "2aec563acf63a8f5356e491d0edb89a98be0a358", + "description": "rusticl/image: fix clEnqueueFillImage for CL_DEPTH", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "679e9093e13e72631e242f0c385da5253be4543f", - "description": "freedreno: Extract out shared LRZFC layout helpers", + "sha": "2acfb55dfb33f5def99c658558f60a79ac5c9aac", + "description": "rusticl/mem: add restrictions for CL_DEPTH, CL_DEPTH_STENCIL and msaa images", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "beb5577e12593559f87ceae2dec090dff4d488a2", - "description": "freedreno: Extract out common UBWC helper", + "sha": "fa379a949537bd45d89d5c4b43a19108b3dec724", + "description": "nir/lower_cl_images: lower scalar image_loads to vec4", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5c34a5e59a1caf435182fe4070dba9bb8ccfa249", - "description": "freedreno: Move GENX/CALLX magic to common", + "sha": "b805e23f40ee56d62b9fcb97ff18e0cbf50f1fff", + "description": "gfxstream: change output location", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a6c9f152ccca3b4442c4c73f60a1ae95e51cf94c", - "description": "freedreno/drm: Handle a7xx case", + "sha": "214dee0447ef9bfa98ab2c54badc9e6af848c3ed", + "description": "gfxstream: for Android, look for the autogenerated files", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "31302ca107308b82f1d7cd02627210cd9f018bc2", - "description": "tu/drm/virtio: Add missing a7xx case", + "sha": "7c219ae7e04850927877cfd4839ef0c9dcc04880", + "description": "gfxstream: delete qemu_pipe target", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8ff33a756d14a7daf7a5efd7abceccbfa6b570e3", - "description": "freedreno/cffdec: Fix a7xx CP_EVENT_WRITE decoding", + "sha": "9a1654f5ce492cf880b0b4f553e6cd42c7e925dd", + "description": "gfxstream: conditionals for using gfxstream::aemu", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "10eaf06e47d64e6ff44266185347433f1ada0cda", - "description": "freedreno/a7xx: Fix GRAS_UNKNOWN_80F4 writes", + "sha": "04f5bfaee641eda5786941a5cc31573e29ee228c", + "description": "gfxstream: update auto-generated comments.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1a3f041cd82bdd650fafd2456e3375d9aa421bc3", - "description": "freedreno/a6xx: Implement reg stomper support", + "sha": "cd8b4d730b4b18311c65aac18360e9ee0ae13e5d", + "description": "gfxstream: snapshot: DescriptorSet allocate and update", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1242f3ed3a4ad86101689d11740c46b479901280", - "description": "glx: unhackify inferring zink from dri3", + "sha": "94b906ae44adb5fb76c121f34f9fc62cf8a871dd", + "description": "gfxstream: snapshot: avoid double boxing dispatchable handle", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8994165e92127b97163d9f91b06b813d3853c6d6", - "description": "glx: consolidate some LIBGL_KOPPER_DISABLE checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "8845255881f03df9a695fae164a64201c4211d35", + "description": "anv: fix missing push constant reallocation", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "62d96a65464317326cdc2686aa34eb30f8c21952", "notes": null }, { - "sha": "725875cdea9524e8369c2661f3d762e3dca2e1b8", - "description": "glx: move drisw dri3 handling for zink out to glxInitialize", + "sha": "217c17e8a2c58f76d2aa28583cbacd552e29f3b1", + "description": "gfxstream: Avoid repeated functionality", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "82955b48aaa8c76abd5b497a50c52ee2755fbeb2", - "description": "glx: use base screen has_multibuffer for drisw", + "sha": "f1724b44d0878ea78ba472ebae3630dc643d5bf6", + "description": "anv: Drop fast-clear value conversion check", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e9aec758c6b05180d92d0216228ed9bfc8019cfd", - "description": "glx: delete all driver-specific display handling", + "sha": "93e42f9700e27233ab82bcadbf9de2f6c197d698", + "description": "anv: Store fast-clear colors with the view swizzle", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "886af985f856cccf8f2fa57bf587a11e8243a58f", - "description": "glx: move dri2 loader extensions to static vtable", + "sha": "2a9d7a3bd01caa1858039d6eb95db4b1b698bcb7", + "description": "anv: Support non-0/1 sRGB fast-clear colors on gfx9", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d723438e0d6e8fb0ecf0404d1edaa46616ccacf7", - "description": "glx: move dri2 init checks to separate function", + "sha": "899bee4af8c6f968dd78046555fefcfa55005ba4", + "description": "nir/opt_varyings: don't count the cost of the same instruction multiple times", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5f55da01dbf96c7c81a5261e90db27bdf6a12374", - "description": "glx: tweak dri2 init ordering", + "sha": "405e9d9b7466d9f6928fb881cda12fe5ab834a30", + "description": "nir/opt_varyings: implement compaction without flexible interpolation", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f79eb4730cd28871d136ab57865b165ce949d070", - "description": "glx: move dri2Hash to base glx_display", + "sha": "a7c671efc6f81ea3c968daaab178a04f3eef3389", + "description": "nir/opt_varyings: fix packing color varyings", "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6be546764a3919d395fbda4c85331eb1a6b28eb1", - "description": "glx: rework/simplify drisw zink handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08e2985e57436e585a3854ae02ec1584aeb5fe3e", - "description": "glx: move driwindows_display::event_base to driwindows_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2126a4814993eb56f199520bf61e0fbca7b96e6e", - "description": "glx: move has_multibuffer to base glx_screen struct", - "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "54e234ee2bd1906a5236d77fab17592da07b74e6", - "description": "glx: delete dri3_display::loader_extensions", + "sha": "f9b03cf40583529eca89ac040d411dc45a5bcf88", + "description": "nir/opt_varyings: add nir_io_compaction_rotates_color_channels", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4e8740370adaad5f8992c13262e1dfc66274d838", - "description": "glx: rework __glXInitialize", + "sha": "8518e1cfd7cfbc4e589400f9179e63287471598c", + "description": "nir/opt_varyings: add nir_io_always_interpolate_convergent_fs_inputs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8078a938f5e7f90bc38fee5a4c3cdc87db9d9245", - "description": "glx: simplify zink init variables", + "sha": "95bc42af74295f2c97eba18fa44fe9b8bcc7c58a", + "description": "nir: Use load_global_constant for reorderable nir_var_mem_global access", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0d78711cfb9f7946ff3e6428e77f9f4a5228ce4e", - "description": "glx: delete __GLXDRIdisplay", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "58480354432e8a0ee7b8ad80a1d1ae4ec01edfe6", + "description": "brw: Fix try_rebuild_source's ult32/ushr handling to use unsigned types", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "c7b312ad45ab724dea7059a91aadc0ca52aac12d", "notes": null }, { - "sha": "78abf0d145cf5e18e398d878eb043116dfed4d24", - "description": "glx: tabs -> spaces", + "sha": "0a376a672a71df5ef1cf51bf80ea9907e994a5e8", + "description": "brw: Fix emit_a64_oword_block_header UNIFORM -> VGRF copies", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a7c8eab63de43db8a67a24abae16fa65307f882a", - "description": "spirv: ignore more function param decorations", + "sha": "d0560f59cedf7ca88efe25bfbee72ff0819bcd15", + "description": "vtn: handle struct kernel arguments passed by value", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "9b55dcca540ca0bc48dc52b25dc1a3b1cf84f861", + "because_sha": null, "notes": null }, { - "sha": "c3b25dd3572ad8f9f5f8a084d3665ddb63423aba", - "description": "ci: remove llvmpipe in the job that disables llvm", + "sha": "237ed6fd086f91cb5b0eb846190b1754c9bff411", + "description": "mesa: capture shaders to disk before invoking the linker", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "35cb0c350e6e682d97463b5a9ec27895a211322d", + "because_sha": null, "notes": null }, { - "sha": "5d84e6cf26274a6b49df73caab7fb03a241fb286", - "description": "meson: improve wording of \"incompatible llvm options\" error", + "sha": "3179c65a5afa01db0ed46563c160b63ca50447bf", + "description": "st/mesa: add ST_DEBUG=xfb printing xfb info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "77b69cdbc3ab2b794ab9c973b552c5401d43f181", - "description": "meson: don't select the deprecated `swrast` option ourselves", + "sha": "89dad5618ddb5be50a9b3dceadf8e0addc831c7c", + "description": "gallium: add PIPE_CAP_CALL_FINALIZE_NIR_IN_LINKER", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "010b2f9497ab256d9e8041207902948331af5b4b", + "because_sha": null, "notes": null }, { - "sha": "a211a51a4addc7a2e686b1e4dc548f4deca49c12", - "description": "lavapipe: Fix box sorting during ray traversal", + "sha": "b8ee69f7feab7fc4da7e11164ccd869ac6549fee", + "description": "st/mesa: call pipe_screen::finalize_nir outside of st_finalize_nir", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a6930640a90ef5de33605f791070eaaddb6de961", - "description": "llvmpipe: Improve PIPE_QUERY_PIPELINE_STATISTICS accuracy", + "sha": "7717e458f156e783822c5aaabce730173a71a541", + "description": "gallium: use struct nir_shader * type in finalize_nir instead of void *", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e7ee69b24dd8f668fec5520ab046dac27d2b1d6e", - "description": "docs: Match README installation guide with meson.rst", + "sha": "6cd302dc39e9b0760498ee4e546b1c3deec1c4c2", + "description": "glsl: add a helper for duplicated code calling nir_opt_varyings", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "324de97f480eba70c0bdeee434e2ee845e24c44f", - "description": "docs: Add required dependencies to meson.rst", + "sha": "93c8a65dee7d386537f5583761e2e5a575046daa", + "description": "Uprev Piglit to d04d6fff00849a2a8e29ef3251c6ca04a2f68dc7", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "828c3cf002ba4901ef65cd0665149d14c30df1d8", - "description": "egl/haiku: fix synchronization problems, add missing header", + "sha": "5ced8b0ea24984f315e0934209a04a4e7f316829", + "description": "glx: avoid null-deref", "nominated": true, - "nomination_type": 0, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "34dea2b38eb336e0414d60b168b9209e029a8cad", "notes": null }, { - "sha": "fdb6afe71e9352bff6940f2479757c348e05db7a", - "description": "intel/elk: Fix undefined left shift of negative value in elk_texture_offset", + "sha": "d2fb489e0c49db645d2b4f892fafdd1a778251a7", + "description": "v3dv: use the double buffer heuristic helpers", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f3f4a057b98f89e1cc65800677be79ed66a651d6", - "description": "intel/elk: Fix undefined left shift of large UW value in elk_imm_uw", + "sha": "6d54a5514cb3be5cf4aa51d4b75c2e4eaa3faf79", + "description": "v3d: use heuristic to enable double-buffer mode", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0e5ac7d6b03dead19e2600651c1090891821174b", - "description": "intel/elk: Fix undefined left shift of negative value in update_uip_jip", + "sha": "d81bcbe3de17a0f9873e1c96f967c75ddc14938f", + "description": "broadcom: add helpers for double-buffer heuristic", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c2dda8c8e7536b9e5bc973adbed8c6003cb49c7b", - "description": "intel/elk: Fix undefined shift by 64 of uint64_t in elk_compute_first_urb_slot_required", + "sha": "3355ceec3bb35beffd1f585060471e592fd5ca9e", + "description": "v3d: store size of qpu program for compiled shaders", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e6669467b888414a7c12fb6270a2c473a02fb82f", - "description": "intel/brw: Fix undefined left shift of negative value in brw_texture_offset", + "sha": "0ba8f65d446fd74872569e6ccc6c5727bf6ef7fc", + "description": "v3d: drop blank line", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4f24c2707f23bde75956ce3498801f8e52521eb2", - "description": "intel/brw: Fix undefined left shift of large UW value in brw_imm_uw", + "sha": "234bea1bca7e262f0e1e683aca128478f9a7274d", + "description": "v3dv: add missing support for double-buffer on V3D 7.x", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "abb7c012ff4e81c941581a4c56ed67dc48444597", - "description": "intel/brw: Fix undefined left shift of negative value in update_uip_jip", + "sha": "f78d3833ef3380b0a71c02280fb3ade9bf6c3e8b", + "description": "v3d: only enable double-buffer for jobs where it might make sense", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "228e049db6c9ffa8c9cb890768a3425967985f0f", - "description": "intel/brw: Fix undefined shift by 64 of uint64_t in brw_compute_first_urb_slot_required", + "sha": "c958dd4b6bf9a7ee410a4f1851eaa0c99994ff66", + "description": "v3d: do tile state BO allocation later", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "455deacbcea7e2ebd7596c9831577b0d6262b06d", - "description": "intel/brw: Fix DEBUG_OPTIMIZER", + "sha": "93ef28a134c8d9f26ae18c3687f157798c9f7c07", + "description": "v3d: save a pointer to the TILE_BINNING_MODE_CFG packet in the CL", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "17b7e490890ba3fef0d21d8635b65113992f2df8", + "because_sha": null, "notes": null }, { - "sha": "eb5a3617e240130715ccee53128353584217c7bd", - "description": "anv: Handle internal shader compilation failure", + "sha": "3c0f84aa419e59371795bb4fe7cf0b7924c06e03", + "description": "v3d: group tile spec into a struct inside the job", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "196b3d7b5b7ed247d4e4e72528bf15a809b593e2", - "description": "anv: Improve error message when pipeline creation fails during shader compilation", + "sha": "f0543d79aa1f7cc7b6451c55d7955f76af5dae49", + "description": "broadcom: handle double buffer on V3D 7.1 tile size calculations", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0b16d7ebb92e05a5bcdaf70626e0d916551015e1", - "description": "dri: Allow INVALID for modifier-less drivers", + "sha": "87acd4cde5dca7ed637ac2fcd652eea58bb396c5", + "description": "v3d: add a V3D_DEBUG option to force synchronous execution of jobs", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "361f3622587e5bc452a62dbd671969b713273b79", + "because_sha": null, "notes": null }, { - "sha": "349e7a2919f52033502fff4658c6539a2d7dc299", - "description": "intel/common: Remove blank lines in intel_set_ps_dispatch_state() (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "e5d64ca69c180cd5443d77b6e1b165529e7124b8", + "description": "bi: Execute nir_opt_algebraic after nir_lower_pack", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "3904cfabd6ab20c709103ce051de2ce1ac915eab", "notes": null }, { - "sha": "cb7f816fc4ba1f5958429a90e541870cb730a6fd", - "description": "intel/common: Ensure SIMD16 for fast-clear kernel (xe2)", + "sha": "98cff2e098c7f97f01fc5eb252434fb48f7276c3", + "description": "panvk: Implement VK_KHR_zero_initialize_workgroup_memory", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5fdacb56ed22406a3628e506ebb00ec136f15c2e", - "description": "anv: Propagate protected information to blorp_batch_isl_copy_usage()", - "nominated": true, + "sha": "f88ecf6bb1d216623132cc369ad166f97d64b918", + "description": "panvk: Advertise VK_KHR_shader_relaxed_extended_instruction", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "79f95a371110eb83f45c4d1715b732a50da7d156", - "description": "isl: Fix Xe2 protected mask", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7be8bc2c971bd40101f1ac537d7cf518ed648179", - "notes": null - }, - { - "sha": "79389b9f6f1336c11cb8c2c680c6644e34625d8b", - "description": "v3d/ci: mark glx@glx-visuals-depth as flaky on rpi4, just like the -stencil variant", + "sha": "3478f01b0d0a38ceff768679f48d07a16127a993", + "description": "panvk: Advertise VK_KHR_shader_non_semantic_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "40004219b1da6f3fa88a375b701dca00cfd275b8", - "description": "dri: fix kmsro define", + "sha": "b13643f16ec7573e11e4dba225d418db8f24080a", + "description": "panvk: Advertise VK_EXT_tooling_info", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", + "because_sha": null, "notes": null }, { - "sha": "5bc828481630147575348b66677edaade9e891e6", - "description": "hk: add Vulkan driver for Apple GPUs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "431f353bfef6eb754e5e9cf0ed064308897afa0b", + "description": "anv: fix incorrect aspect flag for depth/stencil formats", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "0317c448727b2558a3748b7d621d6006de5ba51b", "notes": null }, { - "sha": "767280fd7369abe60abfeaafb30725d02805adfc", - "description": "libagx: rework tess i/o", + "sha": "e5776bcb399fdc7e14a199476e777157982d2e3d", + "description": "blorp: Use the calculated execution mask", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2bf01845d012a4491f09c1d9927d1572e90eb0a1", - "description": "libagx: mask counters to 32-bit", + "sha": "67333c2632beb04731d0b0456adb05e8590d786b", + "description": "util: Support elf_aux_info() on OpenBSD arm and ppc", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "16caad403852414b54b055e8615647329e103ef3", - "description": "libagx: add statistic increment kernel", + "sha": "8db71c95e1439cfff95ff92b1916c1d93926b763", + "description": "isl: Move a CCS restriction in GFX 12.x", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0708f92b378a9e08f04f66f5b937ec0bd6e12483", - "description": "ail: add ail_get_level_size_B helper", + "sha": "ab56a9eecd87bb8ea2ae779648459b7eda8509ec", + "description": "isl: Allow CCS in more cases (xe2)", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "633540c18a8b3f41ba45874eb14070047d52785f", - "description": "ail: constify more arguments", + "sha": "dc70e2d55607faa39520e13d0d134e4f39df0b8c", + "description": "iris: Allow compression on multi-sampled stencil (xe2)", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "76e3bd56f6ecd157b509d4fe37939d59e6d7430b", - "description": "asahi: offset buffer images in software", + "sha": "705555b6b086fc436da79e63be3a664b6726dfc8", + "description": "isl: Refactor WA 22015614752", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "735c63c75e762b46983d6a4cb04a5608f08aec91", - "description": "libagx: hoist code out of loop", + "sha": "4d23156127520177a176d7dad127cfea36a87929", + "description": "teflon/docs: Clarify smoke test instructions", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4e5ce7e75967f5772d73e09a8df37e00d5e2a8e5", - "description": "asahi: split up agx_nir_lower_vs_before_gs", + "sha": "778ca0824fb61ff8da294b90540dc8a0ecc937d1", + "description": "teflon/docs: Add i.MX8MP to list of supported NPUs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d3e7a7b8c8d7a787840cecf66e3531524c497107", - "description": "asahi: add TES->compute lowering", + "sha": "5adb9d03ae70b6defbf5f73df20bee7ff401f2a5", + "description": "teflon/docs: Update performance measurements on LibreComputer Alta", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9595d79b8962bc0312373a463dbdaf01151df32c", - "description": "asahi: make GS inputs explicit", + "sha": "a37c8b4e7c970ff2d51f366592f5e3b7e6aeab5e", + "description": "radeonsi/ci: update navi31 failures", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f6e9e7d3ce25a3e0460bd558886cf0e884eaee7a", - "description": "libagx: fix prefix sum kernel", + "sha": "8deb32ac2e20a6b1aedda8ff29962045cc3f960c", + "description": "radeonsi: split outputs_written_before_tes_gs into ls_es_* and tcs_* masks", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bdbd81ea406267832f920185b0cc2c232f516021", - "description": "asahi: drop #includes", + "sha": "1d16d88e1eed743b93c8b9353391fd3d20fdbd8d", + "description": "radeonsi: set *outputs_written in scan_io_usage instead of later", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "21fa5faeecde4b11483e50e8ff73e3b71623b136", - "description": "asahi: drop pointless conversion", + "sha": "3f6bc3e58d7fd5e3d2927adc016a5137db4c975f", + "description": "radeonsi: remove unused si_shader_info::output_readmask", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "96306a8b217349e05ba4cf21099aba0ca6d17a50", - "description": "asahi: refactor prolog lowering", + "sha": "b10bb9f0ba3fae5cafa45df162d63a77590d9c5c", + "description": "radeonsi: don't set tess level outputs in patch_outputs_written unconditionally", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0bd897989efea47474e73c8fa8ed64510bc403df", - "description": "asahi: drop unused patch index buffer lowering", + "sha": "3a9e7e1e82cf4a035b2702dc6955ca4ef90e3ff6", + "description": "radeonsi: remove unused function si_get_tcs_out_patch_stride", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3992a54dcf0487722a7cd5100f172566ddced2b1", - "description": "asahi: drop dead code", + "sha": "25ac573140c1ed7287fba80093709b8085c247b7", + "description": "radeonsi: reduce si_shader_key_ge::tes_prim_mode size to 2 bits", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "880844181485c8f2755c91220c08082469134f55", - "description": "asahi: Relax cross-context flush", + "sha": "a00ed96585132bc6f32cd64c259d3ed29303d5e4", + "description": "radeonsi: replace are_tessfactors_def_in_all_invocs with nir_gather_tcs_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1cd60fb2c7f2b6649e09a29be6181242d19cc220", - "description": "asahi: Fix non-async flush", + "sha": "702982d3992d7ca44d88d08d072182f0bc0dc3dd", + "description": "radeonsi: get the value for load_tcs_primitive_mode_amd from shader info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a0cdd9d5ed1c99b295fd35488556c2735289c1da", - "description": "asahi: Add more batch debug", + "sha": "e28e05ffe48e3bec1013fed8d28049bf8937c055", + "description": "radeonsi: don't overwrite info.tess._primitive mode when it can be correct", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ac4ba43c558543305c25b0bf565a88b3dbf563c5", - "description": "asahi: Print queue ID with batch debug", + "sha": "3570edeae23a84e870f07587903fa27620ec367c", + "description": "radeonsi: fix passing TCS wave ID from LS to HS for monolithic LS+HS", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2c057cc4d96984421f6a08946574dc358702b43d", - "description": "asahi: Add 1queue debug option", + "sha": "a7ba36f5891bff507eeb9b701254138f4fb034f3", + "description": "ac/nir: get pass_tessfactors_by_reg from nir_gather_tcs_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d0424eb63bf64276654c930c26787829eac388f0", - "description": "vk/meta: add VK_IMAGE_VIEW_CREATE_INTERNAL_MESA flag", + "sha": "b258a9aa4e9f0829bd82b9bec715641897f404b2", + "description": "aco: remove unused TCS fields from aco_shader_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0d66ba6e5d1ac33d1cfa9aee957e97e0658614bb", - "description": "vk/meta: add buffer view tracking", + "sha": "985285f30a8639018c450c881c553d3d0c1f2f80", + "description": "v3dv/ci: mark whole group as flaky", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d5b05265077adbbc6cf7a9c9a5e767fea7b165e8", - "description": "anv: propagate protected information for blorp operations", + "sha": "3d24f0ece139e040d515c3d15af11af4dbe44bd2", + "description": "vulkan: Avoid pointer aliasing", "nominated": true, - "nomination_type": 0, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "476dc3c050dfb34e5fbc534db8eede88cf5e2c7c", "notes": null }, { - "sha": "8d9cc6aa236fe2986858f272afe581fb08a72ee3", - "description": "anv: properly flag image/imageviews for ISL protection", - "nominated": true, + "sha": "ad4e5538bac1e95ebac1c6b956436f98f2dce4d6", + "description": "ci/crosvm: remove noise inside deqp-runner output", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4eab285d4a89287224908e6b0d8b44e1b7b793f5", - "description": "isl: account for protection in base usage checks", - "nominated": true, + "sha": "8d3f2d2c237fe88464b0cfc9de15a3d92390812d", + "description": "r300: group KIL for R300/R400", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1337e00a8908605f35934b911750cb45f5f5d920", - "description": "v3d/ci: mark spec@amd_performance_monitor@api as flaky on rpi4", + "sha": "6cdfc2d51cb0155c7e80638fdde32195736b1dcd", + "description": "teflon: Add files mentioned in the docs for image classification", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "37a38f6744f3e81063d13995a974ccd383050514", - "description": "nak/sm50: Add support for OpAL2P", + "sha": "3f096c6995881ae08bde1350941fa732aa0c3c20", + "description": "etnaviv/ml: Support addition operations on V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cd176c8784d0bc9d3646977c115064caefb2cc1a", - "description": "nvk: Fix zero-size vertex/index buffer bindings pre-Turing", + "sha": "eaecd0ffd6fff867185505cebd50e095bbe61225", + "description": "etnaviv/ml: Adapt to changes in teflon regarding multiple inputs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2439cb84509b9e7435a1c4dec37a573e1ba671bb", - "description": "nvk: Use nvk_buffer_addr_range() for index buffers", + "sha": "986f8c7ff2112bca17d9d044baab64f999ca276f", + "description": "teflon: Support multiple graph inputs and outputs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c3682ccf605efc6bfff5e8368d98762ccb6a20c2", - "description": "nak: Implement depth clip control pre-Volta", + "sha": "c0f47b12fc7913a20c62b2f0dce126b4b87904be", + "description": "panvk/cs: Poison cmdbuf registers when PANVK_DEBUG=cs is set", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e287ba95b043fe0500b111e4e5d52f91feae33d5", - "description": "nak/sm50: Fix the encoding of ffma with cbuf in src2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "c3ff3f2405104104cf1506c66fc3d3ea7698d8b4", + "description": "panvk/csf: Fix a wait-LS operation in finish_cs()", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "5544d39f4420da88c53aaf8dd48d86ac92bd0eaa", "notes": null }, { - "sha": "3353374287bdc52e74dcf7fe30f253cf348f1b70", - "description": "nak: Add tests for OpLop2 and OpLop3", + "sha": "b9eed7a0d4e4872dc5e0df2c8475092658ec7452", + "description": "panvk: Cache the fs_required() result", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "dc4ebfd562e54755de9a5913d46dc3d767546d21", - "description": "nak/sm50: OpLop2 does not have .X", + "sha": "fd497b2278342e574efb2ef319a40e38e4489ba9", + "description": "panvk: Move common gfx bits to a new source file in the common dir", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "680ec0ec26436d6a716bed94933ad2c9caa32d80", - "description": "nak/sm50: OpIAdd2 only supports one negate modifier", + "sha": "79e514637851e70b9c257bbcf99d8b23e46fea53", + "description": "panvk: Sanitize the driver-internal dirty state tracking", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "563b32c2c30a53118b56b791dde16c949edb2220", - "description": "nak: Implement From for Pred", + "sha": "8b70f664405f4875e6bf88722c4a029a44f0aab6", + "description": "panvk: Don't link the VS and FS shaders on v10", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9badf675ad0b6d47f3065d231538ee941f44b450", - "description": "nvk: Don't push bound UBOs on Volta and earlier", + "sha": "b07fd26211f41e04df6b72680096fd052886abe4", + "description": "panvk: Move is_dirty() to panvk_cmd_draw.h and rename it", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "16509db66b2d01169373dc7c581b9cd3829a8f92", - "description": "nak/nir: Don't emit CCtl for release barriers on Maxwell", + "sha": "b304a0c49b9c54043150a960e4741cc52bee7bb1", + "description": "panvk: Move panvk_cmd_compute_state to a common place", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "dee02cf2200763f6ac724d357f8e2faf31c66961", - "description": "nak: Fix OpCCtl encoding on Maxwell", + "sha": "b67b350b4c65fc7d35605d98c701f6fb2ad48cab", + "description": "panvk: Move the panvk_cmd_graphics_state definition to panvk_cmd_draw.h", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "940e52ad15783a062145c847111504744f601085", - "description": "nvk: Squash txq results to 0 for null descriptors", + "sha": "f211e5f9c5a5ffcd01ef400bcebc1a50e5f197b6", + "description": "panvk: Kill unused fields in panvk_cmd_graphics_state", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "efd86d6daa9b85498aef078ef24b4ff04aa2472e", - "description": "nak/builder: Fix isetp64 for pre-Volta", + "sha": "8a5814b456e80497a242b9f3eff0a3c3b194bf6c", + "description": "panvk: Change the prototype of panvk_select_tiler_hierarchy_mask()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a33507d621a13aa5af6d8cecc950879e96e1a6f2", - "description": "nak/sm50: Set the .x bit for isetp", + "sha": "f6c35443921500dea1f6206311c6c8d98d97aa4b", + "description": "etnaviv/ml: Zero all BOs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b87bd4b60834712ca9b180f93d515f75c0dd329d", - "description": "nak/hw_tests: Add debug printing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "a5149f3feff8de11b5dd90a0e618721e8f4a5d67", + "description": "rusticl/kernel: fix kernel variant selection", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "f098620c2156ae80bf2200f95846acfb442d5d6c", "notes": null }, { - "sha": "bfcb9995da9d49e02296f92dc04b41540f3cb80a", - "description": "nak: Add tests for OpISetP", + "sha": "0291f62c6a6cee8b0aafb299aa7644dddd2fd11b", + "description": "panvk: update expectations for G610", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6056bc4afa03771ce3c03430838562843fa45d0e", - "description": "nak: Add tests for nak_builder::iadd64", + "sha": "595019526d6cfde6ebffd38d924f8e2db4aca102", + "description": "panvk: Add frag->frag barrier before resolve", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "074ba214fe39c593a9fb2c5071481034e7a9a9a7", - "description": "nak: Add tests for nak_builder::isetp64", + "sha": "a7c8677241b6d02ee998fab903ea9e91f995eff5", + "description": "virgl: Simply loop over the resources to figure-out if it is already added", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "05bbfa79638e308dd9754295257ea74f62c7d4e7", - "description": "nak: Align shader data to the min CBuf alignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "758941ab0cf36676664f1082a100c9bdcaf2b1a9", + "description": "v3d: Support SAND128 base modifier", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8050b57c28c842db5dca55ce77ea47215d8bede3", - "description": "nak/calc_instr_deps: Set a delay of 13 for flow ops pre-Volta", + "sha": "808ae13042e009ed3346f209654a9627ea2e3920", + "description": "rpi4/ci: another detected flaky timeline_semaphore test", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c29980b218dc21b32c93c81037f13b645de7a08c", - "description": "nak: IMul and IMad are variable latency pre-Volta", + "sha": "eb84f1e61fd3839ca57e4879e12a229eb8c6dffe", + "description": "panvk: Enable storageBuffer16BitAccess", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2bc82b7147cc598d1b210d0dcbc5697a5f3a49b1", - "description": "ci/baremetal: fix logic for retrying boot when it failed", + "sha": "4ed8ef74b4dc111425d6596eb3341d91d563bf00", + "description": "util: Fixed crash in HEVC encoding on 32-bit systems", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "97b2afa16aeeceff53fb43f657d4bfb8928682b1", + "because_sha": null, "notes": null }, { - "sha": "b919bdc6f60a2f263be306c9e18cb32bd6d6010f", - "description": "gallium/video: Move DRI2 support behind legacy-x11", + "sha": "4ab14de32f3ed44f6b8bd6ed8e9974e9ad7056e5", + "description": "panvk: Set fs.multisampled sysval for v10+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ae51322d7bf42828f743d06038369503209cba99", - "description": "egl/x11: Move DRI2 client support behind legacy-x11", + "sha": "9b7f547fef1c0b9fac8ccca940259a49f3f82389", + "description": "panvk: adjust maxSamplerAllocationCount limit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6292dfb9391294142ccbb37af188046e24ee48c8", - "description": "glx: Move DRI2 client support behind legacy-x11", + "sha": "a245b397c66a1a9a1a21aa99d9fa42f2f9716104", + "description": "panvk: elaborate the comment on the maxMemoryAllocationCount limit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e8c1d966e560e9bb18d3ba7b86a9d801ab7d2eb7", - "description": "meson: Introduce the legacy-x11 option", + "sha": "c01449ef5c620433398e0d6f879940e481c7a54b", + "description": "panvk: enable shaderInt64", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a8a15dc5b585b99f823c2ef2f2edb7906d0b35d1", - "description": "aco: add struct and helpers for exec potentially empty", + "sha": "bdb2f0dc2af5683ce006df764ac3adf5ef775f78", + "description": "panvk: move samplerAnisotropy in the order it appears in struct definition", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "39264a90c36f0258aa32176fdaa824bb584cdc97", - "description": "aco: consider exec empty after divergent continue then divergent break", + "sha": "d2960a8430ea4071f8314a4413c25911505edc39", + "description": "radv: consider VK_PIPELINE_STAGE_2_NONE like BOTTOM_OF_PIPE", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e863acb318c437844b3aa56d4ff611ab6689ebf9", - "description": "panvk: Pass attrib_buf_idx_offset to desc_copy_info", - "nominated": false, + "sha": "c08d2c40ed3ae4008da31669f3d3b24c9b5aff0d", + "description": "radv: fix ignoring src stage mask when dst stage mask is BOTTOM_OF_PIPE", + "nominated": true, "nomination_type": 1, - "resolution": 4, + "resolution": 1, "main_sha": null, - "because_sha": "cec45cac846385425772f9431fb0fd707be5e547", + "because_sha": null, "notes": null }, { - "sha": "4c1c169e54db2ae5af4c512a9ef78cc76558ca89", - "description": "panfrost: Add B8G8R8A8_SNORM in panfrost_pipe_format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "0ad835a929a243249e90a2c4148f5c2ec64be0eb", + "description": "intel/fs/xe2: Fix up subdword integer region restriction with strided byte src and packed byte dst.", + "nominated": true, + "nomination_type": 2, + "resolution": 3, "main_sha": null, - "because_sha": null, + "because_sha": "217d412360762803bc9941ba5171ca0be2c5332b", "notes": null }, { - "sha": "8f8b520c7881859d12eba7461bb985993a3fb670", - "description": "vc4: fix typo in simulator conditional declaration", + "sha": "50243892b4232e4d26c7d00bd86b88da01fad25c", + "description": "isl: modify existing assert by allowing CCS_E aux usage", "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "f1f8c465d5e14f8f1301478b4662ce6663a05f3c", - "notes": null - }, - { - "sha": "ad02bfe41d03370f884107e75154bb100adab34f", - "description": "i915g: fix max_lod at mipmap-sampling", - "nominated": true, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bb95d744ca6c1375e23ec2628488b489df38189f", - "description": "i915g: fix mipmap-layout for npots", + "sha": "d32a26b3e6915b9bcbe7d881011b97712229dc23", + "description": "anv: remove unused/misleading/wrong parameters from the RT trampoline", "nominated": true, - "nomination_type": 0, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "97b17aa0b1b6d36d41c48a712865add7050c9c77", "notes": null }, { - "sha": "a1a301488bf818d06d52e59ff45528b7ddc3cd30", - "description": "i915g: fix generation of large mipmaps", + "sha": "1368ee5e1aee9a760b445b7dd24d8b77be1b0800", + "description": "compiler/rust: drop duplicated bindgen check", "nominated": true, - "nomination_type": 0, + "nomination_type": 1, "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c71c1d2a0114e096192f6919b56e31581dde4b2e", - "description": "st/interop: return unsupported without screen hooks", + "sha": "97be761f927fdb0235cb9709f0d99738000f3d84", + "description": "vulkan: include host write in expanded dst access flags", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ed2ec808b1a581cbe875a18e4a3a44e0dcbd26c0", - "description": "glx: delete tests", + "sha": "8d31cb8747780b0a985480912cf05529b77900ea", + "description": "panvk: update expectations for G610", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bb5145bcb8da45f851e2de16e544d9ea87f71ca1", - "description": "llvmpipe: only use vma allocations on linux", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a062544d3d0519aaa3845b7cfd79e925b9352a55", - "notes": null - }, - { - "sha": "a8ff1bdc8331303f5830a09a5ab2dd3d4016fd8c", - "description": "llvmpipe: handle vma allocation failure", + "sha": "619463837fb9c6f68bea7551f0309324fdfff394", + "description": "panvk: fix a missing cache invalidation", "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a062544d3d0519aaa3845b7cfd79e925b9352a55", - "notes": null - }, - { - "sha": "3e01422a16a16028e74bbb11ec9c7bf99a1d81d0", - "description": "gallivm/sample: fix sampling indirect from vertex shaders", - "nominated": true, "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97aa3464b907fc0f2b5267892799424f86950aa5", - "description": "radv/rt: remove one VALU from traversal loop", - "nominated": false, - "nomination_type": 3, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3e6b73a75a3eacd3f510e1e1e270f44b75114074", - "description": "Revert \"meson: disallow Venus debug + LTO build via GCC\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "423ba5d1c7e2d2958c37ba5b6be6dafe4161b333", - "notes": null - }, - { - "sha": "7cc199502f4d5a07b0f66993150fdc564d4387b9", - "description": "vulkan/runtime: introduce vk_meta_object_list", + "sha": "a23c0eb61a919dea4790da9640a7c7689294116c", + "description": "panvk: improve should_split_render_pass", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "97ed2e4d4b348bad6824f75b932adf09cc07d5bd", - "description": "egl: Refactor init of CPU tracing in EGL for Android", + "sha": "bee7ef4670b25de9cca4d8aa570eac01e9b9b2b8", + "description": "panvk: skip tiler subqueue self-wait within a render pass", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f788c87d02b3814964afc17db5dca086d2a84071", - "description": "venus: fix a race condition between gem close and gem handle tracking", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "88f481dd7422f09ac28de50667fd36ad2ab5f891", - "notes": null - }, - { - "sha": "23b0798551bc32f2885ac5016b7ba8584c8c6a2e", - "description": "intel/brw: Move interp_reg and per_primitive_reg out of fs_visitor", + "sha": "1b2ea10d6802de4b531a0f4b11d541154cf2ea6d", + "description": "panvk: skip frag subqueue self-wait within a render pass", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a5cc8c4807fdf1369edf20d7862135755e9917b6", - "description": "intel/brw: Move VARYING_PULL_CONSTANT_LOAD from fs_visitor to fs_builder", + "sha": "764a2940593379b9b11d3270b610b382f63c2675", + "description": "panvk: always skip frag->tiler subqueue wait", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8a39231e4f85d689ad7ff3a36ea4167194a67ace", - "description": "intel/brw: Move calculate_cfg out of fs_visitor", + "sha": "ca7814ccf409e7fc5054dd0481e58399ead8cf76", + "description": "panvk: rework collect_cs_deps", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b98930c770834f49473551801ea28afec6e67e34", - "description": "intel/brw: Move regalloc and scheduling functions out of fs_visitor", + "sha": "f1f3b568340ce9216f95b1fa6ffd67f531ff5038", + "description": "panvk: rework collect_cache_flush_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5cb1f46fd19ab9dedae657e13df491cd4935b2be", - "description": "intel/brw: Remove workgroup_size() helper from fs_visitor", + "sha": "4a598e946c8ee67fdb3f58b5ac2b0f014af559e5", + "description": "panvk: add get_subqueue_stages", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "17b7e490890ba3fef0d21d8635b65113992f2df8", - "description": "intel/brw: Move out of fs_visitor and rename print instructions", + "sha": "764cb8aebbded39995724d62d9bbcf3912932c43", + "description": "panvk: update CI expectations", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bb7f2db5a21a370a33d97c5ce041ae929de9a0b6", - "description": "intel/brw: Move printing functions to its own file", + "sha": "7a60e1dcd784b7df9e1bc15b8f591bdcb905c88c", + "description": "panvk: do not leak mapped memory", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cdbee4156ec5487e2cb00015b52810797489627a", - "description": "intel/brw: Reduce scope of some MESH specific functions", + "sha": "3419fc0d8ae32cef42589c8d6798a836a4f608c1", + "description": "panvk: add memory mmap/munmap helpers", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "67ead4edffc7cd40c5696fe55537b0ff0e3f6892", - "description": "intel/brw: Reduce scope of some TES specific functions", + "sha": "8ef57341856210b4ca8840bf5a601eaabcaf8d81", + "description": "Revert \"ci: disable mupuf's farm\"", "nominated": false, "nomination_type": 3, "resolution": 4, "main_sha": null, - "because_sha": null, + "because_sha": "acb48bde44e7c807701a2248fc263868e04cfc10", "notes": null }, { - "sha": "f9ddf51b7049095e7ba5a20442e95bc4186f463b", - "description": "intel/brw: Reduce scope of some TCS specific functions", + "sha": "19c4b734f291ca512c1823862592303ea21d0d2f", + "description": "radeonsi/vcn: Fix compile warnings with previously uninitialized variables.", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "47b9dc9070350272f38c41eedd4f63fbe685e7e3", - "description": "intel/brw: Reduce scope of some GS specific functions", + "sha": "03462aff8f0ef6f869baedbfe9ff5b4a38d1866a", + "description": "radeonsi/vcn: Indentation fix", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "28858b3ad1470ff1de54f4330ba6bed0ff6d0a1f", - "description": "intel/brw: Reduce scope of some FS specific functions", + "sha": "b8d253b30c0a8c1878f2429f0a4df0a068bbf0aa", + "description": "vulkan/screenshot-layer: Add region command option", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a8b4b9dd51aaa68e1de724409007e4e5006a1a87", - "description": "intel/brw: Reduce scope of some VS specific functions", + "sha": "45c0ef3bb48a9c8d3c8d10ab3a39e3dd27ceb772", + "description": "radv: dump SPIR-V and NIR for the faulty shader detected with the trap", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "fdb029fe1b40a8d86b3fec5e2800a0bf81e065b0", - "description": "intel/brw: Move and reduce scope of run_*() functions", + "sha": "9149488a9dcc96314814bea5365db0fa1aa0f2ad", + "description": "radv: mark live invocations when dumping VGPRS with the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c92b8a802ed9c4b3f4ef5923bc98899ee7153011", - "description": "intel/brw: Move remaining compile stages to their own files", + "sha": "3e037ac2a916225919492801c0c0bb3f528cb1a1", + "description": "aco/gfx8: use ds_swizzle_b32 rotate mode", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a3714b55f4e721a3278dfc683992f9ebd8ca62e5", - "description": "intel/elk: Use REG_CLASS_COUNT", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d44462c08d8858a4ab2dc37b311cc69501adb0dc", - "notes": null - }, - { - "sha": "5e24c2162556afc512d2a44947253979be299ae2", - "description": "intel/brw: Use REG_CLASS_COUNT", + "sha": "fdc1c61306ddf72713b06aeaa963517636f02072", + "description": "Revert \"util: Use persistent array of index entries\"", "nominated": true, - "nomination_type": 1, + "nomination_type": 3, "resolution": 1, "main_sha": null, - "because_sha": "5d87f41a546b26650b15fb33c5f1153aa041a037", + "because_sha": "031f2c2a691d9fbb84ea6146eeeda09d4a4d05a6", "notes": null }, { - "sha": "2e70757dc0b5adb854c2911081e670d753d6a524", - "description": "egl/haiku: fix double free of BBitmap", + "sha": "66d68263f8fe2fff70bccdb91f700e58a9e8019c", + "description": "Revert \"util/mesa-db: Further simplify mesa_db_compact\"", "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "80da990f22e504c8754f9bd50007466503ac6107", - "description": "rusticl/spirv: do not add additional new lines when joining logs", - "nominated": false, "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f283c38f9ca9691f258a47dd1d19570b78e6eed6", - "description": "clc: force linking of spirvs with mismatching pointer types in signatures", - "nominated": true, - "nomination_type": 0, "resolution": 1, "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec46d2a8f2e78cb1b6e0d53a97c686e033cfe97a", - "description": "rusticl/kernel: move internal_args into NirKernelBuild", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6b38605c8df29eccd1823ff725c93720a50a4d8", - "description": "rusticl/kernel: add type for the convert_spirv_to_nir return value", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, + "because_sha": "92893309bcc0c1a9ab9eab844a896d99cbc4b4e2", "notes": null }, { - "sha": "06902ec7d2af189f167e99c385e8bba6e164d4ac", - "description": "rusticl: remove unsued serialization helpers", + "sha": "5cfd841ddaa2c5b7c38725595f1a3cd6c964ceab", + "description": "anv: fix descriptor asserts", "nominated": false, - "nomination_type": 3, + "nomination_type": 2, "resolution": 4, "main_sha": null, - "because_sha": null, + "because_sha": "b6d11ba5b41eed6c9f897b832194d146dce896be", "notes": null }, { - "sha": "b58390bca24a89595bff19efb9e14c8bce45a067", - "description": "rusticl: use blob for all serialization", + "sha": "07f44ecd31335c2f4b62cb5a641740d8058e0b1e", + "description": "rpi4/ci: mark another flaky timeline_semaphore test", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "dc896c31f91f61889a1dca50c520aacab994dd7f", - "description": "rusticl/program: move attribute_str to the spirv module", + "sha": "7c3e2927fecd1b81b225828dd4256c660df1f2a8", + "description": "docs/features: mark VK_EXT_scalar_block_layout as supported for vc7+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "fcdf27de6bc2aad93aa1336792953337ed32e632", - "description": "rusticl/kernel: move setting of nir metadata into lower_and_optimize_nir", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "b501cbf153552a27c9a58554716288609337b491", + "description": "nir/nir_opt_offsets: Do not fold load/store with const offset > max", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "629d6fc124b1acce0959f6ad2b603b2f7b6915f8", - "description": "rusticl/kernel: make some types and fields private", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "73d513c5be2f0cd2ca8f3c0aca0a536cabc8df58", + "description": "vulkan/rmv: Correctly set heap size", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "845792db735893a4e42a0cf7949464bed2180eea", "notes": null }, { - "sha": "3442db410610739fb142c3f21b9bec3125d6f575", - "description": "rusticl: move more kernel related things into kernel.rs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "a21cd8c5b623e9b8b199518331a148835844660f", + "description": "brw: allocate physical register sizes for spilling", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "aa494cbacf3bfa57163bbed8b5552ad25434e713", "notes": null }, { - "sha": "c33d2db06ac0ea4d3d5372caa93bee3bbbe028c7", - "description": "meson: Add missing inc's to idep_nir_headers", + "sha": "d13bcd1dafac0c3e3907b8d7b6c884225be5dd13", + "description": "pan/ci: Move g610-vk jobs to post-merge CI", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5f7eb8cff6c8a93bf552290e9cce76e31d45850e", - "description": "freedreno: support lua pkgconfig variants", + "sha": "dcfc956521834ec325fa8f528b8c9118bdf63331", + "description": "radv/video: Override pic_init_qp_minus26 in PPS", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "76ae27efb3cdc772c8322d58a70ff58d23b708f7", - "description": "llvmpipe/cs/orcjit: add stub function name for coro", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bb0efdd4d8968a71957b563e7dbf98cefa80a986", - "notes": null - }, - { - "sha": "fcf9e33ec0e51ee8f22463b388a3bcefd3b5f572", - "description": "draw/orcjit: supply stub function for tcs coro", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bb0efdd4d8968a71957b563e7dbf98cefa80a986", - "notes": null - }, - { - "sha": "ec7afd2c24c6afa6a5c80da4f80e0b799580e12a", - "description": "dril: rework config creation", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "3de62b2f9a6cbcf3fea1d33af98be20505421d4b", - "notes": null - }, - { - "sha": "dd5362c78a1d2e8bb88cd321f510e5f9660775e1", - "description": "anv/xe: try harder when the vm_bind ioctl fails", + "sha": "d166bb5dd116fcb41bfbf4be724021e21b926f5e", + "description": "radv/video: Use 64x16 alignment for HEVC encode", "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "e9f63df2f2c0dafe0997dd69b60b7da99b5d91f4", - "notes": null - }, - { - "sha": "8b86653da6d0cc80ccf6c51900dbbf596eba23ac", - "description": "util: fix 32bit compiler error in fossilize_db", - "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1af2f5e198d81ff1c60ebc2bb44d0e67465c1fa2", - "description": "ci: re-enable venus ci", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "d1c1a33b35a0ae14bff0ecd03255a7dab3399f1c", + "description": "radv/video: Avoid selecting rc layer over maximum", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "4a19047d329a49ed34fe05346ae1d298d2907e3e", "notes": null }, { - "sha": "71639eb837de8c71dbb8ee95496bbef5f9bc8c60", - "description": "nak: Use the RED path for atomics with unused destinations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "e941acfb9d055f2cef4bc2f21166e7c2c4821099", + "description": "radv/video: Report correct encodeInputPictureGranularity", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "54d499818ca9a004ba735635d328a1ed0ff010b6", "notes": null }, { - "sha": "c347c7cbd839bb5ff8696237f0c8d542221c89cd", - "description": "nak/sm50: Implement OpAtom with Dst::None as RED", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "e4ec135d8bbd94ef552c94fe1d09cf326417b14d", + "description": "radv/video: Fix HEVC slice control", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "967e4e09dee81b93cfb30195ab5e1878aca9dbd0", "notes": null }, { - "sha": "959ae0161bcaedc62475c11878ae0d0e7be615d5", - "description": "nak/sm70: Implement OpAtom with Dst::None as RED", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "6a121f150750f0a3316a317274b14a4d0ac077f6", + "description": "radv/video: Fix H264 slice control", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "54d499818ca9a004ba735635d328a1ed0ff010b6", "notes": null }, { - "sha": "bcff324ef3f51a5dbe9ec9c83d5cdf37a6bfed52", - "description": "svga/ci: disable vmware-qemu-traces jobs", + "sha": "15ea28b835e5655a2a48d730a62a19036868ee4f", + "description": "intel/executor: Fix exec_size in @read macro for Xe2", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "61a647ba4a2e8e43f309a87178a77058f9c864ef", - "description": "svga/ci: triage unexpected piglit passes", + "sha": "b3a14d7b913313552a4224834cd760836f6aaf8c", + "description": "intel: Avoid unaligned pointer access", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "93005d20ee0effa07a24f61af82c0e4cf7155470", - "description": "svga/ci: update FORCE_KERNEL_TAG", + "sha": "1f3e24f4f3636937d49ed615340a88b648cfb220", + "description": "anv: Avoid null ptr dereference", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d0df53558ecfaa01585c82aed3de92609d743e54", - "description": "svga/ci: triage unexpected piglit pass", + "sha": "b6d11ba5b41eed6c9f897b832194d146dce896be", + "description": "anv: Protect memcpy/memset/qsort calls against NULL arguments", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8bcd18c90e8385a623aa112aa3f614bf5afd3157", - "description": "svga/ci: change DNS server for vmware jobs", + "sha": "6e544214d508672d5e766a27102699d403440286", + "description": "vulkan: Skip memcpy() call if passed null pointers", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c98f5d5eea8729087017edbb835efb6d6c7d7663", - "description": "svga/ci: enable vmware farm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "d21f7f75ff38ed26769235daf98af4a18b02f0ab", + "description": "llvmpipe: align with u_cpu_detect struct changes", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "aae82061af66a536a38197b5a06089b1d8d4ef6b", - "description": "intel/clc: Free disk_cache", + "sha": "962b996d4c569835e0c453a60bb4680d432d30f1", + "description": "util: drop XOP detection code", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "c15bf88f011d204c11e893c5ff0fd018a0262a39", + "because_sha": "4b45b61fef6e0f3325888c190e6e557d8948b31a", "notes": null }, { - "sha": "1574372de48768e69f7ec72b2ab7273989c5e430", - "description": "intel/clc: Free parsed_spirv_data", + "sha": "ca947e1295a8aedd4b7f09ca89ab285156b1309e", + "description": "util: Drop ancient Intel CPU detection", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "4fd7495c693818e0823b100df0e0607e448a29fe", - "notes": null - }, - { - "sha": "8b1a889e453d36fab948246adf6fe1310fa7853b", - "description": "radeonsi/vcn: Add support for QVBR rate control mode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ae293d176b0ab2977d4277d28a7734a2fcaa8f04", - "description": "radeonsi/vcn: Bump enc FW interface version for VCN3 and VCN4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e539f8ef5f64bbf6c8b91b03d57e2102ab6b4cc2", - "description": "radeonsi/vcn: Only enable filler data for CBR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6d8dd6c9fe7e5b4ab015089853683b3a0082643", - "description": "util: fix fossilize_db compile error", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1f8c465d5e14f8f1301478b4662ce6663a05f3c", - "description": "vc4,v3d,v3dv: avoid compiling in unused `sim_file` field in the {vc4,v3d}_screen/v3dv_physical_device struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eae740f2e4d6ab8f153c5cb1452cf4bf115940d4", - "description": "v3d,v3dv: simplify USE_V3D_SIMULATOR/using_v3d_simulator logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5577078ac1ea6b2642d1aa029e030d2e8bbad07e", - "description": "v3d,v3dv: figure out whether we're using the simulator only once", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f90d1182e0dabebf19ec271743b27d40accf181b", - "description": "v3d,v3dv: reuse dep_v3d_hw from simulator/meson.build", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "794947171658739f279544a353f894a9fafc6bd8", - "description": "egl/gbm: Walk device list to initialize DRM platform", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "32f4cf38085e4056b8e4a9fc78fea28897a1d05f", - "notes": null - }, - { - "sha": "4ef0cbaf055c077c5cb65326f9642ea1c37bf825", - "description": "crocus: check for depth+stencil before creating resource", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5f7df5df0d8410925edcfb926509f6b17ef6b619", - "notes": null - }, - { - "sha": "34145725ce25018efc84c9d0dde7674aaff8faeb", - "description": "crocus: properly free resources on BO allocation failure", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f3630548f1da904ec6c63b43ece7e68afdb8867e", - "notes": null - }, - { - "sha": "11bc95934f7a4418d2b85cdeeb44d902f65e78ec", - "description": "tgsi_to_nir: free disk cache value if the size is wrong", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "4db880d8057bac3209c196edc94c6b1e521a782a", - "notes": null - }, - { - "sha": "945564e49866f19af267c9d634fc8a4a807ec604", - "description": "anv: Wait for Xe exec queue to be idle before destroying it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6cd4372460b197fea98d257217328ddc3406e6ad", - "description": "ci: prune dri from LD_LIBRARY_PATH", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "a885f91617885216c81b8495e04ced309597164f", - "description": "etnaviv: Rework uniform handling for UBO addresses", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b7bb6cc9fa410fb783e7a99d9eadcc31668f298", - "description": "gallium: install gallium-$version.so to libdir", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "098e660a58f74630b75b63f2b75935214203c43a", - "description": "rusticl/memory: add a couple of performance warnings", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea0676d8ecec743b1e63f942c2b0a3d8fa6559d7", - "description": "rusticl/memory: remove stale TODOs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aae84eccfade4db3d9e68916419a66246f7732b4", - "description": "rusticl/platform: add perf debug option", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b3cd3b0ed473f651e54bfecd92f7d5873a3f5331", - "description": "panvk: Implement CmdBindDescriptorSets2KHR, CmdPushConstants2KHR and CmdPushDescriptorSet2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0329070233eb443f822973af2745c290bb9470d9", - "description": "panvk: Emit viewport when state is NULL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cec45cac846385425772f9431fb0fd707be5e547", - "description": "panvk: Fix image support in vertex jobs", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7bea6f8612e193d4704a8b03f719a14c500f4281", - "notes": null - }, - { - "sha": "3b1b672849c3113eb61bc8c3691901fa2e0f6d3e", - "description": "panvk: Implement CmdPushDescriptorSetWithTemplate2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b9db2108d86a72570fc649ec0a6694c31367327", - "description": "docs: Add panvk in VK_EXT_private_data to features.txt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "af998eb2bfd97c6658bebd77620d867d8b9e7449", - "description": "panvk: Update CI fails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e634acaf88d0d49c633f04a15f4ac3e916414049", - "description": "docs: add stub header for u_format_gen.h", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "e05415a82e63bd96473171bf816175b3b190645c", - "notes": null - }, - { - "sha": "c30e5d44b1027ed03a8fd542829df0055d3e1a96", - "description": "v3d/ci: add new flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e16a74c0237d2e75bb8ed9c10536c290fe7eb312", - "description": "llvmpipe: add LoongArch support in ORCJIT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "979c36401880132f7c8ca1f70a5fb9e8430b62f8", - "description": "gallivm: add LoongArch support to the mattrs setting code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08425d9aaff8440eec3a93246b0f3ad7f6fbecab", - "description": "util: detect LoongArch architecture", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd83fc4bfb75b1c4d028ac3c2395ecb29f37fb53", - "description": "nak: Don't emit barrier ops for shared memory pre-Volta", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25eb6c82067f53c9e60f78ab658095465b53c78b", - "description": "nak: Disable opt_jump_thread pre-Volta", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9acacccff7934524e95c407e6cdc0c0d06572eb7", - "description": "nak/sm50: Emit sync instructions for control-flow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87fa8a788c4f57542bae0276c67032dd9e4901b5", - "description": "nak: Add more NIR wrappers for walking the NIR CFG", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97d2187f483444e16f5a27c0e106c18488fc8605", - "description": "nak/sm50: Add control-flow sync ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6de61cb7e9768eba477782f7afc22381e130ca9", - "description": "nak: Drop the old encode_sm*.rs files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8bf3213a5465c9079f2cd0176c7c1766c4472175", - "description": "nak/spill_values: Don't assume no trivial phis", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "bcad2add47359588095965b040b63ea667880406", - "notes": null - }, - { - "sha": "305bf503e74d5c86016a0951198da21d07f8e7ce", - "description": "dri: fix driver names", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "0bdc2f180f1fbce16d96d718119b4eed1e5a6731", - "description": "dri: fix sun4i-drm driver name", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "3b6867f53a6718de80bbff4acb84ffd5aca8a8c8", - "description": "nak: fix clippy::if_same_then_else error", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9321a785cf2313dc6e8642ef3b2009ee19206d3c", - "notes": null - }, - { - "sha": "526a5722335cb7320aed4456b60dfc10130d6710", - "description": "nak: allow clippy::not_unsafe_ptr_arg_deref lints", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b9c0e3c1ab7f157aaab4210e3f31843fb00368d5", - "notes": null - }, - { - "sha": "6d0273f67a59341c69444c558676193bd1fdbad9", - "description": "anv: improve vma usage for descriptor buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a5ef9413b840af27c3ae0cafc7507cacdcf8d50", - "description": "radeonsi/vcn: add HDR metadata obu in av1enc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc4abbe27d063337a420d147cf8c9fa492789f71", - "description": "frontends/va: rework VAConfigAttribEncPackedHeaders query", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa86c3a23536c6a56832059e5bb249913b8b3f3d", - "description": "radeonsi/vcn: input av1 hdr metadata", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8ea977ca5e6e80d6f7f90162175846e83eb8f2b3", - "description": "frontends/va: check av1 enc hdr metadata", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35e4d0db9ca74a90b7e55b35f619449483e2d263", - "description": "radeonsi/vcn: add new function for obu_header", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94d881e6211991ef3bee41d2142ed56a3df7a834", - "description": "radeonsi/vcn: correct a typo in a variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "559eaaf0e64e2692bdf9f8810681d48c0ed94946", - "description": "v3d/ci: add failures from piglit all profile", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d90080b51b29df14a1169d6d11a33f773add79a9", - "description": "nir/opt_vectorize_io: optionally don't vectorize IO with different types", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07ef1a812449f8fab81257cfaeb2452aa3a902cb", - "description": "ac,radeonsi: set 16-bit flags in io_options optimally", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "709ebd8293a678db614c5b48dac2fc1da0b2306d", - "description": "amd: expose nir_io_mix_convergent_flat_with_interpolated", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9bfea3183acf90f78608c757cc5eb20abd8d6f67", - "description": "nir/opt_varyings: improve convergent input handling to fix data corruption", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2d32ae2461a68bc85ed2b0fd38edbf880804cb4", - "description": "nir: add nir_intrinsic_load_per_primitive_input, split from io_semantics flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecfefe823e033b9c563d280fae125e0a9c14faae", - "description": "nir/opt_algebraic: use fmulz for fpow lowering to fix incorrect rendering", - "nominated": true, - "nomination_type": 1, - "resolution": 0, - "main_sha": null, - "because_sha": "9bc1fb4c07fa3ea50a71c434b5f8161bc0954bb4", - "notes": null - }, - { - "sha": "ec4e5ef0f7aa0463301c71bdf4a9a3b53a18037b", - "description": "amd/common: skip lane size determination for chips without image opcodes (e.g. gfx940)", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "5b3e1a0532996f47434e68ac7c469f220473b3eb", - "notes": null - }, - { - "sha": "0cb3ace969d5fe63669aa835a3cc4bf3ee5d8731", - "description": "radeonsi: fix eptich on chips without image opcodes (e.g. gfx940)", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "26cd3a1718c7e8f55fa8605f20fb001b2954d6b4", - "notes": null - }, - { - "sha": "cccfbe6141bd5cdeba3cc7e9967abf50d0d4b369", - "description": "aco: move s_setprio to before NGG exec initialization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4574cd9faef20fc6519d8ecce7f9bf77ede7ee2a", - "description": "aco: form export clauses", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08a4853ffdcecc3f7f883e4dc26fe9574b953cfe", - "description": "aco: add export instructions to should_form_clause", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b732340ecdc30e18c44654a8c1138e37b52308a", - "description": "aco/gfx11.5: skip dealloc_vgprs for stages with exports", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "492d99fc6a8fcfdad031fab009258299dd7c7af9", - "description": "aco: add tests for export priority issue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0919ce1ac43245223c617f09f744a5844c87077b", - "description": "aco/gfx11.5: workaround export priority issue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55158bed7fa17fee9d581d7ec5523ba187ca4c0d", - "description": "util/glsl2spirv: only copy the input file if we're going to change it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "36160c967cbafb0e1d24e437cf2daf453778d722", - "description": "util/glsl2spirv: fixup the generated depfile when copying sources", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "46644ba371e817d8f33ad7b46ce2ba7775e6d2cc", - "notes": null - }, - { - "sha": "848c7c9560a28703824651c3e13ca394d1830e9b", - "description": "pvr: Handle VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "a2e07014282d0fb6d32fe8f568e578a99049b3fb", - "notes": null - }, - { - "sha": "eda77bf79d5100113b7b8600ac1f903c94d4330a", - "description": "pvr: Handle VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8991e646411b73c1e03278267c80758e921f2352", - "notes": null - }, - { - "sha": "aed5a974e9316c699943ea5459601cbf73913f4c", - "description": "meson: xcb & xcb-randr are needed by the loader whenever x11 is built", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65c92f0b8294ec4e428afc59acac86079623f93b", - "description": "ci: uprev deqp-runner from 0.18.0 to 0.20.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6edfb09dda2fc752f6c7a7573627b8a99a61f154", - "description": "ci/deqp-runner: unset CC for arm32 cross-compilation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f9a157daa30a27165b916f5e6fd0ff5b39e5348", - "description": "dri: fix macro name check to detect svga driver", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "74b4c91e7b3ebae390fd696574aeaa3d6aab972d", - "description": "meson/megadriver: Don't invoke the megadriver script with no drivers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1006283732abe2e3074e2c5fa7b97a616eea3929", - "description": "nak: Fix shl64 for pre-Volta", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e02dfb6a345be9baceec70820014b4bc667796eb", - "description": "nak: Use .wrap for 64-bit shifts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08efc78a259e367eb44ffb69ed81534f26df1be5", - "description": "nak: Add tests for 64-bit shifts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55901dc287e11a31f1ff72711a44e17ef725341b", - "description": "nak: Add 64-bit shift helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1f1af58d9324dc035481d05aa7c4f82ecc5d4f9", - "description": "nak: Fix shf.l.high on Maxwell", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9321a785cf2313dc6e8642ef3b2009ee19206d3c", - "description": "nak: Implement Foldable for OpShf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebc1c052ab4d2a703a8fd174ded9931f5b1fb01d", - "description": "nak: Implement Foldable for OpPrmt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cac3ff011b6e8ab60d249393640df3d11c81e71c", - "description": "nak: Add some opcode tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4392a5922c0a4d2768433d24fc103c626954c915", - "description": "nak: Add a framework for running hardware tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4938619f3568d54ff2a0714a129872dffc95346", - "description": "nak: Initialize DEBUG on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3fed505eb0a2a63716359ddccfec04e877179f16", - "description": "nak: Implement Foldable for OpIAdd3 and OpIAdd3X", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e09dd8e20129ca1adc6d73a8e996fc4181ff7e71", - "description": "nak: Add a Foldable trait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "841737925ff454a9e8748346354be09aefa77766", - "description": "nak: Add dst_type decorations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e25b6c0ffe6bfacc03cfce5b1033901c6dff3cc", - "description": "nak: Add an implementation of the ACORN random number generator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd7128c2e305eb7673dcd1c35baf4f3e41d39d35", - "description": "nak: Add a bare HW shader runner", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b9fdba60280c2cff71012f7a039826ff78070b5", - "description": "nak/meson: Rename libnak_bindings_gen to _libnak_bindings_rs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "61e502b25c4d6532dc5f569986f65ddf7b37f556", - "description": "nak: Make ShaderBin a public struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "758f7a440da81a2f790dfcd8955448325456624c", - "description": "nak: Pull the QMD code out into its own crate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2b90d5647b9508ecbc4a704bcb47d3781961776", - "description": "nouveau/winsys: Uninline nouveau_ws_bo_unmap()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a27e3c50789260d4651c4f4842afee8cdfebd568", - "description": "venus: clarify wsi image ownership", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "c4b30b604fda53dfaed83bcbe1467ac1023b2c90", - "notes": null - }, - { - "sha": "c429d5025ea443069e1cce6b9dd2c4baf121cfdf", - "description": "intel/brw: Don't force g1's live range to be the entire program", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60c73e09c6262a3aa056cd9fe86e434846282957", - "description": "anv: Remove extra hdc_flush from Perfetto", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "41d05737ec643b0543b3a277b4d118137fedc4cb", - "description": "nvk: Call into NIL to populate the null descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ff6577a000817d031739cd7232dd675b535114b5", - "description": "nvk: Create the zero page earlier in device creation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8d8e2249a73ba455b34d3b8b67eb72cfc5fb554", - "description": "nil: Add a helper for populating the null descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68d6cdfbc50df5969e84ec2391a3404d7b94ae58", - "description": "nvk: Reject sparse images on Maxwell A and earlier", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d2177f47649bb39d8afd84eca95deabe63c447fb", - "notes": null - }, - { - "sha": "49b433d5e7227e05e9b2f9103263a6dba55e9f7a", - "description": "iris: Pin pixel hashing table BO from iris_batch submission instead of from iris_state.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7513a0bf3a66b600fc8f83b7c6ca2279002b7ab5", - "description": "mesa: fix memory leak when using shader cache", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "656ccf4ef890b91debbb72b38957723ca04411d0", - "notes": null - }, - { - "sha": "8ba8e33c39dd58101f70eb1184b7310b9e0f1216", - "description": "intel/brw: Simplify @file annotations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a8b2321157f5ab8fd1d0f8e4ee772d85d5daae6", - "description": "svga: Validate surface during copy check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5b53d9408589eb5c8fc75b82a9b1ac9eda9c458", - "description": "compilers/clc: Add missing break statements.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c0cf7f578a907298fc4dc24e312d187eaaaa155c", - "notes": null - }, - { - "sha": "bad67ee77cfcb155baa5d3d92b4e6139c4ee6996", - "description": "spirv: handle function parameters passed by value", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b55dcca540ca0bc48dc52b25dc1a3b1cf84f861", - "description": "spirv: initial parsing of function parameter decorations", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90db6c729d81b10841cfbd7bb6a49d011ae49d38", - "description": "spirv: generate info for FunctionParameterAttribute", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f05b7225a331a72d7ff97c68b08b171fc31d3ce8", - "description": "microsoft/clc: Split struct copies before vars_to_ssa in pre-inline optimizations", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1908d2c171abc12eb55e5438d6af1f72a787c91c", - "description": "anv: split image view from anv_image.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eff01c46d85bd25490aaae786ae313377c9d999b", - "description": "anv: split buffer view from anv_image.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5af56528b5d1b7df1a68844ede7a02e2595be71", - "description": "anv: split sampler from anv_device.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "543c72678161ecaaf6e7c33acc2bdbaf3fe1464f", - "description": "anv: split buffer from anv_device.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c59e8e814aa2c877095361c616f7027d83d30731", - "description": "anv: split events from anv_device.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca51a02e7bdde7ac73cd49b97a7ae9a7e78769cd", - "description": "anv: split physical_device from anv_device.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7ecf10c200ffb16b58a74f6f33aa915d8952406", - "description": "anv: split instance from anv_device.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69ee1c4b468ee0bd7b9eb8c3a6ce3baac561188e", - "description": "anv: Drop useless 'if (total_scratch > 0) {' block in cmd_buffer_ensure_cfe_state()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de5d767f9a8d92f47a5fae06390a5d32ccd42735", - "description": "intel/brw: Add a maximum scratch size restriction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c65a76db85492f2a80ece3f3214236357e8c66ca", - "description": "anv/trtt: don't just crash when we can't find device->trtt.queue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ab8ff99fa779911e7b9436faba0f64b5e6d3038", - "description": "anv/trtt: fix the process of picking device->trtt.queue", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "04bfe828db8187bdda755d8c55ec2f8fbf3ae298", - "notes": null - }, - { - "sha": "5ca224aa0c35bdd1acc5b9d93100fc8ec27b0f3f", - "description": "anv/trtt: make all contexts have the same TR-TT programming", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6415027d854e15925ea636424a53343c6bf656e5", - "description": "anv/trtt: submit a separate batch in anv_trtt_init_context_state()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "abbb4b20f360e12855c6e89fe21e2b203555d21f", - "description": "anv/trtt: check the return value of anv_trtt_init_context_state()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb9d94f4edb820884c4e001c5b74f2e740b252bb", - "description": "anv/trtt: make genX(init_trtt_context_state) a little more compact", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6bc9a5717343cae20ccf8cc016fa1f51fecf8488", - "description": "intel/genxml: add the BLT and COMP_CTX0 versions of the TR-TT registers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a6cbb3a9730bd13da87c3bca22a74f182e21231", - "description": "tu/kgsl: Remove unused variable", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "17c12a9924a0c6f0f52a66c92fe1bbd8886fc9b1", - "notes": null - }, - { - "sha": "47de27cde1b678c8f7cdf976101f4dd851dee4a1", - "description": "tu: Implement VK_EXT_device_address_binding_report", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd10d2ef2fc59514c0c6ad69213672ea94e41a75", - "description": "tu/rmv: Fix missing image bind logging for WSI images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe387e14b52b7b991ee7a9bf54bd7cc5350f71cd", - "description": "anv: use the WA infrastructure when emitting WA 16013994831", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3aa29c47b9f8c435a89ce622a4dfb034350a3f38", - "description": "nir/instr_set: hash tex sources commutatively", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b7ceb9d327c9e3eb1afa9e4793718e36506959d0", - "description": "nir/instr_set: stop sorting phi sources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b328443e3e5d28adff4cd5fdb4f13de0edabb53", - "description": "nir/instr_set: combine XXH32 calls", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "159a3edd80a988dec263708f851ed35eec881a78", - "description": "egl,gbm,glx: fix log message spam", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "a55b9c0c606f90489f025a955325dee2dad7f340", - "description": "radeonsi: consider DBG(NO_TILING) when filtering modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94f2b3f7bccbe1fc1e807dac7fa620962841d0be", - "description": "radeonsi: consider PIPE_BIND_LINEAR when filtering modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f12ccea6c7432378d62d8cb4132fb7f824354506", - "description": "radeonsi: reject modifiers with DCC when NO_EXPORTED_DCC is used", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c868aa94a218b99e13f31bf0e83a43de01e0da5", - "description": "amd: use a valid size for ac_pm4_state allocation", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "428601095c38bd80f4ed164414f8096edd73832f", - "notes": null - }, - { - "sha": "547de1e928cf38ad7776cb7958457b7367d5b032", - "description": "v3d/ci: mark spec@amd_performance_monitor@vc4 tests as flaky", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "4696e9c49b01b5cc13cadf51c31782fa9b0f8441", - "notes": null - }, - { - "sha": "4215d503848864fca2e07927cde010ca76317237", - "description": "v3d: add new clear blitter op", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7158950a6f039de697b8227f83d0173923763c79", - "description": "v3d: use operations to specify what to save in blitter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c83330cde02c7ed3da54ede190d74717806ed016", - "description": "etnaviv: isa: left shift is 3 bit long", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f22e152ade956fdce1b0cba8097d76aac085c92", - "description": "gallivm: orcjit: use atexit to release LPJit singleton at exit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3423e73cece2657e4e0008a60f2f9d0ade618fbe", - "description": "gallivm: orcjit: keep the ownership of tm for LPJit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc6e6d7a2bedcc34d59e76f08ca4362369438f32", - "description": "freedreno: Enable Adreno 306A", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c5df9376f7acc8b23cce1e63aa586eb654a6a27", - "description": "venus: initialize bitset in CreateDescriptorPool()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "de5879447b4d7548b2798ba482b25441e0df97c9", - "notes": null - }, - { - "sha": "324ccd74300d4441c02028fb9b10e4d4410e9570", - "description": "nak: fix meson typo", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "95bff5ca5b44e9d2a5a7863ce46a6234d86bd207", - "notes": null - }, - { - "sha": "0cc23b652401600e57c278d8f6fe6756b13b9f6a", - "description": "nak: Move creation of nak_shader_info to ShaderBin::new()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "618dfc73e6e5907d98545db5eece5b26d3dd9cc0", - "description": "nak: Move a few more things to VtgIoInfo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f39b645c66912449d25dce95a711dc572052653c", - "description": "nak: Rework fragment shader stage info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d96fe1854701c9292672a8a82e6ed531ed477dc6", - "description": "nak: Plumb tessellation parameters through ShaderStageInfo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4c9bfdebd86dce4ce91e1b9a57435871d35c827", - "description": "nak: Drop the nvfuzz binary", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb7632128b7a06bb460d997b06910553591ae5c0", - "description": "venus: only request ring thread prio for TLS ring", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc82f80dcbdd7e6be2445e73dfa73c31970e5b35", - "description": "nak/nir: Split 64-bit conversions pre-Volta", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "574239c948e870f5ef9ebad763cf764ab37191ce", - "description": "nak/sm50: Implement OpCCtl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fd427bf6eb8471683598ade08ddc7588141ed2b", - "description": "nak: Lower fsqrt in NIR on Maxwell A and earlier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b4a005bf867958d33d549a35118c18e01f3c7c9", - "description": "nak/sm50: Implement OpPixLd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69be07b191901241143cc8a1cd04d4e8e381dbc6", - "description": "nak/sm50: Various encoding fixes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "549fada5933015a689b2057e4757260f7d7a42de", - "description": "nak/sm50: Improve encoding of OpFFma", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cfef5a932995314c737ebd89cb46dcb2a86c9d6a", - "description": "nak/sm50: Support AtomOp::CmpExch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7d1b1f5d3ae934f4a12c5a48fbe93dcd1220e963", - "description": "nak: Add an AtomCmpSrc to AtomOp::CmpExch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da4e368a6fbf466108b95aa94b8c7b172bda5c1b", - "description": "nak: Implement ineg on sm50", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71d8126e1bb8d838137440d7c2509c6ce4925fc0", - "description": "nak/sm50: Split IAdd2 into IAdd2 and IAdd2X", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2177f47649bb39d8afd84eca95deabe63c447fb", - "description": "nvk: Don't advertise sparse residency on Maxwell A", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "48803ac53db8daf26af70c9d2b68802d29e1128b", - "notes": null - }, - { - "sha": "a888e83c3a299e6617aaf367028ca0ffa90bc779", - "description": "nvk: Fix indirect cbuf binds pre-Turing", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ee29a8d1cdbdc553caac8ceeda03f5c737eda0f2", - "notes": null - }, - { - "sha": "66954d997d801743156f5eeda7a23ba1d9b6c098", - "description": "nouveau/headers: Add an nv_push crate in Rust", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63770a163af8945aa6d3325f9196cc496d667ee1", - "description": "nouveau/headers: Add a Rust struct for each method", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "591b5da49bf5dff5c92d2465de9e0fccab2e9d89", - "description": "nouveau/headers: Run rustfmt on generated files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f6919e6c2d898ff940e791f558d0d919fa47747", - "description": "intel/clflush: Utilize clflushopt in intel_invalidate_range", - "nominated": true, - "nomination_type": 4, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd0592afd34b6686d9645228de99b15bae9198e5", - "description": "gallivm: Fix LLVMPipe codegen issues discovered on Apple Silicon", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f49284cfa9da5c64ccf5bd1466d6de9536edd51", - "description": "nak: Rename num_barriers to num_control_barriers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aac97b22ae8d5a06646a3cef373c78c2f005f2cb", - "description": "nak: Don't mix up two types of barrier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca087e202766872085d6d02363fd7f4961feba48", - "description": "zink: reject Imagination proprietary driver w/o geometryShader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bed6e0d691c125eecfbd504ee96c5a4a6027418e", - "description": "build: Check for PyYAML in Meson build", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "ccc6442d6f0539571c413222e0d6aadc78bc5d4d", - "notes": null - }, - { - "sha": "149e8bff52aec95b9912812392d850829ccf1822", - "description": "meson: egl: Build egl_dri2 driver even for plain DRI", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec55a6c3292235aa56750989ee4a5bbd62fca61d", - "description": "Revert \"meson: fix with_dri2 definition for GNU Hurd\"", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8461776a09cac6540fe168e431528b4c71ffdca4", - "description": "Revert \"meson: Do not require libdrm for DRI2 on hurd\"", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "49144ebcf93d48e3a95bc291747e49990dac7fe3", - "description": "iris/gfx12.5: Pass non-empty push constant data to PS stage for TBIMR workaround.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "57decad9768a445de23d093cc8e004269a352b50", - "notes": null - }, - { - "sha": "ff3c3792b4f0d66af50c36b9d03373b1de5c9740", - "description": "anv/gfx12.5: Pass non-empty push constant data to PS stage for TBIMR workaround.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "57decad9768a445de23d093cc8e004269a352b50", - "notes": null - }, - { - "sha": "b98eebbcb2ab25a6a9de4e97f352715614c72c48", - "description": "intel/brw: Implement null push constant workaround.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "57decad9768a445de23d093cc8e004269a352b50", - "notes": null - }, - { - "sha": "bb2513918abcba892bade05008a9c79c5a304af6", - "description": "intel/dev: Add devinfo flag for TBIMR push constant workaround.", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "faee9426ab7b79b72823c27d97f13780771f6220", - "description": "nir/algebraic: Optimize some masking of extract_u8 operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c7e35d4e00632188787fbfffb5a9882db9cc48c", - "description": "nir/algebraic: Optimize some bit operation nonsense observed in some shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92befad89f6259137a1cb6acad371b96a2aa25f1", - "description": "nir/range_analysis: Fix errors in fmin and fmax tables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72c182f873bd0b6c98018cc9f15d2c3bac7c06cb", - "description": "ci/lava: Detect a6xx gpu recovery failures", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53f249b921d5d8a3188bfe1f9002c2ddcb3d2ff2", - "description": "zink: use blake3 instead of sha1 for program cache", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce1236fe87716748d6a8692cefb837607fabc38d", - "description": "zink: use GENERAL layout for depth attachments on some drivers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "991244dad4ec540c59e05c273688cfa88b0e346c", - "description": "zink: use local screen variable in zink_prep_fb_attachment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cdc70013a25427895af26440b1e4b26cf8e17dc7", - "description": "zink: add lavapipe to can_do_invalid_linear_modifier list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8d53f72da124c5135da296b14df287f304e6796", - "description": "zink: hash in some driver workaround flags to shader cache", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec3eb87f91c17e4777acc983bb728d8a81e91069", - "description": "zink: move some flags from driver_workarounds to separate struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2c90da5605f3e94552284f7b7eba57444cb439c", - "description": "venus/ci: skip timing out test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e64adab9a0eed39c2fe8b08c9527c8963050634c", - "description": "anv+zink/ci: mark a couple of tests as flaky", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebef31e4cf1f38d579033891a6ee29155db345ee", - "description": "anv+zink/ci: document two tests, one failing and one crashing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ed5d362a69ad964e1920ae95eac2c2a5fd89ddc", - "description": "anv+zink/ci: mark some tests as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fe147de572b640291c7a51bb350ebf0c0b4085c", - "description": "freedreno/ci: document extra variants of failing tests on a618 and a630", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "734823fe7ded3312529a701225a72bc152ea131d", - "description": "freedreno/ci: double job timeout for a306", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1edf20a4d83a758a7a3afc4864402a3ef3ab240", - "description": "radeonsi/ci: skip timing out test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dfd70bab4ac2336be6c1085f195aef8e0e10dc13", - "description": "loader: gc loader_get_extensions_name() and __DRI_DRIVER_{GET_,}EXTENSIONS defines", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "fa541a887c8a6732136280dce18fabfb481b34d7", - "notes": null - }, - { - "sha": "7dfb9ba023c0e4841125f8150c07515761f1143c", - "description": "gallivm: Fix compilation errors when using LLVM 13.", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "47cd0eee2611001499e3aa0a045fbed38c2dc1e5", - "notes": null - }, - { - "sha": "f4b996b77a77984ff742258f480e8826ba897ccf", - "description": "docs: reset new_features.txt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b21e17979ca61f1688864a2d40019066f03d1e8", - "description": "VERSION: bump to 24.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb8063e1f4ddaf24b40a27c102a720accdef536a", - "description": "anv/generated_indirect_draws: Adjust xe2 simd32 sends_count_expectation", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "e9f63df2f2c0dafe0997dd69b60b7da99b5d91f4", - "notes": null - }, - { - "sha": "2c6e8b2dd5fc3e85c0691367155aba3c626eaf16", - "description": "Revert \"bin/ci_run_n_monitor: explain that the 'Universal Recycling symbol' \u2672 emoji means these jobs were cancelled\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "032d4a20f90006ce421a78ae30ff8c9f7469d27e", - "notes": null - }, - { - "sha": "1846eed38b25bd1aee650ab53c6e408364654b1d", - "description": "radv/meta: create the layout for clear depth/stencil on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c62f53b83319920f09277084bf08a0b09476cc1", - "description": "radv/meta: rework getting depth stencil clear pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cfd9d550d857ebf2901676bad67b4a020728df70", - "description": "radv/meta: create the layout for clear color on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd188b7e779e8ea7d19e84b77b4786a6167da2c1", - "description": "radv/meta: rework getting clear color pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2af57b1caca99bca1eb9af298d726d03337bd717", - "description": "radv/meta: create the louts for DCC comp-to-single clear on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c6dae59fb8185b56c0047e6e84b230a607158a1", - "description": "radv/meta: create the layouts for compute resolve on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd5526fd87ef99505434cc722023c3ed72aad4df", - "description": "radv/meta: create the layouts for FMASK expand on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f3f3ccd0d3ea85ae197a57c3cdfbcb07a1ab23c", - "description": "radv/meta: create the layouts for FMASK copy on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40724a657a1a1fa9ebce39ed05023ae38a21a8b3", - "description": "radv/meta: create the layouts for depth decompress on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7eb201e18ecf4c249422e931b1f450839a2192a", - "description": "radv/meta: create the layouts for FS resolve pipelines on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc30915637d49b8d72a09751179e7f1c63fb6d10", - "description": "radv/meta: create the layouts for blit pipelines on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5361a50d54df7afb59c0b0687423ef98704c5499", - "description": "radv/meta: stop creating similar pipeline layouts for depth decompress", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b7459d0fa6bac6b1b77147fa2f71632fe5164df", - "description": "radv/meta: remove unnecessary goto", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c96f2c5e3dfdcff966de95cda2bed211aacd341c", - "description": "radv/meta: stop checking that creating NIR shaders failed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "508a3bdd275a52d2d2cd15427937da6c3681a11a", - "description": "u_format: Reword introduction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "974d31dba70ceea0fa5f1b52bba6e5b6f4abe70f", - "description": "format: Generate sRGB<->linear conversions from table", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e05415a82e63bd96473171bf816175b3b190645c", - "description": "format: Generate endian-independent format aliases", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ccc6442d6f0539571c413222e0d6aadc78bc5d4d", - "description": "u_format: Rewrite format table to use YAML", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12a33ecd0f5371884b2e81ff9007c75cd86799aa", - "description": "ci/windows: Specify numpy < 2.0 to prevent breaking changes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b3cd808aa48c6468c7dc56f108c6afb1bc3b5ed", - "description": "ci/windows: Disable zlib in LLVM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3386e1425f1c4fa52c8fae9511f6c31d2713dac8", - "description": "rusticl: support read_write images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d0ec53275a3553d86ea251038960fd2dc540f48", - "description": "zink: fix OpenCL read_write images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52cf610975b617253bc417a976f3ea7a9241cc98", - "description": "tu: Enable VK_KHR_shader_subgroup_uniform_control_flow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d43a2711757da2eedcc6724d7bcf5d3f1c260199", - "description": "freedreno/ci: Use the common a6xx-skips on a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4da848a1ac017c67605cd8e40af17f098441f1f", - "description": "freedreno,tu,ir3: Move threadsize_base and max_waves to fd_dev_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "692e1ab2c1e55b9842af431d56c016e1c2c0743f", - "description": "anv: get rid of the second dynamic state heap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "355a1f2058021aa5b4e1c83dd9579f5add725e61", - "description": "glsl: remove out of date comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2c3dfef7588e08b4fb4c30ad968c0eb7ed5424d", - "description": "llvmpipe/ci: mark spec@!opengl 1.1@gl_select tests as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4696e9c49b01b5cc13cadf51c31782fa9b0f8441", - "description": "v3d/ci: mark spec@amd_performance_monitor@vc4 tests as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "23ef65ea3b859368c6ba4fcc66ba4d251b3f5afd", - "description": "ci/vkd3d: fix LD_LIBRARY_PATH", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "notes": null - }, - { - "sha": "e5b48da908723f4eaf3fab7a96e06ae9f85bce7d", - "description": "aco: remove optimize_cmp_subgroup_invocation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa6d3636349929bfca95ec8b6f6495d5f34e793b", - "description": "nir: constant fold inverse_ballot", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "efb9258814adb1b77cd5c3a5c527fc9427126e57", - "description": "aco: handle clustered uniform reductions correctly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65acc81e9d2435c44bbdc6f4fb1ea7bcc453463a", - "description": "radv: fix shaders cache corruption with indirect pipeline binds", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "b1ba02e707b71b1601ca0a04b1152c8587dd565a", - "notes": null - }, - { - "sha": "95bff5ca5b44e9d2a5a7863ce46a6234d86bd207", - "description": "nak: Add minimum bindgen requirement", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "944365802f8ef53e37db38f15f2c2dc6b820d132", - "notes": null - }, - { - "sha": "d5ec3a8988af7fc2ec9eee0379a39e73291e02b4", - "description": "meson/megadriver: replace hardlinks with symlinks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac5d14c5eada123e60ef3a1dae7c8700c8ad7af4", - "description": "meson/megadriver: stop removing the \"master\" .so file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da05938e655927e8e4a2e9bcdd09cd167f228c7a", - "description": "meson/megadriver: fix install message to match the rest of meson", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dbc28332a93e0e9b5f6994be835c78d3f9a49ed5", - "description": "meson: fix filename printed when generating devenv files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "decc040abe23eef0095b1557dfb9b13be49f785d", - "description": "intel/debug: allow silencing CL warnings", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da47c0ed65c38ca0f8015baad03973281be02419", - "description": "zink: use PIPE_CAP_NIR_SAMPLERS_AS_DEREF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "235eb1af96b5303d8df17527e03e5c0b0b066f0a", - "description": "zink: move image aoa access to nir pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "586d0c4a9b5d9779092a18a9803837082b0b2100", - "description": "vl/dri3: use loader's dri3 init code and delete everything else", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "985e9c09f8f7ac424dff970ea818d239d2af09ea", - "description": "egl: use loader's multibuffer check to deduplicate lots of code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "293c7b38ff5214864de0ba677e38378fb9d4d46c", - "description": "loader/glx: move multibuffers check to loader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63191107ab4b1e20b0fcd66b706c639259eb009f", - "description": "loader/dri3: avoid killing the xcb connection if dri3 not found", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c24891e0440416ac7ca02ffba568ba98c323b17b", - "description": "loader/dri3: check xfixes version in loader_dri3_open()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa541a887c8a6732136280dce18fabfb481b34d7", - "description": "loader: delete loader_open_driver()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93511c1c5c5fb60166c806d417e4b4378bf1fb31", - "description": "gbm: link directly with libgallium", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69c772e4ea8fbeb9e3520de9d6b7a071937fba30", - "description": "egl: link with libgallium directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50fc7cc290db49288b318c116c6fdc3daaf801e9", - "description": "glx: directly link to gallium", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "67b778445afec51883e36618c8d5c535b3fd149f", - "description": "brw: fix uniform rebuild of sources", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b8209d69ffdb8ea0e09257a2cc1a3fa903250e4c", - "notes": null - }, - { - "sha": "b0d22461b945de597f39062a53e4f08d4b8559a2", - "description": "freedreno: Enable the X1-85", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "330006375edc723f710504669a9209d3a4d542bd", - "description": "bin/ci_run_n_monitor: replace \u2672 with \ud83d\uddd9 to represent cancelled jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "964ecac0a45efa54a9d87763ae67671bcfd0e3f9", - "description": "bin/ci_run_n_monitor: add text labels next to the emojis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "032d4a20f90006ce421a78ae30ff8c9f7469d27e", - "description": "bin/ci_run_n_monitor: explain that the 'Universal Recycling symbol' \u2672 emoji means these jobs were cancelled", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d630ff1f79b370883de7001ffa06b7b90f32ec3e", - "description": "intel/brw: Disallow scalar byte to float conversions on DG2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ca77370d29f0e2f5e29ae2268fd0a73d57c4038", - "description": "anv: Fix I915_PARAM_HAS_CONTEXT_FREQ_HINT check", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "d52dd5a9e954bcf9571cd1547f17f870264820bb", - "notes": null - }, - { - "sha": "35cb0c350e6e682d97463b5a9ec27895a211322d", - "description": "ci: replace gallium-drivers=swrast with gallium-drivers=llvmpipe,softpipe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "010b2f9497ab256d9e8041207902948331af5b4b", - "description": "gallium/meson: Deconflate swrast/softpipe/llvmpipe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3fba2709078fa175f5c6e03f7ec30c6407dff7f0", - "description": "radv/meta: create clear r32g32b32 pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5933d2274bd109dcd2c77c0c98a1037a0a0ab0d5", - "description": "radv/meta: add a helper to create clear r32g32b32 pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a3f00e7e67df69f24223aa3821b91248518b1f1", - "description": "radv/meta: create clear pipeliones on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7bda80f08bb425d928fe94ab16ea813faf2c936b", - "description": "radv/meta: update the helper that creates clear pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b406121d22c0c7f73f27f0d36296aaa131aa1d99", - "description": "radv/meta: create itoi r32g32b32 pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2e21c4098f11ee8c6464df2c70e877d21a9efbf9", - "description": "radv/meta: add a helper to create itoi r32g32b32 pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef2af61300ec0f3d238afb27aa9b19a1093a53fb", - "description": "radv/meta: create itoi pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e47dffb1000bbab7074372d2a2412cafa8749260", - "description": "radv/meta: update the helper that creates itoi pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb745776b77ca4f2027b57f03869d073ed6deac5", - "description": "radv/meta: create btoi r32g32b32 pipeline on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "010e2c373b3eb2d660be6710207b2061af3c8880", - "description": "radv/meta: add a helper to create btoi r32g32b32 pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b68b9b1677a5cde7aea10e0701fbd7dc1950c763", - "description": "radv/meta create btoi pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3332de3640bb4ab68ff36677afd873bd823b1616", - "description": "radv/meta: add a helper to create btoi pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c23ec1a7c37479b7d5af243d9b53e104283fece6", - "description": "radv/meta: create itob pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0cdd23077267cfe694d4b8f5e70280e4f3328d56", - "description": "radv/meta: add a helper to create itob pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a2730d9a555192b022ec5d2f3b9b83a8691c531", - "description": "radv/meta: create DCC comp-to-single pipelines on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72fa7a04496db9b9990aa9b6cfa6ea9e88dca15f", - "description": "radv/meta: create clear HTILE mask pipeline on-demand when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8a434bb935cc401f0d317d5e7330e4d8aeaf4a5", - "description": "radv/meta: rework creating clear HTILE mask pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5f3d8d24e99a3a23fcebed4e98f7b88e8981289", - "description": "radv/meta: rework creating DCC decompress compute pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "792665bbeed9984ea21da9fe3665a353219a9e78", - "description": "radv/meta: rework creating HW resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4d8ccfcb368c18a251aa2ee8e980663a975c155", - "description": "radv/meta: cleanup creating HW resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c5130e779c2913dab7265866087467f50c8da575", - "description": "radv/meta: rework creating compute depth/stencil resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22e1d0f293ed03e222bdd42d87f083e4ce46dc73", - "description": "radv/meta: rework creating compute color resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "edbf6fce551386e9dfd8ad30d68127fb2bb7fcf4", - "description": "radv/meta: rework creating GFX color resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21dd086c07be411930f69d2bed6ab7512f0c2327", - "description": "radv/meta: rework creating GFX depth/stencil resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "80bcdc08ecf13f3479f8522a456fccfcd16dcc1d", - "description": "loader/dri3: Use FourCC for buffer allocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "084cedb5226a867d54ab0c7f60d9347226f59cea", - "description": "egl/x11: Remove __DRI_IMAGE_FORMAT remnants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "361f3622587e5bc452a62dbd671969b713273b79", - "description": "dri: Unify createImage and createImageWithModifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4072809149a9a624d1d2cbff377a5c88b985abac", - "description": "dri: Delete createImageFromName", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecd0fd8deb5fdc12becaa4cdea12a669cf1420c5", - "description": "egl/x11: Update to createImageFromNames", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "efb88deb36e6c9aa55be392d40fa0f3472c4177f", - "description": "loader/dri3: Use FourCC for create-image entrypoints", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "648d3da090c086fb5a17ddf8cfd3db9427238558", - "description": "gallium/dri: Drop mesa_format indirection for lookup", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d62bea127d94871f4b5c4204dbedb92bdfb93bab", - "description": "gallium/dri: Delete unused helper function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ef4b6ed547e98675168e5c665a1b3800ce5c89a", - "description": "dri: Drop the old lookupEGLImage wrapper function.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "733b7002e733de38071b91414c413e6269c5d7cb", - "description": "dri: Fold lookup_egl_image_validated into its one caller", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c859fd2780ddd697ae62ff2235f957f02efacc7", - "description": "dri: Collapse dri2_validate_egl_image() into dri_validate_egl_image()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2777e455bbfa06acd9b21a178d54255ead11356", - "description": "mesa: Drop some version checking around ValidateEGLImage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d8c74bd7cfa16f32ccc05bdbb70406f9d54b8f4", - "description": "dri: Move EGL image lookup/validate setup to dri_init_screen()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3cd654b88a19c27de5bd7914f0203eea58ee5778", - "description": "dri: Stop answering DRI_IMAGE_ATTRIB_FORMAT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6bce728de901955a1d6b129c739e89f48fe54e5", - "description": "dri: Remove createImageFromFds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60cb420996c5aa12a246cac01e5b64eecfa11281", - "description": "dri: Remove old createImageWithModifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3bfd15748308b1f0116502ba4f6865734bb84536", - "description": "dri: Drop createImageFromFds2() in favor of createImageFromDmaBufs()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26c135457839e36dc37c454fc442fd6d41974ebe", - "description": "dri: Consistently use createImageFromDmabufs() not createImageFromFds()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1bcda45be45bd5f7da075dd3d7796594aa72d0a", - "description": "dri: Drop old createImageFromRenderbuffer()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24d03a1c0f3d6ffae1a9d651b4ea6c7dcb1efd65", - "description": "dri: Replace createImageFromDmaBufs() with createImageFromDmaBufs3()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "13ea03f0884b587fbf22ba2faf4bdc75adc2532b", - "description": "dri: Consistently use createImageFromFds2(), not createImageFromFds()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a026df0f7eb0d130e9bd63afc98ee67a6e27649", - "description": "dri: Consistently use createImageWithModifiers2()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb90f99ee54e2d851060f2f50567b4fb149a7133", - "description": "egl/dri2: Use createImageFromNames for DRM buffers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6227d8391009bc738d6faf8a473d77e2f3c754fb", - "description": "dri: Fix a pasteo in dri2_from_names()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "433ca3127a3b94bfe9a513e7c7ce594e09e1359f", - "notes": null - }, - { - "sha": "8fa9e78e393c1105101280aaeda36219c6c4490c", - "description": "radeonsi/vcn: Support 10bit RGB for EFC input", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eb05111bf78be3aee0f6da4a1ae976431429c4cd", - "description": "frontends/va: add support for A2RGB10/X2RGB10/A2BGR10/X2BGR10", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "433a0422d5553e6bf229be0c11513932fa29a3ee", - "description": "v3dv: don't leak cache key", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6be7e25256863c1e6a16d62cb06aff9aa42bfb08", - "description": "relnotes: Add an entry about the new cache default.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87a25adf087bb82aab71577a1b4bc07af93fa278", - "description": "util/cache_test: Add tests for old cache deletion.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c3bc6991d27c61b5c1b362f60db513044c5e41c3", - "description": "util/disk_cache: Delete the old multifile cache if using the default.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd4fbdf510ffbd54f3f9f1eb25e3dee09b3ef00c", - "description": "util/disk_cache: enable Mesa-DB disk cache by default", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e8bb93ea3082b5f0b83b60e7376c0ba0821d811", - "description": "aco: micro optimize VALU fquantize2f16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b4fcfd638203f85377309e48fa6f03730394d66", - "description": "aco/gfx11.5: select SALU fquantize2f16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2549bc2f9e70764a304a4c325c9750ff1981d573", - "description": "aco/gfx11.5: select SALU fneg/fabs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "284b9965e820aefb55494a15a1f08ed112de4d10", - "description": "aco/gfx11.5+: allow sgpr dst for trans ops and use pseudo scalar ops on gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "314053a3e31fa8b0df2485c31af3adfa15d440c9", - "description": "aco/gfx11.5: select SALU fsign", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1b5a0c6ad04a2f69d980a416be4883e02a44142", - "description": "aco/gfx11.5: select SALU fsat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee0e183700c6186bb8382889d03bdd9f85b670dd", - "description": "aco/gfx11.5: select SOPC float instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bd229ac50f21621fc57cfbf9a4f81d6618ca6cc", - "description": "aco/gfx11.5: select SOP2 float instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6affd916b5b541733ff22bbca3b5d66077258629", - "description": "aco/gfx11.5: fix s_fmac acc to definition", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a90d4d340c3e9be4cd0c6fe4d5fcd15fa383a13b", - "description": "aco/gfx11.5: select SALU float conversions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4399c7bac3138624db33b133c8562ea00cb63995", - "description": "aco: add aco_opcode::p_s_cvt_f16_f32_rtne", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1efb7754fc3b07d0978a8f849076c19593ee570e", - "description": "aco/gfx11.5: select s_(ceil|floor|trunc|rndne)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33a719b3e27a546c7aff1018885c65b1c1a3346f", - "description": "aco/gfx11.5: select s_cvt_[ui]32_f32", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "343420fd4e0ff0b6454f30a097dc0879a193e44e", - "description": "aco/gfx12: don't allow vgpr operands for pseudo scalar", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d58d0274a8f9a836c389f90fdcaa91053c19c212", - "description": "aco/gfx12: use trans s_delay_alu for pseudo scalar", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "534f0019d714f2331f29d1281a009bb439ebdb17", - "description": "intel/brw: Don't mix types for unary extended math instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "452fed5203c0afc904553b4baf9e50802d479010", - "description": "nak: Run copy-prop again after opt_prmt and opt_lop", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "842bde8694ad004520aecf05e8ff8c1adbf0acb0", - "description": "nak: Add a pass macro for more consistent debug printing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aed223ca89e2be53d3d7a11e54749949531ab3da", - "description": "nak: Optimize nested OpPrmt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b96d2d4351a91308e6697b7e089a52cc2df2dc7f", - "description": "nak: Add some helpers for working with OpPrmt selectors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7e3106fa6f881964f3a8cde3cfeb3105bca651da", - "description": "gallivm: orcjit: use a mutex to protect symbol looking up", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d709b42180e29519ce9eb119e99226299380a9b5", - "description": "dri: Let dril handle the DRI driver link farm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3de62b2f9a6cbcf3fea1d33af98be20505421d4b", - "description": "gallium/dril: Compatibility stub for the legacy DRI loader interface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91e1ea52c9dc3c8bac564d4dbaf196591beac3f5", - "description": "mesa_interface: Move out of GL/internal/", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de41fda2f58ce7028edaff9128512a1734fbce3b", - "description": "mesa_interface: Set ourselves free", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6be17e222d59ce39e04c517e1d553c08c519834f", - "description": "treewide: Include mesa_interface.h not dri_interface.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c48fd8a6da1863af1dbd4f4f87997b622be4074", - "description": "gallium: Rename ${target}/target.c to ${target}/{$target}_target.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8d64860ec751add841870139d6bdda9120d4e2b", - "description": "anv: set MOCS for protected memory when needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ece7abb599e2fa59acd888985b93ea60360dbdbd", - "description": "anv: get scratch surface from the correct pool", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3ccf80f9b15a49bbd79702d3c4de7ee65c8837b1", - "notes": null - }, - { - "sha": "bcc79499fae3f9ddeab339c17a2a30d60849f53c", - "description": "rusticl/queue: format file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00540594df33fb1e380cc8f23672d757094f9f13", - "description": "rusticl/event: fix outdated comment in call", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38e15037f477b065fe0b77e10ece009e85214652", - "description": "rusticl/mesa: set take_ownership to true in set_constant_buffer_stream", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8da8c6c2d8bf9b9b04ee030df68d7d44146fc877", - "notes": null - }, - { - "sha": "17b66799b62a82314bc908d6d7d7932cd39594d2", - "description": "rusticl/mesa: handle failures with u_upload_data", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8da8c6c2d8bf9b9b04ee030df68d7d44146fc877", - "notes": null - }, - { - "sha": "8a77488c9c3397355011e32c024c8aca9b49f7a6", - "description": "rusticl/event: return execution errors when doing a blocking enqueue", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4bf6f26a9b2a9adbdf301fb80781a91b74130d1", - "description": "rusticl/queue: properly implement in-order queue error checking", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3684912e3fd27639c62ed3a736832ff08cfc193a", - "description": "rusticl/event: properly implement CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a5ef4411b8cb8589d5b5939afaf196d93f762e8", - "description": "rusticl/queue: properly check all dependencies for an error status", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25dedee67d27959115875bb9e0b975db7b17ce52", - "description": "rusticl/queue: do not overwrite event error states", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2d3f8e446069ab6649b04078e8010c1eecc5b15", - "description": "rusticl/event: make set_status handle error status properly", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5072848a2f692ab9179504f24df97c01bab7f007", - "description": "radv/meta: remove useless memset when destroying DCC retile state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "602bdda3a576d85743bfd140c918fddbaa17e372", - "description": "radv/meta: rework creating DCC retile pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "176befe439c010498b62cf08fa85caa157acadc8", - "description": "radv/meta: fix potential memleak when creating DCC retile pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e53114de3d71795a517438698ee74daa6e11eda", - "description": "radv/meta: fix potential race condition when creating DCC retile pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0906b6472420c3e6482aaa4cc65b779214747b31", - "description": "radv/meta: rework creating copy expand pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "67d720d11550abda108f4a432922d5d0b5819afd", - "description": "radv/meta: create fmask copy layouts regardless on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee1bc2e821c387d0158caa76fc4f4bd26c7a90ec", - "description": "radv/meta: rework creating FMASK expand pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1ec223cd2773adb86e14733e01ace4533657a5c", - "description": "radv/meta: create fmask expand layouts regardless on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bef832b10027ed78f352d6f2a5b142236cce85f", - "description": "radv/meta: rework creating blit pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad82a338b3a2e247c4ea955604e5baef7042e726", - "description": "radv/meta: cleanup meta_emit_blit()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "89dc3167200770e07b3aedf27e1c546722ebf1fd", - "description": "radv/meta: move the locking around creating blit pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8683cae011730c3214d0eac5639d1de11ecad01", - "description": "radv/meta: cleanup radv_device_init_meta_blit_{color,depth,stencil]()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20be729636fc72dd03892df70ddb0cc8f5bc1041", - "description": "radv/meta: create the fill/copy pipelines on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c57987afc733a235f4bb09c6068e28390c14dfd1", - "description": "radv/meta: separate creating the fill/copy pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f2cbc3ab9b4ed0137250dfc85516e9a64eab27f", - "description": "radv/meta: cleanup creating the compute depth decompress pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b3d9afe44de6ea470c7a3cc1e20e1a8ab8121eca", - "description": "radv/meta: create the compute depth decompress pipeline on-demand", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3e7c7e19fa148ac57ec1a5c40d2227d478d0bb2", - "description": "radv/meta: rework creating the gfx depth decompress pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b54dc6a29a0fc12645a87617b87929c0dd35260c", - "description": "radv/meta: remove unused parameter to radv_get_depth_pipeline()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38567300d45b3a875c9aa4a025421d9e68d23552", - "description": "radv/meta: move locking around the gfx depth decompress pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c94ed0394710ed7d20fc7ba9170c7b95d69964b", - "description": "radv/meta: avoid potential NULL deref with the gfx depth decompress pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c1fa23adf1ad1f9db078c9395e681f9e3f52023", - "description": "radv/meta: remove the depth resummarize operation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76bf65b613d98a1dfc314cd2a6804e91c03b3af0", - "description": "radv/meta: rework creating the VRS copy HTILE pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5c743e9e90152101bb487ef1e7d49efa0ea68ad", - "description": "radv/meta: fix potential race condition when creating the copy VRS pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f24742e8dc08d303e93299c5da227abb2fd0fb6e", - "description": "winsys/radeon: revert recent changes", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "f673e2bf688173bb9069bcb13aac5b70330d561c", - "notes": null - }, - { - "sha": "cc9503206e226419e4ffbf48f675447d868d0500", - "description": "panvk: Fix assert", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "0e74b6eda9a0614a7e9438beda39c659da1b26cb", - "notes": null - }, - { - "sha": "0500e3516566d6cfe3170ab508bf5128395c52a1", - "description": "intel/dev: Drop writeback_incoherent from Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d77dfa75d334aace59839885ea81a767ac94c4b", - "description": "intel/dev: Use GPU WB PAT for Xe2 writecombining", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "48da8eab55640603c408348d5ada3e03fec81352", - "description": "intel/dev: Add comment documenting the PAT entries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7295e09b536dea05f904e60e786ada8fab10bab1", - "description": "intel/dev: Drop coherency from intel_device_info_pat_entry", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa1129540a5bb472f4681bd49bb36b5d2338e3e2", - "description": "intel/dev: Add documentation about intel_device_info_pat_entry::mmap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4173e0f9106b7abc70b586936196c9694f0866b4", - "description": "intel/dev: Drop DG1 PAT entries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "178950bf9bc395755f83bbe67a15b9937403bf04", - "description": "anv: Fix return of PAT index for compressed bos for discrete GPUs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad96a993856e7caf319c736cac6f514f6a13b996", - "description": "docs: add sha256sum for 24.1.4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "096548bbe9cf1df33223ebfa1ff255624ef70799", - "description": "docs: update calendar for 24.1.4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc078c2dcf4d65fa6a551171de37cc35fafa8b9e", - "description": "docs: add release notes for 24.1.4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "619bcd3b5c8fefec773c4281dcc808b20b95306b", - "description": "radv: allow to capture with RGP on GFX11_5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2882ea3e213d61381df60e11c9259babd833388", - "description": "ac/rgp: assume GFX11_5 use the same SQTT/RGP versions as GFX11", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "664a31bcd1e8d5b28c75f9fe00c17de418cd9129", - "description": "radv: disable SPM trace on GFX11_5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "057c4e378689b066e11c2f94b1edae548645a303", - "description": "radv: expose BufferFloat32AtomicMinMax on GFX11_5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2ae0c9ef8fcc46c3b6155fab90a7fa704cc5ba5", - "description": "radv: fix programming DB_RENDER_CONTROL for NULL depth/stencil on GFX11_5", - "nominated": true, - "nomination_type": 0, - "resolution": 0, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c5779250ba6205f7aafc9d04154dad433aa525a", - "description": "radv: do not expose ImageFloat32AtomicMinMax on GFX11_5", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eff0998064f2ec422fd7465d130fd17286a30b93", - "description": "radv: use radv_nir_opt_tid_function to create inverse_ballot", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39de1786566e2914ab27533e5318d8db0d1efe64", - "description": "radv: use radv_nir_opt_tid_function for shuffles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca887833186b9d93a103ec0dbb7fff5be6b697dc", - "description": "radv/nir: add a pass to optimize shuffle/booleans dependent only on tid/consts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d3f536174ea587a728f1d6d6180104e18b0e5d7", - "description": "aco,nir: add dpp16_shift_amd intrinsic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f430b1111b18e37c959d9ac5698e80d2aa7c139", - "description": "nak/nir: Make interpolate_at_sample more efficient", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24d5acf0529c653a3935e13bc411d9bf42aa70ba", - "description": "nak/nir: Use prmt for barycentric offset lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fffbd3ff2b9a53299ffd4b5c7dd5399f69685335", - "description": "nak/nir: Use prmt in texture lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbccbd8d50b1b04461a843a4f2a1b1153ed26cdb", - "description": "nir,nak: Add a nir_op_prmt_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3619ec9630e8a05288d08e82e2285db12867bb27", - "description": "nak: Don't print the destination of OpIpa twice", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef88597ebb1eaf10017d17ec072953d6ae4a0c87", - "description": "nak/copy_prop: Ignore the top 16 bits of OpPrmt::sel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f949c00170f2cd0b75cfab5edebc965069161d68", - "description": "nak/copy_prop: Propagate OpSel with a selector of SrcRef::Zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc33cafcacb1ad2eb9bb04283a57ee30385260fc", - "description": "nak/nir: Use an indirect load for sample locations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f673e2bf688173bb9069bcb13aac5b70330d561c", - "description": "winsys/radeon: switch to rendernode when card node doesn't work", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "216ff9591bd088ad18c62e71fdda0965faea8b78", - "description": "winsys/radeon: wrap fd access with util function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec2451fcb345dfa182e3a320f03391b621921315", - "description": "winsys/radeon: take the full winsys struct in radeon_get_drm_value()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "10d9bc3a2ce4878b50926b0578ab33c37c7561bc", - "description": "panfrost: Fetch available system memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02e38664f32c46b34d05a2dff801761120d4309f", - "description": "panfrost: Increase address space to 48-bit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04685e732ee9908f1ab174bd98a43c9a2d5e1c97", - "description": "panfrost: Do not recreate bo if already mapped", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f2793ee1006af332c9cb80319243f67021fe5d4", - "description": "panfrost: Rewrite set_global_binding to make resources truly global", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "801922cbe6ba2d0ffe3a9f2f7357969bd11cc2d7", - "description": "bi: Implement basic 8-bit vec support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "368100d71c9cc03536cdb637066062955b29b149", - "description": "bi: Enable lower_pack pass in compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5420b739253c73875a532f40216b601618ec04e8", - "description": "bi: Lower pack_32_4x8_split and pack_32_2x16_split in algebraic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32ef369322187489071e1b6f38ce3ae3e23c9478", - "description": "bi: Enable lower_pack_64_4x16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02cea9762953a5141cc9b6e995f19011ca6e9db7", - "description": "bi: Clean up mem_access_size_align_cb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "660218529c54104f0e9c5cd31059f961f0bad418", - "description": "rusticl: Add panthor when panfrost is present in RUSTICL_ENABLE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e565873911103d5be2696ab5064b150a1844128f", - "description": "features.txt: specify that GL_ARB_depth_clamp is only supported on v3d/vc7+", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "cbd39274451af7c0ad06676012a8f28a395df64d", - "notes": null - }, - { - "sha": "4e9c16b035159c01b10fadeb5930f62efba14058", - "description": "features.txt: specify that VK_EXT_depth_clip_enable is only supported on v3dv/vc7+", - "nominated": true, - "nomination_type": 1, - "resolution": 2, - "main_sha": null, - "because_sha": "16f6f50ce49c965302c4d81fd65c96c9d630f66b", - "notes": null - }, - { - "sha": "f5a93fa83bdf5a34d3e46cb79611fef02d26cb19", - "description": "features.txt: specify that VK_EXT_depth_clamp_zero_one is only supported on v3dv/vc7+", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "f8623ea7da722c5656af050d7bc771fcc3f1fc47", - "notes": null - }, - { - "sha": "e6de8e2533f1fb863bedd904b9dc1e07d28da27d", - "description": "ci: fix run_n_monitor single execution", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15461dc62fba9066c1c2d4796f7c5003beca736c", - "description": "mesa: switch ID allocation to util_idalloc_sparse to reduce virtual memory usage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4085aaf569bba2543b04031697842534d5a534b", - "description": "util: add util_idalloc_sparse, solving the excessive virtual memory usage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ace7c32333521d18ee0db44da24132da70c23c22", - "description": "util: don't use variable names that can appear in args of idalloc foreach macros", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "287ed620d0de450fd1b8141e14227a2033434715", - "description": "util: make util_idalloc_exists private", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d260314f101540298edf973f5393e3468ed84ba", - "description": "nvk: Use the page size queried from NVKMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68c06558be46421ae3357c0062bd0525f804e097", - "description": "nvk: Drop the sparse alignment back down to 4096", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "58181b7bbcf915b3262e7707cb88aabb6d7fd673", - "notes": null - }, - { - "sha": "bccb9fe09127cb41170af43cac347e18866a735d", - "description": "nvk/nvkmd: nouveau uses the OS page size", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7f45d20d2b96776976730c2f776a97815438241b", - "notes": null - }, - { - "sha": "78c00fbc2c0b7e63775133a8b78370e0e1f79ac1", - "description": "v3d: rename job->clear to job->clear_tlb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e19c139de117986ae50bccf325b6a99252d8b08", - "description": "v3d: skip tlb loads when emitting clears with a draw call", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9f26a9995c3c277acab3ee526cb7e1299910e5c", - "description": "glsl: fix cross validate globals", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dde1a69929212b4cb7e0156e7e364d8b1fc5aeb8", - "description": "glsl: set how_declared to hidden for compiler temps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb0efdd4d8968a71957b563e7dbf98cefa80a986", - "description": "llvmpipe: add shader cache support for ORCJIT implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60292b714c42d8caa6d2d8b7d31b5308439e0efc", - "description": "mesa: add unreachable to _mesa_shader_stage_to_subroutine_prefix()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22fe73a86a245042dda72eef565379c8415ec383", - "description": "iris: fix iris_xe_wait_exec_queue_idle() on release builds", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "665d30b5448f606d7a79afe0596c3a2264ab3e15", - "notes": null - }, - { - "sha": "4fd7cad05dca3d80172495a0535401282138cdfe", - "description": "intel: Rename XE_PERF to XE_OBSERVATION", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40dbb6e8e88745264016b5290468ce5a351e2353", - "description": "egl/x11: Remove force software check for exporting SBWD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ba1a6a7e384bf349e646dfb70bd61287ec82b01c", - "description": "egl/x11/sw: Implement shm support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71a97b204750cc2f7f29927c85df0e1fee882c2c", - "description": "vulkan/wsi: Update sw x11 wsi to only copy damage regions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be050e34a79c5107f0e13a62ba3815351ac4c172", - "description": "egl/x11/sw: Implement swapbuffers with damage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb5afd804e9eb803989df48e6bafcd59afafe205", - "description": "egl/x11/sw: plug in swap_buffers_with_damage handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6088a0bf51dd6bdfe39d9160a748bdde016f2c96", - "description": "egl/x11/sw: fix partial image uploads", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e3e712e74e0acf1d4e708126427bd3990484bf4c", - "description": "intel/elk: Convert missing uses of ralloc to linear in fs_live_variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3700e49fffcb1df2ae4f62838b5a3d46eb0836c3", - "description": "intel/brw: Convert missing uses of ralloc to linear in fs_live_variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "117a93a550894df4a54e6f57196df4674231faf1", - "description": "zink/ci: remove redundant arb_shader_image_load_store skips on POLARIS10", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78aab2db8093b7ae4e508220f7ddf306bf691aac", - "description": "zink/ci: skip arb_shader_image_load_store also on NAVI31/VANGOGH", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6690343e101a3d3444d8cc2eca8a0a19c690d430", - "description": "zink: match shader-db report.py format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d45e2f3f15e7a9190c8f6b7395ad6b09c40e5fac", - "description": "zink: remove extraneous \\n with shaderdb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8177a4f72ac8a77561084dc64591a1fad31ffae0", - "description": "radeonsi/vcn: support DPB_MAX_RES on VCN5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e040ee1098fa0f327fa65e683aa88da2a6518afd", - "description": "frontends/va: Support frame rate per temporal layer for AV1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6099903c1c072e09b737e22e3f7d32fcde3117e", - "description": "vulkan/runtime: add spirv_info_h to vulkan_lite_runtime_header_gen_deps", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1759c0eba774615c57097e5579ad4ff1abc1f6c8", - "notes": null - }, - { - "sha": "241585667f17cdde943bbeabf2ac2e5d61abbfd7", - "description": "anv: reimplement the anv_fake_nonlocal_memory workaround", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "94989b45a5ed91088777f9be100c0ceba474ce52", - "notes": null - }, - { - "sha": "cdf646dbc3534a9c4bc575807c8659986fa0f729", - "description": "Uprev Piglit to 582f5490a124c27c26d3a452fee03a8c85fa9a5c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d202f246981db257290a9759df5f77dd78c68952", - "description": "spirv: Don't warn about FPFastMathMode if not OpenCL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b3842f9f41001a26870390cd2fbab9fb0080db0e", - "description": "tu: Don't disable 2 10-bit formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f1d1c4fc87add67d35b14a91f5eb7f1c5318682", - "description": "nir/opt_constant_folding: fix array size define, pt 2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bda47e29defebfb3a234a76dff551e8c28901c6e", - "description": "freedreno/a6xx: Allow blit based transfers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30dbfc87cd565a367b1079939269b83254885d08", - "description": "freedreno/a6xx: Add more format swizzles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "89dd8d101b6efb6cceb2fe529554ce1a1a6ca9a3", - "description": "freedreno/a6xx: Skip blitter for L/A conversions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3bb393e7b926a239fb433ee9072174abbf4d32fd", - "description": "freedreno/a6xx: Tweak blitter traces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7e250033eef2111aaf33d4e92ad92408da87b5e1", - "description": "freedreno/bc: Rework flush order", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57694b894429cbe343aae4e7599f14c8f6f1c0c7", - "description": "freedreno/a6xx: Drop 16b packed image formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb9d86299b44e77e37f8b9032cb839099ca482de", - "description": "freedreno: Use LINEAR for staging resources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5de33f3d3e155283ab72b6acccaee8eeeab4b710", - "description": "freedreno: Implement stencil blit fallback", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8bc0cb804006c796e0a86febb2f9dfd5c15ac4fa", - "description": "freedreno/a6xx: Implement S8 support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5056f5b69cff01dfab5fc60596b1868731f52433", - "description": "u_blitter+d3d12: Move stencil fallback clear to caller", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93728752228b9d90435d627d24c617562f52e3a7", - "description": "freedreno: Handle non-null cb with null buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9123ee0f185f9744b82f84af2ec08cbaff63c364", - "description": "st/mesa/pbo: Set src type on image_store", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dec4603a21f54ceb815843684230213141cdfc2b", - "description": "ac/surface: fix version check for gfx12 DCC", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "0bb83a4060a021c4e14ffd2c62bfdb630287da27", - "notes": null - }, - { - "sha": "2b99906e5bd809f3502668ae096f9a9c8e729c9d", - "description": "radv: Fix shader mask for SQ_WGP SPM counters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "acb10043cbb5698e2a02612930d08598b9245085", - "description": "nvk: add instruction count exec property", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4030447dab14afb2b7ba214902ad7610e15d152b", - "description": "nak: gather instr count explicitly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "67e3b3fbfda269546502a86b0de4ca6c0f08397a", - "description": "nouveau/drm-shim: set ram_user", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6723128e946579d2a8cdc01ded40a644c10fd69f", - "description": "aco/spill: Don't add phi definitions to live-in variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb5af6beded1fccb510f3ac59a91eb072d0f4c41", - "description": "aco: remove live-out variables from IR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f86816ca85049b0e59b8e306d9bfcc1667ace189", - "description": "aco/print_ir: print live-in instead of live-out variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "043ec096c1878d2aebed4fb919223cb1b87e8b69", - "description": "aco/validate: use live-in variables for RA validation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "976dd71942955e2b1a368b662ac0c889e1af5a8f", - "description": "aco/cssa: use live-in variables instead of live-out variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c146d4b6b6aa21f801f00c539577370bf4e6815e", - "description": "aco/spill: use live-in variables directly rather than computing them", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "162876c8752e3001715c005fa455711997618fb7", - "description": "aco/ra: use live-in variables directly rather than computing them", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29262f8cf39589c9176bc96ef616e6b912afb0d6", - "description": "aco: compute live-in variables in addition to live-out variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a4a03ec1f13be9f9ebd44f48b946337393910a1", - "description": "ci/panfrost: Update t760 fails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32a4596d179da82b8602761399183122aad02e0b", - "description": "panfrost: Handle gracefully resource BO alloc failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71a24a0c5e600c6991049c20eaa45da52810a263", - "description": "panfrost: Handle context_init errors correctly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "668bde442197532c34894601fc753d2bdac86d67", - "description": "pan/kmod: Avoid deadlock on VA allocation failure on panthor", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "97f6a62f7ef82b909f62ca78788d4f24416fbd31", - "notes": null - }, - { - "sha": "ffef3d1709daa1ed81d98d8f12f3fcb74e9c4f95", - "description": "nir/opt_sink: ignore loops without backedge", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "79875737cce4a1d870070f1612c7555f16f8765a", - "description": "radv: use NIR loop invariant code motion pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "540ee1c81ae55d117cb21ca1b892cd28c21c276c", - "description": "nir: implement loop invariant code motion (LICM) pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e18b54fa5d83220c211c169731b4d81b58d9a6e4", - "description": "drm-shim: stub synobj_timeline_wait and query ioctl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "814a2da2f42aa07a543bea6fd84ff599a6735554", - "description": "radv/video: advertise mutable/extended for dst video images.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8863704c6bf1db410c625aa111f1c9bfea9e4333", - "description": "radv/meta: add a helper to create descriptor set layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d322b787e784d4e4fd6a94516e0b72845569599", - "description": "radv/meta: add a helper to create pipeline layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6a626e000ec6ac83be904d1f3768f80730007a7", - "description": "radv/meta: add a helper to create compute pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf3b2d29125f711d6a62dd8e18d9ab915569f8fb", - "description": "radv/meta: remove useless checks for NULL handles before destroying", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4deb138e7d5c2f60bd9a0a21a2c0ff814d591c7a", - "description": "radv/meta: remove unused number of rectangles for internal operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecd3bbf826aff5bca6ab5c9eb54f953b5a027e39", - "description": "radv/meta: remove redundant check for hw resolve pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76e4edefbf3f2f8a50537f196067e6bc4ac16470", - "description": "radv/meta: remove unnecessary blit2d_dst_temps struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e739d0e5bb328917f621f5f4360eb7d8cf76c5d7", - "description": "radv/meta: remove non-valuable comments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f02ec5ed18a0a9bdd3739287cce54a621ea3bad", - "description": "llvmpipe: add an implementation with llvm orcjit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b69b8d0db91ad6dae3ecb4be0e05523b5a7b684", - "description": "llvmpipe/tests: add a new test for multiple symbols for orc jit testing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ba283c0d845ee328b031de955dcb3e0384587247", - "description": "llvmpipe: add function name to gallivm_jit_function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "28530c3eaa12617fa39c3f3cb5d23bae24b8422b", - "description": "gallivm: add riscv support to the mattrs setting code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "465510a211db97132a8df192cbe0f92195fabed0", - "description": "util: detect RISC-V architecture", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60488d6213a044b01ae6a9f668592abd737edb95", - "description": "xa: add missing stride setup in renderer_draw_yuv", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "76725452239e9e7740c0edd6a5f3663ab897c343", - "notes": null - }, - { - "sha": "1ced84063226aa08263d94f812e2b99b6d11e99e", - "description": "radv: Add `RADV_PROFILE_PSTATE` envvar", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bda1de89db9f0ab4172aeb7eb52dbab7ca20d223", - "description": "asahi: eliminate load_num_workgroups from TCS unrolled ID", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae769727d8ea7dd2c4a3a90c408fd110eeb6cad8", - "description": "libagx: handle VS/IA pipeline stats on GPU", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fbf2002e3b5c50d4657e63b9ed3faebcc59edda", - "description": "asahi: handle CS pipeline stat with indirect dispatch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc4d38d4ed5947cd56c0fb2dbe0a6fc86c43086e", - "description": "libagx: add kernel for incrementing CS counter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d26ae4f455a2ebfb4bf4fba62dd93a050603b8e2", - "description": "asahi,libagx: tessellate on device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc9b815efaee64589312a000b8b825e069394032", - "description": "libagx: specify heap size explicitly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a82c0211e7e2d278235bef49bd926d20ac139484", - "description": "asahi: tuck in null query check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bce466586e3d0be78ce405036433bdd2878dc542", - "description": "asahi: make agx_pack opencl compatible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9624b86af042ca6e5eabac668cdc95777e2e2502", - "description": "asahi: drop stale comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d4f0d3002682e6a9fce48765f86ffd03bb68c38", - "description": "asahi: drop old comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8b673a10939d45c8184e6d3380eabbb6a624d7a", - "description": "agx: do not flush denorms for fp16 fmin/fmax", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ac289dade0dcaed4cb49ca886de4e2b4d7e2fb8", - "description": "agx: set lower_fminmax_signed_zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d238d766c64eb1d440a28cba6451d4df7d1e8b27", - "description": "nir: add lower_fminmax_signed_zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e46f7b39a7e941176cbb87468684d6b0473ef75", - "description": "nir/lower_alu: remove dead #define", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ab3d95c11789354a526e9032d7d355294a87e10", - "description": "nir/lower_double_ops: handle signed zero with min/max", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26de3d5366338aa6f4df6eb97751e42a60b34bb1", - "description": "glsl/float64: handle signed zero with min/max", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f48fa4ebe5510cb2811bf2a9aaa91ea1049635c", - "description": "nir: strengthen fmin/fmax definitions with signed zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7fc5a2296b8ec7cf6783cb2ae6012ff1ffee5046", - "description": "nir: use MIN2/MAX2 opcodes for imin/umax folding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8db5759b8f5e8384dc60da81ec718173b2fa91d", - "description": "nir/search: use ALU float control helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4c6fbc4a7e4345fc78221f106901146ca75b721", - "description": "nir: add nir_alu_instr float controls queries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "43dadbd2fa7864ff8984deb305c72e02ebde15ab", - "description": "nir: Add FLOAT_CONTROLS_.*_PRESERVE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc1521e57c005582aadc86d5942d852fc67a258b", - "description": "util: add dui/uid helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b16b1d05c5ff66d3c45a7dc2973dc56ee29ffb30", - "description": "meson: remove unnecessary line continuation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2afd233145460a8de7672f0e2bb7416a16d0f176", - "description": "radeonsi: lock a mutex when updating scratch_va for compute shaders", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3b0bfd254f722e5773f70c6cb367e859876a4208", - "notes": null - }, - { - "sha": "a5b4ae67ae60d69418fc9cc879e5aa43ea5004e0", - "description": "ac: add radeon_info::has_scratch_base_registers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3b0bfd254f722e5773f70c6cb367e859876a4208", - "notes": null - }, - { - "sha": "bc4382348d776e3b840645a339683aa6473b9bbd", - "description": "radeonsi: don't update compute scratch if the compute shader doesn't use it", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3b0bfd254f722e5773f70c6cb367e859876a4208", - "notes": null - }, - { - "sha": "c353394a21b90582cff6c461ede160e3eda81462", - "description": "radeonsi: replace si_shader::scratch_bo with scratch_va, don't set it on gfx11+", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3b0bfd254f722e5773f70c6cb367e859876a4208", - "notes": null - }, - { - "sha": "880f0fc8cef6963fcd0be9c63606bba6c4e10e73", - "description": "vulkan/util: add missing dependencies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ff016610fb0c86cbd069c1e7c139b216cab3891", - "description": "radeonsi/ci: update gfx11 failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02e60a221cdc361da59d5aaac1a0133fa5cd9415", - "description": "radeonsi: rewrite the clear/copy_buffer microbenchmark", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65b09edff2bd2068e43c07b61d0d915cdc4243d8", - "description": "radeonsi: clear buffers with a 12B clear value by clearing 4 dwords per thread", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9fa0cb8aa8c766e760c87b2ea441e8ed0362a3b6", - "description": "radeonsi: add dwords_per_thread parameter into si_compute_clear_copy_buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca4f6fde546158398b0355e6731689c3b8cc1d8b", - "description": "radeonsi: use a hash_table and define a shader key for the DMA compute shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8df427f162512e5f3721e4c99981baad8233abac", - "description": "radeonsi: add fail_if_slow parameter into compute_clear/copy_buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e42a25aea1b1c23264b7f8ac9c656052db59846d", - "description": "mesa/st: load state params for feedback draws with allow_st_finalize_nir_twice", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5eb0136a3c561e25d3f274e33a86812cfb2af589", - "notes": null - }, - { - "sha": "b0ad3c216026565f84685d8a805ff397ff276706", - "description": "aco: fix s_delay_alu with salu and trans dependency", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9e9cabd2fa168690ffde09bed5675c1940b13dc5", - "notes": null - }, - { - "sha": "a4b8d17c29326da22b9b7e7197f1efe7b276a110", - "description": "fd/meson: Only build 'ds' when system has DRM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d77b0f7cb161006f5d9762b37223cb7a5121e36c", - "description": "tu/kgsl: Fix profiling buffer GPU IOVA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d6faa21f81fd62569ec2f2fa3fc9ccdd51986b1", - "description": "tu/kgsl: Spin unti KGSL reports queue timestamp during profiling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d54a605fe9e2547290e90dc192be04b20d0ed30", - "description": "v3dv: free temp image created when copying with blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbd39274451af7c0ad06676012a8f28a395df64d", - "description": "v3d: expose ARB_depth_clamp in V3D 7.x", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8623ea7da722c5656af050d7bc771fcc3f1fc47", - "description": "v3dv: adversise VK_EXT_depth_clamp_zero_one", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce7e1e0f7afd7a5021587d7d175b309449a678cf", - "description": "v3d/ci: add disabled job for CL testing on the RPi5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c40c35b97c07b343f6e3f920d5b35940dfcfa92", - "description": "v3d/ci: rename \"rusticl on v3d\" suite to `v3d-rusticl`", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "beb05d14ae6b38212624e6dac06e4d358b7a00a1", - "description": "v3d/ci: add disabled job for GL testing on the RPi5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15a3aff0f1f185d7a88cc9f140a23d842d26680c", - "description": "radv: use zero allocation for the device queues", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5fa22f9fec5c6bb74d73243d3e3b6d31c40e9565", - "description": "radv: regroup all tools initialization in one helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d2751bbdefdd663ee6b9e9198c3c2a21049b2ac", - "description": "radv: add radv_device_init_rmv()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27a90f1f2930c7575309e08ec55c52a7abdd47d3", - "description": "radv: add helpers for init/deinit device fault detection", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "351fba7ee3242967e601c56109a70c526698d1c5", - "description": "radv: add radv_device_init_trap_handler()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ab6357c4280d09be3daf570b8f90d5bc4f25ba8", - "description": "radv: simplify keeping shader info for GPU hangs debugging", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe09a6d72b9bdeff68245c4fef0766aa95c87157", - "description": "radv: add helpers for init/deinit RGP", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "033084c91230a32950631f8e86ab376fb341f150", - "description": "radv: add helpers for init/deinit device memory cache", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01339c6c9306c96ccf4eeeca39bd237a9969bd58", - "description": "radv: add radv_device_init_perf_counter()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5657f21fcf1021463d280c706f7868dd38144bf3", - "description": "radv: destroy the perf counter BO in radv_device_finish_perf_counter()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c68408d1957f333a1f551f790c3a05e7c459dd3c", - "description": "radv: Fix crash when using SQTT and NO_COMPUTE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d94a40fe084753b90db9606cf37ef82016d86485", - "description": "anv/video: use correct offset for MPR row store scratch buffer.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "98c58a16ef1ab2208693505a88e597202cc3c2a1", - "notes": null - }, - { - "sha": "e5069550568b26919f02b15095a6852098fd64bd", - "description": "nir: Handle texop_*_nv in nir_tex_instr_is_query", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "aa1f00cf5cb39c26fe5c8986179646b37cae0cc9", - "notes": null - }, - { - "sha": "bfef1a4450ea3df93809bc509938edf3d27aecdf", - "description": "lvp+zink/ci: document a flake seen in a merge pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0af09d1f6e45dcb08991e2e71a35753879ced85", - "description": "turnip+zink/ci: add two more CS related flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "89742437efa7099bc7664e7646d57927caabcb53", - "description": "zink+nvk/ci: document regression from !30033", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92572501bb282c3f1c1da672c433cd59534fe398", - "description": "zink+nvk/ci: ascii-sort fails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a04dc1a4517bbe359fb246a79cd38c99f250c826", - "description": "frontends/dri: add error logs to dri2_create_image_from_fd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "252485b0e20e8295a11922f176b9d607a19f1ff4", - "description": "radeonsi: fix si_get_dmabuf_modifier_planes for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0bb83a4060a021c4e14ffd2c62bfdb630287da27", - "description": "ac/surface: finish display DCC for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "46071c90c7a8f112f5ee34abe3c24ad5b9b0bf02", - "description": "ac/surface: finish display DCC for gfx11.5", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "6835257246c239fd3c3f7bed1af1952b2fd6584d", - "notes": null - }, - { - "sha": "641ec0ae6e15b9aa396b63cafcf77ff11fd2bd2a", - "description": "radeonsi/gfx12: fix compute register settings for global_atomic_ordered_add", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "acb3d5f132f734a64e36c1c37cd37f51e01ba9a2", - "description": "radeonsi/gfx12: always set BO metadata, not just during export", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "462ef2d63899c1f274df25bf78284676d6b101a6", - "description": "radeonsi: expose internal buffer bindings to compute shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33d4e32545994d9f1a73554dd2c77c165b0c53a5", - "description": "radeonsi: implement nir_intrinsic_load_ssbo_address", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "678d5201624a67c1e49bc824e498c0d3784e4f61", - "description": "as/llvm: add s_nops before the ordered add loop and s_wait_alu workaround", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd8d20543da05e0d607a803f115387eaab2223f3", - "description": "ac/llvm: fix inline assembly register constraints for ordered_add_loop_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b617c3b06eac4b40366bb6b98385e513823b192a", - "description": "ac/llvm: remove s_nop from ordered_add_loop_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11272a8d82b45cc2d5c1a8e082a53a4683567c5e", - "description": "ac/nir: remove sleeps from gfx12 streamout code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b2cd628b838753ec7faef38746397f35a107b0c", - "description": "nir: rename ordered_xfb_counter_add_gfx12_amd -> ordered_add_loop_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fd43bca2c0fdda2e80154138d796250cb8693a1", - "description": "radeonsi: don't use CP DMA on GFX940", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0205a92d93cf87e3b3f78f4e3fa4307cd1f150c", - "description": "radeonsi: replace shader SHA1 hashes with BLAKE3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "090f27035d550f05d147a4305bb478dc6c76af4e", - "description": "mesa: switch remaining shader functions from SHA1 to BLAKE3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2d26a5c08d56772b6f7b80b7ff357dc80453318", - "description": "venus: simplify cached mem type emulation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e37ec9cb68893f0a8f3138efdbc3a4d1c93b32e", - "description": "zink: use maint7 to capture venus driver and more accurately use workarounds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7e9d5c7b12a57f5266c61777919ccf5a6411ddf2", - "description": "zink: hook up maintenance7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f9d451e83768a2adcdd0bdb52996307945db9eae", - "description": "zink: move all driverID checks to a helper function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f48b3bee31a48023a803599babce8e59a8b4a23e", - "description": "intel/brw: Split off assembler logic into library", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f906f8715079e98510be5cda9f99d4d1dd82bc6", - "description": "zink/kopper: Set VK_COMPOSITE_ALPHA_OPAQUE_BIT when PresentOpaque is set", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8ade5588e39d736bdeab9bdd8ffa7cbfb6a5191e", - "notes": null - }, - { - "sha": "70b40fd2a0cb4036f70cdc07e6d918c9876c6ea1", - "description": "zink: modify some buffer mapping behavior for buffer replacement srcs", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76da22bfc2bfa909ca27f19bc99b74ba61b9848e", - "description": "zink: track the \"real\" buffer range from replacement buffers", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa210726b6dec7ee7cc196dccdd26f6fe83590c4", - "description": "zink: propagate valid buffer range to real buffer when mapping staging", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7231eef6304eb356611f947fe3a0429160a67097", - "description": "tu: Have single Flush/Invalidate memory entrypoints", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5bb9c1cca94f4aa47e669c769c08af4aabf31e71", - "description": "anv: reuse existing macro to query for flushes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29c4961b53bd1a54478d61e87ed3eab485102390", - "description": "v3d/ci: include results of CL run in expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "10af395f72040604d8fa26cb0e5090835c24f666", - "description": "v3d/ci: include results of GL full run in expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa1f00cf5cb39c26fe5c8986179646b37cae0cc9", - "description": "nir/gather_info: handle uses_fbfetch_output for texture operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d0b949cd7000c376b5228883e09784848436126", - "description": "nir/gather_info: handle uses_fbfetch_output for sparse image loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a6852907d0d609b70312f8138bdea8e0158c464", - "description": "radv: fix marking RADV_DYNAMIC_COLOR_ATTACHMENT_MAP as dirty", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87786a7a7e757f79e20de9c305f7f94fe758a993", - "description": "nak: Move imad late optimization to nir", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e019517d6e45d7b74adc64bef51951c9ce0375bb", - "description": "nak: Set has_imad32 conditionally", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b209fedebe0065d624cd61a5ec71a3c31672eb45", - "description": "nak/sm50: Fix immediates for IMnMx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "faeb71553582cbc05b10401ac1cacf65b2121dba", - "description": "nak/sm50: Re-order all the ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "970b3e0e71590b127d30c4bfe0bbd8c3fecff17e", - "description": "nak: Add a legalize() method to ShaderModel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e039b7e1ac3dc7666b0d83ed621b5c5c279a760a", - "description": "nak/sm50: Move legalization into SM50Op", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59f1ad581e509a0c9b5cfc7db9672167ed05a0e5", - "description": "nak/sm50: Move instruction encoding into a trait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99c4b90f3c77332390be75e980d7f8b38de02b02", - "description": "nak/sm70: Move legalization into SM70Op", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f20b1c50b4fe0c66ff4dd91a1c6d00da62c86169", - "description": "nak/legalize: Handle RA instructions up-front", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d8d928a59e854f0c0e272fccd8bca3e00230377", - "description": "nak/legalize: Handle OpBreak and OpBSSy specially", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9a9bb651ca9ddf3e14a17f88336ab6ba7c09cf8", - "description": "nak/legalize: Move a bunch of helpers to a trait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b9b6a952912f3d030526bcda25c6f1a9c3d3771", - "description": "nak/sm70: Re-organize the code a bit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20e1160f3f3229df0e9a54e26ca12595a59a2cd1", - "description": "nak/sm70: Move instruction encoding into a trait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57667aeac8bbdd4b7fb74065c1dab5ea95424222", - "description": "nak: Move instruction encoding into ShaderModel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4db2f43defc0b8c10a4d110613cccb657918a0e", - "description": "nak: Move Instr::can_be_uniform() into ShaderModel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ddb2b291d21bf3a57ae3156ac7aaf66686182eb", - "description": "nak: Move RegFile::num_regs() into ShaderModel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74ac40da2d959f98d74014eb7233e83b2b3f9c50", - "description": "nak/ra: Move the NAK_DEBUG=spill logic into RA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6b8da5427f85a1c92e86d8314665cd41dd547ce", - "description": "nak: Plumb a ShaderModel trait through everywhere", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69bea2b49fa3a6bf71b40c2f2bd30cb855e7f902", - "description": "nak/sm50: Get rid of the hand-rolled align_up/down() helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0f7ff6fbdcc743dc16bc2429d7a51af3de728ed0", - "description": "nak: Move encode_sm* to to sm*.rs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d82a5d0f59c001b7bb52ca8f7155fb6ff36f115a", - "description": "nak/sph: Stop storing the shader model in ShaderProgramHeader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2d1e10315d381e4819c4a03055fa49f2bf6b731", - "description": "intel/brw: Don't print extra newlines in assembler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b8dcbfbd390af04cb5271be3c8e9fa9c51380e9b", - "description": "zink: print pipeline stats for compute shader-db", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c597c08616bdcdfb9f5ff00ee35b8b5816948ab", - "description": "zink: move print_pipeline_stats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b8eaf3bd6a33565d0d7ce24ca8ad0d4d8ce1d87", - "description": "panfrost: add PAN_AFRC_RATE env var to force a compression rate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ff543f3b81e99c50709101fd0313064b46dbc04", - "description": "panfrost: add support for fixed-rate compression", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6665840929b8a0274c4e79991f3e22ceaf01bc3d", - "description": "panfrost: add translation between modifier and compression rates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "894657a5ed2e22248f22388a0467aa24c272a5eb", - "description": "panfrost: add support for AFRC modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "450c853f8be8a924549031c8c77f865274fe9f0c", - "description": "panfrost: add support for AFRC render targets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df226c237e30158ec690c8ce485e15992cc01035", - "description": "panfrost: add support for AFRC textures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87aad0a5e4f92d5709bdd10b10dd06414d96a733", - "description": "panfrost: encode component order as an inverted swizzle (v10)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2dae926850ee7a0920e18d773afc55b0c68eb534", - "description": "panfrost: add utils for AFRC fixed-rate support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb95e8ada0152084cdbe65842dc8380bd8d54a02", - "description": "panfrost: add device querying for AFRC support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7b489f7be48fa40ae5247eff1d2ed34fff679e7", - "description": "panfrost: Add AFRC overlay in v10 xml specification", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6cc32c609bddeaa1997743425eb5d859a5ce74dc", - "description": "radeonsi/vcn: Add low latency encode support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c06b9443981888277f412190a193c5e56c5f97e2", - "description": "radeonsi: Add debug option to enable low latency encode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e63b0571bcca2931674ec001225be4d3af74ff1b", - "description": "intel/brw: Account for reg_unit() in assembler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6cdd56e7edc260ecfc74aa43297d86dce82d59a2", - "description": "intel/brw: Use brw_inst_set_group() to set QtrCtrl and NibCtrl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c3c65e88213d98bcc48dc33390ed1076dab23ac3", - "description": "intel/brw: Don't set acc_wr_control for Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a6513d7c4deb0cdd44c439d73b59176953a50a8", - "description": "radeonsi/vcn: Limit size to target size in AV1 decode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d36b1e30a26f867d7b14dec298f3633180c1571d", - "description": "rusticl: require PIPE_CAP_IMAGE_STORE_FORMATTED for image support.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "382b88cbc47be3f2adb1840d8afa589493dfc05c", - "description": "rusticl/device: fix advertizement of 3d write images support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06cecdc420507ac259e842002120fab71bd60444", - "description": "rusticl/device: turn image_3d_write_supported into a cap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "386632e2a3ccd22338188ea3fb4539c9a8d82402", - "description": "rusticl/device: fix image_3d_write_supported for embedded", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5cc37b9025b46a270a19762895cc0af34e6eca40", - "description": "rusticl/spirv: support more caps", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "22171d16f8b993547da59b5279fcf17319d97423", - "notes": null - }, - { - "sha": "48050d9f45a6d8a6bbb06c9cd7ef1d3a02ba6113", - "description": "v3d: support unnormalized coords", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "837c441acb8a16cdfde9725eed35825cc1e56b1e", - "description": "intel/nir: Don't needlessly split u2f16 for nir_type_uint32", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f695a9fed2b0eac39acdaca132f5fc8c43c9f7d7", - "notes": null - }, - { - "sha": "5873b3ac1416ae8666d74285d2e2af34beabd81b", - "description": "ci: run_n_monitor, sort by name when listing jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12c1bdc31dbb56d38369fe1515f9545a407a993f", - "description": "ci: run_n_monitor, listing job names with a padding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d80d35ceff8f868ca14c0a271043ccdec9b4498a", - "description": "ci: run_n_monitor, pretty duration with padding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45f19b36314e40a6d2445eadb333d9e518eea8a1", - "description": "ci: run_n_monitor, arguments review and unicode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "795b3f83ff5931837c8c548b6b8be5b0308d158d", - "description": "v3d/ci: update expected list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b366685758fd69bb2497b954ccba628ee78bfc3", - "description": "radv: remove unecessary nir_remove_unused_varyings cleanup passes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4706c61773ca9e9c92a7c644feb52c71c80d3f2", - "description": "nir/linking_helpers: remove nested IF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "525aacd9d781066bcac183522e08b9355916a534", - "description": "nir/linking_helpers: remove varying accesses in nir_remove_unused_io_vars", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bcd98e091a466279934eba92eeb3c1e6043bad20", - "description": "nir/linking_helpers: remove special case for read mesh outputs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57080749f78c0e6778a40c864c0d914d54b5301c", - "description": "gallium: remove PIPE_CAP_SHADER_CAN_READ_OUTPUTS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "767ea18517a05f9d4ecc4fdca0217cd0faf89b88", - "description": "glsl: always lower non-TCS outputs to temporaries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "969cb02de73f3b06c36428d6bbda51e52e64f910", - "description": "venus: chain VkExternalMemoryAcquireUnmodifiedEXT for wsi ownership transfers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f868946398f56a34abb430ff6fb3f6f7bbd11fd", - "description": "venus: skip barrier fixes as early as possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1656eb470633d35c2dbaed0ed1ffb08a8f0a7d0d", - "description": "venus: refactor image memory barrier fix storage and conventions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53f0c12b0c8655645601c0c491cfe94b86dfb9e3", - "description": "venus: factor image memory barrier fixes to common implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a5e4880cbec956547b3e62442cd4c56670314e7c", - "description": "venus: enable VK_EXT_external_memory_acquire_unmodified", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b57b332b862593de4d966386ca28a52edf4bd304", - "description": "venus: sync headers for VK_EXT_external_memory_acquire_unmodified", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de9dcea0cab6cc39426344d3efb1d0cc1fbee035", - "description": "mesa/st: don't set lower_fdot in draw_nir_options", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e862a372b3f37d9a8ad16c88ebeda518bdb5102", - "description": "freedreno/drm: add mesautil dependency", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bde26a32e19c8032c09f3c0f336da99c3d913043", - "notes": null - }, - { - "sha": "22bd26079fbffcc0fa14b8c943692c55ace15c18", - "description": "util/mesa: move mesa/main log code to util", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c4e03024cd3367980210769c8137f10df4f0e3b", - "description": "mesa: remove _mesa_get_log_file() wrapper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0441c695277e86d687b60a2a3b3d9c537d2f5dfb", - "description": "util: macOS support for cnd_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f12dfd7940cd7cb4f5e2b61451633c2ae20145f0", - "description": "wsi: fix compilation on macOS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "345c198c2221973f0bc4b7cacf56807879a7f948", - "description": "util: fix memory related OS calls on macOS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94379377c452c541606d64182234e0d200f4cc07", - "description": "lavapipe: build \"Windows\" check should use the host machine, not the `platforms` option.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e030ab51632d1de1859e4683ae0ff260a8d98a14", - "notes": null - }, - { - "sha": "13e7a39f49556332cbfd6d4b011f0baf3895b7c9", - "description": "lavapipe: fixes for macOS support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51e56c6c7b19fb6556a423a04c45f685cad3265b", - "description": "rusticl/mesa: make PipeResource repr(transparent)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a382fb08a4bbbc7c6e7838e3aa93100120af5a27", - "description": "rusticl/memory: optimize sw_copy when the row_pitch matches the height", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e4456b23999e41299bb782cbf1bc68fab2c9c6e8", - "description": "rusticl/mesa: remove ResourceType::Cb0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91cd3295d82ec46c70068b4794cdeb7af25fb3ed", - "description": "rusticl: remove unused interfaces to simplify code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b22bc617bf2db4120a438c1ad5e45992f638d82", - "description": "rusticl/memory: complete rework on how mapping is implemented", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00180933ad69daa1f526bdd23dc96af408a2c3cb", - "description": "rusticl/ptr: add a few APIs to TrackedPointers", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d28ab687bb3e28432468fef0d80034fe99d55f75", - "description": "rusticl/context: move SVM pointer tracking into own type", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "41bb73baf6d52c3cc900c1f48d1e3f5235135ec5", - "description": "rusticl/buffer: harden bound checks against overflows", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "20c90fed5a0ab0202ee1ef474c71cb816164a448", - "notes": null - }, - { - "sha": "cd9187a1e1a810459028376ac7f0a633c0e0cd61", - "description": "aco/ra: fix affinity for s_addk", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "39380d475a36981f1baf77b435c29de5fc507f3e", - "notes": null - }, - { - "sha": "fab95c78f9e971de40a350dd667a603b6ef104fb", - "description": "aco/ra: remove special-casing of p_logical_end", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad01e473f5d54fea2b7076c1ba8064cef0ad8e1c", - "description": "aco/live_var_analysis: use separate allocator for temporary live sets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c466157d06e0c6036947d051b147fd68a0e5520", - "description": "aco/live_var_analysis: remove unused includes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6729e81d15754b3519377d2379cc6995c093cc3f", - "description": "aco/live_var_analysis: inline block->register_demand updates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f4fb9eecfd15f5599140e2c7b844351f713d7d4", - "description": "aco/live_var_analysis: ignore phi definition and operand demand at predecessors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68c1e7237cf9710ee67f2d0835d560fdd57e5ba8", - "description": "aco/live_var_analysis: refactor using ctx struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "daac18f2cee4af0b9c2d2880eebfe636bd5d02cf", - "description": "aco/util: skip empty blocks in IDSet::insert(IDSet)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c6f382d687962dd47c4c6e40b771475b68e3dad", - "description": "aco: add RegisterDemand member to Instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc851c0aa6d8f83be024000a1bf0e8213fa3e3b7", - "description": "aco/ra: use live_in_demand in should_compact_linear_vgprs()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e2a0a5ad097ef2cbbcf38f7a4f508061a5f9c0c", - "description": "ir3: Add descriptor prefetching optimization on a7xx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fdfe86aa529e9510171238cfc51bb31022e26ffc", - "description": "ir3: Expand preamble rematerialization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59940d657760f69b2ef1b4b15c6d64f7007a0419", - "description": "ir3: Make preamble rematerialization common code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45a57fa735425f7097c537348744599455a6c2d5", - "description": "ir3: Plumb through descriptor prefetch intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b39b82dfbd85c4a69a1b37d477cb859b50cb149a", - "description": "ir3: Don't consider r63.x as a GPR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa8758fc81d14daf26a093bfcc66e9f3b4cfb618", - "description": "ir3: Split out bindless tex/samp encoding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ccf88d940b1b4461cf8e63c12288bf85803f7c1e", - "description": "nir/instr_set: Don't remove matching instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cda7d9c9717ec853519777936fde64b22191e2e6", - "description": "nir/instr_set: Return the matching instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c74872bbc8de68c5ff668ea49380b60b7960b25", - "description": "broadcom/ci: update traces for rpi4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bb564f40dc1ba758c40b5c3a019ad0dc36f9406", - "description": "broadcom/ci: add more jobs to test with rpi5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "56aa1ac74bc73ba18b2df5a5fdf908e8c12b4995", - "description": "radv: use ac_is_reduction_mode_supported()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc3cb526c4206811bf2f7e26001a7653d0b47388", - "description": "ac,radeonsi: add ac_is_reduction_mode_supported()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d29b8b01eba7ab4f08c928194cd837a24da5ad8", - "description": "radv: disable VK_EXT_sampler_filter_minmax on TAHITI and VERDE", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4994c0fa94cb6025ced1d2c6b08a32882303121d", - "description": "radv: use blake3 for hashing pipeline layouts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51c6910ba7002d99158a571e67360a7241949360", - "description": "radv: use blake3 for hashing descriptor set layouts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c28ed7c5c1aaddf11c6363492d3eb1ab4f8ac95", - "description": "radv: remove radv_descriptor_set_layout::shader_stages", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb63b7b802b43b8e557627abf7a73f62f1352969", - "description": "v3dv: don't lower fsat on V3D 7.x", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b1e88760ae560c0801a9f291014cdef922a0a32", - "description": "v3dv: make nir helpers receive nir compiler options from caller", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3a684803d0a0c6d23bde784759bc74c5f8a008a", - "description": "v3d: don't lower fsat on V3D 7.x", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33187012ab74bd434c3b084cb2457952f6f43c25", - "description": "broadcom/compiler: implement nir_op_fsat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d62082a131aef0371fb6186c6b277caecd6d981d", - "description": "broadcom/compiler: disallow copy propagation of FMOV exclusive modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa959c299316b2d223bd9f5f00e1950d424de31e", - "description": "broadcom/compiler: add new float32 unpack modifiers in V3D 7.x", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae3e0ae26a4678b317727dc08ae64aee6577374d", - "description": "etnaviv: isa: Rework branch instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b771d2eef6dbee6f7323d614b82a1439fe4e5b7c", - "description": "etnaviv: isa: Add support for bitset's displayname", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87439ffed1ea1904c808343a96df1f049b0d0124", - "description": "ci: bump Fedora and Android libdrm2 to 2.4.122", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "253f26558a40e97a00c23d5f8470c28e53caff97", - "description": "radeonsi, radv: bump libdrm_amdgpu version requirement", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c462fe9ccc46bd38f3310f8df3f0b603b6f349f", - "description": "ir3: Fix stg/ldg immediate offset on a7xx", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "01bac643f6c088f7537edf18f2d4094881c1ecda", - "notes": null - }, - { - "sha": "bde26a32e19c8032c09f3c0f336da99c3d913043", - "description": "freedreno/drm: Add rd dumper support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c77a4e1db7d4916177fc9a98bf54e0c431fb8a21", - "description": "tu: Add VPC hardware workaround for a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe6471ded280190d2b0f5d1fe8b4dc99f7e650a1", - "description": "freedreno: Fix decoding primitive counter events on a7xx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "898752818cc0386957fe071068aad698b5ff4eec", - "description": "nak: Update comment about explicit padding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "43438aa9c4613d9c17d5b540fc06ba70360ee3cb", - "description": "radeonsi: fix ac_create_shadowing_ib_preamble parameter", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "428601095c38bd80f4ed164414f8096edd73832f", - "notes": null - }, - { - "sha": "0a4f3d0b541704e2c8d9daf7c2c0b63d52df443c", - "description": "radeonsi/tests: correctly parse the family name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7a1e3d329f73e0c3c37113a98ab48be7848334e", - "description": "radeonsi: fix crash in si_update_tess_io_layout_state for gfx8 and earlier", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8fc4546ff929a9765d05607c44e0f37a0141dc0", - "description": "winsys/radeon: fill lds properties", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7b200f20b7091ef242208a9028dd2021038a4ea", - "description": "ac/info: remove has_syncobj", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20218134500db6f7e6fd79887c785cfcdc4c28cc", - "description": "Revert \"ac, radeonsi: remove has_syncobj, has_fence_to_handle\"", - "nominated": true, - "nomination_type": 2, - "resolution": 1, - "main_sha": null, - "because_sha": "02fe3c32cdfc3cf48cd691d6321978b8d4c3e61b", - "notes": null - }, - { - "sha": "84a563cf6f179b9d76cc12884ed63d99a0b001f3", - "description": "radeonsi: fix buffer_size in si_compute_shorten_ubyte_buffer", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "1a99f50c7f27793f86a089a028c678cf5cf3142c", - "notes": null - }, - { - "sha": "c84d1f55714319a14b1d6d34bd637b230422906c", - "description": "tu: Support bufferDeviceAddressCaptureReplay on kgsl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5e108706cca096a42585c3ed34b5d8d0cb0c549", - "description": "egl/wayland: Fix direct scanout with EGL_EXT_present_opaque", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9ea9a963aa142910ed3a0fcea9060d3a92ee5ab7", - "notes": null - }, - { - "sha": "4cac8468d439a0cadb952a4a1801cd5cc2969a8e", - "description": "egl/wayland: Fail EGL surface creation if opaque format is unsupported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a271a34d5919880f809a28ee4be33d06d7061bf2", - "description": "egl/wayland: Pass dri2_wl_formats to create_dri_image", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1c97a1a50476df8f5cd74612db6e54052bb6376", - "description": "radv: rework generating all graphics state for compiling pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f102c9d61a8818b000dc185a65fd05100798dc0", - "description": "radv: stop passing a pipeline to some graphics related helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fcf594682894cc5dd5fbfe37b0d286acabe8354e", - "description": "nvk: use 2k overallocation for shader heap.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7c394278625ae1cbe122527d06d0efd0ccbddca", - "description": "nouveau/push: Cache the last header DW to avoid read-back", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c5901c0dc857ef81b7337850c24230242a483ef", - "description": "nvk: Put descriptors in VRAM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a342379c5617f09d8b6107bd8314908f52454cd5", - "description": "nvk: Put CB0 in VRAM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68f1df5ebbfcc13cabe9046321033aee54c308fd", - "description": "nvk/nvkmd: Be a lot more pedantic about VA alignments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7f45d20d2b96776976730c2f776a97815438241b", - "description": "nvk/nvkmd: Be more specific about memory alignments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1db57bb41424359569b195a93dc7269b1392ab26", - "description": "nvk/nvkmd: Rework memory placement flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e04bb3dffa1e3f08edca8381e9191c4bc3db240d", - "description": "nvk: Drop nvk_buffer::is_local", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2689760e38c27c5123b90f7f6d644440a8295c4d", - "description": "nvk/nvkmd: Flip the script on NO_SHARED", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1cee0c9cb766219262ac3bf18fd73b969d7a701a", - "description": "nvk/nvkmd: Add real mem<->bo flag translation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c024da2912aae51b44fb7c8bc11dd000b1a7ddd", - "description": "nvk: Do mem maps directly in nvkmd on nouveau", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7bd9b9d96c94ea8a245e0c7b5fff98249e74a7e7", - "description": "nvk/nvkmd: Re-implement NVK_DEBUG=vm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0abd7fa58a89a315b9c551d271af6e92f13b4df2", - "description": "nvk/nvmkd: Plumb parent pointers through everywhere", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3264fdfb9313596a193328f93aa4bcbf637e757", - "description": "nvk: Move debug flags int nvk_debug.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d96bf198b4d88321f9d8c606ce767b4deae9afe5", - "description": "nvk: Move Heaps and BO binding into nvkmd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0856c27dd1cb5b9b8ab2a8c8342de2a751006789", - "description": "nouveau/mme: Use fixed BO addresses in the MME test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6c4483d0f01d7644ac15ddc78e4e6d9e60a0ce6", - "description": "nouveau/mme: Don't leak data_bo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7173ae1130b4506abe6a191c6cce0c0fdaa13a44", - "description": "nouveau/mme: Don't dereference an empty vector", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60c3c272ece966a6f464a5d8752ca01805da7684", - "description": "nvk: Remove the last vestages of nouveau/winsys from core NVK", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a516394f9a4bb64c3607fe702676cc1bb537ba1", - "description": "nvk: Use nvkmd_ctx for queue submit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "996b15237587c3c14b58ef0d35160ebc45042a79", - "description": "nvk: Use an nvkmd_ctx for sparse binding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a8550862b5d13ee95a3473dd3185e4db9e1a6473", - "description": "nvk: Convert the upload queue to nvkmd_ctx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "053b7f0f30c20df4b5d11cbd0accecfc13aa7d51", - "description": "nvk/nvkmd: Implement nvkmd_ctx for nouveau", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87ca92d881647f7430cc55e2185f3d0e94ed47c7", - "description": "nvk/nvkmd: Add a context interface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29e3b198600e4340e1f74bae7944e9fda01007d9", - "description": "nvk: Use nvkmd_mem for the zero page, VAB, and CB0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92ac7db7c8355a30157a252c978efd1853927c46", - "description": "nvk: Use nvkmd_mem for the nvk_queue_state::push", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0593bb86cbb12f769e2427a7dd763ba49aec61c", - "description": "nvk: Drop extra_bos from nvk_queue_submit_simple()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b86079d61e73b514ebce6d71094c1a8183902565", - "description": "nvk: Use an nvkmd_mem for the SLM area", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8d2ba9666779efe5ac2193af9a49073eb4ef392", - "description": "nvk: Use nvkmd_mem for query pools", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d072bea5b7c1ba5c0a8d1a53a58203e6d3ec84d6", - "description": "nvk: Use nvkmd_mem for shader and event heaps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17623bc8a9aa45459c82fcc75717f95172bba31c", - "description": "nvk: Use nvkmd_mem for descriptor tables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a87ee75737e9f0d0549a9dcbbd870c822a00c329", - "description": "nvk: Use nvkmd_mem in nvk_upload_queue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf180d2bbf575f49db3e5f447c49561d39ef7f56", - "description": "nvk: Use nvkmd_mem for nvk_descriptor_pool", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "586990f89e3b3da6ea15ce055463e5bd3dceabcc", - "description": "nvk: Use nvkmd_mem for nvk_cmd_pool", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf8115e3c247c2fa40139bd58f819445ad8ace56", - "description": "nvk: Use nvkmd_mem for nvk_image::linear_tiled_shadow_mem", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99ddddb18db4c9a91728048e40bd379f52d0b24f", - "description": "nvk: Use nvkmd_mem for nvk_device_memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93792b5ef2ae0919298409b87a54a16fb38ffafb", - "description": "nvk: Add static wrappers for image/buffer binding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e63649da11040043add19106248e61b4af061404", - "description": "nvk/nvkmd: Implement the mem and va interfaces for nouveau", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b93c42ba1b95c2ff4a7c9584e39e51ba0c856e1", - "description": "nvk/nvkmd: Add memory and virtual address interfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4323d2ac54c85ec020c5dc7cc43f55bcc01b5dee", - "description": "nvk: Use the NVKMD interface for device enumeration", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4db1bd584659dfd62cc6968cd7be65dbc37ee3a9", - "description": "nvk/nvkmd: Implement dev and pdev for nouveau", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8b36bbcc0fa7b60507dabf951a36162528cb489", - "description": "nvk: Add the start of a KMD abstraction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6de4a408f512fd7e356989dbab547382fede18b5", - "description": "nvk: Initialize the debug flags in nvk_instance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f405ef9c6fc4277665a33450f9b03eaebc3a508", - "description": "nvk: Fetch debug flags from the physical device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04bdbb71de4cfd31f3d6fef74c0e6754228fe941", - "description": "nvk: Align sparse-bound images to the sparse binding size", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7321d151a944bf514a014774ca05ce90b628cc85", - "notes": null - }, - { - "sha": "58181b7bbcf915b3262e7707cb88aabb6d7fd673", - "description": "nvk: Bump the sparse alignment requirement on buffers to 64K", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "03f0f01904ce8c4478be662c85f54bde41e852f6", - "notes": null - }, - { - "sha": "9bd64cbefe0fe0f2b4f29b554b44c75cd57f28c9", - "description": "nvk: Why are nvk_image.c/h writeable?", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47377b550f394e8d7fb1a79e8abd801214865027", - "description": "Revert \"rusticl/queue: gracefully stop the worker thread\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "9d458b7fc15a87720397b5b3d94a0971ed4aa59d", - "notes": null - }, - { - "sha": "cf27fd22c45ca25da3b765a7f336b5f8c8b00259", - "description": "Revert \"rusticl/queue: run rustfmt\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "47b124125119580a576bc2496dcc4cf499ebb1c2", - "notes": null - }, - { - "sha": "4f89af37234026003520d40fee4568788050eb05", - "description": "vulkan: Use u_cnd_monotonic for vk_sync_timeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6aaf6d090c25b436cbd983549a871f48733b1d97", - "description": "vulkan/wsi: Delete wsi_init_pthread_cond_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c4e1c918c3de0d9e10a4e544defae660ff56937", - "description": "vulkan/wsi/queue: Use mtx_t and u_cnd_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97e22b70b4f344279e47e0b65e96667f775a8a67", - "description": "vulkan/wsi/display: Use mtx_t and u_cnd_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7aac3ea26aca2a5ac4e54152cc67e14f743612dc", - "description": "vulkan/wsi/x11: Use mtx_t and u_cnd_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ba664c6401c8e13416db52a2f65bd7cba6f9a46", - "description": "vulkan/wsi/x11: Use c11/threads for thread spawning", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0820a2a37f59c31ba86f55f21d27df64dbf051f", - "description": "vulkan/wsi/wayland: Use mtx_t and u_cnd_monotonic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf3052009ab62ef66a8dee5f6ebd774ab2c6c895", - "description": "util/cnd_monotonic: Use a void * on Windows", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71524fc82e03818a6276e396fe1ac1396346a339", - "description": "util/cnd_monotonic: Move the guts to a c file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2bbb859343aecb1000eb68c2fab2d25beba9da59", - "description": "nvk: Enable 8bit and 16bit access in VK_KHR_workgroup_memory_explicit_layout.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20b76fe1d4c26324a3c6b52ecb02bc59386f76bf", - "description": "gallium: Remove pipe_h264_picture_desc.slice_parameter.slice_count", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c8a0c135c2d6e5d49be012c74dc77a3c375725f", - "description": "frontends/va: Support multi elements slice parameter buffers for H264/5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "feba91d39053532135fcb115e89ef00530b3e7d3", - "description": "frontends/va: Rename slice_idx to have_slice_params and move to context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0c15579f3c59c4f9c84c16269051ffb2c2ae5b7", - "description": "frontends/va: Move slice_data_offset to context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b6749224fd7da0e309486bd176c3596f5fc7e37", - "description": "frontends/va: Simplify AV1 slice parameters handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47fb4b45f212b33a1f66903af4abc8458c481a19", - "description": "radeonsi: add more comments in si_query.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51885bba644b51a541167ed1c628e5599a2bea1e", - "description": "radeonsi: rename query_hw_ops to hw_query_ops match sw", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e00400e6054b199d91581d583087be59f56308b2", - "description": "radeonsi: use reseults_end instead of unprepared to init query buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "068f63181440bc4a190e36643eeb0da742f41e2e", - "description": "radeonsi: remove si_query_hw_ops table and call func directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3c4d257a2c01cf997253c22f9eb6f5735cf5414", - "description": "zink: don't lower fpow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ce2e6594ddb8db70b18f6a52684acb6a4e18e0a", - "description": "nir/opt_constant_folding: fix array size define", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24aab6bfaf32ef56194cc22c52169e087d3c3636", - "description": "vk_cmd_queue_gen: Exclude CmdDispatchGraphAMDX", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2953c93cca245cb7bb28d95fab7cd1208cbb1a55", - "notes": null - }, - { - "sha": "41836133ce457e9c017a581ace431f278a20c8a9", - "description": "aux/tc: update docs to indicate replaced buffers have multiple pipe_resources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3c9ea9b8d3a266586817b3b0de0daef9d520e4e", - "description": "st/pbo_compute: fix async->nir memory leak", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5dab7673e10f731eddd395c4d01a2645be9437bb", - "notes": null - }, - { - "sha": "4581bf595bdc766eeebd9942fc4ea7ba855b2877", - "description": "broadcom: follow version naming convention", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a10957adb684262136fd9867f3a835b2f4da74eb", - "description": "broadcom/qpu: clean all versions not supported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa4d0836fe25693acabb54894a09d032a242f96d", - "description": "lima: fix surface reload flags assignment", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0c54e02cfcdea807f56e74c6808672994c8ff67", - "description": "etnaviv: always flush pending queries on get_query_result", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3bae3217d59bef7cc1694b228d1cc54043ff34bb", - "description": "etnaviv: drm: don't skip flush when there are active PMRs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1767ddd13822610b0f8973b3110ad38c8db9171", - "description": "glsl/tests: fix test_gl_lower_mediump", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f5b99ec17a0626050963f36d74ad77e0f7378a1", - "description": "glsl/standalone: init EmptyUniformLocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ae5229e3da38cd43978210f85c26005082d584f", - "description": "glsl/mesa: remove UniformHash field", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "801ed4d0323bf6a69282b7bd1bc54aa30ceb3994", - "description": "ci: simplify setting .no-auto-retry now that it isn't bundled with unrelated rules:", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f37af2ab8c6bbe0b046b545ae1110c9322ca574a", - "description": "ci: split .no-auto-retry out of .scheduled_pipeline-rules", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9e41e8a8ca3a8a22628513b44764fa7675ec288", - "description": "nir: Stop using \"capture : true\" for nir_opt_algebraic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b018489245b8f58e96e096468f49c25d4e989147", - "description": "freedreno/registers: drop display-related register files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0b1907fa567d6142b0ba11ec972dfe3ef94e308", - "description": "mesa: Fix PopAttrib not restoring states that changed on deeper stack level", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "68030bbf73c82a16f394fab807076d5c64258dcf", - "notes": null - }, - { - "sha": "e9f63df2f2c0dafe0997dd69b60b7da99b5d91f4", - "description": "intel/dev: Enable LNL PCI IDs without INTEL_FORCE_PROBE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73ec9f018397b7c47edb7d5cd0e4437e0c3db0ee", - "description": "nvk: Silently fail to enumerate if not on nouveau", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "83786bf1c9c17250bc1a0533f03608d113eea50b", - "notes": null - }, - { - "sha": "1b5629273323e3f64bf65ef03ed5116737359cf2", - "description": "nvk: Don't emit conservative rasterization before Maxwell B", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea2aa3ca836c62d85d9dcfd85678ba67793eea46", - "description": "nvk: Re-order conservative rasterization checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08a667e7862878af1aa234e68886c7da58820b8a", - "description": "nvk: Fix whitespace issues around conservative rasterization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1b5a4487748ab47d67c64fc23afb5bfd5c2bad7", - "description": "etnaviv: isa: Add support for extended instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63944c3347a82cb87064b8532954942e222f75a8", - "description": "etnaviv: isa: Drop 1:1 mapping of opc to bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17c12a9924a0c6f0f52a66c92fe1bbd8886fc9b1", - "description": "turnip/kgsl: Support external memory via ION/DMABUF buffers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "048f761faec74834732e42c8f40179da10b0de52", - "description": "vk_entrypoints_gen: Apply hidden visibility to generated symbols", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c217e8c21f65188944904deabfee1571a2ff5009", - "description": "vk_entrypoints_gen: Rework ATTR_WEAK to unify Unix and MinGW", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8c131fba8736cbc6c5945f717567dd5e94f2e79", - "description": "vk_entrypoints_gen: Add missing ATTR_WEAK for instance and physdev entrypoints", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a3b3b845b55c391650219cb0889c5eaae947f0e", - "description": "radv: simplify determining when a VS prolog is needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7608aada6fde0d07e193438fbc621605cc5521e2", - "description": "radv: simplify determining when the rasterization primitive is unknown", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c0ecc90c46dfcdebf489cf5528eb53a67036efa", - "description": "radv: move radv_hash_shaders() to radv_graphics_pipeline.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b51af513ddfbd6eb0f8e81da794b7f604de3377e", - "description": "radv: remove unnecessary radv_pipeline_has_ngg() function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b5193c8937400f07e813e384f96c3e6f09d2d766", - "description": "radv: remove unused get_vs_output_info() function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b43b71450cb6467c5ff49a71936f87552406c9e4", - "description": "radv: simplify importing libraries with retained shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6aba052f8233703a1c35bffba993be2b4dffd297", - "description": "radv: remove unused parameter to radv_pipeline_import_retained_shaders()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "158369c38a2bc99c3aef044417bfd3907ac05072", - "description": "zink: enable compute pbos for turnip", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0208927bcfc1d011cfa380be141fdfd0c9b3bf18", - "description": "radv: Always use dynamic line smoothing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d571e199665cb0a44319b5e9814d979873ce871a", - "description": "radv: Fix smooth lines with dynamic polygon mode and topology", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "85cbdba35591da0ea9dc40b4ecb3aaa54947ee64", - "notes": null - }, - { - "sha": "18dfde9985d5e6ef18b3fc64b636735494bfe850", - "description": "rusticl/program: use default in more places", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f08f770f162210b08406667af6f3637174951e99", - "description": "rusticl/program: update binary format", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eda15ddafa0049fd94525d19092bef306da44e11", - "description": "rusticl/program: use blob.h to parse binaries", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81bb379c94b4f63deb2a1369af44b8021136ed3e", - "description": "rusticl/program: make binary API not crash on errors", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34ecf560df1262ef91ded9584ffc35830ea4e27d", - "description": "rusticl/program: move binary parsing into its own function", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b6875ca0e31120095667925e91df253dc13a098", - "description": "intel/perf/xe: Fix free pointer location in xe_add_config()", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "6258c843752b1b6e35db9499f513c22621feb871", - "notes": null - }, - { - "sha": "9a3172e489d83527f6da624bd4343681bf497b51", - "description": "bin/ci: allow bugfixes in requirements.txt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4576f440c3596a8d7937b03a9f00fec6394486e5", - "description": "zink: add an a750 skip", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6aec920bbe56fdfefe2354cef0f73fb6351ff229", - "description": "ci: Make sure to install libraries in the right directory on debian", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b09cf63a81fbcdc3122515efac488e1603fdd8a", - "description": "ci_run_n_monitor: add RUNNING_STATUSES and use it where appropriate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a578101d5ba60d0a73e9315e7dbd184ab3aa27dd", - "description": "ci_run_n_monitor: use COMPLETED_STATUSES in more places", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb2adbeeb7d22bbd805e050151a90b94c7e2d0fe", - "description": "ci_run_n_monitor: be coherent about using sets for `element in group` checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa3d529f55056f54a60a101bc3fd18074c10df22", - "description": "ci_run_n_monitor: add support for new `canceling` job status", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2fbdc4d462b7d8280932df415eb86f0d91245c28", - "description": "ir3: Fix decoding of stib.b/ldib.b with offset", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c7e07655c02f57f017d4978d5a6ebb3894e1f1a", - "description": "ir3/tests: Make possible to add generated disasm tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b5f0c44f2a2baaec65ff0162bf5eac0b2c0e2752", - "description": "ir3/tests: Make possible to specify raw instr value as uint64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d17338d403980e1932a42f5d11c2a1fb7b25127b", - "description": "gallivm: Call StringMapIterator from llvm:: scope", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b035d9cab5a483f0ceee2d8fad578f64aca1888a", - "notes": null - }, - { - "sha": "f9efedb1a1acbaa70c603d5ef57a83180a8f5782", - "description": "intel/dev: Replace intel_device_info::apply_hwconfig by a gfx version check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "03a85edff7773bba7d9040123ffa69f3260c257c", - "description": "ci: bump vvl to v1.3.289", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f1f3ba444a351b7b3f9855b695afcf43ae80c9a", - "description": "hasvk: pass anv_address to predicate helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1279bba837b5647fb7b844db052311204077fd50", - "description": "hasvk: move cmd_emit_timestamp initialization to genX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b393ede8c8e98eeb2bf83e3ed4a767d09d237a31", - "description": "intel/ds: remove duplicate arguments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa737e124ca4d38e6b7716965b7d6544f39f9618", - "description": "anv: fix u_trace on < Gfx12.0", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "3984875792fa00a93ac2863681238c4bd8069111", - "notes": null - }, - { - "sha": "37d58b816b1c605ead63eae44422338f87e43cec", - "description": "vulkan/meta: Use demote instead of discard", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9b1a748b5ed440451dbf562af1afd836efb26e1c", - "notes": null - }, - { - "sha": "5a9c052ba78e5d1b0020b8f8320d211d2205a958", - "description": "amd: Include missing llvm IR header Module.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d0659efa5c8dd8886e4bfd039f8c7a721888fc9", - "description": "ci/etnaviv: Drop shaders@glsl-bug-110796 line", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "dfabed2fc9c4e5d4c613003097117e9a7ada4e08", - "notes": null - }, - { - "sha": "a174e986c7ffbb26b3e38afebffb2484d897b56f", - "description": "lavapipe: Set ICD api_version to 1.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "28fdc4b3726922dfba2b86014deb35ea12c27ee2", - "description": "gallium: Remove PIPE_VIDEO_CAP_EFC_SUPPORTED", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b93a918b3db8e72a9a436624c767a46cc94a715", - "description": "frontends/va: Check if target buffer is supported in vlVaEndPicture", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7469a9ffd3d5b8dc3d59ed9a370ffd79122f2df", - "description": "frontends/va: Rework EFC logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "735c467197fb11138dcb8a22ccdbe4e8138a72a2", - "description": "frontends/va: Use is_video_target_buffer_supported for EFC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40c3a53fec12b51d165b6962e07a54ce074dc3c4", - "description": "radeonsi: Implement is_video_target_buffer_supported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "03d4ec7321c89ae3388601c86d3ec79c9311843f", - "description": "gallium: Add is_video_target_buffer_supported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f28d2c10409a395daad65600f9cb33e7a6172dac", - "description": "intel/perf: Adjust EU count for Xe2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b5ba0612260c21b016cbc704c9a1c70d17910fd", - "description": "intel/perf: Do not add INTEL_PERF_QUERY_FIELD_TYPE_SRM_OA_PEC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b5bf6dcca7027c112f39b7515043a779fdc593e", - "description": "intel/perf: Return LNL OA sample format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f684f4efb03fea20c8ea137bea5b5a1681f1391e", - "description": "intel/perf: Add support for LNL OA sample format size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18775827bdac329ed50fae2678c50dfd8db3f3e2", - "description": "intel/perf: Implement intel_perf_query_result_accumulate() for gfx 20+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5a8f6ea35c26aaa2587a5533ce239d025c10293f", - "description": "docs: add sha256sum for 24.1.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ae4265398d5a5e8592766ce207424cfb157ca34", - "description": "docs: update calendar for 24.1.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dcd4cd8b4488c18d0c74f784379448a0d9826757", - "description": "docs: add release notes for 24.1.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2988f43420d1826756da786e7ffe6c7d697a9b9d", - "description": "tu: Support VK_EXT_fragment_density_map on a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0599a7fe2525b889beeb86188832d8e1cdc68a4", - "description": "tu: Fix fdm_apply_load_coords patchpoint size", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7429ca3115067cf6fe54552e445f2c60832d8fb4", - "notes": null - }, - { - "sha": "bd179e62130b7c81d1252be03def2e4674bb7818", - "description": "tu: Make cs writeable for GMEM loads when FDM is enabled", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "21334e3b538ab3c862098f315604f49ac10bb1d1", - "notes": null - }, - { - "sha": "6185134f2838a2608d3b703e7495447c51452abb", - "description": "ir3: Fix UBO size with indirect driver params", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08d5505fa8aa39545f984a04f9e9a68825fbbd75", - "description": "tu: Add support for aligned substreams", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2bb6ea3a69bb8367eeda2eaf1d4d4d1a3c32af0d", - "description": "docs/features: mark VK_KHR_maintenance7 as implemented on anv and lvp", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f8e6fb99cc24b9f79e3d95f9e7683d428db5a9c", - "description": "mesa/st: use compute pbo download for readpixels", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef0a15667066ecbb4d53922b4740012bcd990e12", - "description": "st/pbo_compute: special case stencil extraction from Z24S8", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "968163524a75236f0bf1f956cd574e6a16b40fb5", - "description": "tu: add format feature flag checks for VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b2aebebac01fa590e1df2468a77d86ee29a1c68", - "description": "ci: bump vkd3d-proton to 3d46c082906c77544385d10801e4c0184f0385d9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc89028bbc8c1529db1288a1eda1c3659b4b6595", - "description": "radv: advertise VK_KHR_maintenance7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65c0ef859f9010a78b355feae84a09942e90a57c", - "description": "intel/brw: allocate large table in the heap instead of the stack", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "753d253df77e25279512c896aae212bdba3fc063", - "description": "st/pbo: fix MESA_COMPUTE_PBO=spec crash on shutdown", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b8c82b50f7e3cb04ef072d4ddbdc641ee35f3f34", - "notes": null - }, - { - "sha": "2a3b983728e5d2fde065c5d94e8816e7d4be707a", - "description": "broadcom/ci: run some GL tests in arm32 arch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8554feab0cefc855e2da44e78318db234fc8dd6b", - "description": "vc4/ci: run tests in 64-bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a10ea7cec8ddd4ca2594785bf9c66caef6b259ed", - "description": "broadcom/ci: remove arch from hardware name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a16d7a0ba4792d7f76f86ae5b132b24efc80807f", - "description": "broadcom/ci: read 32-bit kernel from arm32 path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17c081380d4ac9c80623490de23b6fe5ae5c1822", - "description": "broadcom/ci: disable auto-retry on manual jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a84e77b15da2a44cc955498a32720e7b50730d5", - "description": "tu: support KHR_8bit_storage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c93a629f2cdd740b7fc3d7b7cf26a0d8f38a01ca", - "description": "ir3: rework TYPE_S8 as TYPE_U8_32", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc542b58271b6329c649b8e74bdaab5aec3e45ca", - "description": "ir3_nir_opt_preamble: handle 8-bit preamble loads and stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9b781fa54b8e4d3ddd6f5fc600c798aba0ab5d4", - "description": "tu: use either the 16-bit or 32-bit descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d418a3419e4408d35e411a3959b4162221ea997", - "description": "broadcom/compiler: add missing signal compatibilities for V3D 7.x", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "260a5fc7b31ba814fd52ea6c30a135b1b3d7b9d2", - "description": "intel/brw: Move brw_reg helpers into brw_reg.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71ccf8e4cd67a5b84be070a0c84277d487f2ccb3", - "description": "intel/brw: Rename fs_reg_* helpers to brw_reg_*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3670c24740a12cd760f7f5ea02a04d31b6bc6d3d", - "description": "intel/brw: Replace uses of fs_reg with brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe46efa647c44872acac9f7ee83d05fbdcb82e34", - "description": "intel/brw: Make fs_reg an alias of brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69f4ed31029357215dd1b5d41907f4af1734bf60", - "description": "intel/brw: Rename brw_reg() helper to brw_make_reg()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b2405e1f59d643b12ed3d21cbc0feedbadf6421", - "description": "intel/brw: Remove duplicated functions between fs_reg/brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d00329e8210e4e5f0d28054b07ea35fdf62c9cff", - "description": "intel/brw: Replace some fs_reg constructors with functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06fbab3a747785f72aff08fa593fb590240c9f84", - "description": "intel/brw: Remove conversion from fs_reg to brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e4f37c6ab924ae790e8f6201bdfcfcd1658319f9", - "description": "intel/brw: Move most member functions from fs_reg to brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca1afe272650cd5ddee8226c62322fe4531686f4", - "description": "intel/brw: Use public inheritance for fs_reg/brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f54dfbf4feb09497fa3acd18f0bd96e92d514ea4", - "description": "intel/brw: Move fs_reg data members up to brw_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ce6dcf043a47f56b22607a53766094c94abe5f0", - "description": "intel/brw: Remove unused variable from test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d9f58db04b367860c316aaef020ec0cc0a52caf", - "description": "intel/brw: Remove RALLOC helper from fs_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "def70c16737368251b6c7656a3981dd8547ec559", - "description": "intel/brw: Remove unused brw_reg related functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e146512d11e4a391b2567bad1f89174670e0d0f", - "description": "glsl: fix indirect tess factor access for compact_arrays=false drivers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a071929f8d3e0faa18df916b4fce48a40b8356fc", - "description": "nir: consider more deref types when fixup deref", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f9ed3158b489ed15d5265709a9a27a33a0cb22a7", - "description": "nir: nir_vectorize_tess_levels support indirect access", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3151f5ec472b870b557145a9c2f7bf13f7bca481", - "description": "nir: add filter parameter to nir_lower_array_deref_of_vec", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "370ed7b021739d89467b2e372e5aa3d4321998e7", - "description": "glsl: make warning tests pass linking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a71ce0a6d6c5c2d99186ef9224772994a7d60725", - "description": "glsl: drop glsl ir optimisation from the standalone compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "063d62f14201303e788bd0ee93919fb4c0e63932", - "description": "glsl: move call to create explicit ifc layout out of glsl_to_nir", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "870be63c7e9004e6d57a69cd133adedda81d92b2", - "description": "anv: Disable tracking of clear color on color attachment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd05ef9d911f32e62cd3b6914e5995e90146c1d5", - "description": "anv: Support arbitrary fast-clear value on all layouts (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4034539c0027318c139b4a7c151008dd8d0572f0", - "description": "anv: Fix Vulkan CTS failure related to MCS (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "beb0ea24696821d42b336a8170a61eb25c5022d7", - "description": "anv: Disable tracking fast clear and aux state (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01ea13cb6d688efde7e8e4883d6811a788f95de5", - "description": "etnaviv: isa: Extend disasm test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "858d42bee9cd8feeb741006bb99617d45b01d22f", - "description": "etnaviv: isa: Add cli assembler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6db922c0bff907796dcb3c9e0bbcffd5a62a1bc0", - "description": "etnaviv: isa: Add C function impl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9bcaa147888573453101e7c4da10780fabb4a8f", - "description": "etnaviv: isa: Add parser module", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db5e733e1b58fb3eda7e2aeff5fd72a1427318f9", - "description": "etnaviv: isa: Add EtnaAsmResultExt trait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0f93393cd6e8426df05be00b1afecd09875bd00d", - "description": "etnaviv: isa: Make etna_asm_result usable in Rust", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ad2d86e495485d1aff7049e07a1bb62be9d6d1b", - "description": "etnaviv: isa: Add struct etna_asm_result", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "863023cedaee7c98b80673a04736f6f7835716f6", - "description": "etnaviv: isa: Add IsaParser proc_macro_derive", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "575814af14596581a20acb00313f0377988617ac", - "description": "etnaviv: isa: Add meson version check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ce255a9f63ec8c438c12e450d3453e578cb8c70", - "description": "etnaviv: isa: Make header C++ safe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15a784689e648e3ca68f58c5faf20ec936e56e72", - "description": "etnaviv: isa: Generate Rust FFI bindings for asm.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59406a9d85b42e9f8f86c970d5b1dc87bbaf6061", - "description": "etnaviv: isa: Add meta elements to instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e3e12e6a97a5412ab12d64b41045f040f4c4bbd", - "description": "meson: Add indexmap rust dependencies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02bc51f477ecd4eeae8640da7339719f9b3e5f13", - "description": "meson: Add roxmltree rust dependency", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e28ff818695ca953b31ec15d1f371b64a4ff9e3d", - "description": "meson: Add pest rust dependencies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87ad3ca0acf344f82e61ed353e5aecd723c642eb", - "description": "intel/common: fix building error in intel_common.c", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "5b8b4f78782e5096dfe82f6b21c293577241ce5e", - "notes": null - }, - { - "sha": "74ba5cf885448b4878a674a63506f62dadc1dcc0", - "description": "blake3: fix Windows ARM64 build and detect ARM64EC as ARM64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f91f2cf31a124dce6919c243587638db5386193", - "description": "meson: Update syn subproject", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ab0956eec9e6d2b7a0f93a88bbef965f9b79e027", - "description": "lavapipe/ci: skip timing out test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d2d4f76d569cb62a25e3084f3d8fa3625072e5a", - "description": "lavapipe: maint7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a68be59caf380ce3f6c20593c33273737124ba4", - "description": "anv: enable VK_KHR_maintenance7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53f196b8e0b9e1054b09eae6973b5f9ddc14a591", - "description": "vulkan/properties: handle LayeredApiPropertiesListKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "384392d7299e58cc4ca739b81e98cf88c5b05605", - "description": "vulkan: Update XML and headers to 1.3.289", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "597c6cdf209e5a418ade674da09323363bfef0f6", - "description": "isl: Add some formats not covered in CMF table (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "77c83069adaa659f670283017e6b05780505e66d", - "description": "intel/dev: Select a compressed PAT entry (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9ee484f21d4a3ad1d275098d09f2b6ccfdf38eb", - "description": "blorp: Ensure MSAA fast clear in correct modes (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c8dffd282ab219d5018941e34d5bfc224f03762", - "description": "radeonsi: add GL_ARB_texture_filter_minmax extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f9bafbc7466017d926b6441d2233a846615ed92", - "description": "radeonsi: add GL_EXT_texture_filter_minmax extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11c27a6237e76547d982e606fb798b117bd82ab7", - "description": "egl/wayland: fix memory leak in error handling case", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "137c506a7a5c42739a7780497c34a2ad779396a0", - "description": "subprojects: Use depth=1 in the git wrap files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "076cbf605e84ad2f7353099af95969702aac5b77", - "description": "amd/vpelib: support VPE IP v6.1.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e322b2b683231d4fd201c2f10860e96a77f6d2b6", - "description": "amd: add GFX v11.5.2 support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9945f9e8d3c62b8d7e99a9af817731a8fcdd35b1", - "description": "meson: Update proc-macro2 subproject", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f77e9d8c4aa8d71ffef78788b959e7efbe6cec94", - "description": "ir3: Print bindless samp/tex ids for tex prefetch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c157e8991e10958e7e23f72207a9f54bac8160ca", - "description": "v3d: use original enabled_mask on setting vertex buffers", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "cbcfb34cf78245ce130077b6928f830487dbf613", - "notes": null - }, - { - "sha": "2d728a037a4d4b0ec7cd1443be82783d9e15bfcb", - "description": "venus: tentative fix for test flakiness from invalid ring wait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de0d237ab0ba55ecb2dd3dfd4b28152c2963f022", - "description": "intel/perf: Move sysmacros.h include from header to implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4aa3b2d3ad73fec9d1eea7a41233a707e1d640c8", - "description": "anv: LNL+ doesn't need the special flush for sparse", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b864388fdd79a72549906f6f0eaddb9b47cd686", - "description": "egl: only enable MESA_image_dma_buf_export with PIPE_CAP_DMABUF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "739694403dd83e17ad633778ab56aa93d347ccaa", - "description": "egl: deduplicate MESA_image_dma_buf_export enablement", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99ce8b5a071e12e8832823ec250f125585493ae6", - "description": "intel/compiler: Add indirect mov lowering pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e69ec3b8defa87c095eda35651aeb42b54a3c25", - "description": "intel/brw: Add a lower_csel pass and allow building it for all types", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb7b1a8d237ddc7fb40875ffe33d12c2ebe63b1b", - "description": "zink: remove adreno from broken_cache_semantics driver workaround", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc604f340a78e093946c3d89a884440c0cb6abba", - "description": "anv/grl: add some validation that we're not going to overflow", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "dc1aedef2bd054884685ad971a3ef5be07ecd101", - "notes": null - }, - { - "sha": "1643c933efaee9908ba3a36694b0088069a8163c", - "description": "aco/gfx11: don't use v_bfrev_b32 with wave64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52e9370c13d6c2f5ae11f291e2333aa379b78e3c", - "description": "aco: replace constant v_bfrev_b32 with v_mov_b32 to create vopd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17758f0a026673bd8def80d09b74d4c5d150c018", - "description": "aco: fix wmma raw hazard", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6eb5c9caa7f76d9932a7c0b799f55a5895b7a9d", - "description": "aco: use alignment information in visit_load_constant()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c995df9aaaeba6618666dc294b6b20efa3ff7bc", - "description": "aco: fix follow_operand with combined label_extract and label_split", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ee24db88205984d80e5ce0aacfd35ccaa69d7ec", - "description": "aco: add missing isConstant()/isTemp() checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e1d3f571d3ce13135480920cc323db4973a420d", - "description": "aco: turn split(vec()) into p_parallelcopy instead of p_create_vector", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f842bd81ca94637c689e89b0513ba093350bf588", - "description": "aco: use s_pack_*_b32_b16 more in p_insert/p_extract lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca161a96d1d9a06bdfa4e32e9903ca1a3a34332a", - "description": "aco: combine extracts into s_pack_ll_b32_b16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98cb50297b319f849766b45783705c715dfaddb3", - "description": "aco: use s_pack_ll_b32_b16 for pack_32_2x16_split", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6326cc4a5e4e9638d2b0cdc0f847caeb42588c48", - "description": "radv: use radv_get_user_sgpr() more in DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "598e85b3e9f74cd595b2b3414137322b94e713d7", - "description": "radv: use the graphics pipeline from the DGC info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c8d44aed05bf82da9bf78c6a3b4013897dbb45a", - "description": "radv: move radv_CmdPreprocessGeneratedCommandsNV() to radv_cmd_buffer.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7f6388ac7fc31caeffa23807320d8bad88a7900", - "description": "radv: use radv_dgc_with_task_shader() more", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b51b8c54c07508ac06bd5d968808592ace36266a", - "description": "radv: cleanup using vtx_base_sgpr for userdata with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c77e26daa5ac0371d2bdc318ecfe73bf1db684d2", - "description": "radv: do not emit compute userdata for empty dispatches", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f919c0df6ab0b70f7d791a8dc1f28c022843545", - "description": "radv: remove unused parameter to dgc_emit_draw_mesh_tasks_ace()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2af4f61a7f1eeaa575e67173b6c72450739b893", - "description": "tu: Use vk_query_pool", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc432c358ab8a51401b0e36c89d9aedb0d4af9ab", - "description": "tu: Use the common versions of vkBegin/EndQuery()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45a3c2d197de018e1b35b32c3b082949bdc24694", - "description": "tu: Rename tu_query.cc/h to tu_query_pool.cc/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8ebc632eb11bbe9892b5485ab4bfd2062cfab1d", - "description": "tu: Move buffer view related code to tu_buffer_view.cc/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09d224685dd4da8f78d2ecc2b4225b01678c7e29", - "description": "tu: Drop tu_buffer_view_init helper function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c21faf12e7a005df4fac270c63244b40add58229", - "description": "tu: Use vk_buffer_view", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbd19e09d1e293b6b34a30312aac3c865f42b244", - "description": "dri: Go back to hard-coded list of RGBA formats", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ad0edea53a732fecf6ddb8340e724b66275a0619", - "notes": null - }, - { - "sha": "a7f86e38ca25c844d69b230283deba599dc9c289", - "description": "zink: free sparse page for miptail on uncommit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0277d0321a3649aeacc14898d156b754e7ddf851", - "description": "docs/panfrost: quote identifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "577b9efa7554d3e5c2b58f06c5a2e8fd628f6642", - "description": "docs/panfrost: use c:func-role for function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a5f892b5cba9296eeec7e9ec59b2eec80e288189", - "description": "docs/panfrost: use math-role more", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7033623acd8b7bae8bc52911d4d1c3223726a8f9", - "description": "docs/panfrost: fix math-notation", - "nominated": true, - "nomination_type": 1, - "resolution": 2, - "main_sha": null, - "because_sha": "e0752673becc9d6263f1e982289111f6d7aa7c43", - "notes": null - }, - { - "sha": "41698eee96b17ab11773ca92bf557d35bc72e207", - "description": "docs/panfrost: fix numbered list", - "nominated": true, - "nomination_type": 1, - "resolution": 2, - "main_sha": null, - "because_sha": "e0752673becc9d6263f1e982289111f6d7aa7c43", - "notes": null - }, - { - "sha": "484f613a970c4e1f7b91a5d50f87f59bb25fbe8c", - "description": "radv: use radv_get_user_sgpr_loc() for the GS copy shader too", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f22ee282fc06f9279a6b6ad42b9a83ca1c16ee7e", - "description": "radv: add radv_get_user_sgpr{_loc}() helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf852536fc2290184c118767978db53674b4a608", - "description": "radv: rename radv_get_user_sgpr() to radv_get_user_sgpr_info()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81424e1d50054b3c688d497c0c5e83b04d690d8b", - "description": "Revert \"ci: disable Collabora's farm due to maintenance\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "c0138e99e6d3c7ec356a7ecec15d3f42280117d2", - "notes": null - }, - { - "sha": "f77216e9ac4287680db766740e68cadb96e9342a", - "description": "Revert \"ci: disable Igalia farm\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "f0b0a71a9b656f15c040ac76f8ff17fff23e0cca", - "notes": null - }, - { - "sha": "48a7c212baa80b03de68dc431c6f9c407a914644", - "description": "radeonsi/ci: mark test as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b5a12611bff70ffb3c736de29ff5631efbb8770", - "description": "meson: Build pipe-loader when build-tests is true", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "884397b587d2bffe0de9513cf6307300c9db0493", - "description": "anv: workaround flaky xfb query results on Gfx11", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "feaa5ce1ec2556d4cc9a7c26bdc53aa84c05b9b3", - "description": "vc4: fix out-of-bounds access to array", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b827aee3a3ef7198afe25b641de59c1e34bd03b9", - "description": "vc4: do not create 0-bytes variable length arrays", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a16575dec6f8330af07a733f289544837057ff3", - "description": "vc4: do not pass NULL pointer to function not expecting NULLs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eab3ee8d71075d8c1e5b511ed4ed7699d4e66a5e", - "description": "vc4: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e09b2b3f35b3e9140eb582fe959791145324375", - "description": "vc4: use unsigned types when performing bitshifting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1bcf9c5da9aa48ddae45b84d1b06cd0f7e5b64bb", - "description": "v3d: do not pass NULL pointer to function not expecting NULLs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "417f70ef5a54e11b2268f150b559080117fa6539", - "description": "v3d: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc286867fb73b9b8344dd1ee55fbd70868406cab", - "description": "v3dv: fix misalignment in descriptor layout structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9696fd378a4dff4b2cb78cd5b1d7ccd2d9799d1f", - "description": "v3dv: restrict to channels when encoding border color", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ee47dc6d953107ec5b96af5a2454f1949ccd93f", - "description": "v3dv: do not pass NULL pointer to function not expecting NULLs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d71be8e600d38fcecaa46a5d8685352068df2a1", - "description": "v3dv: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7dc6b8df1166f89c11d29e23721ebfe1afc82a0e", - "description": "broadcom/compiler: use unsigned types when performing bitshifting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b8f8926026f71ccfa7d2d6adce56c7976a9fe9a0", - "description": "anv: emit the right shader instruction for protected mode", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57e74d7b56f81edd8cba6c575aec340291a3ef9b", - "description": "anv: allocate compute scratch using the right scratch pool", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ccf80f9b15a49bbd79702d3c4de7ee65c8837b1", - "description": "anv: prepare 2 variants of all shader instructions", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08a4e0a2e3c9f5c174ec81910b0bb117dabf497a", - "description": "anv: add a protected scratch pool", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0138e99e6d3c7ec356a7ecec15d3f42280117d2", - "description": "ci: disable Collabora's farm due to maintenance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68215332a8cd87d8109ee4c3b50e04df223d9c83", - "description": "build: pass licensing information in SPDX form", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b6e2475e4dcde79fe09f982618db41422431609", - "description": "intel/perf: Enable perf on Xe KMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "936e87a7f917a4db9a90adc0334750be7af5d448", - "description": "anv: Implement Xe KMD query pools", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c1b545057abbfcfd4f0b938b78605d9634e773e", - "description": "intel/perf: Implement Xe KMD perf stream read", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da63c54db5f977e93be1622b62f35bc824641774", - "description": "intel/perf: Remove i915_drm.h includes from common code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00c6b09812f4a9d080b4a01d22458664d4c4b504", - "description": "tool/pps: Add Xe KMD support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2fd848002c43e340b259559917f77f48d38cc1d", - "description": "intel/perf: Refactor and add Xe KMD support to change stream metrics id", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b22899b494fee9f0033637d197bb1f78ffe9f3d9", - "description": "intel/perf: Refactor and add Xe KMD support to enable and disable perf stream", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "981090f17347276c967a23b94a46b368cd59ebef", - "description": "intel/perf: Add Xe KMD perf stream open function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6258c843752b1b6e35db9499f513c22621feb871", - "description": "intel/perf: Refactor and add Xe KMD support to add and remove configs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e68d7a735d215bc8af40c3a15a25eca59ef5bdd", - "description": "intel/perf: Replace i915_perf_version and i915_query_supported by a feature bitmask", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a56b085661bbd47739e358030bda52613ed72f1d", - "description": "intel/perf: Add function to check if OA/perf is supported by Xe KMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0c62b643823f91f91ce5bcb3c7fa39bee9eebae", - "description": "intel/perf: Implement function that returns OA format for Xe KMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdeeaaff59eda080dbf8b20ba2d99bc7ce91e73b", - "description": "intel: Sync xe_drm.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d52dd5a9e954bcf9571cd1547f17f870264820bb", - "description": "anv/drirc: add option to provide low latency hint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0151df32223506f9077391a1c457f30925c70cb", - "description": "mesa: Add ASSERTED to assert-only local variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "13d11ab442984a5d281add2d56cb2c96ea6e4403", - "description": "zink: Add ASSERTED to assert-only local variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2b53d7bd00a22935cba6b0d095f1f42414a9c18", - "description": "nir: Remove assert-only variable by inlining its single use", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30db807f790fb13747c1cff5bbed117131e2d78e", - "description": "nir/algebraic: explicitly suffix constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "270446ee2145186ba4af6c0934ad58e4dbf91448", - "description": "nir: fix miscompiles with rules with INT32_MIN", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b756a0d0e5e6abd4ded2efced54017f2b8d696e", - "description": "svga: Replace shared surface flag and simplify surface creation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b8f347e4b90afe3d341c7e884e04b7c19573b17", - "description": "svga: Retrieve stride info from hwtnl->cmd.vdecl for swtnl draws", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "76725452239e9e7740c0edd6a5f3663ab897c343", - "notes": null - }, - { - "sha": "f9a15b37ef620f11667a0a5c676208ba2164ca23", - "description": "zink: Add VKAPI_PTR specifier to generated stub functions.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6466a977e493dcda47a4cf616a469d394765f957", - "description": "zink: add a driver workaround to disable 2D_VIEW_COMPATIBLE+sparse", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8ab5e4320a402769b9cd6d2e19d44d4a1db72a0", - "description": "d3d12: Use GetResourceAllocationInfo instead of GetCopyableFootprints for residency sizes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ef3b38ff84e60f35251813493e212ff31bb019d", - "description": "llvmpipe: Init eglQueryDmaBufModifiersEXT num_modifiers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d74ea2c117fe96e527471e572336f931c3c77da1", - "notes": null - }, - { - "sha": "6dc7f65a398ce8a8626cf3b0371d82a615b728ea", - "description": "anv: Use brw_nir_lower_cs_intrinsics for lowering Mesh/Task LocalID", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d89bfb1ff750445f77717ea44884decf93adad97", - "description": "intel/brw: Reorganize lowering of LocalID/Index to handle Mesh/Task", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0b0a71a9b656f15c040ac76f8ff17fff23e0cca", - "description": "ci: disable Igalia farm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81fd13913a974d69cbf1c02e070b322deccc1141", - "description": "freedreno: Fix RBBM_NC_MODE_CNTL variants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc48e12431965f709409c74640372dae413811cd", - "description": "radv: suspend user conditional rendering when DGC has task shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "49eda4d7426799aa3cef0ab3b798c88a5dc76884", - "description": "frontends/va: Don't require exact match for packed headers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3f35964baf40d746318831f65ada478800d9c53", - "description": "gallium/vl: Init shaders on first use", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f1dd9a2aafb79e190ebfc8851b9e9be382854bf", - "description": "gallium: inline trivial needs_pack()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cde1a1d5c2a82f414701effa4c5c541b196af232", - "description": "gallium: properly propagate the usage of resource", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ae1c5dce3ff2bb70dc32d3afaa4bb9855ee974b", - "description": "radv: Refactor radv_(dst|src)_access_flush", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "41619da3977eb1b1cc7299ac045d784cea9980e7", - "description": "radv: Handle AS access bits like shader storage access bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca96abe1cb40ebfe7b15dccab3ef680b73102b44", - "description": "radv: Remove write access handling from radv_dst_access_flush", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3eefd0b040564113d5a43be72dab78d4ea986a15", - "description": "radv: Remove handling for expanded access flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "135348a3c35cf7f456b869d45eb7957551272ea7", - "description": "radv: Remove no-op access flag handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3acab3dfff6348000a388132d5b682e6cd761da3", - "description": "radv: Use vk_expand_(src|dst)_access_flags2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0fa138c86bd2f483e9a6bf7c0e1759241a6b49d", - "description": "vulkan: Add vk_expand_(dst|src)_access_flags2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b3cdacf7f3503b8c447ea2135aa81b6934a25eb", - "description": "vulkan: Handle group stages in vk_.*_access2_for_pipeline_stage_flags2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76db69047f5c32a87c8e6679360693a0e8c9372d", - "description": "panfrost/ci: split gl & vk jobs rules", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cdc0e60df59bdcddb585ad4ee7829cfd0cc5b318", - "description": "panfrost/ci: drop duplicate job rules", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "88864b707a8ad3a894521f199973cf34216898ad", - "description": "radv: enable task shaders support with NV DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6aee84265c5805860eec5ea3d55f3c1c1e832d6", - "description": "radv: fix a synchronization issue with non-preprocessed DGC with task shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74713469e1824e0e7caeb4ac05709ffb7b8ff98f", - "description": "radv: disable conditional rendering with DGC and task shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fec2385301636fed6de740fe37dbefd06961c786", - "description": "radv: emit push constant for task shaders with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ffb420eddda644e32704ade71d688f695f057cc", - "description": "radv: adjust the base upload offset when DGC uses task shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f55d4f2f09f19f17895094265b4b99f03c4d6a5e", - "description": "radv: reserve space for push constants in the DGC ACE IB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d321421c7d02b0aba0b5d686aa1b1aeb2184005", - "description": "radv: rework emitting push constants with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6150edbb38c431f1d71157f3e78ec2504143819", - "description": "radv: split allocating and emitting push constants with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f7bdcfa8ddc533e7b2ba9cba8a096cc6ebcae1d", - "description": "radv: add a helper that determines if DGC uses task shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "58327fd3bf47376521ca82a26693a317f508b682", - "description": "radv: pre-compute the base upload offset in radv_prepare_dgc()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "842f3ea1330eed63ec362d2f7a331f9484f7f9c2", - "description": "radv: improve clarity of DGC offset computations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc52e77397670c7aceb0bc5dae87b70be6bd7e67", - "description": "radv: fix incorrect cache flushes before decompressing DCC on compute", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "edcad250ed72a36902328bcbd7fe757c4339ca85", - "description": "intel/compiler: Don't use half float param for sample_b", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8c2930da0e36b4d4e952003cbb63d67982cc5aa", - "description": "drm-uapi: Sync i915_drm.h with a78313bb206e", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a9f1151de270c5270a9e0280924b70b39d4692e1", - "notes": null - }, - { - "sha": "35298e84f1335e363f107ee32635435d071ba166", - "description": "intel/compiler: move predicated_break out of backend loop", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b3149c99b6cde6b7b755030e55487bf37e323ff", - "description": "intel/brw: Retype some regs to BRW_TYPE_UD for Xe2 indirect accesses", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "674e89953f0ba10ce6a537a1b2d181179576061b", - "notes": null - }, - { - "sha": "646a0ea5767f5a10b2cb6a82babfe1acb494ba7c", - "description": "meson: rename with_gallium_opencl to with_gallium_clover", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "82e9880b04f3734dc75d38a4560fb04dd48ed1ed", - "description": "clover: fix meson opencl-spirv option", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "815a6647eb1383e9dc704ffcc266d85f3b13338a", - "notes": null - }, - { - "sha": "746f41e70514bcb896f90bd7c7e765e097902285", - "description": "anv: properly store the engine_class_supported_count values", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "5b8b4f78782e5096dfe82f6b21c293577241ce5e", - "notes": null - }, - { - "sha": "cff6df7e112f2714daf5e1c9b77f9c25aa547a82", - "description": "anv: limit vertex fetch invalidation on indirect read", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "531461d576d38e7aaf8419a6e73264d34185c97e", - "description": "intel/brw: Test corner case CSE of ADD3 instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7adccbd48d9904ffafcb9c2506bb4afc01b10f4a", - "description": "intel/brw: Support CSE of ADD3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1b1114bc2b721e445639bf103c0c23df2bb355a", - "description": "v3d/ci: add nightly job for rusticl testing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "959d38099f7d459c1e3299f738b87d145ce4058e", - "description": "llvmpipe,rusticl/ci: move rusticl files rule out of llvmpipe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "70dfe9c6d104eae3d97b1c9a4d5a31a6475d4a22", - "description": "ci: include rusticl in the arm64 build", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2a025f9a2c2035f154cb8351c693e65df2b5069", - "description": "llvmpipe/ci: set rusticl variables in deqp-runner instead of passing them down from the job", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b3782a5abd4ec4d129d9d2ec2b5dd223b90016f", - "description": "llvmpipe/ci: fix indentation of list nested in a dict item", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d09f9328709fb6f5836dbbff7cf8e0d5eab3c01", - "description": "llvmpipe/ci: add comment for later on weird-looking code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "332252966bac19edcb1fe76642673ff71074b8a6", - "description": "ci: kill filament trace globally", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c72580d233bd73f8f9f3e89d46c0c2552e48dcf", - "description": "panvk: Remove duplicate variable src_idx", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7bea6f8612e193d4704a8b03f719a14c500f4281", - "notes": null - }, - { - "sha": "f5b44838a15efa557c0716e21452bb9a5b9f457a", - "description": "panfrost: implement SFBD raw format support on v4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "965627bc48969fc4178f3ba2605e35b79a7be640", - "description": "Uprev Piglit to 647d0725024f72bc49bbc91c686c5f61168a1fe8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e74b6eda9a0614a7e9438beda39c659da1b26cb", - "description": "panvk: Add support for layered rendering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "743b41a2844678de7c3b8347ca73bf08ef8fc4b3", - "description": "panvk: Use IDVS jobs when we can", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8293376f7c24c4d3630d066a7a4cf4cbe0385fef", - "description": "pan/blitter: Let pan_preload_fb() callers queue the jobs to the job chain", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "629b9258df12da1797f2141b782def487d4a82d4", - "description": "pan/desc: Prepare things for fragment job chaining", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c694556657b7d67a6f0f787afe6249043e30a6f8", - "description": "pan/desc: Extend pan_emit_fbd() to support multilayer rendering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "037eaa962b56ff70ecf889ace05020635964e23c", - "description": "radv: add support for executing the DGC ACE IB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e0c6fab21e787773fcd5119027700ef441905ba", - "description": "radv: add support for preparing the ACE IB in DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "723acbe1e28bb62e03937fbf5471b8b8f6ebec22", - "description": "radv: add a helper to pad DGC IB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a5c6415d1f4d5a76e69d33e24b390d10409ae6c", - "description": "radv: refactor some DGC helpers in preparation for the ACE IB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12cc97a15706fe5e35793d9b1ee4e5279c0312d0", - "description": "radv: prepare for DISPATCH_TASKMESH_DIRECT_ACE emission in the DGC shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a81a6066d139a9a398a9cb7347adc6a3b2dfd5f", - "description": "radv: prepare for DISPATCH_TASKMESH_GFX emission in the DGC shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdbe3e58865fbfefd3f2bdd17b46f0a7f08c33bc", - "description": "radv: add support for computing the DGC ACE IB size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99cd8b6a546cf61a28e54397fa8954009853aa08", - "description": "radv: add a helper to execute a DGC IB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6772654ac3a28c14e8878c8c5dba288355c2bbd", - "description": "venus: Disable sparse binding on lavapipe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f28bf41f286a53d5e530f2073a99ad3574ddfbf", - "description": "venus: Refactor hiding sparse features and properties", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6168317b849150db28dc222f8ac68cb1b371eb2e", - "description": "lavapipe: Implement shaderResourceResidency", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d747c4a8746834d3c9a6fbd7b455b7ce9441fb38", - "description": "lavapipe: Implement sparse buffers and images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a062544d3d0519aaa3845b7cfd79e925b9352a55", - "description": "llvmpipe: Use an anonymous file for memory allocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fcc0fd2fc1d3265da51785abb70ee243201f8f0f", - "description": "gallium: Add a memory range parameter to resource_bind_backing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "56028a888efd2735a687bbfaf22902a1f867d3f2", - "description": "lavapipe: Do not allocate 0 sized buffers for descriptor sets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d159c02f68d7c196d5ec91d310d1c065a7e28b6", - "description": "llvmpipe: Introduce llvmpipe_memory_allocation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eb64ce43866b0e87526dcd20807ccdeb5ba17c80", - "description": "util: Add a helper for querying sparse tile sizes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a603cc06334fd44743b083d1afeb7b73a4a4334f", - "description": "anv: move some pc was to batch_emit_pipe_control_write", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3bfba9c565f5cce29fba3b9e11dc4499266cfb4f", - "description": "iris/ci: update trace checksums", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7fc8ad2dddea0bac60533b66ff1384e379677e99", - "description": "aco/ir: remove unused vopc helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2225a32bb0ace610c54e822c91982ea9a2fe5d24", - "description": "aco: remove ordered/unordered optimizations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e86d2452ff7c0453dd78131b1d5b8148dc17236", - "description": "nir/opt_algebraic: add various unordered/ordered patterns from aco", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "434dfb51ca4193dd9cff477da67749e08dba8e48", - "description": "nir/opt_algebraic: optimize cmp(fneg(a), #b) and feq with fabs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98cc57bccb441a2d7adb93ffa13a06968d2ceec9", - "description": "nir/optimize cmp(a, -0.0)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e6bf596cb4a2c62762c7b35e4987e08b9f4e2ac", - "description": "nir/opt_algebraic: look through fabs/fneg when matching fmulz/ffmaz", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "080e03d021795eb888538f0a04f90a515b98d070", - "description": "ac/nir: enable ford, funord, fneo, fequ, fltu, fgeu", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3dfc8b3bcf40358b28a96304f4a32ef7eaf9790d", - "description": "ac/llvm: implement ford, funord, fneo, fequ, fltu, fgeu", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c5ba17cd255159fa2397239a518c91a18d3c2e19", - "description": "aco: implement ford, funord, fneo, fequ, fltu, fgeu", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99372c1ed7b77049a5e96f32b77550f1c82d0f75", - "description": "nir: add ford, funord, fneo, fequ, fltu, fgeu", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01118a3fbba54d30d08336831a30515520ec4c09", - "description": "anv/xe2+: Align push constant ranges to GRF boundaries.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "039f4fe25e4d7e924e368a8fea7a8f1b705b673c", - "description": "intel/dev: Add GRF size information to the intel_device_info struct.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fea9de3c8368d3c293f6b2a1035c9ef7f1df7516", - "description": "vulkan: properly ignore unsupported feature structs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e6b675974261173d2cb08edf5fb4d01669f682f", - "description": "broadcom/compiler: drop multop if we dce umul24", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a7a36372ff35847b4d95730cb7aca38b85b6f4b", - "description": "broadcom/compiler: validate rtop + thrsw hazard", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1f8351f3c1c0b9306ed6a7ead500a72d69811d3", - "description": "broadcom/compiler: fix per-quad spilling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "597560e27c585d9be17ffdb8731c1c3d88550cf8", - "notes": null - }, - { - "sha": "38b7f411a1fb26ef4b2714852c7f950f0a3a710c", - "description": "broadcom/compiler: don't spill in between multop and umul24", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da1a7c04bcfde3350f6b2842c2e976ee0635945b", - "description": "radv: Return hang status from radv_check_gpu_hangs()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6006588ad8c0769ed0e907c4e786836bc3704a25", - "description": "glsl: remove out of date TODO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "79fa3eba11c640c3d1c9326fd85ba6a138638da1", - "description": "intel/fs/xe2+: Add ALU-based implementation of barycentric interpolation at a per-channel sample.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "95eec5a0ddea50d43edc574f61fee96f45bc9248", - "description": "intel/fs/xe2+: Add ALU-based implementation of barycentric interpolation at a per-channel offset.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8007c93259bd1ae3d6d2056fed1291edff0eef7", - "description": "intel/fs/xe2+: Don't lower barycentric load offsets to fixed-point format on Xe2+.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04b5b8b9ec2d9a580e1db32c90aa9f7921bc1643", - "description": "anv/gfx11+: Request PS payload fields for ALU-based interpolation via 3DSTATE_PS_EXTRA.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76f095c3549eb9a522e5d4e3cbb5e319582b3fc4", - "description": "iris/gfx11+: Request PS payload fields for ALU-based interpolation via 3DSTATE_PS_EXTRA.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d30cc82f94ba03bd7e931a58e32e4a6fd5af3c5", - "description": "intel/fs/xe2+: Ask driver for PS payload registers based on barycentric load intrinsics in use.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e60dcaa71d7a5004eafadf51a737d2397660c4ee", - "description": "meson: add various generated header dependencies as order-only deps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a4e0eb55ce4daac70a33e289705c60fd352cd10f", - "description": "meson: create libglsl declared dependency to propagate order-only deps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2c084beb9d15ad92ffc9cbd45e55daa0faa7d2f", - "description": "drm-shim: stub syncobj_timeline_signal ioctl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2a2bc50408adea18358ea2a33c29ba27a409a27", - "description": "ci: reorder alpine/x86_64_build rules to fix the nightly pipelines", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "fdd204538b93e17cecd32786603e0e2452e459c4", - "notes": null - }, - { - "sha": "2156ea8ec7faa246f48f32e5cc6ccb102fc9b916", - "description": "docs/ci: drop .no_scheduled_pipelines-rules from test-docs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aba6bf7765bd578025b831dc4f49e9f879eefe38", - "description": "docs/ci: auto-run test-docs in fork pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d48c91c5821f8463ff5af489b0f33aa7fca57d63", - "description": "docs/ci: merge test-docs and test-docs-mr", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e44b4b12330e725925adc9cdf442d81775e16a5", - "description": "docs/ci: fix indentation of list nested in a dict item", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5bc05c6f532ffd6d8c66c0f257359b415ce11451", - "description": "intel/tools: Advertise I915_PARAM_HAS_EXEC_TIMELINE_FENCES", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7da5b1caef21ca1da75573737f553fa301d25b2c", - "notes": null - }, - { - "sha": "dd85b50d182a2bd1c67d9a8f858d93fc4dded91c", - "description": "treewide: use nir_break_if", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d57934fdec603a8361872f089cee89a6112badee", - "description": "nir: add nir_break_if helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3482ea599bed7618a4865e5fa0c073efa54ef08d", - "description": "nir/schedule: add write dep also for shared_atomic", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65298586b8073ed8dd5b9b05345a42fcad15dc39", - "description": "ir3: Use elect_any_ir3 in preambles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec37e65a2d69fd5b10340c2be9cace58c20464ed", - "description": "ir3: Introduce elect_any_ir3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fec9b56f1733efd7849cfb82ca0c5a7c6d68e242", - "description": "radv/amdgpu: fix chaining CS with external IBs on compute queue", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd93e330872056aab46034c2d247b540be0d813f", - "description": "panvk: Enable texture filtering in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c45d05b1e4fd2aaee4418762eb2daab0bba9c56e", - "description": "panvk: Advertise VK_KHR_sampler_mirror_clamp_to_edge", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "111088a6dbf3b4a6791249d4452efc9e9829426f", - "description": "panvk: Implement and advertise anisotropy support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b8eb7f3f4930f05239397f2b6a2f917b8f5b5b3", - "description": "panvk: Enable glsl.440.linkage in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6f91afee1d4448b43396aadcf5467fb502420a6", - "description": "panvk: Run nir_lower_io_to_vector for fragment shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecbe3b30be39527bffda1cea9dbf365c3f95b5e2", - "description": "panvk: Do not emit blend shader when color_mask is 0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52c9cc6ed858c66446a5129037ac902a710df4e0", - "description": "panvk: Advertise VK_EXT_private_data", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afcfc72b83e4c213d4c0f73cd119893830b9d504", - "description": "panvk: Enable compute pipeline in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "10e62cbe01e6bfda53d183ba7c3f8cefb8665d79", - "description": "panvk: Report proper workgroup invocation and size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0fa3fda3a0bcb53706da72166946b8bcae07c92", - "description": "panvk: Skip dispatch on empty workgroup", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "653a4dc58feb499226062c8a1bf42e1c0a7de2cf", - "description": "freedreno: Use LRZ feedback in gmem", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02b1d23feda0970806b6c54ec8ca1d33b5b16802", - "description": "tu: Enable LRZ feedback in sysmem", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a33cd113ae3fd0b8efce4632d546a114fef5994", - "description": "tu: Use LRZ feedback in gmem", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04e18dc96f1fe36cb7cb19d9ed8b83fc410ab574", - "description": "freedreno/devices: Define and appropriately set has_lrz_feedback", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "229bd7b9b9690021455b9571977fc608f42cbc41", - "description": "freedreno: Describe LRZ feedback mechanism", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78c5daf0298d8d4ef52dc1795566bff864f8a170", - "description": "tu: Add early preamble statistic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "337fb7dec2534d1051630fe4a51b864b5e3c17ec", - "description": "ir3, tu, freedreno: Move early_preamble to ir3_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "293f137d4debd4eadac97a7d4f60191f50bb2ca6", - "description": "freedreno: Disable early preamble on a6xx gen4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c42f6597f9f1f27e632b47f77b360f5fb6a39e40", - "description": "ir3: Make sure constlen includes stc/ldc.k/ldg.k instructions", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ccc64b7e00b69ce3b0e20df6cf6b6ad68e7c9f79", - "notes": null - }, - { - "sha": "536775ee8b591466121a5e0e5874ef29c3049324", - "description": "docs: List VK_EXT_debug_utils", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8cfdc099cd8638fa2b5fa73a704f11f1558815c0", - "description": "tu: Use the common version of vkQueueBindSparse", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d882198fc31742c96d1a4ada98fc256a35cae525", - "description": "tu: Move buffer related code to tu_buffer.cc/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0a9b0f8d6b5dcd46784249e635b2527fa146335", - "description": "tu: Use the common version of vkGetBufferMemoryRequirements2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a06494e65e41e69c7c48f403ca09974031d3d9a", - "description": "radeonsi/tests: clarify the output when results changes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9f150f18bd684bbb5d0bad88845cac7aade84f2", - "description": "radeonsi/tests: update tests baseline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ec95b990e130a4d6b6323b3040c18d050c048f4", - "description": "ac/nir: don't use the compute blit for PIPE_FORMAT_R5G6B5_UNORM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c97591b862fa290524d12b83189512cadd72e4fb", - "description": "radeonsi: add gfx11 workaround for upgraded_depth", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "abd048124a2abdf94e57297445c8bd0a93829b5a", - "description": "ac/surface: reject modifiers with retile_dcc and bpe != 32", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d8073a5fdd803d78492cec31e6834023e2ceb12", - "description": "radeonsi/tests: add a shortcut to re-run only failing tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27a841d335304a84c4192dd98b9e9e1f30afaaca", - "description": "radeonsi/tests: don't match gfx10_3 baseline for gfx10 family", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "19e342b8770d2a0c50dcbd61f3011939ca7679d7", - "description": "radeonsi: handle DBG(TEX) after tc_compatible_htile is set", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4e7204e7381f29b4eaa2a79f7fd92e7ceb7fe42", - "description": "docs: fix bootstrap-extension", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f72033bb707046ef5966cb55cbf9bd9fb7bb038f", - "notes": null - }, - { - "sha": "18db05d3e6ba8934d40a421e6082256641ee5dca", - "description": "vulkan/runtime: implementaiton -> implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3967f8cd84e37177a21fbec1ecfd4261fd5310cf", - "description": "vulkan/runtime: multiesample -> multisample", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "788d1b5a67b2dcddba6645bb190a5824d5fc3383", - "description": "vulkan/runtime: abreviation -> abbreviation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "947446ade7aa4e542071715c6a9ad0308c3621a8", - "description": "vulkan/runtime: initizlie -> initialize", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a966a11161e4b70da04bf00e1c63060f7dcfd858", - "description": "vulkan/runtime: tne -> the", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5bb32da9859848ddc6b3e60d80e9cd91676cc92", - "description": "rusticl: enable v3d", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b85476d864b8894396b2b1c74da5889850bdc6e", - "description": "v3d: never replace a mapped bo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5c4ea93233427adcf809f3ed12a352397d0ca67", - "description": "v3d: fix MAX_GLOBAL_SIZE and MAX_MEM_ALLOC_SIZE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6768c8197486f49db07a8ce0a5d4b5bd365a8cfa", - "description": "v3d: support variable shared memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "61b1a14e910ab13f2a834dfca4bf20b894801b2c", - "description": "v3d: lower 64 bit ALUs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ff96fb5b02c26df9365875306155e4241402ea7", - "description": "v3d: lower CL alus", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f72e60c7500a850502e5d9a608eff675462fe82", - "description": "v3d: treat SHADER_KERNEL as SHADER_COMPUTE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3889a8e26ce3ef20c1e93decb3fb93977b9bd7b4", - "description": "v3d: implement gallium APIs for OpenCL support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "742984a3256e11ff30eb84d51286f8743615b1ac", - "description": "broadcom/compiler: handle variable shared memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9bf0b3a1127df0313d692d8fabd8172661d7fb94", - "description": "broadcom/compiler: call nir_lower_64bit_phis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a169a518e4d0bcf07ff3f8e2df9d7002c1873f1", - "description": "broadcom/compiler: implement load_kernel_input", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "caa3872f768df399cbf8739c945844d251488208", - "description": "broadcom/compiler: abort on unknown intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8ab9c0e9306dfe8e3596189b86c25fe54b8b160", - "description": "broadcom/compiler: handle up to vec16 load_uniforms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e050b13777c4c0e0e55d9dcfda09232c74eaed6e", - "description": "broadcom/compiler: try handling 8/16 bit alu operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7f9cca985711701e826b8a32683a60997ab24b4", - "description": "broadcom/compiler: fix iu2f32 for 8 and 16 bit inputs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "214121e9b0082ac1bbc90b6fea9f8951d697719d", - "description": "broadcom/compiler: handle fp16 conversion ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2ec65eeda08237bbbe727f2674de1e5e9714315", - "description": "broadcom/compiler: add generated v3d_nir_lower_algebraic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a8f4ff691bb1705dcdc67a9bddd2335f3d1b4ee3", - "description": "rusticl/kernel/launch: fix global work offsets for 32 bit archs again", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bb2453c6495cf5ab58aa1f4f350b83f8d8d8c5c8", - "notes": null - }, - { - "sha": "39721a7476a85f80084cb1d0a1d2b572a9153ed6", - "description": "rusticl/mesa/screen: handle get_timestamp not set by driver", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb33dbeeaa76fa55532855d397f851c922b36ed8", - "description": "rusticl/mesa/context: handle clear_buffer not set by driver", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be4f3c2aa8b14af9a81ba3098404640866eb8af4", - "description": "rusticl/device: require PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT for image support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0fa4eaf6f61546367c0b55b645b5b353cde4c127", - "description": "gallium: add PIPE_CAP_TEXTURE_SAMPLER_INDEPENDENT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d5da4348517fa93581614f8d10accc25641c8bac", - "description": "nir/opt_sink: add load_kernel_input", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "535e617ccdd7f53af7b219a86947779b6fef5c6a", - "description": "nir/lower_alu: support 8 and 16 bit bit_count", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4a38c658317bc8d17447fd6ee3e717a96ca9948", - "description": "aco/spill: don't remove spilled phis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "634051f913e4f01df9f0e76a29f471a1691d22af", - "description": "aco/live_var_analysis: ignore dead phis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "708e1a73f52ffaf31397b8d2be297fcfb29f0700", - "description": "aco/live_var_analysis: slightly refactor handling of additional register demand for Operand copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5cfa5b784bdc1c7658a173349deaa57be87f27f8", - "description": "aco: remove get_demand_before()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09f1c40f2e2f3d3e06eed57a9c0b98ae4d714e50", - "description": "aco: track and use the live-in register demand per basic block", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "001c8caae0a9feb951d9aafb27bbbdce11f315eb", - "description": "aco: calculate register demand per instruction as maximum necessary to execute the instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c2f231cc0c6a7c62cfc2dc852bdcdc71d49b051", - "description": "aco/spill: Unconditionally add 2 SGPRs to live-in demand", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26c58ca9dea3ae9de59fa78601a064bd31f172da", - "description": "aco/scheduler: fix register_demand validation debug code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e3ffc244f51860f9c5530136a8816c4f36aa0eaa", - "description": "aco: skip continue_or_break LCSSA phis when not needed", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "bbe46524307e5e834d5b3d593763b72120d6a3ee", - "notes": null - }, - { - "sha": "77759f7683b673a3b0bff040a8d39f3c433e9ed2", - "description": "egl/wayland: ignore unsupported driver configs", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3589035d61df3cd40b0cc526ffc41f477f8455e0", - "description": "iris: Disable predraw resolve (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc26ad1e864faee7bc1224fc3c14e43aac83e375", - "description": "anv: Update synchronization of fast clear (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "930ea030ed159b92aab8ce830ae58fe74a717c0b", - "description": "isl: Initialize the last usage in isl_encode_aux_mode[] (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d3ce656289356593fd85832b712779051876e19", - "description": "blorp: Don't convert ccs_e formats for copy (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "255889a79546752b690fcd920efb2a75ab1a356d", - "description": "isl: Remove restriction of CCS_E support on formats (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "31b48fd0414a781a7ead75323877589311d8e4f8", - "description": "iris: Workaround: Don't allocate compressed bo from cache (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a815c83c22747f97d6c8773f75ce035eb2f1188", - "description": "iris: Update synchronization of fast clear (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6073f091bb5a98076a240e7331cea43945a490a6", - "description": "anv: Disable PAT-based compression on depth images (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6f9702cf1e0fc84983985f2b30d64f9a38d708f", - "description": "iris: Disable PAT-based compression on depth surfaces (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e835b53a033058800cd41048b072f9cbc2991d85", - "description": "anv: Don't enable compression on external bos (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9cd97b613776c4578d2cfecfe7dcd369cbb76e94", - "description": "iris: Add more restrictions on compression (Xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b75f89f5781657846288fe59d162e2586b0cf82", - "description": "anv: Don't enable compression with modifiers (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66fa1c5ddd4635078450ab724e5b874c755d614e", - "description": "iris: Limit FCV_CCS_E to platforms that enable it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df006bba0256e1d636b3fcc270db7c7b814e61d8", - "description": "iris: Update aux state for color fast clears (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c92b3188865f84c99fb37708c70784b0a091a3b", - "description": "intel/genxml,blorp,common: Update 3DSTATE_PS command (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4dfc3367fcbe94e5faa29a9be64a975921f75a86", - "description": "blorp: Pass down fast clear color value (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3269d505e783e194eff2c20e774469910d96af5a", - "description": "blorp: Get fast clear rectangle of non-MSAA surfaces (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b89bdb96e19c770e455ccfa2ebda8d1fba2fdf2", - "description": "isl: Don't set clear values or their address (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93f790b04a4a02cfee746a5e11c8b208b8d851e5", - "description": "nir: fix clip cull distance lowering metadata preserve", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "110887de2bd9b3e57d87bfc1af4bcd1b8e2de6a0", - "notes": null - }, - { - "sha": "09b4ba27a3200aa6ff7dfba9a8e8d1da849affe6", - "description": "nir: fix lower array to vec metadata preserve", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "35b8f6f40bb45dbffb04dd883ac6644300832981", - "notes": null - }, - { - "sha": "7be1912625be3418ed69d8a587846a4e2b619227", - "description": "isl: Update render CMF mapping (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a985576755f4bd4ad66b0d0f7e6fed7a85c7268d", - "description": "isl: Implement isl_get_render_compression_format for xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb6e8cab79940366922541b0da31bf4857fc9b17", - "description": "isl: Move isl_get_render_compression_format in isl_genX_helpers.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2bbd0fd9daef45eeb53ecf388fb1687db1284e93", - "description": "intel/brw/xe2+: Add LNL cooperative matrix configurations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b678d32cb7f6600e5466315261c1c0e5fc14f44", - "description": "nir: dpas_intel second source can have different number of components", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "556e78f737e28afa01897e02480d80b71c61b7b4", - "description": "intel/brw/xe2+: Allow vec16 for cooperative matrix", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6236dd8f3dde5c8f2f4e4a09b7dfd93c433397f", - "description": "intel/brw/xe2+: Adjust DPAS lowering to DP4A to accommodate larger GRF and SIMD16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "77ef24157744dc52ff5e41fe1163c43ff5e8e5c5", - "description": "intel/brw/xe2+: Scale size_written by reg_unit for DPAS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e368b8e01bbc19c9b731468bbb73f86770a98ea2", - "description": "intel/brw/xe2+: Adjust size_read() for DPAS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b05160275406295f9307e54aaa1ddc875fbc42c4", - "description": "intel/brw/xe2+: Catch invalid uses of writes_accumulator earlier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7a773ac53e6fdf4ed2fbbd4e4ef39dc8d5a0314e", - "description": "intel/brw: Major rework of lower_cmat_load_store", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea6e10c0b2d1a213f0ac34a321ecee27f7cb4e88", - "description": "intel/brw: Temporarily disable result=float16 matrix configs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33dd38f9d5f8e86fd61cbf2625d00eb1f0042798", - "description": "anv/android: set ANV_BO_ALLOC_EXTERNAL for imported AHW", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9eeaa4618f8a7bc8215ac3f195ced7f8eae4342e", - "description": "egl/gbm: Enable RGBA configs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94e15d0f64a3a5ca6b86a3e02343cac0d453aed6", - "description": "egl/surfaceless: Enable RGBA configs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ca85d75c05de9df7c3170122dfdb04bc795b43a", - "description": "dri: Fix BGR format exclusion", - "nominated": true, - "nomination_type": 1, - "resolution": 2, - "main_sha": null, - "because_sha": "ad0edea53a732fecf6ddb8340e724b66275a0619", - "notes": null - }, - { - "sha": "8f2533c3561d86a0d5f681c0c4c21c678d2ef449", - "description": "ir3: set rounding mode for all floating point conversions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93db751c63b05d5a04966df6915937cdc2d8046b", - "description": "ir3: print rounding mode for cov", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c2bfa279d33cf54eda230650fde4e358354d703", - "description": "panvk: support x11 wsi", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d29dee889b6ad355ad69fab700c468bffb0987c", - "description": "intel/perf: Extend intel_perf_query_result_read_gt_frequency() to gfx 20", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a6fe638f3623fd1feaf26a9c1b3eefc9cf09e26", - "description": "intel/perf: Add INTEL_PERF_QUERY_FIELD_TYPE_SRM_OA_PEC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6e1852981b97b5a1eacc1b2d64186dcf807b0545", - "description": "intel/perf: Add LNL OA XML", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b8b4f78782e5096dfe82f6b21c293577241ce5e", - "description": "intel/dev: Add engine_class_supported_count to intel_device_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f2a0bc08341b97df9bf6fce06ec1e1728fab88f", - "description": "intel/perf: Add assert to check if allocated enough query fiels", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a51842f7ab9b547a406588954c3801368bfc304", - "description": "intel/perf: Change order of if blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2dec0cbe01c158f79cfb89b216ac230da7e87533", - "description": "egl/dri: Use packed pipe_format", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "dcbf61f5dfe313a4e8b832e376c772a4db48a58f", - "notes": null - }, - { - "sha": "fdd204538b93e17cecd32786603e0e2452e459c4", - "description": "ci: build docs using meson", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e7636fbb1406dc9c97ce55eec919afac00d35e4", - "description": "meson: allow specifying html-docs-path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e31dde13d140aec7d5f7b39645fcb5b365840a7a", - "description": "meson: error when missing hawkmoth", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2063003457785c0b4378ae27703dc6e693d3170f", - "description": "docs: automatically generate depfile", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c26d4ee44fbcf500f0d3e2c1f8df3ade6e353f47", - "description": "meson: build html-docs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69809a0384cd63dcf107d177d59a95e526cc2cd5", - "description": "docs: allow out-of-tree docs build", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09c1f3b9fd9ef9696aef20035fc344e257d264d9", - "description": "docs: use os.pardir", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "67485efd654fd448c2adbb520a1fc1bca469c230", - "notes": null - }, - { - "sha": "e5f04813510be1188210e96c1cd969c18d162c8e", - "description": "docs: metadatas -> metadata", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bb6816d26fec91683588c748f09bb148576f054", - "description": "docs: pusbuf -> pushbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "372bd9366e6d879f2fdb4b008b1d5c2f77a4803a", - "description": "docs: pluggins -> plug-ins", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0945b24df70d08437e3b2cfa0fd410695566c060", - "description": "docs: acress -> across", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc61409192e626a6c98073f501a4bdd95cb00f3a", - "description": "docs: attachements -> attachments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fdc237e7bce37251384a9a2f745705ea74e91fa", - "description": "docs: vulkan -> Vulkan", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b35e574fd03bcaeed5bee3904a892a0339e6c7c5", - "description": "docs: zink -> Zink", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4f64fbf330494017d6404ac1546f047b61a4e42", - "description": "docs: debian -> Debian", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f734a8c73b098749a2166e8c0270ce503acc325c", - "description": "docs: undifined behaviour -> undefined behavior", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad968667b69037df964ba58ee8df79566d45e9e8", - "description": "docs: precidence -> precedence", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14df58bf21b7603c4d427f4a0f4ea302c59b6298", - "description": "docs: occured -> occurred", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fbf9bfad380eb7398e16a18c6aa6f4ff6d93882", - "description": "docs: colour -> color", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee0157ec1fba8a9756744d585f8a77b617506db6", - "description": "docs: Steamos -> SteamOS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "64ab555051f779e4491c8a72920dc50cd90bbef3", - "description": "docs: submision -> submission", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96cf3fa355da5f51da1f85fc0518bad88b3c61f8", - "description": "docs: spell out \"stencil reference\"", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa59841b64f15d232230261b83845d05ec08d822", - "description": "docs: renderpass -> render pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a98b2f7ee6ab21953f729b1d37f882e4afe26f38", - "description": "docs: gpu -> GPU", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3090041a218bc2eff892a3f855ac49f953179325", - "description": "docs: cpu -> CPU", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e888049e1115204dc3e27274d92fc6ffc201c611", - "description": "docs: ssbo/ubo -> SSBO/UBO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14c6c071244454909a04477057767ba05864ab94", - "description": "docs: Nvidia -> NVIDIA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4342f92c5a1234d41114ce1bc9c2f9675d923acf", - "description": "docs: google -> Google", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1469294c2661699834d81c3fe16026dbbe570b1", - "description": "docs: utrace -> trace", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60f78b2d00d2b7c8e5926c4fbf8d7a46a262482a", - "description": "docs: remove apostrophe from uppercased", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cf29440b2c3de4fdb684b277ca7e7abad19d74db", - "description": "docs: sommelier -> Sommelier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f58be056d21856510cec24ef1684cfaf51ca3e1", - "description": "docs: nabled -> enabled", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b317b4a72f10d41773cf914287de84905ea3a2e", - "description": "docs: url -> URL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1cb32ffec8e93284de2c4d355c9e07a2ceb41f5", - "description": "docs: eg. -> e.g.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9967df63dfbdc531e4611fd123e4a2f56b7e91fa", - "description": "docs: unify spelling of front/back-facing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2d94263d5d2b7fc0da8463cb5f523e2970c0825", - "description": "docs: mooth -> smooth", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8f589b57abc086db545e2c5bd50194c4dac72c2", - "description": "docs: hw -> HW", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "897e9d806f1d86c2117ef85dfacd74567eb74a99", - "description": "docs: tgsi -> TGSI", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "498b2af1c7be59c5bb3bb33a650b46f2dba954e6", - "description": "docs: Anv -> ANV", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7b194834d3b35f79cccd13a39bd14a4509353a7", - "description": "docs: zink -> Zink", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7ed90976156ce392b8329924a6c9df3f44f0887", - "description": "docs: edgeflag -> edge flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "932e8c77683ca7b9516c4c4e1de1ae5b058fa3fe", - "description": "ac/nir/cdna: don't use image_descriptor intrinsics if the src is a descriptor", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "30af861bff71c7ecb479528c5582c54e9d6181c3", - "notes": null - }, - { - "sha": "8023e89d1199038d9825961288e020b9749ed0cc", - "description": "ac/nir/cdna: ignore image_descriptor intrinsics", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "30af861bff71c7ecb479528c5582c54e9d6181c3", - "notes": null - }, - { - "sha": "fec0a9fcdf28a214146687235e9acac030053986", - "description": "ac/nir/cdna: allow 16-bit coordinates", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "30af861bff71c7ecb479528c5582c54e9d6181c3", - "notes": null - }, - { - "sha": "ee2400acf10294b750ef0a92a127f604d407d49d", - "description": "ac/parse_ib: dump PKT3_DISPATCH_{TASKMESH_GFX,TASKMESH_DIRECT_ACE}", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4b30b604fda53dfaed83bcbe1467ac1023b2c90", - "description": "venus: support VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9420e90dfb2a42f96c9175463dafa79cc6905581", - "description": "venus: refactor to add vn_android_image_from_anb_internal", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f2c1931010affcc2c398674a5ff069ff39cd0e44", - "description": "venus: refactor vn_android_image_from_anb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4db32ac7ef06959f4f02bf7dad42bd3151e6be17", - "description": "radv/amdgpu: use the non-IB path for dumping CS with external IBs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3274af99bfd492cc1a85d88bb4a9275eb1485f89", - "description": "radeonsi: Fix unused variable when LLVM is not used for AMD.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5cb15a6c678dcbe81bee06d3ed0496715b786b77", - "description": "intel/brw: Make bld.ADD(x, 0) emit no instructions and return x directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "068865ce81a6b0a8c180b683d81d7645e3dfa998", - "description": "intel/brw: Make an alu2 builder helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c18de3f0482c0397c634ce02124a2987f69caa93", - "description": "intel/brw: Delay liveness calculations in saturate propagation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47b124125119580a576bc2496dcc4cf499ebb1c2", - "description": "rusticl/queue: run rustfmt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d458b7fc15a87720397b5b3d94a0971ed4aa59d", - "description": "rusticl/queue: gracefully stop the worker thread", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "539aaad6a39e28b20bc4ce12a6e5ca5c7f6a6541", - "description": "glsl: remove unused symbol table functionality", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ebc94250cf8d6fe9a9bf1ffb18183e49642d450", - "description": "gallivm: split out generating LLVM Mattrs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76e2ceb8f80a76cdf0efedd09bd7735fd9f9efe6", - "description": "gallivm: export target init code for orc-jit to reuse", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f4268b53e8d72917a504c4cebc1c2419a92b27c", - "description": "gallivm: make lp_bld_coro.h c++ include safe.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63d2bb103a5bd5befb404515fd0dc1c2990c98b1", - "description": "gallivm: split some code out from init module.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05dd12b9a50ee2eaf768260c6ad8f859afd434de", - "description": "gallivm: move ppc denorm disable to inline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17f2ebe8d23127f6ddf1ca05304c0ecb8a8c7503", - "description": "aco: use 1.5x vgprs for gfx1151 and gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "41a95d0b1349490f667a69a49f00da37edb6ff8d", - "description": "anv/sparse: use ANV_SPARSE_BLOCK_SIZE instead of tile_size when possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8271e12b8eb119b37ea411c31ebbfe1c286dc59b", - "description": "anv/sparse: unify and rework tile size calculation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ac35116d137c31f2d65053cd612fb00b8756b2e", - "description": "anv/sparse: remove obsolete linear tiling code path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f65acfbb888db537c7b32c9101198b8b46f3d1e", - "description": "anv/sparse: fix TR-TT page table bo size and flags", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "18d8c3ca339d346b9d531f49c343353ac7a61c89", - "notes": null - }, - { - "sha": "23e91fdd64c38c446cde5c5d2e2c5bf1dfea7b76", - "description": "anv/sparse: dump info about opaque binds when DEBUG_SPARSE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "49504ab857d980484f6e0b6f699b5b2e2c3e8a8d", - "description": "intel/isl: pass struct isl_tile_info to choose_image_alignment_el()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6a6d449a1d4c72319a3844c8aca92dcc405e4212", - "description": "anv/sparse: fix reporting of VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "789b53c5239f37bf0f853bbdd56a8ff5223b438d", - "description": "anv/sparse: fix the image property sizes for multi-sampled images", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7ef3d652b2515de002b7e161b320a80e2a2bbe9c", - "notes": null - }, - { - "sha": "5c18ccd2d3a490d3a227e80ce1d2dd45040f7ff9", - "description": "anv/sparse: reject 1D sparse residency images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21d3eacd234ed971248f2aac04f5616c2a9c90f5", - "description": "gles1: fix glBufferSubData()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "31841c6b11832049ab8240bd35616c46984c160e", - "description": "gles1: fix GL_OES_vertex_array_object", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35fd98f2d969811435e8a642dbd78962dd2058a4", - "description": "radeonsi: enable compute pbo blits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7ad53d550bc48cb193d355bbcf80526cc526233", - "description": "radeonsi: set bo_size for user memory allocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "617291d2d959c584601776c00d99b3146d4c7777", - "description": "tu: Advertise VK_KHR_shader_float_controls2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fc63b1d566f12ea0fd9e654aef30db2353e78aa", - "description": "intel/isl: Enable Tile4 for CPB surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7934b70ff1e5785b30c8a3635ebb84f5786688b7", - "description": "isl/iris/anv: provide drirc toggle intel_sampler_route_to_lsc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a0a716b6a8c072f9ae16555db17ea8a3d73534c", - "description": "isl: fix condition for enabling sampler route to lsc", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "70382f7f06561dcd94e4d2e6f2bedc8dbeec5d8e", - "notes": null - }, - { - "sha": "030d6e62807542ea4e521e2fe263b58fe61008dd", - "description": "radv/amdgpu: allow cs_execute_ib() to pass a VA instead of a BO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e51ae61a4de33e03acb4a92d51b83655c2dd5049", - "description": "radv: add the DGC preprocess BO to the cmdbuf BO list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cdf3228f88361410175c338704908ea74dc7b8ae", - "description": "Uprev Piglit to fdf3fc09deb6beecdf212e65a16c645112540b59", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25bf3200e2d5226d6be66f8f2499ec3db812b242", - "description": "radv: remove useless draw_id to radv_emit_userdata_task()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2b1d38392fc4650ea74fa5eff8eb123004d64b3", - "description": "radv: remove useless masking in radv_cs_emit_indirect_mesh_draw_packet()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2ff08800e80b038a9ac98dbfbdfd1873a962ff5", - "description": "radv: remove dead mesh shader code for indirect draws", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d922a0e8750b212b6e258d6fa764442a6208d496", - "description": "radv: use radv_shader_info::user_data_0 for task shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "334046648b343306a427b56c3c46cf0c0ee9dd9d", - "description": "radv: cleanup getting AC_UD_TASK_RING_ENTRY for mesh shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b775d26c49e22dad5da1021ff0b63103669bcae", - "description": "util/disk_cache: Fix cache marker refresh.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3f119a1fd8deaa46c4342837d13096cd7873c8d2", - "notes": null - }, - { - "sha": "b59ea3d63feafec5a0616e268d597aaf28981e59", - "description": "intel/brw: Print SWSB information when dumping instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cdd604583f66ccdb6ef4097826e36088e9ecc2ec", - "description": "rusticl/icd: rename all entry points to the actual correct name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be090abf2ec2b2c86fa33cbd11ae8ef90205c311", - "description": "rusticl: add bsymbolic to linker flags", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51f2ed872e8491d0d4b72309d5117fe9f7f43672", - "description": "asahi: Make asahi_clc build work on x86_64->x86 builds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27e3495902e844b29062d0e9770c4b20ff6d0335", - "description": "agx: set discard_is_demote", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7dd73290fb5af00248aa43129f0ceeedfb4a55cb", - "description": "agx: add unit test for ballot bug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6628f24e4db003afe948ed17d8ab90477a793713", - "description": "agx: fix insidious ballot optimizer bug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d210ae232bf75fc7c2c8f495e999e20c0543418", - "description": "zink: Add VKAPI_PTR specifier to zink_stub_function_not_loaded.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0877c132c3ff955717ae7f5fcaca34ca6deba54", - "description": "glsl: Fix warning related to tg4_offsets in release mode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d1813837bab65805f15172f9e6036c01b96cfab", - "description": "mesa: do not pass NULL pointer to function not expecting NULLs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91593adc9399b59b8fa28db6ffc731752c8ba5b6", - "description": "mesa: use unsigned types when performing bitshifting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "017bd4bf2571aa041eb851a15fbdba91dedcdae5", - "description": "egl: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee1ced9dc5c4e591d8cf049b34ae25175f53285f", - "description": "glsl: fix downcasting addresses to wrong object types", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60e7cb7654d26a0873bce84cb8ef562a810a9337", - "description": "nir: use unsigned types when performing bitshifting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e43cc49806006feb1b689e4cce3827dd9091385d", - "description": "nir: fix overflow when negating maxint in constant expressions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "081555c58bef67b31c915a280a3e765840b21e9f", - "description": "vulkan: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a407285ff2d6a51d48b686d143d92a1a98a31e9e", - "description": "util: use unsigned types when performing bitshift", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4dcbaf8253d7765a1a25dd9f0e1096c969df0bd", - "description": "util: do not access member of a NULL structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d854dd32fbd003b4330a9c630357142bfd158aaa", - "description": "dri: cast constant to uint for bitshift", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9eacb05c9a56dc07c2803d4ab6c88cf608af1d1", - "description": "nir_range_analysis: Use fmin/fmax to fix NAN handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ad1c8025090e74762c7e4d2a7fe7be770a92da1", - "description": "tu: Drop tu_init_sampler helper function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a931329146e1661d781ef19c6916dcf3d45f568d", - "description": "tu: Move sampler related code to tu_sampler.cc/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "739dfcf80760726b3c373c597c505eaf10e4216f", - "description": "tu: Use device->vk.enabled_features instead of iterating twice", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55fc7aea5f00c6aac5b7ba5cb8fd6ea36d7e262d", - "description": "tu: Use vk_sampler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75a6d185a00a13859f5f51d1efd8d215dab4c287", - "description": "tu: Switch to vk_ycbcr_conversion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee751a26fc198e2c9c6936c4e86e6b2872d348ab", - "description": "radv/rra: Enable RADV_RRA_TRACE_COPY_AFTER_BUILD by default", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa1b9d9be57a1ef6e20066dc945e722c9ad87af4", - "description": "radv/rra: Rework calculating the ray history size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "090ca373526bee953e664b2ead71eb42147092f0", - "description": "radv/rra: Reduce the memory requirement of copy_after_build", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2c555402b5cb4bd1fbf76e9e41bcdc34fb14b09", - "description": "radv/rra: Bump rt_driver_interface_version to 8.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55f1fe9bc31465ae9d292d9bd5d17121e96aa964", - "description": "radv/rra: Fix reporting the isec invocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97c0f264f03855bf033a87e2c29f069fc7d03b66", - "description": "radv/rra: Fix disabling the ray history", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd377cfe899da06903f9f16fae2d54aa178ef839", - "description": "radv/rra: Move some code into handle_accel_struct_write", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea69f7bc89ce1f7b9d79a8b20cbb759e26bee749", - "description": "radv/rra: Detect BVHs with back edges", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b55158d53682164d6b9e6ed1cc38dbb26ff061ba", - "description": "venus/ci: drop fixed test from fails list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98f9dd3c7cc2ca597f143717f4a11df312715ba7", - "description": "venus/ci: make sure nightly job doesn't get retried", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "0db4bb2ea08e59627d7b19137cf09ee7a458c622", - "notes": null - }, - { - "sha": "21f8410191378165219b3dbd6374064fc18a625c", - "description": "vtn: ensure TCS control barriers have a large enough memory scope", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da752ed7c1645f1beadabcda79f3e70796f7224e", - "description": "treewide: use nir_def_replace sometimes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbdd34b4ad8f9ec65750093293f10b9b51276a0e", - "description": "nir: add nir_def_replace helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "535823682dd44c8c3c7c3b75bbe0577cb76fa90a", - "description": "nir/format_convert: remove unorm bit size assert", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "22f1b04a99a587bcc3a20d19f2db0eb657cb4789", - "notes": null - }, - { - "sha": "1ff86021a7a06d2548482c40b1584042e298f58e", - "description": "rusticl: add new CL_INVALID_BUFFER_SIZE condition for clCreateBuffer", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4df8567394422d9754d35864702f0fffa0ab3c64", - "description": "rusticl/memory: fix clFillImage for buffer images", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45fc5c032e14cef50ac851e1eae7b2c2ec297541", - "description": "rusticl/memory: assume minimum image_height of 1", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d51a14aab8724d0b5b6e11fb92747f04042d63e1", - "description": "util/u_printf: properly handle %%", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "23ee6ca801cf9220dd544e6d659d683104f92c74", - "description": "radv/meta: Use READ access for dst_access_flush", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14f7b077c8eccf1f4705984a776781da1058cf1e", - "description": "radv: Remove dead access bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c596344458697b470c49f109b5eef0e815692fd", - "description": "radv: Clean up pipeline barrier handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac34415e0fcdf9732ab97da8df222aeb2774f3c8", - "description": "freedreno/a7xx: Fix register file size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e6ecf3df8199af4096b2b86c909b9f95cb79198", - "description": "tu: Don't WFI after every dispatch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35c9b7fb902158a262464a994a3159755dec081a", - "description": "tu: Fix unaligned indirect command synchronization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0a662f72dcd4ec5b1503ac2b18a16fcf1293419", - "description": "freedreno, tu: Use CLEAN events on a7xx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7284c94ef68e295e041163763cb75176476134c", - "description": "tu: Use a7xx terminology for flushes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e220cd45a4e44016dd986f28b110d430af6dd05", - "description": "tu: Support VK_EXT_attachment_feedback_loop_dynamic_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "833a0cf76e2ead174dcf35fc1d76fce24aace7cb", - "description": "tu: Use image aspects for feedback loops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "339630ab05abcaf11a9f67b2dd42ef793d2f689a", - "description": "brw: enable A64 loads source rematerialization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f482fc33cf0dcc372410256c72cfa09633eec056", - "description": "brw: blockify load_global_const_block_intel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fe6b9c8faad89d38cc5847936e6cd6d972bc040", - "description": "brw: avoid Wa_1407528679 in uniform cases", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5227b2db739f27475b10da2b1271020b3ab29f87", - "description": "brw: annotation send instructions with surface handles generated with exec_all", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b79e85a93f961c6396f74e63f851d9579960e8ef", - "description": "brw: always use new registers for load address increments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7f1ca16e3b14516b9a113f8b9e3dafaefd283901", - "description": "brw: enable rematerialization of non 32bit uniforms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0531f568acb5bf15d2fa0cc8cf86c2ca34440597", - "description": "brw: remove some brackets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11a634151b6facad6b3b3a6ac162bdf446135bc3", - "description": "brw: remove rematerialization assert", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d42bc0d3fcbe929d6e4a85ff770379843c4dd7c7", - "description": "brw: bound the amount of rematerialized NIR instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bfb4f35a84089169fac76717f17259292cb19e8", - "description": "brw: improve rematalization of surface/sampler handles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7b312ad45ab724dea7059a91aadc0ca52aac12d", - "description": "brw: factor out source extraction for rematerialization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fbbc9c3013a5df4b6a8b77e6a119f2da738592d", - "description": "brw: add missing break", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a869c5725092e61cbc9371f0873244c5dc074f57", - "description": "anv: don't apply descriptor array bound checking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e3b73374cde10a1428af6a8c9d63173899f48f1d", - "description": "egl: use os_get_option() to allow android to set EGL_LOG_LEVEL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6987258da5fe1ba0c9ad2f3e5d2ee671d203069", - "description": "gallium/hud: use os_get_option() to allow android to set GALLIUM_HUD and related vars", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "787e0751c54004a10e16c18772e1526edb70afd3", - "description": "loader: use os_get_option() to allow android to set LIBGL_DRIVERS_PATH, GBM_BACKENDS_PATH, GALLIUM_PIPE_SEARCH_DIR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9bce6f5cc44d239bcc8ba8d92c4569eae38d99a8", - "description": "llvmpipe: make unnamed global have internal linkage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fae6a8737adb47b325e827c84a71bfb6d72be1c8", - "description": "llvmpipe: add gallivm_add_global_mapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47cd0eee2611001499e3aa0a045fbed38c2dc1e5", - "description": "gallivm: create a pass manager wrapper.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cfa0293c8b3a37ea88c815948c70d65a426e9574", - "description": "meson: set default Vulkan drivers for ppc, ppc64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02813f341b52d99ba8fcbfeb23aeac4ce54b83c2", - "description": "isl: Remove code for Xe2 from isl_gfx12.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4debb5bbc42fa97c7c3c7f61c8c0bdf10f83ae1d", - "description": "isl: Implement a part of WA_22018390030 (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b084df0c098bde9738259919b82b4aea91f6d2f", - "description": "isl: Add dispatching in isl.c (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d3093a329882f683d0bb58a6d2f74d8cddd9739", - "description": "isl: Add isl_gfx20 into build (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5de9df094fcace5e454556632463480a4e5e2e4f", - "description": "isl: Update isl_gfx20 code (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "67fb44ccd62265235c274278c3cfa0f03023c547", - "description": "isl: Clone from isl_gfx12.* files (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea1e7dd9e9981c13cdeb4ed74c4833a87c4050ca", - "description": "rusticl: depend on the spirv_info target", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a09c5d55ed7481a9ec61cec956538b8759212c98", - "notes": null - }, - { - "sha": "36a18208f720f04a6540ec47e9db0295ed6daa26", - "description": "rusticl/meson: add build root dir to the include dirs of rusticl_c", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "53629b0a2d4831efbc7cc5a5dc4503482f748e2e", - "notes": null - }, - { - "sha": "656b8bb340dbd645a513ae01ebf0c15c2baa23e3", - "description": "compiler/glcpp: don't recalculate macro", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87787c4a877dc4968724e4b2279eef1647b12ec9", - "description": "anv/xe: fix declaration of memory flags for integrated non-LLC platforms", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c9e41f25a1bda305efaf818bec9f933118df37fa", - "notes": null - }, - { - "sha": "73ce3143a810d79e9bf0df8926ae58e9aad13bf1", - "description": "anv: Fix assert in xe_gem_create()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9d8d5cf8c9a04b164d1becff6b1be93b24149c75", - "notes": null - }, - { - "sha": "c1feccdd90ca90b0e6fecd2faa565da7c0fef628", - "description": "intel/fs/gfx20+: Fix surface state address on extended descriptors for NIR scratch intrinsics.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8bbad903a2c1ca0492e61ae35372508f93c0add6", - "description": "anv/xe2+: Fix format of scratch space surface address in various 3DSTATE packets.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0cd927fa92948aae53fd7b064f64dd3801000875", - "description": "iris/xe2+: Fix format of scratch space surface address in various 3DSTATE packets.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "460aa5891124961122bc4ffb6e2875151aaf7f3d", - "description": "iris: Add support for compressed images allocation in Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5a6b84dd618cd90f5b26ed7a9992802d5681a21", - "description": "anv: Give apps the choice of compressed or uncompressed but cpu visible images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8aec37fe0c317dd7d604f768b8a1e40539984f08", - "description": "anv: Add support for compressed images allocation in Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90b223331f1a5b2d787fce4b9e470f83552774fc", - "description": "intel/dev: Add compressed PAT entry", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e67a8dc59af44abb4b0349c66cfd5770985ff3ce", - "description": "clc: remove check for null pointer that cannot be true in llvm_mod_to_spirv", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3a752256f54ce839f6e75d508df51eba6464ef77", - "notes": null - }, - { - "sha": "9fa310b876f7c9bfad7cf8807382237394ec4dbc", - "description": "anv+zink/ci: Change sparse test result from crash to fail", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b49182bed018c85dbdf4106d4df19c64bb179e6b", - "description": "intel/isl: Pad the pitch on gfx12.0 for fast-clears", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30ed4a7500ed2323af037d87ba3ef1c0deadd744", - "description": "intel/isl: Require display flag for 512B pitch alignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eff2fab0bc36a5069e4a4d83c6b309692faa09ba", - "description": "intel/isl: Consolidate some tiling checks for CCS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26802b32240a32962accf06a822d70cbf0adfb38", - "description": "iris,anv: Disable gfx12.0 fast-clears with unaligned pitch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "695577e5b016104b1db55dca7985212bb5889d97", - "description": "intel/isl: Add and use isl_drm_modifier_needs_display_layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "483707e901463fc4bd6367a3d7c35539a6212415", - "description": "intel/isl: Drop support for the gfx12 CCS ISL surf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1169f709834416d35e6188bf80d41cbe2144c1da", - "description": "iris: Add and use comp_ctrl_surf_offset on gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "236c4597faad93a439ce89f87a398e3d7fbcac96", - "description": "anv: Restrict CCS ISL surface creation to gfx9-11", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c00b7d1e6ef86ce750228f7be79da377a5f53db", - "description": "anv: flag WSI images as scanout images for ISL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "85373f2b15bc4c3b17678ecaf70a994d27ce76ac", - "description": "iris: Implement Wa_14019857787", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "19a8abde5f1bf5fa69ef95fe74ebcb45bcc6f5ca", - "description": "anv: Implement Wa_14019857787", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2fc79af07f3e2ae189af3a26f7ae12910d95e79c", - "description": "iris: Implement Wa_14019708328", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7e3aecb87efba378e2cda0574582ee3fb5fc948", - "description": "anv: Implement Wa_14019708328", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ddcf17a1299a496e0b712b6ba33e845eb403062", - "description": "intel/isl: Set dummy_aux_address to implement Wa_14019708328", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df49d9da10281d2c86c6f04ec41333b454bb6ee1", - "description": "wgl: Fix flag check for GDI compat", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c432fbe534d1b1d3874b612b97d8ed3fe97c8945", - "notes": null - }, - { - "sha": "a02b759f413a589a77d36c9ffe731cb139e2ed1d", - "description": "wgl: Delete pixelformat support query", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c432fbe534d1b1d3874b612b97d8ed3fe97c8945", - "notes": null - }, - { - "sha": "b65f08e8c76c957d814cb818f9c67647bd0a6435", - "description": "venus+zink/ci: drop fraction and add missing timeout on zink-venus-lvp", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32e781f38142cd47b59438213408a74b4ec11ba7", - "description": "meson: set default drivers for ppc, ppc64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "baf0cf7e2bd8c79eb4df0d702cc4d9edee46b572", - "description": "nvk+zink/ci: catch more `double` flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a75c275185de184ff9f78633f1346c16aa02b82", - "description": "nvk+zink/ci: add flakes seen over the last two nightly runs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "152571bc0cae719d47cbf3972cb40c4d09b50893", - "description": "venus/ci: skip timed out test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0db4bb2ea08e59627d7b19137cf09ee7a458c622", - "description": "venus/ci: add manual/nightly venus-lavapipe-full", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b6655c1a8e2108ebb620d5a5a84c0db9f66ce4b", - "description": "venus/ci: fix indentation of list nested in a dict item", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75820a5436967d14d03a5921a38d6d3df65d4515", - "description": "venus/ci: Update expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c5d9c967571d073451045c57fa5148de7d88b03", - "description": "freedreno/devices: Fix magic regs for Adreno A32", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00982e1af618f43a4c7a5ab8aeb6ded43e68a802", - "description": "anv: fix vkCmdWaitEvents2 handling", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97ebe52ee3cbe45780202d9ba0f86639b8b770f7", - "description": "lvp: use common descriptor update templates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8270ece6c0b5d85ec362c938fefe89f805855275", - "description": "lvp: fix silly casting for sampler desc updates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b300bb662276cffae87f0e27d21274036380273", - "description": "lvp: use common push descriptor set enqueue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1c1f5936a18872f8c5c1c4fdaf98eb5fa7b4b61", - "description": "lvp: use common push constant enqueue", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a4fd4812fa9223d9ab1087ffcc53d9a9f50effc2", - "description": "vulkan: handle enqueueing CmdPushDescriptorSet2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b39efbc4224b6eaabb2a8531a317f933a80fa960", - "description": "vulkan: handle enqueueing CmdPushConstants2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ba74892437361eafc99ae1fbfeb2a51295108ad", - "description": "vulkan: fix potential UAF with vk_cmd_enqueue_CmdPushDescriptorSetKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c2801f13057595d1822ba9753b1cd6379fd528a", - "description": "vulkan: handle push DUT with emulated secondaries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24c897ff463d9f5fee906d81253f522d6960baf8", - "description": "vulkan: reference count vk_descriptor_update_template", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47e422adfae761c0066379ec34a93baa5b11d96d", - "description": "Revert \"docs: use html_static_path for static files\"", - "nominated": true, - "nomination_type": 2, - "resolution": 1, - "main_sha": null, - "because_sha": "e037761a2f6845653520e0785844efe1fd9340b4", - "notes": null - }, - { - "sha": "3784e04c961d581a859b971b3826e43760863c8b", - "description": "zink: implement msaa replication with dynamic rendering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d05f6f4693e661a884d614b792f2d604b82b2e3d", - "description": "zink: split out msaa replication", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "453ceceec2e176dbb537dec9a073f51a561ae75c", - "description": "zink: null check pipe loader config before use", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e3ea55fef28b6a8c9d337ccb0c715312363b2ebc", - "notes": null - }, - { - "sha": "a1c220fd935b8731f4bab1891aae0480006630eb", - "description": "nir: fix utf-8 encoding-issue", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "21115514857d21154bf2b5af4d8f6acae6e6bdcb", - "notes": null - }, - { - "sha": "0296955f0f7a54c724595912a16bc9147b00b508", - "description": "panvk: Enable offscreen_viewport tests in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "738e202dceaa960be4e1379724289a481981cbeb", - "description": "panvk: Clamp viewport scissor to valid range", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d853443a2ea307aca2625dc2e8e7fa1942a34e5d", - "description": "freedreno/devices: Turn off enable_tp_ubwc_flag_hint for a740 by default", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d2f19aa444e75babe31ae08b43389f886f2aeff", - "description": "tu: Add enable_tp_ubwc_flag_hint feature to a7xx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f34862befa21af3cac922de83d12274738ebb28e", - "description": "freedreno: Rename TPL1_DBG_ECO_CNTL1.UBWC_WORKAROUND into TP_UBWC_FLAG_HINT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a9bf2b512ba69405eba3e6b1bd754cf6b34f44e", - "description": "radeonsi: store the total binary size in si_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14974fd097f57814eac18648cfc07dd02c350d57", - "description": "ac/llvm: implement WA in nir to llvm", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71afacff3976743265546365034df46ab04d6e92", - "description": "aco/insert_exec_mask: ensure top mask is not a temporary at loop exits", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c6c8182c8c62d8e4a5eb03452ced3d66def289b", - "description": "radv: inline partial push constant loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdc229231d4916115034a6cc04b32dc99c203cad", - "description": "aco: remove push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38d1456931ddd8294c02e4bf2bde9f63f9782ebf", - "description": "ac/llvm: remove push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "edbb75ce3a2fb66bb0d23af45d4295dc7b9ffebb", - "description": "radv: lower push constants in NIR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ca97f019efcb0cc14f4ba03a6e23ff51ce5ef46", - "description": "anv: avoid initalizing TRTT stuff without sparseBinding", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7da5b1caef21ca1da75573737f553fa301d25b2c", - "notes": null - }, - { - "sha": "e59f8faf8a67bed7dde606bb1d16f2ed8483541f", - "description": "v3dv: don't call wsi_device_init too early", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a5d59a50a998389cb29a5e9ad4a67af37d3160d3", - "notes": null - }, - { - "sha": "50519598ff050cb0eeef5ae8b9bdbffd9f83bef8", - "description": "intel/brw: Skip discarding the interference graph", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29d6264627226aa5a23ddb601fec45584d80b3a9", - "description": "intel/brw: Build the scratch header on the fly for pre-LSC systems", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce85f3a431897f19c366f7daccffd994ac2f1a77", - "description": "lavapipe: Always call finish_fence after lvp_execute_cmd_buffer", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ebf7f49a052c75f49496e31f7b3ccca716d30e5", - "notes": null - }, - { - "sha": "255f4bb2903dc96d24507a3eaae31bb77cb0ee6c", - "description": "llvmpipe: Only evict cache entries if a fence is available", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ebf7f49a052c75f49496e31f7b3ccca716d30e5", - "notes": null - }, - { - "sha": "5941bee0176f9498b36c2975a3968c0d68c63986", - "description": "llvmpipe: Stop using a sample_functions pointer as cache key", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ebf7f49a052c75f49496e31f7b3ccca716d30e5", - "notes": null - }, - { - "sha": "9e4a44d172335906d147cf0bc6ec7ac70e6c239f", - "description": "llvmpipe: Lock shader access to sample_functions", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ebf7f49a052c75f49496e31f7b3ccca716d30e5", - "notes": null - }, - { - "sha": "b06661aaf333967497b201b50edd64612ed8955c", - "description": "panvk: Enable dEQP-VK.info tests in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3129d71fef6eb717b990faf7fefefc9fbc6f9954", - "description": "panvk: Report correct min value for discreteQueuePriorities", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ac34183ec3df1435481f345d87f06ee949ed43c7", - "notes": null - }, - { - "sha": "596306a9846f6a455ae070036b2f9ff6ace0c799", - "description": "panvk: Advertise shaderModuleIdentifier feature", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "f16481969865b5aaab8739da80e5201da60d07dc", - "notes": null - }, - { - "sha": "a3aadac5fe1ba3380f13efe05937d34f141d75b2", - "description": "zink: Blit using one triangle for nearest filtering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3233d19f8766ac982a1e093312a3d3a57dcf4b66", - "description": "zink: Always include renderdoc_app.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8fb4b82e92042198f1a8b853f91e28069aeabb5", - "description": "radv: fix emitting indirect descriptor sets in the DGC prepare shader", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "33a849e004de381853ea9d4fa4f047741efaf508", - "notes": null - }, - { - "sha": "6a2309b676c9b96d21f02b964b1f5a58e0d22dea", - "description": "u_gralloc/fallback: Set fd from handle directly", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7ae4a2ae34954b8dd7213a9663a2f98907c49cd6", - "notes": null - }, - { - "sha": "0ac0fbc19eacb11d08ee18d4f5695415d8027dc6", - "description": "glsl: make glsl_to_nir() more generic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f19ddef76c4a9502a17bd17b78cf5a2283815c98", - "description": "st/mesa: drop u_simple_shaders.h include where not used.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6a464401d52f3ae6e884b2ad429b795fceb72fcb", - "description": "ac/radv/radeon: move film grain init to common code.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57535969cb63c633b4e123b1754876f1b5eed59b", - "description": "ac/radv/radeonsi: move av1 ctx/probs size/filling to common code.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1e27e156b63462b8b4e83b91367f3176e340af9", - "description": "radv/video: use vcn ip versions for encoder detection.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08c4efdd8d5a10c00e464b47a3688ecca494430c", - "description": "nak: Move nak_optimize_nir declaration to nak_private.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c3bd27d3b7e76ffde9d5bdc873246694d58d5a2", - "description": "nvk/upload_queue: fix the _fill method", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "22e44d54fd1396411ff58807180c4b8ac051bdc8", - "notes": null - }, - { - "sha": "a0c09eef9373fb1fbf6559264afb3e1191adb837", - "description": "util: bump blake3 from 1.3.3 to 1.5.1, improve armv7 and aarch64 performance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f1effb03b107f227aec775bbe80425382b67b7f", - "description": "wsi/wayland: Use different queue names for different queries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e9a38481d90d941b635b8857e92b12fed7b83c7", - "description": "docs: update calendar for 24.1.2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "331ff0bc6463e5d18327b1160ea8c703ab1144fc", - "description": "docs: add sha256sum for 24.1.2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "104d97c9c67d6ed867f5c860b3c1759866e48b8d", - "description": "docs: add release notes for 24.1.2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d8d5cf8c9a04b164d1becff6b1be93b24149c75", - "description": "anv: Remove block promoting non CPU mapped bos to coherent", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "a65e982b4412f44c035ccb474db3e64e0e9f6a16", - "notes": null - }, - { - "sha": "5f27c4cc4ea4a6f44366fc3ea160c7f9ac032ab2", - "description": "v3dv/ci: add new timeouts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9164ea7032dc2aa36aebb46d110eb3c9356d62af", - "description": "freedreno/isa: Fix isaspec map for a3xx-ld", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "37ddf572b1000a1bfa7f290a6df2c5f97fc3a6e2", - "description": "tu: Fix issues with render_pass tracepoint", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1aab0fc4f56e39f7923c129e4544fcc0fea2f0ef", - "notes": null - }, - { - "sha": "887f0e0af664b11c081b4140931e7213240c7b41", - "description": "panvk: Enable device_init, null_handle and object_management in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbc7c76590ed83e911a1be06aaa5525bac9bbb88", - "description": "panvk: Implement CmdDispatchBase", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91fd031ba77c51847a6ee7d5b4810550b28b717d", - "description": "panvk: Add more allocation checks in create_device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6a7a141c756becee8614bd311b451f22b7b7dcd", - "description": "panvk: Fix device mempool leaks", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "2eaa437574615d1c6a3a51011d13c1e5b6f883cc", - "notes": null - }, - { - "sha": "9ff209342b12dd5d348f4cb5565acb13774d1726", - "description": "panvk: Ensure to unref transient bo in reset for mempools", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "906fb2371aa038c388bfa6f22ee2227c085aa526", - "notes": null - }, - { - "sha": "16b0743375fce73b9aaa972bf8f0db84d0156034", - "description": "panvk: Make panvk_kmod_zalloc use correct allocation scope on non-transient", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0f8465fa88a87b5fa89b2bbd2c87b3c313f11cf", - "description": "panvk: Check for maxBufferSize in panvk_CreateBuffer", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "822478ec20c8bca8a3a7e23cffc7ceee7773ff03", - "notes": null - }, - { - "sha": "7dd771b2d760eb6319623d9c8231d81e27231942", - "description": "panvk: Make mempool detect NULL BOs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b1eed39ad1aacdbd55bbafa74e41ecb47bcb216", - "description": "panvk: Add missing clean up in blend_shader_cache_init", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "716e0e15681d8a704c44cf9bb9ff51ca32d6e45f", - "description": "panvk: Add missing null check in DestroyCommandPool", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "afbac1af7737310fc5741ee8d2d94e147333ce1f", - "notes": null - }, - { - "sha": "e6d487792e7f43e4fe0092675b303b9fb5f3b7ee", - "description": "mailmap: update rohan's primary email address", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9cb82944e9b2e419e463bc8fa7841afefb6ce425", - "description": "mailmap: use consistent spelling for constantine", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "926c7d67c46867f04d4177f1dbd5bd5aec3b0a42", - "description": "mailmap: move konstantin to the right sorted position", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc6fe203a772f034e2dd2e6859bb21a2095bc9b9", - "description": "mailmap: map collabora.co.uk to collabora.com", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3e0cc5c300d1a0fe7590c5f56000f8551793879", - "description": "mailmap: invert my mailmapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df713647bc3da4ba2de536702633bbc5e45a40a6", - "description": "mailmap: merge Robert and Bob Beckett into one", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c259f5cac1afff748c8081341c1198f57fa8198", - "description": "mailmap: invert tomeu's mapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b888946f7a0a037f72159b26f07969460d92ee01", - "description": "radv/video: fix layered decode h264/5 tests.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0f3d99f443d400752db391172c851e53d232024", - "description": "gallivm: add lp_context_ref for combine usage of LLVMContextSetOpaquePointers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65092ab1a5522e9b05f2e58fe7326e7cb6f02a02", - "description": "nouveau/nvc0: add support for using common pushbuf dumper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f12641f89fea18e0a0ae64a36ab8257f231daf18", - "description": "nouveau/push: add support for m2mf/i2mf to dumper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b6970cf36bda928d89a43ebf943ad60db37e12e", - "description": "ci: Update trace SHAs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22f1b04a99a587bcc3a20d19f2db0eb657cb4789", - "description": "nir/format_convert: Assert that UNORM formats are <= 16 bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f5f4474f623d638d737cba59a538df6d0d0410e", - "description": "nir: Add a format unpack helper and tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "faf4c2edfef5b09873b81a24246abd500b71c2ef", - "description": "nir: Add a format pack helper and tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd961343d354abb1570680c4a7e1689f4c9b7cef", - "description": "util: Make format_srgb.h C++ safe", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ffb0c5af46d0c5cc7dc6c2c8445c0df48fb8461", - "description": "nir: Support 0 and 32 bits in some format conversion helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34161d3fda1a3fb788a9215b7848b5998d40571e", - "description": "nir: Move most of nir_format_convert to a C file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d3b144018fb3e1faca3f664cdf311b0003ec121", - "description": "nir: Add a nir_intrinsic_use for unit tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b9ac9a68f001ab5f1244ac027e7841114aed67f", - "description": "nir/format_convert: Use fmin/fmax to clamp R9G9B9E5 data", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "86aad90e2a89293385000f28f9f03a2675591870", - "description": "nir/format_convert: Smash NaN to 0 in pack_r9g9b9e5()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9981709d8f3cadf04950fae3ac6f34afdfd2d3fb", - "notes": null - }, - { - "sha": "cd8a3ea04b0e269ee55966173e94fd725dbbf38f", - "description": "util/format: Handle denorms when converting to R11G11B10F", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef5e44127406b50ccd12dd10e62b5685bde13fa1", - "description": "util/format: Round to nearest even when converting to R11G11B20F", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3797fc18d8fa24404eeae13ed760604ad0d96d10", - "description": "util/format_pack: Clamp SNORM values to [-1, 1] when unpacking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "354f0958afefe579864d9dff047271a6c1e055c1", - "description": "util/format_pack: Also use iround for SCALED formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b187be5b1c4184b2286210c6a29011d0accfe736", - "description": "util/format_pack: Fix packing of signed 1010102 SSCALED formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a9f4618c52400115e05e8c30e3c32e5ab183078", - "description": "intel/brw: Make component_size() consistent between VGRF and FIXED_GRF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fb70f0746639cf716cab56509f4c84dffe0c8bd", - "description": "intel/brw: Add unit tests for scoreboard handling FIXED_GRF with stride", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "701379782730104937b1b10994de08710ab78590", - "description": "nvidia: fixup classes import and import new classes.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4e952dbd97ea9a3c3511f05253c56bb8990626c", - "description": "anv: reuse device local variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0147908a899958fe7ef1f74218ee20bf1a24175c", - "description": "anv: predicate emission of STATE_BASE_ADDRESS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a3e8508a70d4c62a37620fc8c712df8207717f0", - "description": "anv: factor out STATE_BASE_ADDRESS filling to helper function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8c0a99d52be913f16a1760b3f4f7cfda9919d24", - "description": "anv: emit conditional after gfx state flushing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ed43be941e24c229d538fb3ac1f811a846b0be15", - "description": "anv: add custom mi write fences", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9fe3af1e2a22e25299fdb2a00a7490dfda8ab370", - "description": "aco: insert s_nop before discard early exit sendmsg(dealloc_vgpr)", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "37fbfa655a4dd73a1c95ade29362d8e93f5d1fcc", - "notes": null - }, - { - "sha": "814e7c7af570516330fe201e9b55fc31d62f76ba", - "description": "Revert \"ci: lima farm maintenance\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "c5e13af73cd2d3b58934cef82ae22cb00736ff08", - "notes": null - }, - { - "sha": "08ecb39789684fee566842986fcd5d1cd1a74e3a", - "description": "lima/ci: update piglit ci expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9cadf45ddf190b684d2dddfe398e7a0d76de045d", - "description": "svga: Retry DRM_VMW_SYNCCPU ioctl on failure.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f982d2bb7976d3c581c5d42133695147c6c0ec10", - "description": "intel/brw: Fix typo in DPAS emission code", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e666872c751bedd1e4c2e1231644c14ed18639e7", - "notes": null - }, - { - "sha": "c3c398d56da951e4fb3169fd0d41a56069a1b86c", - "description": "aco: make local functions static in files without anonymous namespace", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "046414e061f3514e2623f7e59133ce5a31c77d9a", - "description": "aco: add more anonymous namespaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9c483bf0295ee7cd542d01c0eef939f7aeaec7b", - "description": "ir3: Enable early preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8d192f3f4e35fb1709740109db3883ebeb864af", - "description": "ir3: Correctly assemble mova1 with (r) on const", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e9c764c825b536f8e54065411f9d520a69dad1c9", - "description": "freedreno/ir3: mova has special meaning for (r) flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a4afef6ea81df891040ca74ce437fe0e453830f", - "description": "freedreno/a6xx: Implement early preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53ba1613ec6ff29c43674689cb3649a6e77c4521", - "description": "tu: Implement early preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ce04c11116d836a308dc1bad5dab63ee4177a43", - "description": "ir3: Add ir3_info::early_preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d35c1e50510e568acb4bac6c133744d5182b705c", - "description": "freedreno/a6xx: Workaround early preamble HW bug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "472ce31e569157fb6d21074c4288ee7abc9790b9", - "description": "tu: Workaround early preamble HW bug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f1f42e9d4bc7360810dc4db6a86f6285a4d8c6a", - "description": "freedreno,ir3: Add has_early_preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa1603bcb0b3b9d3c112190b4e49169784d8306d", - "description": "ir3/legalize: Insert dummy bary.f after preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b38fef99acdc5525b767b1904a67a7fd264d0243", - "description": "ir3: Put VS->TCS barrier after preamble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "10d21d410068f2ca32fe898f6b4b690993d90daa", - "description": "mesa: Enable EXT_shadow_samplers for GLES2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33a849e004de381853ea9d4fa4f047741efaf508", - "description": "radv: emit indirect sets for indirect compute pipelines with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1ba02e707b71b1601ca0a04b1152c8587dd565a", - "description": "radv: force using indirect descriptor sets for indirect compute pipelines", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef21df917fb9b85b86e4e627893a84426a35a967", - "description": "glsl: remove do_function_inlining()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1ef6517e83a9440ce3dcdb34f608aa4641f0b3b", - "description": "glsl: remove Par-linking from the standalone linker", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0bf10ad4ad5e97e76739beb4c768ce0a8ca98397", - "description": "radv: Use number of TES inputs for TCS-TES linking.", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "be49b02f0517d38a9445039789eebe1e0f7dcc73", - "notes": null - }, - { - "sha": "03553647434a60369e5cc3ec763b2132c7ab7c34", - "description": "ac/nir/tess: Fix per-patch output VRAM mapping.", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "2cf7f282df720b9bf80e8bfa6ffae0d7b51a09f5", - "notes": null - }, - { - "sha": "0f0ebd8512e02f3b55365bc38541850f32197e4b", - "description": "ac/nir/tess: Fix per-patch output LDS mapping.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c61eb5480674e922a512c036455b00f30c12037c", - "notes": null - }, - { - "sha": "348b8859dc178e5b7599073282c7789d72bfa6fe", - "description": "ac/nir/tess: Only write tess factors that the TES reads.", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "2cf7f282df720b9bf80e8bfa6ffae0d7b51a09f5", - "notes": null - }, - { - "sha": "9845e99960a7d8e4acb7f60eb66d5d72c1430a58", - "description": "tu: avoid memory polling in occlusion query endings using ZPASS_DONE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5653c52151817a4f302b43306fd35e588855ffec", - "description": "tu: fix ZPASS_DONE interference between occlusion queries and autotuner", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "4e6a1f885250cfb8aedab50b795a466ea0156e55", - "notes": null - }, - { - "sha": "6bc7cd61085e9f96be0b7adc5dbf4611617387be", - "description": "ir3: only add live-in phis for top-level intervals while spilling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "18cd803cefebcd99a8c753d9c57e20ac6c51ccdb", - "description": "ir3: refactor ir3_spill.c to use the ir3_cursor/ir3_builder API", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "1972db36c6eab65a2f48bc2b1397fab8d74e0088", - "description": "ir3: add ir3_cursor/ir3_builder helpers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "dc04fd8e6246c213ee61e0cd88001e959cfb3e21", - "description": "ir3: restore interval_offset after liveness recalculation in shared RA", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "fa22b0901af548d5e1433ad4cdbda314182137c5", - "notes": null - }, - { - "sha": "3f3c19064965886ac735cbb3ce0815fa77739ff8", - "description": "ir3: move liveness recalculation inside ir3_ra_shared", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "fa22b0901af548d5e1433ad4cdbda314182137c5", - "notes": null - }, - { - "sha": "7a5b198a44a5838741209bb5457b59b2f352dc64", - "description": "ir3: index instructions before fixing up merge sets after spilling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "018d0ab805a17f7fde84e82c0510c9de2493e8d8", - "description": "ir3: make indexing instructions optional in ir3_merge_regs", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "17b155fedec357140fed4184de48e689d3310e31", - "description": "ir3: expose instruction indexing helper for merge sets", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "1bc3b819e60838e0e5f12afe4f04698da1a6fe48", - "description": "ir3: don't remove collects early while spilling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "eaec57ab6b5a2698948a92ca5c7b34c5bbf279c6", - "description": "ir3: don't remove intervals for non-killed tex prefetch sources", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "70e10babeae7960abc6334cc98e76e9a11f3f617", - "description": "ir3: correctly set wrmask for reload.macro", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "37c929ce5da42d498609e0b451f60a3aad62138a", - "description": "ir3: set offset on splits created while spilling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "613eaac7b53bfbfcd6ef536412be6c9c63cdea4f", - "notes": null - }, - { - "sha": "af6f82b954a1581e448a1af47de32fd057b81a00", - "description": "ir3: fix handling of early clobbers in calc_min_limit_pressure", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2ff5826f09d39104ddc33e89ffd6c4d8d47584d3", - "notes": null - }, - { - "sha": "023c7351f209afd0d230735b512f3d5809191fbf", - "description": "ir3: fix crash in try_evict_regs with src reg", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "34803d15abc0675bf9e37607687e16b9ac44436d", - "notes": null - }, - { - "sha": "c24aad586797ea4ff87bb299573dfc619c402662", - "description": "ir3: set current instruction before all validation asserts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f57bee676f84f9866e4e1d7ac5b69da3a4ff988f", - "description": "ir3: debug print limit pressure and post-spill max pressure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eadabc2eabf7601b271a9f7ac130870d90de90a8", - "description": "ir3: print dst_offset of spill.macro", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac2a582fac1a8e1466f3f56d02e878a588ae6d48", - "description": "ir3: print intervals when dumping merge sets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a0ac6a72f8b10f88443e7fdf894f4530ebc1183", - "description": "ir3: print sharedness/halfness of merge set regs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39f5bbf8711d54b1b5e4ce82ddaadd4565680135", - "description": "ci/vkd3d: drop redundant \"vkd3d-proton execution: SUCCESS\"", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a9204764a7a6204275d2a7d5f7659fd20f23df6", - "description": "ci/vkd3d: drop `quiet` wrapper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6633e5880bff3c97e07570113037905f86ff31a", - "description": "ci/vkd3d: drop the \"clear results folder without deleting the folder\" logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eddbadb0b158ccab3f0321c0bacba31b249b1055", - "description": "ci/vkd3d: put `then` on the same line as the `if` to match the rest of the code style", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57485f9a3d12b6039ec41949258addb0c4321ca9", - "description": "ci/vkd3d: print URL to the vkd3d-proton.log file to make it easier to access", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "662b0ad3cda62216ca189f78a9a31c1b085eedbe", - "description": "ci/vkd3d: rename vkd3d test log file to end in .txt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f6a13f5fced31a445dc066e10424f98ed6d32dd", - "description": "ci/vkd3d: print a real error message when failing to get the list of failing tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e266b6287ecc32eb80b2cf79ccd6568a578387e5", - "description": "ci/vkd3d: limit the vulkaninfo capture to the driverInfo line", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "285ba60166517ab7c3d28e48cb93caaddb45dd36", - "description": "ci/vkd3d: group version check lines together", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bec7b417ca9b43992bdaa09917fbf388c249145d", - "description": "ci/vkd3d: don't ignore errors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c23b95aa45e3bf209b05e59e0b917e56c2e2efd", - "description": "ci/vkd3d: stop ignoring errors in a block where errors can't happen", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b50c8217efa24e48f38f22d8ff232e63cedc147c", - "description": "ci/vkd3d: fix error message printing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7a1f28c1ebaf4c6e49688c49727ce2c5e2d92688", - "description": "ci/vkd3d: drop override of job artifacts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4db58a04f9ab69f2309d28c9f5efdbac8bfed37f", - "description": "ci/vkd3d: print a message when the expected failures file is missing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1f82ce6465401378904563fb80400e5123f8147", - "description": "ci/vkd3d: deduplicate the diff between the expectation and the results", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e602a7a3928e9066364943a46e9d19d57ab328ce", - "description": "freedreno/replay: Fix replaying without SET_IOVA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c07c44d57fd2b299c21177c6646a723c700a2d9", - "description": "freedreno/rddecompiler: Make possible to use original shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e750f00c3bfb86a7f41eb21babea5bb5c32ce4c", - "description": "intel/brw: Make opt_copy_propagation_defs clean up its own trash", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2af84c2d49285ef4e0c353712ed91a9bd8c6a044", - "description": "intel/brw: Use the defs-based copy propagation along with the old one", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "580e1c592d90392a30185d8059499498748909fd", - "description": "intel/brw: Introduce a new SSA-based copy propagation pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9690bd369d5a6739142eeb23f92d34429b75855d", - "description": "intel/brw: Delete old local common subexpression elimination pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f09c58ddcead8e05a06823681fb3ec83c7dbf81", - "description": "intel/brw: Switch to the new defs-based global CSE pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "234c45c929e0341f1d0c2a51a587c4ce7e4bba52", - "description": "intel/brw: Write a new global CSE pass that works on defs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b30b3bbd4a1b5638dfd5aeb56b2bdc7166134e1", - "description": "intel/brw: Print defs in dump_instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08da7edc0e7ca0404d5c412ad70d17c5553b5991", - "description": "intel/brw: Track the number of uses of each def in def_analysis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d144821f0f7647ab377e629599b17dd24a2fe13", - "description": "intel/brw: Add a new def analysis pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad9e414aa9f52e138e7a83302aeb68dc23098bc2", - "description": "intel/brw: Skip LOAD_PAYLOADs after every texture instruction if possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "84219892adb423c248e7770925e8095ca84ff9f1", - "description": "intel/brw: Make gl_SubgroupInvocation lane index loading SSA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "344d4ee9f0ecc75cacd0f1079c57e8e4d10425e9", - "description": "intel/brw: Make VEC() perform a single write to its destination.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7df492923a90030673012993f1b7aa678cf1cd2d", - "description": "glsl: drop dump-builder support from standalone compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02f33b7d924ac738df862d9f8bafe9fc2bc92b6b", - "description": "broadcom/compiler: initialize payload_conflict for all initial nodes", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": "cb83f25b39173db92d8ccaeac3a9b640f46f7651", - "notes": null - }, - { - "sha": "7dcba7e873c6b753930e2fdc8c714bb4da1a22dd", - "description": "v3dv/ci: fix spurious line in expected", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "c8c9d1a80214f92d64d417f71dbb40efef75e8cc", - "notes": null - }, - { - "sha": "95828d8901ecccd4f36cd4ef933d65628773934d", - "description": "mesa/st: fix zombie shader handling for non-current programs", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75777f1dc83d15f00ed1d3da71b71681019ec86d", - "description": "nir: add a NIR option flag nir_io_prefer_scalar_fs_inputs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3622092614061a13c203fab99a8d0098ab3082ad", - "description": "glsl/linker: vectorize lowered IO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2514999c9c5d4b64b007304e46f0a41d50e71cc9", - "description": "nir: add nir_opt_vectorize_io, vectorizing lowered IO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00589893579a66e2cc00a86edae47dff9bf9a7f1", - "description": "nir/lower_io_to_scalar: don't create output stores that have no effect", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "756b4f907ec5c8d3070ca9854b94de80be2bfec8", - "description": "nir/lower_io_to_scalar: add new_component temporary variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06e4e088a32f6c483a4568b0ae86ba01e316b14e", - "description": "intel/brw/xe2+: Use active-thread-only barriers available since Xe2+.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e61d32db8f6f21e80bb7996db66dad51c799687", - "description": "iris,anv/xe2+: Use pipelined variant of 3DSTATE_DRAWING_RECTANGLE.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "576c9e3af2ceb12bfb074a12ee2f346afa68fb6b", - "description": "iris,anv/xe2+: Set tessellation redistribution regions per patch to recommended values.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2aa4652a68d516ccb01f8b797f07dfd1b0186855", - "description": "iris,anv/xe2+: Enable the DX10/OGL border mode for YCrCb as per Wa_14014226147.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8c9d1a80214f92d64d417f71dbb40efef75e8cc", - "description": "v3dv/ci: add expected failure", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a5899013281fc1e59cebbe9f340ee08ece164676", - "notes": null - }, - { - "sha": "ae3af4c73a270c2beedc5678372bfbbea34c5e14", - "description": "nir: document restriction on load_smem_amd constantness", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15257b65c6d8e1b8885d7ac3c7a428f5c86a6f04", - "description": "treewide: use nir_metadata_control_flow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90b6dba772db4089c491471303333ecc37e31ef4", - "description": "nir: add nir_metadata_control_flow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cfa5beeeab9565df814494ea873671ba6a6cd72c", - "description": "spirv: workaround for tests assuming that OpKill terminates invocations or loops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7af16e9f1ee7858e87609e4742646d16de0d7168", - "description": "nir/shader_info: remove uses_demote", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e52e8dd02e9754b38896bdd4d672925807a6d554", - "description": "zink: pass zink_screen to nir_to_spirv().", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b1a748b5ed440451dbf562af1afd836efb26e1c", - "description": "nir: remove nir_intrinsic_discard", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a84725ebb08cd878675a392ef0df0b1f4dc4fb0", - "description": "intel/blorp: Set nir_shader::options up-front before building", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "073e69c7dc43b7e5714db1bc186cf90422543901", - "description": "nir/opt_peephole_select: handle nir_terminate{_if}", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3d8bd18dd96b9da826f95f56817cfc0900fe874", - "description": "nir: introduce discard_is_demote compiler option", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d5821bdf7d5f66914544753f41d008228f485af3", - "description": "radv: emit discard as demote by default", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0ab1ed14eda3efb17b83fc8e4f8c9723a3f9ff0", - "description": "spirv: make gl_HelperInvocation volatile if demote is being used", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9336190868dc7cf25135e304b90c4948bea41662", - "description": "panvk: move macro-definition to header", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ac34183ec3df1435481f345d87f06ee949ed43c7", - "notes": null - }, - { - "sha": "4b040577d5905697f4f5de7613a1a1d619aa7b30", - "description": "r300: vectorization tweaks for R300/R400", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f68ba505b45d712e019c1ee6f8939947b659506", - "description": "r300: missing whitespace in shader stats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bf330471b3f71257833df75c4bad537f81c8480", - "description": "nine: avoid using post-compacted indices with state expecting pre-compacted ones", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "973e6f3be095eb203671826e440392ba376afb36", - "notes": null - }, - { - "sha": "0bee32a4c393b7d989ca984101d6f07993b8d3f8", - "description": "wsi: Call drmSyncobjQuery only once for all images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "574c5c70de3a2ca02ab244fc097860dbab48ce15", - "description": "nir/lower_robust_access: handle MSAA images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd59478d2fc70df8301882d4d00ffb93ff4ef00f", - "description": "radv: implement streamout on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa9dfcad505b00796eff5b448ab1f35765932130", - "description": "radv/nir: lower nir_intrinsic_load_xfb_state_address_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9b8320031f989853fbe44d05e0a60d23b6aebf2", - "description": "radv: declare a new user SGPR for the streamout state buffer on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e62c728eb5295b56b10c82015992581cb2acd11", - "description": "ac/surface: add NBC view support on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef6deb35ef993ba224b5c9fc5f517adcc0e9078c", - "description": "radv: update configuring WALK_ALIGN8_PRIM_FITS_ST on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "64cde7da629e00dd59a2c0e99f4f2486234e4429", - "description": "ir3: set wrmask for spilled splits in shared RA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a4ec62b497a924c636fcca6b57bcd5c3f9f7d210", - "description": "ir3: remove spilled splits in shared RA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07eb970d67f30e1a2ed53ad5124447f61f385f76", - "description": "radv: always save/restore all shader objects for internal operations", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9fff07c2e2b1e52b00b30dc16781209f7761c04", - "description": "asahi/lib: generate git_sha1.h for agx_device.c", - "nominated": true, - "nomination_type": 1, - "resolution": 2, - "main_sha": null, - "because_sha": "0be124b77e3f4fa9fba7aa5b7212f7058412217b", - "notes": "Not useful in a release and not a clean backport (although trivial to fix), so let's just not bother" - }, - { - "sha": "10bd300b68e9ade942e36174ff0ed7648997da69", - "description": "radv: allow VK_NV_device_generated_commands_{compute} with LLVM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9af1633a9e48966c97f49def5ee7d68337e0f5b", - "description": "tu: Remove declaration of unused update_stencil_mask function", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "97da0a7734188f4b666bc38833bfadc8b4c53f84", - "notes": null - }, - { - "sha": "5e9cb32c102b3cb0c4847924907c1bd496493ec7", - "description": "tu: Handle the new sync2 flags", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f1c56bf46c87665e70760d98874e09964a43644", - "description": "nvk+zink/ci: add flakes seen over the last few nightlies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2fe297e6d623b2a7f7b531cad8b100ecebbd541e", - "description": "nvk+zink/ci: mark spec@ext_image_dma_buf_import@ext_image_dma_buf_import-refcount-multithread as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "395b5069129b1a8777b9dfb7bb6f7c151ac26320", - "description": "panvk: Advertise VK_KHR_maintenance3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a2a301f69f145d13b73e4c3729dcc2fa96b4d57", - "description": "panvk: Reorder extensions by name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e580b0f597bb74c586af88684fcf68a3a8cd3fae", - "description": "panvk: Advertise VK_KHR_device_group and VK_KHR_device_group_creation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3dbe46f610f7000d27e36f546203985ec50c5647", - "description": "docs: Update features.txt to add panvk for BDA extensions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05b9705ae0aede7bf7ad6f3fede0cc69010b4eda", - "description": "broadcom/compiler: rework scratch lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75196e86f189b877bef09b3063141832539b1065", - "description": "broadcom/compiler: only handle load_uniform explicitly in v3d_nir_lower_load_store_bitsize", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a2eff2b9f9bcac311ef6e9244f91423e6299b42f", - "description": "broadcom/compiler: convert 2x32 global operations to scalar variants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9827cfe49e6d254eb42cb53e1b9f67ce9a3fdbe6", - "description": "broadcom/compiler: use nir_lower_mem_access_bit_sizes for memory lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66b58e8a0eb3e735f90351a8cb1559f25914b3ff", - "description": "broadcom/compiler: support global load/store intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "358e09f9ffc50259bc660a6cf2cc55741b9634e2", - "description": "nir: add global_atomic_2x32 variants to nir_get_io_offset_src_number", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2d966a3c2e8d9bf1379e57717f273dbd213e270", - "description": "nir_lower_mem_access_bit_sizes: support unaligned store_scratch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a5899013281fc1e59cebbe9f340ee08ece164676", - "description": "v3dv: expose VK_KHR_maintenance5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "212062f2aab94ad83c77d88c272d32c1195bf9d0", - "description": "v3dv: fix handling of pipeline flags when pipeline init fails", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "3f3c83a6b74859b391f33d7152b0ef9b627d861f", - "notes": null - }, - { - "sha": "547da6e38f48e09b07708d30b91e55a4700dc5b7", - "description": "panvk: Enable pipeline library in CI for Mali-G52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3119546508c8eb6bb5ba4eddbf1c0dafd940ec7a", - "description": "panvk: Advertise VK_KHR_pipeline_library and VK_EXT_graphics_pipeline_library", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f16481969865b5aaab8739da80e5201da60d07dc", - "description": "panvk: Advertise VK_EXT_shader_module_identifier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78605a4ac404c764ac1d1a8d01cdfa4721dd224c", - "description": "panvk: Advertise VK_EXT_pipeline_creation_cache_control and VK_EXT_pipeline_creation_feedback", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8ea2931ed1fd9bac6b2037971e27c651c7e0ebf3", - "description": "panvk: Generate proper device and driver UUIDs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "886c054691e48880eacfaa313538703f67f38ff6", - "description": "panvk: Advertise VK_KHR_pipeline_executable_properties", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4dbc0feae2eebeac06ca9f41dfcc30df8fc951fa", - "description": "panvk: Implement executable IR reporting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7d582cc66572628b1f933ec73758cc44b30420e9", - "description": "panfrost: Add pan_shader_disassemble", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81f4e93f60a7bbff20b6ed02fcdda55b4d70f2fe", - "description": "bi: Move bi_disasm definitions to their own header", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3622a1bb0de3368e4ee781ba75a422a7b70c3db7", - "description": "midgard: Make disassembler take a const void*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c3099339873c2305800a687d8ffc7e91ea936527", - "description": "bi: Make disassembler take a const void*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c2f2955aca6042e2593a5ddb608630fe1f0ca65", - "description": "pan/va: Ensure no clash with other defs in disassembler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7a4b3dcbd1ce98f21f057310b25b66ba01e00caa", - "description": "panvk: Remove panvk_pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "563823c9ca9e1472c885c734d35e642eed646ccb", - "description": "panvk: Implement vk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50925b4947ab554bf69c8c9a5d66fb1634cf6dc5", - "description": "panvk: Move preprocess logic out of shader_create", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a88c30619776186004d61936e69e7f79121c4dd", - "description": "panvk: Move NIR lower logic out of shader_create", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3639f790031ec17e8c32bca13f43f4ac9bd195a", - "description": "panvk: Move compile logic out of shader_create", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "67341a8126fcacda7ba6079af5c956c639000b69", - "description": "panvk: Link shaders at draw time", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a984419a2d1e974e8ef563290af7efa157feabc9", - "description": "panvk: Kill panvk_pipeline_shader and use panvk_shader directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05020699b9ccba8f5af6a3af24e057c772b3aacc", - "description": "panvk: Move the linking bits to panvk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c39185e208f0c57dfc54b809f72745271ab3d54", - "description": "panvk: Upload render state in panvk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "384ebea7acd10a813caacd8ad58992f70c94cae9", - "description": "panvk: Upload copy tables in panvk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d54592ec723ade9832ac927b96836c5d8d00709e", - "description": "panvk: Upload shader in panvk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1862205662cdd29111d38393d609d8353040fb6", - "description": "panvk: Keep panvk_shader alive in panvk_pipeline_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0f49428fd247ad78735bd70944625a076a34b40", - "description": "panvk: Remove dynarray from panvk_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8633b3b49d9b13a7828696c6bed1a7bfdd727b7", - "description": "panvk: Remove panvk_lower_blend", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2eaa437574615d1c6a3a51011d13c1e5b6f883cc", - "description": "panvk: Use memory pools for internal GPU data attached to vulkan objects", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "906fb2371aa038c388bfa6f22ee2227c085aa526", - "description": "panvk: Prepare panvk_mempool for shared device memory pools", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b017b1c97a017d4954f058f02067483d2391435", - "description": "panvk: Store private BOs in lists instead of dynarrays", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e5140f88cdc1dc959a1f1b7b9ac4af18886f261", - "description": "panvk: Refcount private BOs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fcfadf28e69ab576a7efaa38ba5ff31183cf456", - "description": "radv: store a pointer to the logical device in dgc_cmdbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7fb401c7b29b390450c57b5c44621a87918a597e", - "description": "radv: add a helper to load the pipeline VA for DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57206eb888f2324117c89fadcf6dc725cda8e3da", - "description": "radv: remove redundant nir_builder param in some DGC helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ff6f492d500b00a130ba130af4b64c3a4460eb8", - "description": "radv: add new macros for emiting packets in DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "85d79376d8cd4159f081a155d39a8d8d0ffc3fe7", - "description": "radv: do not use nir_pkt3() when the packet len is constant with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd66e43bd9a726219e331fc3048223adddeb855c", - "description": "radv: remove dynamic uniform/storage buffers support with DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fda97d6d0a6968bbcdf18519c744a15166d51ff1", - "description": "asahi: be more clever about GS side effects", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dcdad4fecb448c54559bc4f4943a660bb14ab6fb", - "description": "asahi: implement robustness2 for msaa image stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a29d08f9f624a2ce0d55a7a041f0db2b11f8925", - "description": "asahi: fix vbo clamp with stride=0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38c36990b672c5a852f736d3ea3b5d63b0cb1d9e", - "description": "asahi: implement rba2 semantics for vbo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d035976c0042a6696d50509e45ff5731f5ca381b", - "description": "libagx: generalize query copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a71456a1a5a12a415321c5046236bc8f7b0f970", - "description": "libagx: make index buffer fetch robust", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87f9fe3c589e35fba8cb7c199efb8efa9d3aa881", - "description": "libagx: fix uint8_t definition", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "88cdcd8f72fe0fd69f7ec5a755b6f291664e747e", - "description": "agx: fix fmin/fmax with (-0, 0) pair", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ab21d179d65e815119e9f99b7a48e7f47ec48084", - "description": "agx: fix 64-bit bcsel ingestion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09277c7ea60f0852f70b195e304f6ff7ac1f393a", - "description": "blorp: Fix offset when ambiguating MCS buffer (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8aa0373a50c5f9bc270be098ae98ba7f64923542", - "description": "blorp: Scaledown rectangle of MSAA fast clear (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b64b049637eb1947c3a77c27187c66ca772fc21", - "description": "isl: Add AUX MCS encoding into aux modes (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "765fb3e1589c4807c2c2cfcf1e4454f726989df5", - "description": "isl: Add a heading 4KB to MCS surface (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f39520e02c262e5f26829e5924810cf20b68c50c", - "description": "nvk: Dirty cbufs in CmdPushDescriptorSetWithTemplate2KHR", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "091a945b57995a0184bf83085e2dc5b5e8fa619b", - "notes": null - }, - { - "sha": "81e6c612f14e4f985133e67ad3a963aebda14b9c", - "description": "nvk: Use NVK_VK_GRAPHICS_STAGE_BITS in dirty_cbufs_for_descriprots()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "faaf33556e7c8d5c73af7e1f5862eb26199bb35d", - "description": "nouveau: Fix a race in nouveau_ws_bo_destroy()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c370260a8f15e9be2f43a7d237f438592a09cccd", - "notes": null - }, - { - "sha": "7e3d157bee1b36d47d8cda07bc52fedb70969ba6", - "description": "nak,nir: Drop r2ur_nv in favor of as_uniform", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7434d7576032cf97e3c74ef09912f59617a4bad", - "description": "nouveau/nvc0: increase overallocation on shader bo to 2K", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "13dc2a28ce1eaf6cb73eb1ab6f2b46292db1c585", - "description": "intel/fs: fix lower_simd_width for MOV_INDIRECT", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2bb35bf489cf961e58388c40b7b944a9318d9dfc", - "description": "lavapipe: fix mesh+task binding with shader objects", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7bea6f8612e193d4704a8b03f719a14c500f4281", - "description": "panvk: Overhaul the Bifrost descriptor set implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad86990056e6efe5ba9a870054469b493dbf306c", - "description": "panvk: Fix shader destruction when vk_shader_module_to_nir fail", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "84e452b456c6020bf052820ac63590e944795515", - "description": "panvk: Extend Valhall descriptor set implementation to support Bifrost", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b467b9d5c8d9c70191ab34ae36bbb742b6a3da8", - "description": "panvk: Add Valhall Descriptor{Set,Pool} implementations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73518dc169fc8d2b3cf8221d9244cba3d0e4bb16", - "description": "panvk: Add Valhall DescriptorSetLayout implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3796bfbb76d0e6bf7b48e90f12f981c55c710c32", - "description": "panvk: Prepare things for compiling valhall source files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6a4e1235ac99bbddba268a5726494fea9eef1b64", - "description": "panvk: Prepare for Valhall buffer views", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "970d382117787c59422b6f692d4e8f81358b67fd", - "description": "panvk: Prepare for Valhall image views", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1aab0fc4f56e39f7923c129e4544fcc0fea2f0ef", - "description": "tu: Add attachments' UBWC info to renderpass tracepoint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0aa0c065df66909f9b35e1cb6603cacfc56b4337", - "description": "util/u_trace: Add support for fixed-length string params in tracepoints", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aba7140b386c7d455c6e3945a2914ceb0a823309", - "description": "tu: Add LRZ disable reason to renderpass tracepoint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b4133acf8594ca81b99b8019dedf1388a2a6f12", - "description": "radeonsi/ci: update gfx10.3 failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e455c198f1d6a801292ffeb2f81885ce4ee15ae", - "description": "Revert \"radeonsi: fix initialization of occlusion query buffers for disabled RBs\"", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "dab4295cd520caf069bfbd299fb51e29ee6fd7ce", - "notes": null - }, - { - "sha": "25e2fa3667f3eeef5022d5a497999a28566c887f", - "description": "mr-label-maker: Separate freedreno and turnip labels", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a543bae87f89b5a8c0f625ce794270f9348ac8a", - "description": "mr-label-maker: Update nouveau directories", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57ea68927305a5b0696cc56caaaa17eeeafafdff", - "description": "ir3: optimize SSBO offset shifts for nir_opt_offsets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e37093b160796860beae31e35d750646a1e360ac", - "description": "ir3: use nir_opt_offsets for SSBO accesses", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c1bb9269085ad1904fd0bbaf4dc1a16f80d1b7d", - "description": "nir/opt_offsets: add load/store_ssbo_ir3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "609a56d1704aa208acb237f2bc93763666a6e96d", - "description": "nir/opt_offsets: add option to allow offset wrapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "518c93768bed4faae360715a838ebb59e126535d", - "description": "nir/opt_offsets: add callback for max base offset", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3f8de791dc8ef2dd79c8df2f4783316241dc134", - "description": "ir3: lower SSBO access imm offsets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "759a4679a3b32742622ae522bdf79785400c5f9c", - "description": "ir3: add encoding of ldib/stib offsets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4fe247e62be4bb164b62d7fda231915754d4a90", - "description": "ir3: use isam.v for multi-component SSBO loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "455ebcccfb346c148bc4e6bebaf2c3e153e9b79a", - "description": "ir3: add encoding for isam.v", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2dbc4a00a77bb20403f0d8c2bad7f2b5334e6e1", - "description": "ir3: simplify cat5 parsing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ba55fa31633a0bee156383bf5bea0964064c53a9", - "description": "glx: fix build -D glx-direct=false", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "014bbae4bf3f0bd87ab044232dfc5757982ab6e2", - "notes": null - }, - { - "sha": "ece3896d5b219416b4fa2e0d637071b5e4986b1e", - "description": "asahi: add broken bits of unstable Linux UAPI", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08984e68fbfab0c7c968345f6700b390b8a5ca4f", - "description": "gallium: remove ability to probe asahi", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c5c93acba03f0b09dccb1e83f4959e2882018d6", - "description": "wsi: Make sure to return a valid wayland id string", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b7982152ffce193f9f1636e9d2866228d4b41d13", - "description": "aco: use aco::monotonic_allocator for IDSet", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97fd5d3f33507f5a7fbb69d1403a8c29b05c84d3", - "description": "aco: make aco::monotonic_buffer_resource declaration visible for aco::IDSet", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "95967c2ca0423f2d2a114ec233dc28422679e116", - "description": "aco/reindex_ssa: replace live_var parameter with boolean", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a497d105e3c533da98589d034d06f81f26e67e0c", - "description": "aco: move live var information into struct Program", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2322ab427e667ce07b2189f927fc27817a408b9f", - "description": "aco/scheduler: remove unused register_demand parameter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "169dc86e74335dfaaef7820047c0cdf329700e38", - "description": "gallium: properly type fields of pipe_resource.usage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40785d9a5240ae5a69f0235b353c057b050782b9", - "description": "gallium: properly type pipe_resource.usage with the enum", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f58247882a2906217fd829eaace96a9691edff50", - "description": "gallium: reduce pipe_resource.usage to 4 bits", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "5db73986725027b3b42e05fb4cf863ed21b0b81f", - "notes": null - }, - { - "sha": "59937f62a6ba30fedc5bfd0d399388c77370449c", - "description": "ir3/a7xx: Fix FS consts corruption when other FS has zero constlen", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98e3b1bc5f74298b0cea87c856ca4dc90ba8a60d", - "description": "freedreno/a7xx: Update TPL1_DBG_ECO_CNTL1 to fix UBWC corruption", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "44e6850016d6222f531ef805fdc568959a9e1a9e", - "description": "bin/ci: escape literal url in regex", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "b24dd1fa1c34414799eb9a297efbcc64601f538e", - "notes": null - }, - { - "sha": "5c50e028d115dc24c526cdfbac63d020bc93f726", - "description": "ac/sqtt: make VA helpers static", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c44b20e8d6666c3100ca515be3153ae0c54b6e6b", - "description": "radeonsi/sqtt: add AMD_THREAD_TRACE_INSTRUCTION_TIMING", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "365fda834e3c2e9b95419b2c639b5f0b3490868e", - "description": "radeonsi: use the common SQTT implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c092dc5c4ec9501e8ca1496bb8d4b6a08850ac6", - "description": "ci: run_n_monitor, collect and summarize", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5726ecae3e3130b852c3c2d66d9176d4d1efafd2", - "description": "khronos-update: Add ANDROID guards to vk_android_native_buffer.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f9fe2dbe19b45f466538ed8defc4005d4f5c8af", - "description": "radv: use BDA in the DGC prepare shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "730ba8322f8bb55d3316cb35e3861f6181b38de4", - "description": "radv: fix incorrect buffer_list advance for multi-planar descriptors", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39fdd2aec0383e76ef5f098d6fddfe65f7532e3e", - "description": "radeonsi: Make si_compute_clear_image work with 422 subsampled formats", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a18809a563eeb628cfbfe9786a80a2e7faca2fe", - "description": "radeonsi: add missing nir_intrinsic_bindless_image_descriptor_amd", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d4fdeaa820a15a87cad79aa7ef7fed3bc1f1912e", - "notes": null - }, - { - "sha": "b1d0ecd00d99a0900726b431ac2441a64e9775a8", - "description": "glsl: respect GL_EXT_shader_image_load_formatted when image is embedded in a struct", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "082d180a22ff14ce455cefba2c525c9857f0d00e", - "notes": null - }, - { - "sha": "8307fa95ecb1f71ec3a7301ac10ecd88b4e8504c", - "description": "nvk: Refactor build_cbuf_map()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "636604ea5a19043235d7a1b117de5454139751cf", - "description": "nvk: Only write draw parameters to cb0 when they change", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f7081b92185fdf5d476eeb9b3de5da0cd89b973", - "description": "nvk: Use inline constant buffer updates for CB0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f716bab6b78a573d446c029c1d68118a6085edfa", - "description": "nvk: Pass the queue to draw/dispatch_state_init()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2d85ca36f9522689f55f2193936507b74af094d", - "description": "nvk: Use helper macros for accessing root descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2423b0b295924df0ce8bf228477c6589f5255130", - "description": "nvk: Pass the base workgroup and global size to flush_compute_state()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7a0237bdcf484d0936d4eb2c467cae98442103b9", - "description": "nvk: s/draw_idx/draw_index/g", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20f21b1917d417376d3539cf4c1ce180d66a09d1", - "description": "nvk: Use cbuf loads for variable pointers dynamic SSBO descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "091a945b57995a0184bf83085e2dc5b5e8fa619b", - "description": "nvk: Be much more conservative about rebinding cbufs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b5835af31f590d6163a632f21587341fc3fa255", - "description": "nvk: Use bindless cbufs on Turing+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "248b22d158c25c97e4af8cefee34d04625e86eec", - "description": "nvk/descriptor_set_layout: Record which dynamic buffers are UBOs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6e41f2a28db68c7cf95b359221ac8eb4c6b4828c", - "description": "nvk: Allow the cbuf optimization for VK_DESCRIPTOR_TYPE_MUTABLE_EXT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "723e5cae595b00e4e9094a0de976a55bffa86ba7", - "description": "nvk: Move the zero offset optimization to load_descriptor_for_idx_intrin()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05e213f03e18177cf2017915b6d03f449996177a", - "description": "nvk/lower_descriptors: Add a descriptor_type_is_ubo/ssbo() helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "903fb6f74a77c704bb043bbdff64d8a4a9cee73e", - "description": "nvk: Make nvk_min_cbuf_alignment() inline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbe62813a1253bf69e95bdbf58aa918acda36a2c", - "description": "nvk: Rename nvk_cmd_buffr_get_cbuf_descriptor()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59303584e3186d0cd4bb018822c0041b81d34f4b", - "description": "nvk: Align buffer descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5685de87950e16a98454d924b30a99aa9fdde540", - "description": "nvk: Split write_[dynamic_]buffer_desc into UBO and SSBO variants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6387ae7dfbee59fa3ce2918c2a1c02f5258b47f3", - "description": "nvk: Split SSBO and UBO address formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc7b08c41a5d8f077ff01e7d840b4152ffe5909b", - "description": "nak: Implement nir_intrinsic_ldcx_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "851b3ddd05ce7ddb8217fca9789f4be664797646", - "description": "nak: Lower non-uniform ldcx_nv to global loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e05cb967e7443d0eca5090537ad0a0902e7ec1d6", - "description": "nir: Add nir_foreach_block_in_cf_node_safe() iterators", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b5856ebe9f61f47457dd6e68dba9dd7ab821a7d", - "description": "nak: Implement [un]pin_cx_handle_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12b79f814b69a0e07aa965a5e2de640f0d4e78a4", - "description": "nak: Implement r2ur_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc99d9b2dff67cc4aa9249594aaab6625d3ce317", - "description": "nvk,nak: Switch to nir_intrinsic_ldc_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b107240474bd300af98fe3310436df5508c6c166", - "description": "nir: Add some new _nv intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ab84cf11c7b180232c089cc21e851c6ab7142385", - "description": "nak/copy_prop: Don't propagate bindless cbufs into non-uniform blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06fc2d018e8824a5b2ff063e993919fe1e5c528f", - "description": "nak/legalize: Bindless cbufs must be pinned in non-uniform blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8e25b45fb2ef0b3a76390298c82dc83ea8fc2f3", - "description": "nak/legalize: Allow pinned uniform vectors in non-uniform blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2279c2dd65759909532ec8504277776943461ddf", - "description": "nak: Add OpPin and OpUnpin", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "718ef00ca4d617680fdb666b10d0d307afc9ad3d", - "description": "nak/ra: Add a concept of pinned registers to RegAllocator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "049e7ce92088442e1abaa847789957d0df5d1a85", - "description": "nak/ra: Rename PinnedRegAllocator to VecRegAllocator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1dbe42343cc1f687eec80ddedf0b6ed0112b706", - "description": "nak/ra: Pull searching for unused/unpinned regs into a helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5aab57e1b5cf43323d179da3706d91337a921677", - "description": "nak/ra: Handle bindless CBufs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a8f8e441f5f814ec03a89374dacc16236b15235e", - "description": "nak/bitset: Add an iterator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "82776f3882753f651ef184ceaa44bfeffd8ea0c9", - "description": "nak/calc_instr_deps: Account for bindless CBufs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c0cb4b9e975cd05266ab006246e2ad2d8d777e3", - "description": "nak/dce: Account for bindless CBuf handles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40a5b83cb30d024543b6f16501ec92faa9b7357c", - "description": "nak/sm70: Properly encode bindless cbufs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d09d3f52468ada6ce52425f9e1473c52dd054269", - "description": "nak/from_nir: Emit uniform instructions when !divergent", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3dfd92888a77a717568acb7c9ae8e1a12ea19c83", - "description": "nak: Add a UniformBuilder", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ab8a4d1940b7bc168cfc0d75e25768abe64fb36e", - "description": "nak/from_nir: Clean up phi annotations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b013d54e4ff9cb066cb77ead0a7fd76d5df962ad", - "description": "nak/lower_cf: Flag phis as convergent when possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06902bf52edb42afe35d114baca23033b8753eea", - "description": "nak: Convert to LCSSA before divergence analysis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3528a0760c5ecc8341a5ebd740203db898e83560", - "description": "nak/lower_cf: Track block divergence", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0782087b8b77d4f407f5fcfd33272d9ef614f049", - "description": "nak/lower_cf: Parent scopes are never NULL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29aad972797b255ef7db0018aeb23be33ffd30da", - "description": "nak/copy_prop: Don't propagate UBOs into uniform instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5406cfc7fef00fe013c819e7afae4bebbb8d0481", - "description": "nak/copy_prop: Rewrap a couple comments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81288bfad7d657ae374d5ad0f5907d3b6e1631b8", - "description": "nak: Add a opt_uniform_instrs() pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be91c321c92d4426812e5bb0250f82e978252f77", - "description": "nak/calc_instr_deps: Add latencies for uniform instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d4e4450999d7632fab11aeda0450ce79d95da0d", - "description": "nak/calc_instr_deps: Rewrite calc_delays() again", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "434af5b98b43a445117aae9d1e68db03c9188f4e", - "description": "nak/calc_instr_deps: Rename a couple variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b47b8643b7abd7b04724baa1df2ad0737b45badc", - "description": "nak/legalize: Explicitly ignore OpPhiSrcs and OpPhiDsts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66a5608c11c69b4775ac2f1c5e0f746bf0f5dfab", - "description": "nak/legalize: Uniform instructions can't have cbuf sources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7efc113bfe9d233100d7cc00e093009452f50bb1", - "description": "nak/legalize: Copy uniform vectors in non-uniform control-flow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e4df28ade8f8c9cd3876ddca3970a48137f4e1e9", - "description": "nak/legalize: Ensure all SSA values for a given ref are in the same file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "caf033b1429224393d6b138a6bc7fb2ed3171082", - "description": "nak/legalize: Handle uniform sources in warp instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ad49ca7d0db74b36bc2bf0d5b498c890396395a", - "description": "nak/legalize: Patch a RegFile through to copy helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c83593b07e71ec97b2a7f82d5d0234b35cfc3137", - "description": "nak/legalize: Fix imad and ffma legalization on SM50", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9422a0897d26cf50999b681df328a0850544168", - "description": "nak/legalize: Be more precise about shfl and out", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1203ef5d1390f60074906827a8c3267503ccbb4", - "description": "nak/legalize: Drop some pointless plop3 logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "37b55ee34fe0ba16037715577fcd1a6c517d6f34", - "description": "nak/legalize: Fold immediate sources before instructions", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "85462f74553cd835e9ba4c954330499cee832893", - "notes": null - }, - { - "sha": "00c6244ca2c26a2a81078d4f7a3e5a078675d9d7", - "description": "nak/sm70: Implement a bunch of uniform ops on SM75+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7359c214b7f31cd060ab30ee56b59f7ec6dadbff", - "description": "nak/sm70: Fix encoding of fadd/fsetp and friends with UGPRs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21b1eb8da79ff61358ef741beb064b03cbf0518d", - "description": "nak/sm70: Add support for encoding uniform ALU ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d2d2db6a052b70b5425df5a578478a10fad84cf", - "description": "nak/sm70: Rework ALU source encode helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ae83135af132799126bb208973c134e024795b1", - "description": "nak/sm70: Defer ALU src processing until encode_alu()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e244f7bb4451d24de48f43946f9e4e2035533db1", - "description": "nak: Support uniform regs in lower_copy_swap()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "130392e7abe3761791c295764621963a1f9c5873", - "description": "nak/ra: Never move uniform regs in non-uniform blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11670be6616bf9ca16fd34f1f7c422a773b247c0", - "description": "nak/ra: Spill UGPRs and UPreds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1334cf8fcab96472ca3016328a57f054819194ad", - "description": "nak/to_cssa: Resolve phi register file mismatches", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ed59706ea4bd17a58c09c79705159162c59102f", - "description": "nak: Add a concept of uniform blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d7f544365dae45746c2a1212cf550e1876fc0103", - "description": "nak: Drop BasicBlock::new()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0ec1873df47751d18cd15dc9bba3bb69fbadd4f", - "description": "nak: Make SSARef::file() return Option", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3e9373a90901f73ae06d7474bbfbe19c8bd7840", - "description": "nak/ra: Move an assert", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0b051da390cdd23de5702b71439f0f046057189", - "description": "nak: Clean up bindless cbuf handles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35b445ba276f94ffe63ec7ae48080bdc731a8592", - "description": "nak: Add OpR2UR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebd16d1a56a0d689a4eb04c48d4bd664a5edebe7", - "description": "nak: Add some helpers for uniform instructions and registers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0f70b14d9a8971260c519944e89bf7e9b46d910a", - "description": "nak: Expose a BasicBlock::map_instrs() helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe2b06395e3f086ce6ab88f7954a73d7787efe50", - "description": "nak: Get rid of OpINeg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a08f8c8804713194285ffba25f5b5bce08777433", - "description": "nak: Only copy-prop neg into iadd2/3 if no carry is written", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "1b3382b8617234cf47185d6f398586a3be238b0b", - "notes": null - }, - { - "sha": "0a089b1b13a81d3ba44a149d3ec5894893bcbfa7", - "description": "nak: BMov is always variable-latency", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7cd9680554b16e7de07873cd3be428953be9ad07", - "notes": null - }, - { - "sha": "61be2c94dcc19a9b25e79bcb2738881d4ed02535", - "description": "nak: Fix BasicBlock::phi*() for OpAnnotate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "944365802f8ef53e37db38f15f2c2dc6b820d132", - "description": "nak: Only convert the written portion of the buffer in NirInstrPrinter", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "02774be708876e90e3cf333d30a86ff798154ac5", - "notes": null - }, - { - "sha": "70b381e9288aae1b5ccf54110973b76e33c5f189", - "description": "nak: Fix NAK_DEBUG=serial for warp barriers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "290cbf413ce186fb2529bff3eae736ea5b14ffcb", - "description": "nir/print: Improve divergence information", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "222fbcbfd5811d47246d89b1006dfb4ae2e869e5", - "description": "zink: remove workaround of FB modifiers forcing present state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c3d1a09de45713d23f6e0a4044ae57714d99ddb", - "description": "nir: add additional opt_loop_merge() test of deref handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "abb51f449d938428779ac55d75a509f4158794cc", - "description": "nir: test opt_loop_merge_terminators() skips unhandled loops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b26ef8f1537dca0d8428281f460604fe0cb2a4d5", - "description": "nir: correctly track current loop in nir_opt_loop()", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9995f336e60c2197236c7d815e8ab20ede18b781", - "notes": null - }, - { - "sha": "3d2a82119829e47f72d4c820d87fbe744b51b95f", - "description": "nir: add test for opt_loop_merge_terminators", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92af96e0b31f483558c69db25a31a19138ef6b7c", - "description": "nir/opt_loop: fix formatting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb51a93c1e85660307fc0575a7acc9e7c7dc320e", - "description": "nir/opt_loop: rematerialize derefs instead of creating phis", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9995f336e60c2197236c7d815e8ab20ede18b781", - "notes": null - }, - { - "sha": "ea9739729617d3c0cbdacea53f426c22996f4e3b", - "description": "turnip+zink/ci: mark dEQP-GLES3.functional.fbo.depth.depth_test_clamp.* tests as fixed", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "96ed275a53c473936a5d4eb2318cefe32a209e54", - "notes": null - }, - { - "sha": "b24dd1fa1c34414799eb9a297efbcc64601f538e", - "description": "ci: Fix parse GitLab pipeline url", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1fdba2432fd01260ef683fb9d76a698fc5c3236", - "description": "lavapipe/ci: document regression while it's being worked on", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2f13e7d41812eaf4a14bc46eeb978878eb478f4", - "description": "panvk: Don't bail out when allocationSize is zero in AllocateMemory()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "58e6c8f6c8920a809785d919c8b73712a8bb5a8e", - "description": "pan/lib, panvk: Ensure data_size is on 64 bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c184059005d32bb6102c65eef95f41b6a6a30277", - "description": "panvk: Fix Cube/2DArray/3D img -> buf copies", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f73ae1a6b5658af05fc9211c26446ab89eb125e0", - "notes": null - }, - { - "sha": "368d30befcffd4a4bb924e399ffc2002216ddcef", - "description": "pan/bi: Fix dynamic indexing of push constants", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d53e8489365f9f51e2571df8b9ac84a11b74373d", - "notes": null - }, - { - "sha": "87f89e4dec1354eb7105f0ddf624ac8d02051f06", - "description": "pan/bi: Make sure global loads/stores don't exceed 16 bytes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf8e17d5bb62d34b6298ea5c2a6a893a24c88356", - "description": "panvk/ci: Flag exact_sampling.*.edge_right test as fails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf8652b8f00fd28a48a9ca37ed6f797cd60fee61", - "description": "panvk: Fix formatting around OpaqueCaptureAddress implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "86813c60a49899544239574d0da3de1de9d9088d", - "description": "mi-builder: add read/write memory fencing support on Gfx20+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b88a77b4574ad0f34031a112d100f58a4145c88", - "description": "genxml: add MI_MEM_FENCE for Gfx20", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b4278ccd8854a0ddc33e1d4ce979d7cb6e5cf24", - "description": "anv: use new mi-builder write check API to avoid stalls", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59f11ef7747f58dc392d63414d5dc50a7e011404", - "description": "anv: set query mi-builder mocs only once", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f50cc12b90fe9431becee87174db0abe5d874d1", - "description": "anv: use default mocs for memory bits only touched by CS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c343cfc8b1128dd623676f97b4ead7fd7c6d4ef8", - "description": "anv: move more MI_SDI to mi_builder", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d056f36fab72ca3f4cc93a07a930f83b55cc438a", - "description": "anv: use the new relocated write mi-builder api", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e4f6def877be45cafc9e1cd2df1651d55d170d3", - "description": "anv: centralize mi_builder setup", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "243ced4eb2072d074e85c0f2b8d328c8d31408d9", - "description": "mi-builder: add a write check parameter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a623760f82f0e991bf2884f6d12fd659b7e93ae0", - "description": "mi-builder: add relocated register/memory writes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "775db77bafd67b16a1e413519e1879d53fe217b8", - "description": "mi-builder: add missing write completion check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8ecc2ff56d546e997af7626f1865aafdaa1de767", - "description": "mi-builder: make instruction pointer manipulation more obvious", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "634c7b097b899ac55a716c56529e78b73b6abcbd", - "description": "mi-builder: c++ warning fix", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eef1a5b6078886ca0c791c9357d33160aa184794", - "description": "mi-builder: rename relocated api", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa634503ce97bbc9a202a780dd5662eb6531aa1c", - "description": "radv: emit SPI_GS_THROTTLE_CNTL1 when the attr ring is emitted", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "028d573d37ef060c583402883b0c4e4acaaa8612", - "description": "radv: do not set registers set by CLEAR_STATE in the preamble on GFX10-11.5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a95d7e46b61e094911d4e6baa9f75af3f218f516", - "description": "radv: update VGT_TESS_DISTRIBUTION.ACCUM_ISOLINE value", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ee158df141ceae2545742adb2ef73561d076d92", - "description": "lavapipe/ci: update trace checksum following nir change", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9995f336e60c2197236c7d815e8ab20ede18b781", - "notes": null - }, - { - "sha": "677c9d9e93d05de8c4c6403401e46860593b2035", - "description": "aco/assembler: fix GFX67 MTBUF opcode encoding", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "56ac6f26e0b0367ba5840d9c67ee89b56888341e", - "notes": null - }, - { - "sha": "30fd78a7e712b1bcbeb13efa50fa05c846c70c04", - "description": "venus/ci: Temporarily disable jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78f52e59beee57f30134c4539b799c4e2b4364a4", - "description": "venus/ci: Significantly reduce CTS fraction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f2866fe9716157353188566e8323c1d884aa0b17", - "description": "venus/ci: Fix timeout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "49d2d25e246c7e5211f74e8a41230e0a355e9f55", - "description": "anv: make device initialization more asynchronous", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "729c0b54b60fe39418c1b8e2a98ddd1ea0bc3501", - "description": "anv: use reserved array pool for legacy custom border colors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7da5b1caef21ca1da75573737f553fa301d25b2c", - "description": "anv: move trtt submissions over to the anv_async_submit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1adafbddbd395c27c7884db72c4727c00e413a76", - "description": "anv: rework utrace submission", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd19e4240e623080ef5a9f5584e698bff7ec7c69", - "description": "anv: reuse setup_execbuf_fence_params for utrace submissions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c7e1052a37a8d87045aaa8f6afc052f144e0c6b", - "description": "anv: simplify TRTT initialization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b754ad8f155ebc72b4af74bf45974e08af0cc258", - "description": "radv/video: Add missing VCN 3.0.2 to decoder init switch", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d599391ac9b5510c3c33b655a4d0917a8c2459da", - "notes": null - }, - { - "sha": "51f410f6217a69e2a54426c629f6084205be2300", - "description": "vulkan/runtime: pColorAttachmentInputIndices is allowed to be NULL", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "03490ec01953addabb53a79684ee48b5dd65c328", - "notes": null - }, - { - "sha": "2498d6738275eeb0e64814cc841596a37293fac9", - "description": "mesa: implement EXT_EGL_image_storage_compression extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e34ce71792eabea2b710f58a6a6b98b90b2d7060", - "description": "mesa: implement EXT_texture_storage_compression extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f81e3c7e5d6fc0047f7527c662e1080b1926a775", - "description": "mesa/st: add compression parameter to st_texture_create", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc134ade0bdf8faa4fc47fefa6de992a103bb580", - "description": "mapi: add EXT_texture_storage_compression extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a33bd78a543ca6de3b54fa78f2eb4f2403553876", - "description": "gbm: Support fixed-rate compression allocation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea8977618f303f5b93a8ff5e9e17533562a440ce", - "description": "egl/dri2: add support for EGL_EXT_surface_compression", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6d099bcadf61dd610269a42f86b2ab453385ede", - "description": "st/dri2: add support for fixed-rate compression interface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f852cb6ed742a2afdb71b1466bfc8f32b9ca2a8", - "description": "egl: wire up EGL_EXT_surface_compression extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5d85365a78679b37ac7b44242b64454f3ea8f5d", - "description": "egl/wayland: factor out common part of DRI image creation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5db73986725027b3b42e05fb4cf863ed21b0b81f", - "description": "gallium: add interface for fixed-rate surface/texture compression", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8bf321bf86875a2ca14424b9b59b93b15a0652b", - "description": "egl: Use gbm_bo_create_with_modifiers2() when the surface has non-zero flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1c22c678c07e37840653e41be5b071cd8a47bda", - "description": "dri_interface: add interface for EGL_EXT_surface_compression", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ca51156e249688b4ddfebe4ffd1528e4e814500", - "description": "intel/elk: Actually retype integer sources of sampler message payload", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2358c997f3a747de35b78603856bb69a096f9454", - "description": "intel/brw: Actually retype integer sources of sampler message payload", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59218cdf0733812420f7fc86dbd97787847c87dc", - "description": "gallium: Add vkms entrypoint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5aadea47fa2814c79d0d0b45dd95060fc44c1802", - "description": "etnaviv: update headers from rnndb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eee0b9b0e8acbff4404e75393a4394976ba8d44a", - "description": "d3d12: Add missing case for CQP in d3d12_video_encoder_disable_rc_qualitylevels", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "58ca4cee9ec156bcd26abb11cbc7d772239c1354", - "notes": null - }, - { - "sha": "96ed275a53c473936a5d4eb2318cefe32a209e54", - "description": "turnip: Implement VK_EXT_depth_clamp_zero_one", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47bbaf000d76d6f197ac4c59de1b21ac69514eb7", - "description": "tu: Handle all dependencies of CmdWaitEvents2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6a0730bd5868db38be78f21dad2c3b69b086cff", - "description": "tu: Move event related related code to tu_event.cc/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14b0cb6b9fe8945229bbce962182c6fa2f1b2960", - "description": "v3dv: add more checks for device loss", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "56ac6f26e0b0367ba5840d9c67ee89b56888341e", - "description": "aco/assembler: slightly refactor MTBUF assembly for more readability", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14f4906e535a2f0367e4769bebb38f633d42ea75", - "description": "aco/assembler: fix MTBUF opcode encoding on GFX11", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a4e530f9ddcf2b16973bdfa41da4953e7fe4e94", - "description": "ci: uprev mold to 2.32.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11812ae2aa5e5ff8a00535d28f3f3e84619a92f3", - "description": "venus/ci: add more recently found flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99f92dd6d3132cbb9c5fe53d3c899a9e9719328b", - "description": "anv: ensure completion of surface state copies before secondaries", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18516294072ec9021b6b81722402e425e75d2f1c", - "description": "anv: limit aux invalidations to primary command buffers", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27cc8e375b01d42d9aa6d7cb4c78dc47c03ed40b", - "description": "ci: introduce tool for comparing nightly runs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "af056baa40b0e80a9e4fdd059d8281eb5ec1e059", - "description": "ci/freedreno: some A306 tests now pass/skip since proper GL detection in Piglit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd9f114d5a20aa948282af03d4f45917ecc57a56", - "description": "draw/texture: handle mip_offset[0] being != 0 for layered textures.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "839045bcc840b451679b0dfcaf7653d019a66fb2", - "notes": null - }, - { - "sha": "f467a895236bdd67f0eed4cfbcbc2b436e94325d", - "description": "rusticl: add -cl-std only when it's not defined", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "fc30fe2c110f2fcfcec38b3bf6edbf3802050413", - "notes": null - }, - { - "sha": "3260d6c87748ba1f644e607a472e5c3badfa515b", - "description": "radeon/vcn: enable dpb to use pipe video buffer with swizzle mode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc696783bb8425bb80bc558c51dc2aeab6886437", - "description": "radeon/vcn: use pipe video buffers for dpb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "448c7163580ac04e9bb7051862c4fc7b3d3c290f", - "description": "ac/surface/tests: add the test for ADDR3_256B_2D", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59e813d953076d70047caffbef7e72f174377fee", - "description": "ac/surface: add GFX12 256B tile mode for video", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "301a3bacce82c4489af4f0f854f21b1de3bfab99", - "description": "radeonsi: fix assert triggered on gfx6 after the tessellation update", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "bd71d62b8fcf0c74ba31415375a0ec68b0525c88", - "notes": null - }, - { - "sha": "e7c131ec96158dde58bc80c208f369bb6b6ceb54", - "description": "asahi: use nir_build_texture_query", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1144aa56fc978d5b244ad877783aabb622da808", - "description": "nir/builtin_builder: factor out nir_build_texture_query", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53e1bd141e717a19398364b41cc3c6c0e1d35309", - "description": "ci: fix meson install script", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "a93932daf09191d3082c693d941c5389e6a7aaec", - "notes": null - }, - { - "sha": "7a4f121c5dda4ba124ae905270cacf551011be3a", - "description": "aco: remove some missing label resets", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2d6e72c2cbc9eaf49bed4e80d02cb32fe9810d06", - "description": "ci: continue stress run'n'monitor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51d1e005e86f28450d89c8f272774dc2b74eabf7", - "description": "radv: use the common SQTT implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea8f29b4a79ee4462488b4623db9a990c3653c33", - "description": "radv: emit more consecutive registers for SQTT on GFX8-9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a373ba92c37630facc96fd69c28be23c31fa7fc0", - "description": "amd: add a common implementation for SQTT using PM4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2fab42ad2e128efa0402b5fd7b1e74df2491e384", - "description": "amd: mark more registers that need RESET_FILTER_CAM in PM4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c0867365692154963e95b462be00e65cfaf9498", - "description": "amd: allow to emit privileged config registers in PM4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b82e5c8da8874b7eafde60ad33794aa6db34b2b8", - "description": "ac,radv,radeonsi: add more parameters to ac_sqtt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "155399d03b002902a7525e815ea13e50cae6d81e", - "description": "ac,radv: add a helper for SQTT control register", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7880f3edb7ff634f94d4db57ebf261b895d3c26", - "description": "radv/sqtt: use radeon_check_space before emit_spm_*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a80a1c983844bca646d5f07d65c695a84f964bfe", - "description": "radv: don't assume that TC_ACTION_ENA invalidates L1 cache on gfx9", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7615a612fd042a5c6049b40760ec20a452b21f1", - "description": "v3dv: support VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9995f336e60c2197236c7d815e8ab20ede18b781", - "description": "nir: add merge loop terminators optimisation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e25da8d8d7aeff3c37017bdf7ce467704ec0f685", - "description": "nir: support more loop unrolling for logical operators", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "987cf4b47d5316360e6ad43e61db439c20077f49", - "description": "nir: more aggressively remove in loop during partial unroll", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9702570994c3d1eaeb5714e53965ffe79a5b57a4", - "description": "nir: clarify and update loop conditional instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ac539d70d1cc2dfe05e58a8fd4ce69efd136863", - "description": "venus: sync protocol for conditionally ignored dyn arrays", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f04bb4946513b5b6672f1f56fed1bd1c51604cf4", - "description": "intel/brw: Delete SAD2 and SADA2 opcodes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15f2c9c55318ec28d26f5812fe37f658e38d515d", - "description": "aco: Limit rt stages to 128 vgprs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec8512ce854e66141f6cdf43f6e5805e3c8ddc17", - "description": "aco/spill: Don't spill phis with all-undef operands", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "80eda406d818e558397b69620eaae28b10c18e86", - "description": "Revert \"ci: disable Collabora's farm due to runners maintenance\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "6cde457ab60a3c4d40b647c9bf750e279e1f05b1", - "notes": null - }, - { - "sha": "128cca21c0fd55952d28a3a613b146e879dd0fbb", - "description": "radv: pass a radv_shader to radv_get_compute_pipeline_metadata()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "31127d7b02ce83e80a16763d657c43bcaa06142e", - "description": "nir/lower_wpos_center: clean up", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3beae0f98e6add1ca051292dc314123314870f9b", - "description": "nir,panfrost,agx: Fix driver PIXEL_COORD_INTEGER setting and drop workaround.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6a9596be566b72aaa4b17b73557fead94a9ccf2f", - "description": "zink: limit minSampleShading to a maxium value of 1.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a1d8837bade429cdabc5bdfd78e78b54b91afb70", - "description": "anv,intel/compiler/xe2: fill MESH_CONTROL.VPandRTAIndexAutostripEnable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fa343c38b060979a4f69b3ea759d2b12b104c9b", - "description": "intel/genxml/xe2: update MESH_CONTROL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ba20cc1c72d2bd8fc67ff857e5d441d47a3d7721", - "description": "mesa: fix duplicate initializer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6efe2e3fe3da1efd423c37c2a2073398d1ad954", - "description": "anv: support setting CFE_STATE::StackIDControl per application", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "62a25f064917c701764e7d7063fd924b1facee15", - "description": "anv/xe2: Add STATE_COMPUTE_MODE individual masks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a472d415bc5c11ee41ca26175d2fe2a759e57cc2", - "description": "anv/xe2: Enable compute walker and BTD thread preemption", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6e03ddd95d195b65672d2f080242019b99c3da22", - "description": "intel/genxml/gfx20: Sync POSTSYNC_DATA struct with spec", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f017beb29ce6e3469da33caff2c9a493799faca6", - "description": "v3dv/pipeline: ensure vk_graphics_pipeline_all_state alive when still needed", - "nominated": true, - "nomination_type": 0, - "resolution": 2, - "main_sha": null, - "because_sha": "f2236065b70930243a741806223616234d14980c", - "notes": "`Cc: mesa-stable` mistakenly added and bypassing the correct `Fixes: f2236065b70` that's also present" - }, - { - "sha": "8cd53d95fe3c36e659b0bef6ddd12be6fd3c32ed", - "description": "radesonsi/vcn: update vcn4 tile processing logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53f6cf29e906573490a147c42e628ba927dd52a5", - "description": "radeonsi/vcn: remove tile_config_flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d21aa4a08991911f629272c1a68b148c625b0bb", - "description": "frontends/va: Fix crash in vaRenderPicture when decoder is NULL", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "d1b794685f93a5b88b09e902441e9a448970f58f", - "notes": null - }, - { - "sha": "6cde457ab60a3c4d40b647c9bf750e279e1f05b1", - "description": "ci: disable Collabora's farm due to runners maintenance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "86ee97801bcfc7c5644827f9ea0afed911a10a2e", - "description": "egl/device: drop unnecessary intermediate variable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c58e8b8939c674527fe056c882331a110522093", - "description": "egl: ensure future platforms get their teardown implemented", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20cae414ed287e4159fa61667f80a6aee9f5ad8e", - "description": "egl: move android-specific code into an android branch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54dd83e736425143de8f5f8d4cb0688e9837b035", - "description": "egl: fix teardown when using xcb", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99af53c6fd6d0354cdb9bd0f6c71d1f79f60058b", - "description": "driconf: drop param for setting default gpu vendor id in DRI_CONF_FORCE_VK_VENDOR()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53b99d766e309f3cac9cf0aa5225983ceee43230", - "description": "mesa/main: merge identical checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e154c403fd3abff51ac920e1a408a5a2f9293772", - "description": "mesa/main: simplify conditions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9648bab4b62525ba939c2526be2c21505e48af9c", - "description": "mesa/main: remove needless check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5bd74b7753267dbe53d569bea661eb7c2b2aea7", - "description": "mesa/main: use _mesa_is_gles1()-helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53fb085ebd673c4644f452aeddd2427d529dea28", - "description": "mesa/main: tighten rg/half-float interaction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75645387b6dd7cfe010c91b73c2074a3de93616b", - "description": "mesa/main: use extension-helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2817013ba84b5376fb1ea1e6fc30a0f0c3f56d9", - "description": "mesa/main: factor out format/type enum checking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "227c6627cb66cb72b75fd062c3b6df78854b0038", - "description": "mesa/main: do not allow RGBA_INTEGER et al in gles3", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b5a370dc250d4e5de1a2a598acfcae522e0e2bdf", - "notes": null - }, - { - "sha": "5e5b0b05320c77fd337ac6d36afbb6419720cc7a", - "description": "mesa/main: require EXT_texture_integer for GL 3.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6c2d9a911bdff607b322861a1efdbc9422f0433", - "description": "mesa/main: remove duplicate error-checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0285f29fffdfad91e869dadfbc6ae754825fe7f", - "description": "mesa/main: remove stale prototype", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8e581747d2342950ff44488064eef53768b3ae82", - "notes": null - }, - { - "sha": "4be89d7ad1a464f2c9bcc2bc7e457189622716c6", - "description": "panfrost: lower maxVertexInputStride to match vulkan runtime", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "214761bdfe9a0ed04f00835c8ce41e3b84ff82c0", - "notes": null - }, - { - "sha": "8fe554c2bff2f3e59c92ce58368e1fe33e593af3", - "description": "mesa/main: remove unused function", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "dd8fb7139df7329a287a0d0484790095dbe28acd", - "notes": null - }, - { - "sha": "d5e2f6631491f5ee6fe13d0d77a95d113056a29e", - "description": "v3dv: disable some TLB paths for cases of linear depth/stencil stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "993ba4135c8fd1375cda0ab7064b4ef7238ab795", - "description": "v3dv: remove blit shader restriction on depth/stencil not being linear", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "467230e7e4f9927e39bb6db6f7ef543d40d3957f", - "description": "freedreno/ci: disable mid-testing reboot on a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbe9cf47bfce56d2d8ee69f2167c3c8216b0f0f7", - "description": "nvk+zink/ci: consider all the `double` tests in spec@glsl-4.00@execution@built-in-functions to be flaky", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2dc60751bf132d69f4bb464f4dfb5fa2d1841d2", - "description": "nvk+zink/ci: add flakes seen in nightly pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f4c0d2a71e7b375131025fd17d5733b13926028", - "description": "nvk+zink/ci: mark KHR-GL46.sparse_texture2_tests.SparseTexture2* as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b92ce1b0d6d11ab46a1e4967ebcd93d991fcea78", - "description": "panfrost/ci: remove duplicate path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c2e2b7a2ee730d66243d240f41612730a7f77dc", - "description": "turnip/ci: add a750 flakes seen in the latest nightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04c939113fb2082d4b08614a9e9522b35fff2db9", - "description": "turnip+zink/ci: mark a dEQP-GLES(2|3).functional.rasterization.(fbo|primitives).line_(strip_|)wide as fixed", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "07fa635f11481a6dd603e4b36feaa2dce3a7bd86", - "notes": null - }, - { - "sha": "95ca41bef99da081818d3d8d943f5d379604665a", - "description": "radv/ci: drop duplicate navi31-aco flakes line", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef0f926aff5c3d01f37607d4497a20f8e0150aad", - "description": "radv/ci: drop duplicate navi21-aco flakes line", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4f30ed826f306e3505a9d968a8da3afbbc141fe", - "description": "radeonsi/ci: mark a bunch of tests as fixed on vangogh", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae06e018fa7c6c76164408835c3620c11f9b8f82", - "description": "r300: fix RC_OMOD_DIV_2 modifier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d94d2a05b263a45d22c00e466adf6516b5a76ade", - "description": "r300: fix for ouput modifier and DDX/DDX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "472c64c90e8d7d596a622ae43aeb280d775ba60b", - "description": "r300: fix writemask rewrite when converting to omod", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32cc2c281257d8d23a5e7af962ea4cc625321cae", - "description": "r300: fix cycles counting for KIL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fcc97bd6c3587b17adb84e8b039510758ea5f69b", - "description": "r300/ci: fails list update", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05ca6e24784f142a6442e306f2b82516d03264cc", - "description": "amd/common: set COMPUTE_STATIC_THREAD_MGMT_SE2-3 correctly on gfx10-11", - "nominated": false, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3c8b48e310ddeea501a63994b3a0fd454180a06b", - "notes": null - }, - { - "sha": "5d013da038f2b9a67bf76f64e48787b240ad3c56", - "description": "rusticl/memory: copies might overlap for host ptrs", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e522c91d5c7793210bb2dafe02eefb6df847bcba", - "description": "rusticl/spirv: do not pass a NULL pointer to slice::from_raw_parts", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e8de580998fb48bda58e35150614996b8573ba08", - "notes": null - }, - { - "sha": "3da444b79ea271f3964a585f44a310624dcbd5d4", - "description": "intel/brw: Refactor code to commute immediates into legal positions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d45da713e7e27a06406f722c3b620e0d5e5de546", - "description": "intel/brw: Refactor try_constant_propagate()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "85aa6f80af1369a652c1dfc74f5672568ed31854", - "description": "intel/brw: Drop BRW_OPCODE_IF from try_constant_propagate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7019bc4469ff43251558f85311c5c843f5d0a816", - "description": "intel/brw: Drop compiler parameter from try_constant_propagate()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "43ab997951f5881f60f5a592fa3a4bb114040591", - "description": "intel/brw: Update instructions_match() to compare more fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "061da9f748fb33e542d42cd0f0499a44c3a118b5", - "description": "intel/brw: Make brw_reg::bits publicly accessible from fs_reg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b4a595204b4c7efc8015595f0e6eaac48119404b", - "description": "intel/brw: Add a idom_tree::dominates(a, b) helper.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2d9ff8004586214b38214b6f80a87a40fa2758b", - "description": "intel/brw: Handle scratch address swizzling of constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07745752d669ab8c2999aaac69a3039798881138", - "description": "intel/brw: Skip fs_nir_setup_outputs for compute shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa1564fb87e1a4b458b8088eeb1bef32d96b247e", - "description": "intel/brw: Recreate GS output registers after EmitVertex", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb30b266ca1bcbd016a7759cb8b95c63b3af3ca3", - "description": "ci/deqp: uprev gl & gles cts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c02329ded1256a8c6a66194fad93f588106cb015", - "description": "ci: set a common B2C_JOB_SUCCESS_REGEX with the message that's printed for all jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc113c418d0c87d556d0719bb1180da242e9ac44", - "description": "ac/nir: import the dispatch logic for the universal compute clear/blit shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b15e459082c35125f2066e0316d7fe7bda99c73", - "description": "ac/nir: import the universal compute clear/blit shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1becc6953cbd656f1e6172fc425c37fadb3cf41f", - "description": "ac/nir: import the MSAA resolving pixel shader from radeonsi", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f96bbb64d692299705eff26a9eb8b0bd48c919f7", - "description": "radeonsi: add decision code to select when to use compute blit for performance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3424e16ecedf9f47ca8e020b1ad4a899a3956ce0", - "description": "radeonsi: add decision code to select when to use CB_RESOLVE for performance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c5641387f3d2f747fd3321a4da3e59e4add7a706", - "description": "radeonsi: add a new blit microbenchmark", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c545e2fca8a7aecd3d7ed43c52f31adf2ec554b", - "description": "radeonsi: add fail_if_slow parameter into si_msaa_resolve_blit_via_CB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "77d81fb8b0b583e7d925b4f71bcdfb8472c68ca1", - "description": "radeonsi: add a custom MSAA resolving pixel shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21e90d9c6e9cdfb6fa42f88eb5b8d474c8e01354", - "description": "radeonsi: clear color buffers via compute for special tiling cases", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a0b9839ca81b5c070da7136fc1fb940999f32e8", - "description": "radeonsi: add use_aco into CS blit shader key", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe7a4ed708ee3f1519ff3ad23b12cb68a95f8107", - "description": "radeonsi: use shader_info::use_aco_amd to determine whether to use ACO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c83225cd0a1460538ae43b0bf5d311d0dd44f158", - "description": "radeonsi: print the compute shader blit key for AMD_DEBUG", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d62ad0da5f449f7307518ce4af0cad7ec98b87e7", - "description": "radeonsi: use MIMG A16 (16-bit image coordinates) in compute blits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6c96024a803bac5f8fb24fbdfcabcf7e6de32b6", - "description": "radeonsi: extend NIR compute helpers to allow returning 16-bit results", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b3e1a0532996f47434e68ac7c469f220473b3eb", - "description": "radeonsi: change the compute blit to clear/blit multiple pixels per lane", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4c066abaf3226d4ceec08f8b64ccb16075da77b", - "description": "radeonsi: adds flags parameter into si_compute_blit to replace fail_if_slow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30af861bff71c7ecb479528c5582c54e9d6181c3", - "description": "radeonsi: restructure (rewrite) the compute blit shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2ce5fc07ab618cf0737ed3f145ce844925bee09", - "description": "radeonsi: split xy_clamp_to_edge to separate X and Y flags for the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ee936bf65593c73a5eaa1be822b05f31d96b68e", - "description": "radeonsi: convert the compute blit shader hash table to u64 keys", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40bcb588ddf91195ec757f9a597ee0f092c8ce72", - "description": "radeonsi: remove the old si_compute_copy_image", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0c0cca3a7daa4b827d4e074bc503ce44bd8a81b", - "description": "radeonsi: switch the old compute image copy to the new one using the blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3a59fe21634b57901eb0a2417c0e65e70805032", - "description": "radeonsi: add a new version of si_compute_copy_image using the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b7389615c6fd7ba30352019e0f998fa0e27af7c1", - "description": "radeonsi: rename si_compute_copy_image -> si_compute_copy_image_old", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b030ac5888d67eaa1c107a92e8a358dfaba6c9d", - "description": "radeonsi: rename si_compute_blit \"testing\" parameter to \"fail_if_slow\"", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a4602395d218c5920ef3b9e61491ad1867f0b429", - "description": "radeonsi: switch compute image clears to the compute blit shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9915289bdf276068c36f34b381e178b4622f8096", - "description": "radeonsi: extend the compute blit to do image clears as well", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e41887c6a471be445e10026240b36af47c48e26a", - "description": "radeonsi: cosmetic and robustness changes for the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c5d727a5e10581736be6956f70936d3d64a4656", - "description": "radeonsi: document better how X/Y flipping in the compute blit works", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb86366fee7a2584eea1e40490aa2a5f018c7b07", - "description": "radeonsi/gfx11: enable MSAA image stores in the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5897dde3f76ff95d18d671df2936759395fd42eb", - "description": "radeonsi: don't fail due to DCC when using the compute blit on compute queues", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fcd9f0069f28966d57c8eac319cadd5754490465", - "description": "radeonsi: don't use si_can_use_compute_blit in the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b924bad5e98329efc27cfb47c26931fbc73720e", - "description": "radeonsi: reject unsupported parameters as the first thing in the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "993c30af060bf0718c357189753f98df54bdb681", - "description": "radeonsi: fix sample0_only for the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ca93e8090b5f88437b85a9278608018294bd0bb", - "description": "radeonsi: optimize unaligned compute blits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2423c5ad2f85c2afabb70afb01fb3da3bb0282d6", - "description": "radeonsi: use MIMG D16 (16-bit data) for image instructions in compute blits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3638a9f5809ef267294a46574b8f5f3cba4a322", - "description": "radeonsi: remove fp16_rtz from the compute blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78ab033ae8c5a4be37581d2c34626e6d068baa50", - "description": "radeonsi: ignore PIPE_SWIZZLE_1 for 40% VGPR usage reduction for compute blits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "144fe156ef2cfb414a4731d4ae03afc9ffd6696d", - "description": "radeonsi: use better workgroup sizes for compute blits to improve perf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "269ab6cc624c2541dfecc6f948e272226ee7c222", - "description": "radeonsi: don't declare 3D coordinates in the compute blit if they aren't needed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07fa635f11481a6dd603e4b36feaa2dce3a7bd86", - "description": "gallium/u_blitter: add option to override fragment shader for util_blitter_blit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ab9644c1f4d80d0897910d23ba4535ee3f552a5", - "description": "radeonsi/gfx12: fix stencil corruption", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b9ce2625fbc6c88ff221420624954247657d5bb", - "description": "ac/nir/lower_ngg: don't use gfx12 xfb defs outside their basic block on gfx11", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1ea96a47cdf13cfc833f1f3ddf3106d0ea1ffc47", - "notes": null - }, - { - "sha": "ea99c3fcb9c9a4dedc69a545947e210406f5e308", - "description": "amd: update addrlib", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ea3cb054baddc1895986f5c69859282b5046b6b", - "description": "ac/surface: pass the correct addrlib handle to Addr3GetPossibleSwizzleModes", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "d22564d29cc6d1d1d7d9370eeeb71f21e2d1fbbc", - "notes": null - }, - { - "sha": "41dd1c52b1d091b36f8931c4a57d3b6dc361bc84", - "description": "ci/lava: Fix cmdline for UART/fastboot devices", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eead805919fd0e7191ee3c80410f8c4760093de7", - "description": "lavapipe: add option to enable snorm blending", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9654aa4c31d58d9641a45448950e9cdae824d750", - "description": "intel/isl: Allow multi-sample on depth aux usage (xe2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd6ace73f3c11a643e081b0b12c8603c2dcd38e8", - "description": "radv/ci: document navi31 regression from !29235", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "89666be1b91a52c2044b556bb9ace1f37b80a427", - "description": "nvk+zink/ci: add another flake seen in nightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "46247b38271cd7635982e69431efbe3feb8f7166", - "description": "v3d/drm-shim: emulate a rpi4 instead of a rpi3", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a90e1670933dc1fb52e40e9794f573d6f7518f9", - "description": "zink: add HKP to tiler mode switch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a28f69ee7fe1de48df0869f318c3ec72ea05538", - "description": "vulkan: Update XML and headers to 1.3.287", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0b3b2eb54a600fe33fa26a4e64e4b04e0c50a21", - "description": "util: os_time: add Fuchsia support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d39faf7f3d37f471c9b3bc587c1ebbe207f94d6b", - "description": "util: u_dl: add Fuchsia support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a3f53bd3baac6b7f18575bbe205be53f086a63c", - "description": "util: os_misc: add Fuchsia support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6096ce8c8bd9e458ee3b2bffd39f1f93f0be899", - "description": "util: u_thread: add Fuchsia support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebe4a8d75f21b277762d509c81cbd25496c6a9d2", - "description": "util: detect_os: add DETECT_OS_FUCHSIA and DETECT_OS_POSIX_LITE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9cdbb099ee7364b3b546033bf03dc2f3fdb98275", - "description": "gallium: stop dropping drawid_offset param with util_draw_indirect", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27cd4b061c8531863d9f61b63bef5b3197a7b117", - "description": "gallium: add drawid_offset to draw_mesh_tasks interface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "761d79ec3eb232713cd67e597e3de03ff5203d84", - "description": "agx: fix indirect CF accounting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30c8d55a7109d34f49a3f7b80b97afa6b7d9426d", - "description": "asahi: extract agx_calculate_vbo_clamp", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad85c043e736f9ad9adc7ff6d50e62fe25de9e82", - "description": "agx: prepare for lower_wpos_center", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55724ec9aa5274377b5c94a55a8fbe71e85df94e", - "description": "asahi: implement rba2 for storage texel buffers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71fbd329fc1994075b7ba1baf3d74ec8534f88ce", - "description": "asahi: implement rba2 for uniform texel buffers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5e3cac4098fd607cb106f2e0f8e7cc67ac1ae09", - "description": "asahi: move null descriptor routines to common", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e08d99063c65dd8220d773ffd0fb7aa1825129b9", - "description": "asahi: use scalar outputs for rast shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6439f8c773c53e9bfb983fc1ec7177f1df659a5", - "description": "asahi: add flag controlling sample mask without MSAA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8998034fa93bfacb1999b696e602c477f8352620", - "description": "agx: switch to combined clip/cull", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24bd46aa10781576797dfa84650577d32fe4a715", - "description": "asahi: pack blend key", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65e64b6e2d7a327922b35ca9aa6eb3c4ef538c72", - "description": "agx: handle discard with force early tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1dfb46155212354e0be4f7ffdff5536aa774b544", - "description": "asahi: add AGX_TEXTURE_FLAG_CLAMP_TO_0 flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ff032297de942293614ee7b2831847e3e30782af", - "description": "asahi: support bigger buffer textures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b88bcca4597e4b214256189f0a3378acd965f74d", - "description": "asahi: bounds check eMRT stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "152595057c30aae64ebe804d6a40037f74777718", - "description": "asahi: force bindless for eMRT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5bc9da499490a663ccab94a3a37074056d1bc4e", - "description": "asahi: add missing lowerings", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9a6af50a765b33ca5ece4d7b5caae9fd35e1841", - "description": "agx: rework libagx I/O lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f72234745ca1e57bb4b70c6c0d19b6ae8511705", - "description": "asahi: split param structs for GS internal kernel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3291ad001dbb797dae2c9e50ed75d2686848965", - "description": "agx: fix draw param gather for sw vs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c42d55b151acc5e5cf6a30af59c0b4c8a5eeabe", - "description": "asahi: be robust against out of sync shader info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e49e8fcfee1992918f8c5239f922f11ce5d397a0", - "description": "libagx: add libagx_copy_xfb_counters helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "70f043d6c125aedaf2e5f53f6c30434cebdf4dcf", - "description": "libagx: drop unused !indexed path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5056ead5d2cb47734a72e57679ca8687f6870b8a", - "description": "libagx: fix triangle fan + prim restart + GS/XFB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e3fd6877b628703dc91382e24505c184f7fbc87", - "description": "libagx: fix static assert", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a412bf012786c04543156a50f417e9b3f495b396", - "description": "libagx: rm unused field", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18658d8d603394eeabf78ac74ba39d601ea90a59", - "description": "asahi/decode: drop Apple-specific decode check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5d9e650ed6cb918d2829ea16086829a34177307a", - "description": "ci/lava: add farm in structured log files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cea3aeefd09719caddcf130015b9e5ef65c9b53c", - "description": "ci: add farm variable for devices in collabora farm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "529789685654e3f0d2b563b18122eb41fe970cc3", - "description": "aco: use ac_get_hw_cache_flags()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "167b6cac457aa14688d84efa8f111f339f5f39bf", - "description": "ac: stop using radeon_info for ac_get_hw_cache_flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00eccf524f4dc83c32af483263ce78d102b20e69", - "description": "aco: use GFX12 scope/temporal-hint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b41f0f6cc1234597ca87f7545264dae351c2b861", - "description": "aco: use ac_hw_cache_flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cdaf269924ffc2f40c38ff05359466bfc0155fde", - "description": "aco: inline store_vmem_mubuf/emit_single_mubuf_store", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "185fa04baa7d1b373bb588afbac8c3d1d2f49202", - "description": "aco/gfx6: set glc for buffer_store_byte/short", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f6da5831543cf4a5f5e2e8cd118db850c62cbca", - "description": "intel/compiler: fix shuffle generation on LNL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4ccae739ba905e0bd42951791222f70949653c8", - "description": "radv: fix creating unlinked shaders with ESO when nextStage is 0", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc82f7f8ace50f68b06c53ad347e36d411ae9dab", - "description": "tu: Emit GRAS_LRZ_DEPTH_BUFFER_INFO correctly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f57f1f70cfd3b0c8e242e27a449a2187666aae5d", - "description": "docs/freedreno: Add documentation on A7XX LRZ", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6f08fd69d144dc5127a4d6012df67c82790d46d", - "description": "fd/a7xx: Document `LRZ_FLIP_BUFFER` event", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ad5bacf7aae01884353521f13c3c24f847f3a58", - "description": "tu: Enable LRZ fast-clear for A7XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e936d3fdea4834d5f9362a3de71b74dcaadfbb8", - "description": "tu: Specify LRZ FC depth clear value on A7XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15b02f47000d67d004f5ae1f827a4bac85575f07", - "description": "tu: Update LRZ FC dirty clear for A7XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db505ea565930a7c8ce95a5ae48562e5866fd321", - "description": "tu: Update LRZ FC allocation for A7XX layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf5e8fb394236481e0a74222191c608c8e43e974", - "description": "tu/lrz: Add structure for LRZ FC layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c801fd9771f0b39c38f86711980b53ac4895b5c0", - "description": "tu: Allow LRZ on A7XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2eda5a9eb20b322238df75477365cef6212101e", - "description": "fd/a7xx: Initialize magic register 8008 to 0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c85cd9c0b072859f84c7524cdb8169343ceb4c67", - "description": "fd/a7xx: Initialize magic register 8C34 to 0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0068e75fc60e61b49a41146b4b1fa18263f20083", - "description": "tu/lrz: Use actual CHIP rather than hardcoding A6XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "895c091cddc52361c1ff84a691e18f7042682f84", - "description": "tu/lrz: Emit GRAS_LRZ_CNTL2 on A7XX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f592483350dc49096e421f3cb11568cfc364d010", - "description": "tu/shader: Allow LRZ when write pos with explicit early frag test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "84b74599cb29a9185ea8b7e06ab57e8d3d2657da", - "description": "v3d,v3dv: document cl_emit_with_prepacked", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94989b45a5ed91088777f9be100c0ceba474ce52", - "description": "anv,driconf: Add fake non device local memory WA for Total War: Warhammer 3", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df17f2b89a76438e73ce5a1be8cf8c3db705fa4b", - "description": "meson: bump test-timeout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db38a4913ec6fde264facf95077e241c64573b27", - "description": "llvmpipe: query winsys support for dmabuf mapping", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0d5fedbabe64130c7c79ecaa58e1aea926d553b", - "description": "docs: wrap long words instead of overflowing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "85ff3f525cfd56cee03f5c727824607e5bbdb591", - "description": "util: Rename DETECT_OS_UNIX to DETECT_OS_POSIX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73cc6c673866268517709ae239e10682c9654b92", - "description": "venus/ci: add flake that's been blocking MRs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de22e202942a7eba2ecdfbf8650eba4a93f41828", - "description": "anv: Rely more on ISL_SURF_USAGE_DISABLE_AUX_BIT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc57991b664982bfe0e8bc44e3460424a9ed37c5", - "description": "anv: Support multiple aspects in anv_formats_ccs_e_compatible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14a0f7391d88a6ab903e3292325d24ee70e0b4d2", - "description": "anv,hasvk: Drop anv_get_isl_format_with_usage", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e9dc450a60ddce7722a57beaec23f0c820bbf6f", - "description": "anv: Rely on the primary surf usage to disable aux", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e96b516ca4ed4e81d288f730d1931e1ce663118", - "description": "intel/isl: Assert alignments of surface addresses", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "31560d82ad25a2870a5994bcd13caa5fe4a1456e", - "description": "iris: Simplify bo import in memobj_create_from_handle", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b969a4b43dd8a3071da532e667464788d5ff10a", - "description": "intel/isl: Add and use multi-engine surf usage bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3053268fd0624c19a1a45066c006857ef0df3637", - "description": "mesa/main: updates for EXT_texture_format_BGRA8888", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f81e38e5a923677d7dbc487bc3f94cfe9e3cbbef", - "description": "docs: add sha256sum for 24.0.9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15627f9203190586227dd52f0cb9f20448593d71", - "description": "docs: update calendar for 24.0.9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92a44d39075d51cb7b7b0fa8af9d7048ee957d26", - "description": "docs: add release notes for 24.0.9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53440554c48c4a7a82d850f4ec1f607faa1acd2d", - "description": "intel/isl: Add and use ISL_MAIN_TO_CCS_SIZE_RATIO_XE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26655a137f4cb05f2d03d5aeca2dc6b5eed5f619", - "description": "intel/aux_map: Add and use INTEL_AUX_MAP_MAIN_SIZE_SCALEDOWN", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ae50eaf7066a17a912cba96fdcc5cff1cc354f5", - "description": "intel/aux_map: Add and use INTEL_AUX_MAP_META_ALIGNMENT_B", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e27d95152792b29aac498a7d913d05ac7277ae2b", - "description": "intel/aux_map: Add and use INTEL_AUX_MAP_MAIN_PITCH_SCALEDOWN", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e9653b58335655a8588b628490a9dc9baa75bdcf", - "description": "anv: Refactor modifier plane layout queries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0194290bb539cf46de78ab358d9e8070de8f5044", - "description": "intel/isl: Add and use ISL_DRM_CC_PLANE_PITCH_B", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1742d36f368851861681c14afecf5abf43d7558", - "description": "radv/rt: Fix memory leak when compiling libraries", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c452a4d1ccaa7fc33d3ae22bfc23d7c1e3e63c9f", - "description": "aco/ra: use round robin register allocation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "197943ae27a4a1f6ee8bee1e748130bac79aa87c", - "description": "aco/ra: change heuristic to first fit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d76fc005b62bc9599c5ed278942fec8c23c587ec", - "description": "aco/ra: re-use registers from killed operands", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b054cfe7040f362315aacf15530cb423b02dc62d", - "description": "aco/ra: move can_write_m0() check into get_reg_specified()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e817cf52ba5169e3ca6692a9b4290e0445004b1", - "description": "aco/ra: refactor get_reg_simple() with increased stride.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b0edf3f3302dc341202c42005d1c7e12a5ea800", - "description": "aco/ra: Fix array access when finding register for subdword variables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5326e033ff668b91d28c50e04d9048c028812f95", - "description": "aco/ra: fix handling of killed operands in compact_relocate_vars()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afa2070c9982b64536a46c0ac3980d51d27b0ad1", - "description": "radv: initialize compute preambles with the common helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c8b48e310ddeea501a63994b3a0fd454180a06b", - "description": "ac,radeonsi: add a function to initialize compute preambles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "428601095c38bd80f4ed164414f8096edd73832f", - "description": "ac,radeonsi import PM4 state from RadeonSI", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "62c52fb59d9b24f1cf73254e61151d2bc69f3051", - "description": "anv: expose VK_MESA_image_alignment_control", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e7a82968d40a2fdf2773241e56f54ade7787699", - "description": "nvk+zink/ci: add another flake seen in nightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15fe733703701435cb4e747f4c310c5c7fea9d07", - "description": "radv: add a helper to get image VA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4cfb7a0c171873985be1df57cc46e19c3f7030f9", - "description": "aco: remove support for sub-dword push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e21312018ea313f461838c71fa5aeae92eac7223", - "description": "ac/llvm: remove support for sub-dword push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "41c5f713432f303ca7b15d1ab6c9cd669a53df6e", - "description": "radv: lower sub-dword push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69b7fcd775e5d36c32314e56afa373c33af6df6d", - "description": "ac/nir: support lowering of sub-dword push constants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7a2127f0eab45493a67a542b1217d89801c9137", - "description": "aux/draw: Use the draw info we get passed in instead of our own", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "377600b9df402e29dc4bb97439700c036471adaa", - "description": "nv50/vbo: wrap draw_vbo to avoid ovehead from multidraw", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "225f2aac96556dee2f04dbafbd61e52b7970516b", - "description": "nvc0/vbo: wrap draw_vbo for multidraw performance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3fb1a64918d61d8d96158730a354b4201f1f7b34", - "description": "aco: move s_add_u32 -> s_addk_i32 optimization fully to ra", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60f3f0fdbb22835c040a483c8a7ad6d63d2bc6ec", - "description": "aco/ra: use a switch to check vop2acc instruction support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fdc2fb683586ce023cffe18a5c8c2591334f2153", - "description": "aco: move literal unswizzle opt to RA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c63c750380dae74dd76a81bde0876c9ab8475e5c", - "description": "aco/gfx11+: fix inline constants for v_pk_fmac_f16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39380d475a36981f1baf77b435c29de5fc507f3e", - "description": "aco: add affinities for possible sopk optimizations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fac475bc25e8ab910d7dfed2f21f896c5f9b0c65", - "description": "aco: rework how affinities for acc operands are determined", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b6207b282afd8bf153e529f022a809a09a3c345", - "description": "radv: only set valid bitfields for CB/DS surfaces address on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe78ad2690d776efa3c4f84b6a2dcb0b8cb75c41", - "description": "radv: fix emitting VGT_PRIMITIVEID_RESET in the GFX preamble on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be3c837c04d2612a0ab7458eafa47058e789f4d7", - "description": "radv: update configuring COVERAGE_TO_SHADER_SELECT on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27496928e4829fd0032b2c1e280545291c8acba6", - "description": "radv: update configuring depth clamp enable on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa790305058795b603a48bf50d3c6313f0a79488", - "description": "mesa/main: fix stack overflow related to the new mipmap code", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "dd8fb7139df7329a287a0d0484790095dbe28acd", - "notes": null - }, - { - "sha": "8e475bba61be6b07a1ab54a403a07fd60e47756c", - "description": "aco: implement nir_intrinsic_nop_amd and nir_intrinsic_sleep_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ad05d4ca82c97f6ac17cacf3ec7aa3653248078", - "description": "aco: implement nir_atomic_op_ordered_add_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0dee5fdd3c88a5b45738d0aef1f5c03af753eaf8", - "description": "aco: don't combine vgpr into writelane src0", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a4424425a85767ed72152b7a68baeed77fd7a38", - "description": "aco/gfx12: fix s_wait_event immediate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26c981b2b8570a14e8f7fe49b04371380849f16a", - "description": "ac/nir: skip subgroup_id/local_invocation_index lowering for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c651eed1d8af5a9c927d437b003c1953dd6bec24", - "description": "aco/gfx12: implement load_subgroup_id", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "61531b19cdb0d9037c9ce8a45b0b8150b9da96ca", - "description": "ac/llvm: implement load_subgroup_id", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea5b3bfcd130f9365efe8ab43f370fe2547a27e1", - "description": "radv/ci: move radv manual rules into their own group", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47bd1cff4bc781c523bc4d3dfb0ec916910de70a", - "description": "radv/ci: fix manual rules", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ebaede788e05ea3a22bfd4f054c85053247de9ff", - "notes": null - }, - { - "sha": "4400ecafa7f07381653975841083b1e5f886e347", - "description": "Revert \"radv/ci: Bring back vkcts-navi21-llvm-valve\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "8dc364806e1b29d0f91bbb63a99237610ac17251", - "notes": null - }, - { - "sha": "c13d8ac6d653644e99d83345678cc016624c5275", - "description": "v3d: add support for load_workgroup_size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "83883a6cc2591dbbece7bb58c81fe1df3767b49c", - "description": "broadcom/compiler: handle load_workgroup_size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3aafe75471c783adf54ab8c78a3d89661df6a7b9", - "description": "turnip/ci: add a750 flakes seen in the latest nightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2db42298d7c9e6e36769be9689e8c29b52205c8", - "description": "amd/common: add MIN_LOD for texture descriptors on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8cb2cad4348c46978c9b57e67091329f3aa235ab", - "description": "ac,radv,radeonsi: add a function to build texture descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bb308d403dbc82d7f09a52f1663c154452c2cb7", - "description": "radv: use pipe_format when building image view descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50e5067be77bf8f34de6616e8edca2af2cf8d310", - "description": "v3dv: allow VK_REMAINING_ARRAY_LAYERS in VkImageSubresourceLayers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b6495a953bd4c453e082814d1d02f05ee5d3d2f", - "description": "v3dv: fix a few asserts that check layerCount instead of array_layers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1dddfa75a85591abf9f1380a6808d4a4a61b46a", - "description": "v3dv: fix pipeline leaks when meta pipeline cache is disabled", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "4f26303dbb16d667e0073f8aef62cb97330f251d", - "notes": null - }, - { - "sha": "507a714506be1bcc83037c3f802db6791416172a", - "description": "panvk: Move vkCmd*Event functions to their own file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b08a45c0422130b3786ad6cdf3ed130fb919953d", - "description": "panvk: Move vkCmdDispatch* functions to their own file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f57aae4e4f1172c848a44e1682d73dadb14ac24", - "description": "panvk: Move vkCmdDraw* functions to their own file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9f194a6ed7211e9316152e6214de74a7a6bf093", - "description": "panvk: Move panvk_descriptor_state to bifrost subdir", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d858c42a9de0ccf582e3715667172fe97c38c266", - "description": "panvk: Make helper functions panvk_cmd_buffer agnostic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "884382d496bb16e4a1a9f26227e44ccb7f0bad88", - "description": "panvk: Add push_uniform/constant helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b5df155978c389da53d71a9529c7234f7e3eaaa", - "description": "panvk: Add jm and bifrost dirs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57d0d63d014e87127470c015fc26f8d9beea6111", - "description": "radv: only emit CB_COLOR0_DCC_CONTROL on GFX8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07b00960118bd797c5c91b1bbd0b778d90b179b1", - "description": "radv: only emit SPI_SHADER_PGM_SRC3_GS on GFX7+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a7150b469a3c433aae759ac5c7790d85b3936c4", - "description": "radv: do not set VGT_SHADER_STAGES_EN.DYNAMIC_HS on GFX9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a75b50eb8d73a6267c1425bb9ef7c7ffbf902c0", - "description": "radv: only emit SQ_PERFCOUNTER_MASK on GFX7-9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96e7ac027caa81876d1a63f0b19482de5e18967d", - "description": "radv: only emit VGT_GS_MAX_PRIMS_PER_SUBGROUP on GFX9", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f62a8f888fdd0e81047958c78dd0d44fdfadde21", - "description": "radv: only set valid bitfields for CB/DS surfaces address", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "726838620ebdd890edf481d7821edc0728b1ebe4", - "description": "nvk: Only enable WSI modifiers if the extension is supported.", - "nominated": false, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e6f77defec0d61f9f5851bdbda5bf4cc97cd1cea", - "notes": null - }, - { - "sha": "3d05d86d88eb83b5c4846ea80d8b23a4271d7803", - "description": "radeonsi/gfx12: add DCC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7232995fb5c329b6c13f3b777c4166801ed397d8", - "description": "radeonsi: remove leftover comment of non-existent RADEON_FLAG_MALL_NOALLOC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0dad61dfb65b9671d6a846f2915c950030641da9", - "description": "radeonsi: allow RADEON_HEAP_BIT_GL2_BYPASS for VRAM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e303aae14525f4f78288157e436d75d97fb9002d", - "description": "radeonsi: remove RADEON_FLAG_READ_ONLY", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21d6d44e96b1e45b0ae49ee4216cd23094ce4db2", - "description": "radeonsi: remove cp_to_L2 and L2_to_cp, inline the values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c713fc77620312a31b564e24c46594aa0254603e", - "description": "radeonsi: assume si_set_ring_buffer is only used by gfx6-10.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fbc237037cbf98b69e07a823c6fd5b36fa388919", - "description": "radeonsi/gfx12: fix GPU deadlocks due to query result incoherency", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "060d5dacfd1f1402bad795c37713db04b299f7ea", - "description": "ac: add gfx12 DCC shared code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ea96a47cdf13cfc833f1f3ddf3106d0ea1ffc47", - "description": "ac/nir/lower_ngg: use voffset in global_atomic_add for xfb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0025646333d48296eacd3a1faaa94f2cba9a7a1", - "description": "ac/nir/lower_ngg: use global_atomic_amd to fix gfx12 streamout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5db194b1d1457dc841dbbd1a524d61d7cd72aeca", - "description": "ac/descriptors: fix gfx12 regressions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e02c6663e9a42b5e8695b6a4311a15de92d47aa2", - "description": "intel/tools: Fix intel_dev_info --hwconfig switch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2dba5d484b29ccb8cbf624a81350668fe6decd87", - "description": "intel/fs: Adjust destination register size for global atomic on Xe2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55c7b24899d31f4dc29ade7fa07153a39f2c3d95", - "description": "intel/fs: Adjust destination register size for untyped atomic on Xe2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fa84d34ef5aa0597dc77cefc4fd5b128dfbdc67", - "description": "intel/compiler: Don't set size written in brw_lower_logical_sends.cpp", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecfe8b0f7565b4bff473637727e98558bb853d68", - "description": "intel/brw: update Wa_1805992985 to use workarounds mechanism", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ddaa7c4221068bf4679c4b6baaf0da396382635f", - "description": "intel/brw: update comment to accurately reflect intended behavior", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe5b0a4fe383e51ddf7b038c7664da27fb56608f", - "description": "rusticl/kernel/launch: add helper to bind global buffers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17a52774dbf83b47a3d3852f103283e17ae24dc2", - "description": "rusticl/kernel/launch: get rid of Arc clones for global resources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c1122728a917a26d630862a9ae32fabb1c14c8d", - "description": "rusticl/kernel/launch: rework how the printf buffer is allocated", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25d1f84b57b7b61a960971030e37b066b2af80be", - "description": "rusticl/kernel/launch: move allocation of resources vec", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb2453c6495cf5ab58aa1f4f350b83f8d8d8c5c8", - "description": "rusticl/kernel: move most of the code in launch inside the closure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "436122cb10c719326744b3728382550918b27aed", - "description": "rusticl/kernel/launch: remove useless upload of the input", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "91552bb4ecc0f58518fae27239ae4f0e3d5d54d9", - "notes": null - }, - { - "sha": "d02dfe0f71dfe4ca22aa209c9802e533cd56360d", - "description": "rusticl/kernel/launch: fix mapping usize types to GPU pointer sizes", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "204c287327fd2353f68d38d464f485e24c8cce30", - "notes": null - }, - { - "sha": "4086d3aa38b72f9523e6aa7e399046a9457f95ca", - "description": "docs: update calendar for 24.1.1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c66a88a0ab5b0d98937b878f89dd93f88919043", - "description": "docs: add sha256sum for 24.1.1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f41aad910259d2bca73dbf6545bf79c13248fe7", - "description": "docs: add release notes for 24.1.1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c6a6349b0d5d67166000ed01eb271da2db301c2", - "description": "intel/brw: always read LAYER/VIEWPORT from the FS payload", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d071fe7db23c8efc54ffbd224cad7ca2f631c48", - "description": "intel/brw: add fetch_viewport_index function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "816b21cd87e3f2e7e26067fe589778d1a49df761", - "description": "anv: fix pipeline flag fields", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "688bb3755298efe2b43bb5ff4acecc61f78b7510", - "notes": null - }, - { - "sha": "53e77cef36dc95f369bfdeee00214511f9e7ba2c", - "description": "intel/blorp: Allow gfx12 fast-clears without CCS surf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18326211c3a534aa185cb25a6a2dd19cd84eac31", - "description": "intel/blorp: Factor bpb into the fast-clear rect", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f483caffb95592e9e3284bf7c2486d5570f461f", - "description": "v3dv: add missing bounds check in VK_EXT_4444_formats", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "fbe4d7ccf49ccfeed08531680232dcaa28a66479", - "notes": null - }, - { - "sha": "d1b794685f93a5b88b09e902441e9a448970f58f", - "description": "frontends/va: Send all bitstream buffers to driver at once", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbe9ab54d4d07fe65493864970cba8d9c2192b5a", - "description": "mesa: remove some conditions in mipmap code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5eee10147745a708c29fe107ef6e10cf32c9737a", - "description": "broadcom: move HW-dependant constants to v3d_device_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0f3923d8aa489e1e1d05895ce90f27c6740d990", - "description": "v3d/devinfo: unify comment style", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb15ecfc0b647625dc6710458e79a0148c9be033", - "description": "broadcom/ci: update expected results", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6b24221af8824fb0ee02adc128fae9eaf678944", - "description": "anv: implement WA 14018283232", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01faec2709e5469cb03f0076c05cdd17ba272c05", - "description": "intel/genxml: Add RESOURCE_BARRIER for xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "108e79db1a5f2a11dcc5c7bcd6f27b5f51f6e236", - "description": "anv: factor out some more gpu_memcpy setup", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d98c47ccc37822364403fdc21703a16f0aa43fd7", - "description": "anv: rewrite Wa_18019816803 tracking to be more like state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7e66093903971261d5d710bfdc507fce3bf0f36", - "description": "radv: assert that GDS/GDS OA buffers can't be created on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8e9e877eb2fb5f572f2fadfbe77d73ac04b98b19", - "description": "radv: cleanup radv_precompute_registers_hw_{ngg,fs}", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d5074228ab5775f485f0039b930c1a6f656e03e3", - "description": "radv: do not set VGT_PRIMITIVEID_EN.PRIMITIVEID_EN on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87c1b981d9b8c078123affa5fcd6de234cf94831", - "description": "radv: fix configuring NGG registers on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "052655b65da8f507fe6176d209318a83b3a2225d", - "description": "radv: do not emit SPI_SHADER_PGM_RSRC3_GS on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6609fa004fc58f85702c4256503d13d9fcee568", - "description": "radv: update configuring PA_SC_WINDOW_SCISSOR on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6aeb86f3507bc16a51a02e3a23e66f6cec17d6c", - "description": "radv: update configuring depth stencil buffers on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9650fef246c93fcf9fabbed689a9741bbb5f1e5", - "description": "radv: update configuring color buffers on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a06aaef704b6848e67d06da77d1196999172cf56", - "description": "radv: update number of input VGPRs for VS on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b912d2f8995c2c81cc703e1b7317683f09fea8a7", - "description": "radv: configure PA_SC_SAMPLE_PROPERTIES on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa02cd2a1b2e044f247a82cd84e21fcdb66b9c8f", - "description": "ac,radeonsi: set COLOR_SW_MODE for mutable CB surfaces on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6cacc51668e2bb88fb1d9f35f896f1f1082afb7", - "description": "v3dv: implement vkGetRenderingAreaGranularityKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8dc364806e1b29d0f91bbb63a99237610ac17251", - "description": "radv/ci: Bring back vkcts-navi21-llvm-valve", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b100d3f731988b211c966204881c8526614351fd", - "description": "ac/llvm: Enable helper invocations for vote_all/any", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b38d4922e8e1024b6d5d29c9bd30d8cd937a8b7", - "description": "ac/llvm: Fix DENORM_FLUSH_TO_ZERO with exact instructions", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6889a0a5dd970bbfcd407085c8f12356a9dfe334", - "description": "zink+nvk/ci: add flakes seen in latest nightly run", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1e566352505b27b1283e2d8662767cc1455c311", - "description": "docs/meson: replace deprecated pkgconfig with pkg-config", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "964f2b8140e7f3fdf8daad1698a99867897e7cb1", - "description": "radv: fix VRS subpass attachments with mipmaps", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f22b31ce8d6c5e5c68fcc6f48a18ad1132630c9", - "description": "anv: toggle meshShaderQueries based on whether we support mesh_shader or not", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "4c7f51d3b425c0ba5ab7452e12f230a9961cec46", - "notes": null - }, - { - "sha": "39cc1a4ac4953c0cd7a24cbba17711a11fc3e1ce", - "description": "glsl: add support for glsl es 310/320 to standalone compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "000d2d0b96289afe934a84d559225c660f7af350", - "description": "venus: defer qfb buffer init upon query being used", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "c97f9193ef5d99ec8dae90d92671be8a687c2cbe", - "notes": null - }, - { - "sha": "abb1518bfdf34629feb5c51354da93433c6b2344", - "description": "rusticl/icd: make sure returned function pointers are of the right type", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c95d791c5eb77b4ca720aee6402761f6ddb830c2", - "description": "Revert \"ci: disable Collabora's farm due to maintenance\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "065ad0f2713de487f8d09c2377209e5d51d20c48", - "notes": null - }, - { - "sha": "415c5ad9897bae5bfc1ad73cc08d7c5f734d96f0", - "description": "intel/compiler: No need to re-type the destination register", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e0a0b4dd5b719a2cbdd0c06d0c367e222163d3f", - "description": "anv: Initialize variable to fix static analyzer warning", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75b1fa9263c21f06c4231bc11fc66adae89f4af9", - "description": "nir/opt_algebraic: alternative 8bit pack_[us]norm_4x8 lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f66883a87500c0b37efec7496f428531a1c7f8f4", - "description": "nir: lower pack_uvec4_to_uint to pack_32_4x8 if supported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3f77e09a10a9fb1b50a2a2815660e6979f15b76", - "description": "ac: set has_pack_32_4x8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1604ab0ef724aa5757ccbf0a34091d0998b93aa6", - "description": "dozen: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4db99332f34eff509b8b69ca36d05e46342acc64", - "description": "lavapipe: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8290aea48e8b4ea6bb9a4c7033ffaa6280b5380", - "description": "turnip: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf9038b3b8b2b354bbb4e64a65e06ae9ed3a28d9", - "description": "radv: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "705dc133c22d5af4b0011785c104a9a1a8cd61cd", - "description": "hasvk: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7db1e80d0f822b5e788c194bc3f4862b0cf87c9", - "description": "anv: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d805ffd1a4444b906eba4508b39f7addb3056a39", - "description": "nvk: Advertise VK_EXT_shader_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c452143024af03e1842da391d18f9bf0e92addb8", - "description": "spirv: Implement SPV_EXT_replicated_composites", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fff42bcc6669aec535ab6b9bc0d9d0a1a7432b2b", - "description": "spirv: Assert that non-vector composites have the right length", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fa46b31a89fde179d87f0b714bc882ebfa43b0d", - "description": "spirv: Handle constant cooperative matrices in OpCompositeExtract", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b98f87612bc14fe88184dc099d9d4f8e6b3b23cb", - "notes": null - }, - { - "sha": "7e6cd395c785c41d807fd164f7374a1ad0eca742", - "description": "nir: Handle cmat types in lower_variable_initializers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "b98f87612bc14fe88184dc099d9d4f8e6b3b23cb", - "notes": null - }, - { - "sha": "c2ab52236049f47b3245b4f8c54ca1d7e015b577", - "description": "spirv: Update the JSON and headers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e01f9848b71cf1ab24b52f047ebe86e0785b4ce", - "description": "vulkan: Update XML and headers to 1.3.286", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c7f51d3b425c0ba5ab7452e12f230a9961cec46", - "description": "anv: implement mesh shader queries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b69f7f625b2c433e9026b146c924b51fcca1baff", - "description": "anv: Update pipeline statistics mask for task/mesh shader invocations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d07321e3d86dd3715b46ace257cb59757f204559", - "description": "intel/genxml: add task/mesh shader statistics registers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9567b5ee48e747eff5b8af589eff3cbd0250308", - "description": "anv: fix Gfx9 fast clears on srgb formats", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "4cfb4f7d126370784cc74a4ac02e3a511e5f5d36", - "notes": null - }, - { - "sha": "18a0ff137ffa38257b3e54b70c5394c7de4c7b3d", - "description": "nir: sink/move inverse_ballot like moves", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "818ff03865cda335148e1d7a789cab8e8d90a82b", - "description": "aco: optimize branching sequence with p_create_vector exec producer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "690f880d180f455f66504d8a5e14bc575bcd441a", - "description": "nir/opt_uniform_atomics: handle inverse_ballot when detecting single lane ifs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f5503fa2d0ce80c6e26b93169e07a36bfa044eb", - "description": "nvk: Clean up unused header from libdrm_nouveau", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "821f4c8d99a3068758db834a5c219082a9609b3c", - "notes": null - }, - { - "sha": "46322630f15d255a289cd238d9814d48ea2707a8", - "description": "gallium/tc: Allow replacement if replacing valid_range", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27dd3807a8d9b84491c403690a376440ac34a39d", - "description": "freedreno: Use buffer replacement limit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c469b7cf0d9397c52f548a229dfa1146ef3f7e7", - "description": "gallium/tc: Add optional buffer replacement limit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0311ac50adb6016efcb455ea52b11f422d6b797e", - "description": "v3dv: implement vkGetDeviceImageSubresourceLayoutKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b882cf2ae3ca366ab710bc312044e5079f68f070", - "description": "v3dv: add a get_image_subresource_layout helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf4a8a5c5a381bcde6078dee29a68658d406af6a", - "description": "v3dv: refactor create_image", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cccdaab4ef99c9a6b5740ad5b66a7093a10daae6", - "description": "v3dv: implement vkGetImageSubresourceLayout2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dfabed2fc9c4e5d4c613003097117e9a7ada4e08", - "description": "Uprev Piglit to cf8daaf5ba90fc9b8a0e144355026e2a14c79944", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "065ad0f2713de487f8d09c2377209e5d51d20c48", - "description": "ci: disable Collabora's farm due to maintenance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8112d44b94bba84d6cdf8a80eeb2ac186be02f7a", - "description": "lima: remove the standalone compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a79a2486c78a1186f390884d2e705b488de1a5c7", - "description": "ci: propagate RUSTICL_ENABLE and DEBUG variables to the DUTs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b54ccff57eb9c1232fd138987d87f6c97c7a799", - "description": "ci/lava: the containers take sometimes more than 60m", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "46dd8b8d89ca322b441f8e92403724b223608876", - "description": "ci/radv: Document recent flake", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc149e03033239d07c913d5978d7ee2afe68dadf", - "description": "iris: fix PIPE_RESOURCE_PARAM_STRIDE for buffers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "831703157e7b272fcd1d36de2b3bcc8d5ec7d500", - "notes": null - }, - { - "sha": "2620a7064c899d76182ba612994bcd5d5e691053", - "description": "ci: move (c)bindgen to own shell script", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a93932daf09191d3082c693d941c5389e6a7aaec", - "description": "ci/meson: reuse meson installation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24d9c066e2bda171c3693639c72f686090af09ca", - "description": "ci/lava: add support for RustiCL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "70515de4890c0f9d81dc6d7a7531c5a40ded5a9d", - "description": "ci/arm64: rustify the build", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a77d953e20cde6666cbd29b2b779f6758b5cd5c8", - "description": "mailmap: update my email", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33499636450e7a8316a2e4251431b5ee61a585fe", - "description": "anv: Properly handle cases for different query types in copy_query_results_with_shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71d455b96fbf3807441f1b9bb82416928c77ac20", - "description": "glsl: remove unused detect_recursion_linked()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "724bb7fa151c420a32937736a84145da688a0a0d", - "description": "brw: better model READ_ARF_REG opcode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac03cefb28c0687fe0ef6dca615428a4720cd1dd", - "description": "brw: limit dependencies on SR register", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8b78924c532bd4688e70132d1ebdb0aa0f8b18b", - "description": "brw: use a single virtual opcode to read ARF registers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2c65d90bc8500bb8ad0b9204798905e4d79fb283", - "notes": null - }, - { - "sha": "588c725f270966292f965f9e13305cf07689c7eb", - "description": "intel/xe2+: Enable native 64-bit integer arithmetic.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b7e5cf5d4694a896e8e0d9183c7d53a91af547c", - "description": "nir/algebraic: intel/fs: Optimize some patterns before lowering 64-bit integers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4834df82e25aed970ab4fd1f1bd5aef2d29a19cd", - "description": "nir/algebraic: More patterns to generate iadd3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1b941aaecd555c0455ba5a6a41d70482519c63b", - "description": "nir/search: Refactor is_16_bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6e53be2a0abe8f347ec466ade6df8a033b3446f1", - "description": "nir/search: Fix is_16_bits for vectors", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ef45e661f4072382be7cc70f417f86a1ab039cb", - "notes": null - }, - { - "sha": "22095c60bcd843ff827be2bb4617d535fbf089f1", - "description": "nir/algebraic: Add nir_lower_int64_options::nir_lower_iadd3_64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fdc483df2551a91ccef2948a09d0f434430c4c77", - "description": "ci/etnaviv: remove duplicated line from skips", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "fb1068c668464189516bfd8bb626cda74721e92b", - "notes": null - }, - { - "sha": "6f713a764fb412567caaabd9ae574822e79da383", - "description": "rusticl/event: fix deadlock when calling clGetEventProfilingInfo inside callbacks", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14ec84da172b40932e70693237f57da8cff47272", - "description": "zink+nvk/ci: add flakes seen in latest nightly run", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "679639625785d0f743cdd03802052b71e9576305", - "description": "radv: Optimize memcpy in write_image_descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75849bd4288e8758ace159bd5c3624ebca9fcbbc", - "description": "radv/ci: document angle regressions from !29436 on stoney", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f32a258503b40e8e19a1498998b0d4f8b8abb488", - "description": "v3d: really fix CLE MMU errors on 7.1HW Rpi5", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "11dce2ac8154237b74ee3c4bd2aaec685739f0cc", - "notes": null - }, - { - "sha": "07d3d557832a223c574aa205db3f4acfb04161ad", - "description": "v3dv: really fix CLE MMU errors on 7.1HW Rpi5", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "bb77ac983e4f8a265141855e60ad2a5637c9b74d", - "notes": null - }, - { - "sha": "dcab408a6c5793fbafa0ae2a7bdc478ee91d29c9", - "description": "nir: remove unpack_half_flush_to_zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a1ea0956b46778d0331e4ef60ebd2be057fd0e9f", - "description": "intel: fix HW generated local-id with indirect compute walker", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5e7f4ff97fb871376a828146ab3a276c1d3c4fcf", - "notes": null - }, - { - "sha": "d4b37eca5f2bc5841a9f7b1e58594045548a87e2", - "description": "radv: do not set DX10_CLAMP on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "407cbd8c877038203407e3b3f60b831c40e73a03", - "description": "radv: update configuring GS_VGPR_COMP_CNT on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "671329a9345a252e4f444517a51a80ee09fc9174", - "description": "radv: configure SPI_SHADER_GS_OUT_CONFIG_PS on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00361d1eceae642ae454e4f81a4aac381239f5f1", - "description": "radv: configure PA_SC_HISZ_CONTROL on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f078f02d1ab8a005df303ec71884365757a4c88", - "description": "radv: update configuring SPI_PS_IN_CONTROL on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "640613f5a36b9a1b19c8a1a56936e84c9e7f2538", - "description": "radv: update configuring GE_CNTL.PRIM_GRP_SIZE_GFX11 on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0412b8c02b11b0e22be454a9103ebaca65899308", - "description": "radv: update configuring SPI_SHADER_PGM_RSRC4_{HS,GS,PS} on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50df855fbaaa6b0dee715553da9dd5839327fb19", - "description": "radv: update configuring SPI_SHADER_PGM_LO_ES on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f77fde475ebc02fab80df386f5e949d4b87408a", - "description": "radv: update configuring SPI_SHADER_PGM_LO_LS on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8dbd35360682c504e36ed53aecad7698f2228f68", - "description": "radv: mark all images coherent with TC L2 on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2786928ce8d6803cabed6914e9f1a44d68e3b1d6", - "description": "radv: do not flush L2 metadata on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b795685da242370c270fca0747e2f59e97d58313", - "description": "radv: update configuring the attribute ring on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e080ce9004b0594204e63fe16438cfd5b2ae780c", - "description": "radv: do not enable MEM_ORDERED on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a551981869b1fb2a80d1eb9b7a32bd96de1c96b", - "description": "radv: configure DB_RENDER_CONTROL to zero on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1abbfb893a58a922359d9b04cb6b748b154f0c1", - "description": "radv: configure DB_Z_INFO.NUM_SAMPLES on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e0b838c7b4e4401ab1be324584b67656e264c3b", - "description": "anv: use os_get_option instead of getenv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce43d7eb7f97bdde61b184a99940c4b03c2f0929", - "description": "lima: drop unrequired opt from standalone compiler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "84216abd9468ab1b1431b633f716e9d0eed9c043", - "description": "Revert \"anv/grl: Set INTEL_FORCE_PROBE=* when running intel_clc\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "aa152ef43129dbf09f02ecb59f6b81a711967d92", - "notes": null - }, - { - "sha": "43f795d19f00f62d9b8292f47ae97e976cfde17f", - "description": "intel/dev: If building the driver, always allow getting device info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fbf5ea6b441ddec74c94acb2e7aa37bad2fd5c7d", - "description": "intel/dev: Silence INTEL_FORCE_PROBE warning for intel_clc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fbe0f8d36d62bb11158ec50de5275bb26e0a6bbc", - "description": "intel/brw: Blockify convergent load_shared on Gfx11-12 as well", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b1b2d9e6d6679559340ad38a7ec9256ce40a146", - "description": "ir3: Add some more missing progress accumulation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc68610f465bb1bbfe9380a134b5f42bdb9e8c28", - "description": "ir3: assert that no further optimizations can be done if !progress", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "37057ce6917bbd8239743725bbf0eb4c66c917ef", - "description": "ir3: flag progress from nir_lower_io_to_scalar", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb1068c668464189516bfd8bb626cda74721e92b", - "description": "ci/etnaviv: skip Vulkan tests on GC2000", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d2168ce0a2b3196c8021447a6dd055e14352c7c", - "description": "vulkan/android: Fix YcbcrRange for !mapper4", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "930e4fa2833a2a53f6017cf87973aac42cd90f75", - "notes": null - }, - { - "sha": "53df0147306b21598de0c363ab99febc0f8b4cbf", - "description": "tu: Fix imageview + ahb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa939898bb462433a04b994c155ca2b336b3f291", - "description": "broadcom: fix issue of \u2018addr\u2019 is used uninitialized", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1e52baf30212ef8fd8f8a61753d2ed1ae9448ab", - "description": "radeonsi/vcn: enable roi feature for vcn5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "83d01892884af82f2ffefb715e9fedbeab24e201", - "description": "radeonsi/vcn: enable av1 encoding in vcn5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d90a1baa5d70be7312086f480a7a8372ce1399a", - "description": "radeonsi/vcn: add header files for vcn5 av1 tile", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5860d4348a188811633b838c6448e51e21b07856", - "description": "frontends/va: parsing uniform_tile_spacing flag", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "250c89dd6de186da07176c92bfe10c581e33f312", - "description": "radeonsi/vcn: share functions between vcn4/vcn5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0712a5ef9682c6367f224b432b2412af6adfaba4", - "description": "radeonsi/vcn: apply cdef mode to vcn5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "80d3e84b815cff73097f4602d35fbb23ec9453eb", - "description": "radeonsi/vcn: add cdef modes for vcn5 encoding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e20acd605efea859e96f35049ff8a662dc257992", - "description": "radeonsi/vcn: correct tile_size_bytes_minus1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57307df76637cda99889081730a99c0c214c2293", - "description": "iris: Load 32-bit MMIO PREDICATE register from buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2aaa6ebba186fad610208ea5553ff93760718dba", - "description": "build/amd: add amd-use-llvm build option", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38dfbae116722836c985179b8e5105ca9faee0ca", - "description": "android: Fix zink build failure", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "cfa955ed78bef56ba025a64468e8b841149fab18", - "notes": null - }, - { - "sha": "21138f418cf468bd1338122fdf462b78e91f5491", - "description": "etnaviv/ci: skip VK piglit tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ec480825e6b0ab790773de96261f56f953f05e0", - "description": "panfrost: mark tests as fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fbb306df155fab8882cd74ad7884931f8a42802c", - "description": "panfrost/ci: add missing genxml trigger path", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72b1fa2ba30d708abd02e5f227683c234809d11f", - "description": "radv: fix configuring the number of patch control points on GFX6", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bf936d0291bb323e233516cd592900ec8686379b", - "notes": null - }, - { - "sha": "07855b0431cab4a96c4273d1757c1d6f5a09aca6", - "description": "intel: Compute the optimal preferred SLM size per subslice", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd368f5521129731d2aa91f0f14603d9e05c32cb", - "description": "anv: Set maxComputeSharedMemorySize value for Xe2 platforms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ddda68bbf56ee0111d683a8bff471349dc43526b", - "description": "intel: Set preferred SLM allocation size >= than SLM size for Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4478ab4e335bc0fedae95a781ecaeb856621b95", - "description": "intel/dev: Add function to get the number of EUs per subslice", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df3ce7add23b11c958ea5dfee2c9e7c0765b1333", - "description": "intel/dev: Use topology variables to calculate strides in Xe KMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0af347791cffe00e18ffd7ba38543ab75f1538b", - "description": "intel/common: Implement preferred SLM encode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1ffbd4f51557a5727e11b9661a0987af7763d38", - "description": "intel/common: Implement Xe2 SLM encode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5f71bae02f463139779b37fdc9639c3c5e70f4d", - "description": "intel: Move slm functions from brw_compiler.h to intel_compute_slm.c/h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "357dde47a59ee651e42822b47f59a41d81af544f", - "description": "docs/calendar: add 24.2 branchpoint and release candidates schedule", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d91d2c275ef916e79e1e211cb1a86562d0e76f13", - "description": "panfrost: change default rounding mode for samplers", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad033506aa44cabfa67618c9fb48c19a523fe952", - "description": "radv: Ignore mediump IO flag.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ea2bad74d563a2478be12b4034b980cf9f2fcd8", - "description": "nir/lower_io: Add option to implement mediump as 32-bit.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be49b02f0517d38a9445039789eebe1e0f7dcc73", - "description": "radv: Properly link TCS->TES IO again.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2cf7f282df720b9bf80e8bfa6ffae0d7b51a09f5", - "description": "ac/nir/tess: Adjust TCS->TES output mapping for linked shaders.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "902b14263744f749f8dc86f6f3eeccd312532ae3", - "description": "turnip/android: Use DETECT_OS_ANDROID in freedreno_rd_output", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fee2715ce89430c180f3c821e2b3523526541a8", - "description": "turnip/android: Use DETECT_OS_ANDROID in tu_device", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "99753001f35ae5791b64d72efe5278795004899f", - "notes": null - }, - { - "sha": "c1373239f2d793a993c1c074439701e4513e4a15", - "description": "radv: allow STORAGE for depth formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f9af8e7a2be57d4e22ba35a44726d6875419533d", - "description": "radv: do not enable HTILE for depth/stencil storage images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2fd49201ee540a467bc14af79cbfe3d25537cc3", - "description": "radv: update VS input VGPRs on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5636af1702a574171538384711e4dc2f0fcded32", - "description": "radv: update SDMA resource type on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4d2578e91bd45fd814c4822eaa86645650a8e5f", - "description": "radv: update global graphics shader pointers on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa0f9e356f4ddcebb6bb98c9e1c31953befb7d2b", - "description": "radv: update NUM_THREAD_FULL bitfields on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45b6b0cafb6e3fe259d7fa86e7a30255a1758781", - "description": "radv: enable GE_CNTL.DIS_PG_SIZE_ADJUST_FOR_STRIP on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ac7154189108cae0c131c15dd149607607b2c70", - "description": "radv: update configuring VGT_SHADER_STAGES_EN on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf936d0291bb323e233516cd592900ec8686379b", - "description": "radv: update configuring the number of patch control points on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6ae8c689eafafae6287a865d3cb5d2775b3db67", - "description": "radv: emit SQ_NON_EVENT packets after drawing with streamout on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d50725ffe70e3c100cf87b30b3e5848de96091f", - "description": "radv: disallow merging multiple draws into one wave on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f25b2d179e88d3e12a0868b138cffd96572e2021", - "description": "radv: update emitting stipple line on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "137b49ecd7644ca032a4776c4bb2f6a5c78d327f", - "description": "radv: update cache flush emission on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd95512e0a4d18f45236227d08a771060444f497", - "description": "radv: do not emulate clear state for shadowed regs on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce6557cc04856787b5e196ec43055c1c35f362a1", - "description": "aco: adjust loading local invocation ID for GS on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06598bc7071b0231ade0a3d4de3299c60349472b", - "description": "radv: update shader input arguments for GS stage on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "10b97836b992a773d675b062006d46ac62c4c336", - "description": "radv: update emitting discard rectangles on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f518bf1cb00a6a1e1fe748cbfd97c0f90014f89b", - "description": "radv: update binning settings on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18e6a9a6a84782186cbd1ef944cd1329364b4b16", - "description": "radv: update configuring tess rings on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "19de04748efc5dd21367ba4e6cd6a0e60352bbb5", - "description": "radv: update configuring GFX preamble on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a12373f4625d56d38788382ed8c14a973e342b14", - "description": "radv: update configuring MSAA state on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78e272432b0f14e1b7ea09f0c17505bca8bdac10", - "description": "radv: update configuring occlusion query state on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "61e78fb14347e55fe845f84c019b66d86154a365", - "description": "radv: update configuring some CB states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b28107f46a612c2c15ddd48a45618b383dc05142", - "description": "radv: update configuring rasterization states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0c019ff0287d6ed2662639d889cc7e94e3498ac0", - "description": "radv: update configuring DB states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f12c2366256ee47711ef709c96f5b0a0aa6cb31a", - "description": "radv: update configuring VGT states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b4a50a3b7e4953a5ff6282c97676be298844f25", - "description": "radv: update configuring NGG states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f5937dd362d623d8bd1ea02b0135b7417c32e84", - "description": "radv: update configuring PS states on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "65df7248ff98209fbec1b5f23b54f0a885aada14", - "description": "radv: update configuring viewport/scissor on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f015a4f453ad4deb76e77cc3146602d5a4457695", - "description": "radv: update configuring sample locations on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a8ad33caacac6d27713b8dd93b2a293d76a1bfc2", - "description": "radv: do not emit non-existent registers on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "087e49aadb40e6d3d779a8563c0f94e9d47ab1c4", - "description": "radv: enable GS_FAST_LAUNCH_2 by default on GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6ffde61cc6d8b45067fda9cda76b5a02ffe4452", - "description": "radv: update NUM_THREAD_FULL bitfields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "78b4d356f32b683e7a16304101e0447ef107d073", - "description": "ac,radv,radeonsi: add ac_gpu_info::has_tc_compatible_htile", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94a6eb20f94e4cc3f44308cd36e6242e8ee3e482", - "description": "amd/common: define SDMA v7.0 for GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ff1e59ba74085449b368a873beb8d80643555bd", - "description": "radv: only emit streamout enable for legacy streamout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fe5129d3db36b230a3b7d86bfbbdfee47081856", - "description": "panvk: Override the default GetRender[in]AreaGranularityKHR()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c2b4de386668b1870a9283ce5a32e3787c7a993", - "description": "panvk: Make sure replay of command buffers containing Dispatch calls works", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0142fdf81c06a5f4963e4be5e82d6876b1f708fe", - "description": "panvk: Make sure we run the fragment shader if alpha_to_coverage is enabled", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98ab2d34366a130fa68f59558b40f1ca12940343", - "description": "panvk: Make sure we don't lose clear-only operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a1be9ee375a089f2b0933ff8a22862f81adf9306", - "description": "panvk: Fix dynamic rendering with images containing both depth and stencil", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c82ce475d1ecb7a51cc1dc9a8af79690a3c0a85a", - "description": "panvk: Skip depth/stencil attachments with non-matching aspect mask", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e17e285b8f75e4da79d210d9c0d534067b4f2dd7", - "description": "panvk: Force a preload when the render area is not 32x32 aligned", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ff5e56eb74c7d418bf94a085c7e4eaa83335dea", - "description": "panvk: Take VK_RENDERING_{RESUM,SUSPEND}ING_BIT flags into account", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f8b691c2e872535de16ccea6cd2e0f8e2cf2fdd", - "description": "panvk: Add a render state to panvk_cmd_graphics_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac47ee1be74fec99583dd5cdd451ca3db55cb91c", - "description": "meson: remove --depfile for aco_tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11e85c8ce093afa15a8ce3a9072c6c6990a1898f", - "description": "gallium/drivers: do not link against libgalliumvl directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9ea6a3ab79fdb2c019be9386802aafa23acd0b8", - "description": "wgl: link against libgalliumvl_stub", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "691a22f01505a2e858ba9fcd7c6a353e80355bce", - "description": "rusticl: link against libgalliumvl_stub", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6f281bcb5ee9e1ded5605a11244bd32bc08efb8", - "description": "meson: centralize galliumvl_stub handling", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c9c48a3ae16a72d02b928b4346a53c56e43d597", - "description": "gallium/vl: remove stubs which are defined in mesa_util", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "95871d48aadf4babf6b0106ff52c46b51a43b0c9", - "description": "gallium/vl: stub vl_video_buffer_create_as_resource", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "467fc985cdf1e4436f28d10be984cdca0cf3d2bf", - "description": "zink+nvk/ci: add flakes seen in latest nightly run", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd49b815ce3c3d29559911a9d49f50353f44dea6", - "description": "anv: optimize POSTSYNC_DATA rewrites in timestamp emissions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3984875792fa00a93ac2863681238c4bd8069111", - "description": "u_trace: extend tracepoint end_of_pipe bit into flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "265b2b12558c26968cb8d8cb0396b74e5fd0c9c2", - "description": "anv: move last compute command pointers to the state structure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d4e56d22a6525484a4e4593173febc93855b116", - "description": "anv: fix timestamp copies from secondary buffers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "521c216efcc0d0292ceedb3451c5a0a1ef956083", - "notes": null - }, - { - "sha": "1511b25b0fae372f446185ebbd515e52a924c2cc", - "description": "anv: fix utrace compute walker timestamp captures", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "521c216efcc0d0292ceedb3451c5a0a1ef956083", - "notes": null - }, - { - "sha": "5ec1f7fe38223195fe3e117ac66d5244a9f176b4", - "description": "v3dv: shader modules are deprecated with VK_KHR_maintenance5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6825fc48f58c62ee51edbbef701718355c68c04d", - "description": "mailmap: Add Karmjit Mahil", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1d3fa007cabdcb69f37acdfaa8154402cb6e760", - "description": "intel/dev: Add BMG PCI IDs (with FORCE_PROBE set)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1964346481dbc5fad08004b26c434bf599905be5", - "description": "intel/dev: Add BMG device info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25e7b74712164a7d0d5b298fbdec78a678a7c79c", - "description": "intel/dev: Add BMG stepping mapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4a180639ff820494786e8f4bc4b2ea86b366728", - "description": "intel/dev: Add LNL stepping mapping", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06ec218fdfe5308ab924cd5aa38bcbdd3adb5531", - "description": "intel/dev: Add INTEL_PLATFORM_BMG enum, BMG WA info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2dbed2da0df2cb8eda8548c36756c4f679e227b", - "description": "intel/dev/mesa_defs.json: Update LNL WA entries", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8ccf70c99bc921e50306cd48c62c9a47a8beb70", - "description": "anv: Properly fetch partial results in vkGetQueryPoolResults", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7bdcbe11ac507b0b96d2333aaeab5cf63de9ad10", - "description": "turnip: Remove workaround for CTS bug zero-sized inline uniform block", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a54f7f7dc5e23b925881b004f2f1e4f5dc996bb0", - "description": "v3d,v3dv: add compatibility revision in GPU name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac7971e7f466a5c44e2c3d2f5930faa4a989dd26", - "description": "v3d: use screen name in disk cache", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7900ecdfc78eb624e5a9da6e95df4ddb5a9caafb", - "description": "isl: Enable volumetric STC_CCS,HiZ+CCS on gfx12.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b69a34ab662243ace39e78fe0ff4506035fa0073", - "description": "isl: disable CCS for 3D depth/stencil surfaces when WA is applicable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1891b3db738ecfe46177c623458cbb7e4e1d3b0a", - "description": "intel/isl: Allow sampling from 3D HIZ_CCS_WT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "309c228bb7f68d845dda139f230fdbad64e95f40", - "description": "anv: 3D stencil surfaces have fewer layers for higher miplevels", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1829d74ad309a4b3f3c62e7294384d4c13724518", - "description": "aco: fix fddx/y with uniform inf/nan input", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09fb55ea923d76d56a29ead6db3f5b9a941e635a", - "description": "meson: fix deprecation warning in create-android-cross-file.sh", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b8f1e95cbe2b18e814252472a4e1407d7cb076af", - "description": "freedreno/a6xx: fix kernel -> compute handling", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9b2780dcaf486ebf91e9743251d998f97aeccde5", - "notes": null - }, - { - "sha": "b04d99d093d2de7f0ccdf0071c50aee3acb21686", - "description": "aco/optimizer: use p_create_vector to create mask when a copy can't be used", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2b56a97374ce9c2b453b69ca001db4b0886d5ceb", - "description": "aco/lower_to_hw: optimize split 64bit constant copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5910a461017bae249ae98dc2d0f48c5be056c847", - "description": "aco/lower_to_hw: use copy_constant_sgpr for masks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "23d88e68fca0dc3d6076255cfee6b88ffb73d2c9", - "description": "aco: small constant copy optimizations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54ad07c32a955af8e21e50680a3441bfbd688546", - "description": "aco/lower_to_hw: add copy_constant_sgpr", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "56354c6cd790e22bc03098b9f1f158392d555343", - "description": "aco: don't pass program to emit_bpermute", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "98a86f874327233a2509987268f72dc309c10602", - "description": "v3dv: lower maxVertexInputBindingStride to match vulkan runtime", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "03554f18b31bd954867354a3354728e39635b8ff", - "description": "v3dv/device: set DescriptorUpdateAfterBind limits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d6ac631c43b0b854901b698e17f30b06bc98560a", - "description": "v3dv/device: compute maxDescriptorSet*Limits multiplying per-stage by 4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f3c83a6b74859b391f33d7152b0ef9b627d861f", - "description": "v3dv: handle VkPipelineCreateFlags2CreateInfoKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ff01962fcb5c58dad5c87cf28a2389f4672bc0d", - "description": "v3dv: handle VkBufferUsageFlags2CreateInfoKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b31919f36e7a31cf5c732bc8ebba8e8195860472", - "description": "radv: Return a block from radv_replay_shader_arena_block", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "28be0cca4515d3af1a3d71623f312731fe1fec02", - "notes": null - }, - { - "sha": "0f7bdc2d36fe916b24cc1b62601fed2077039fd8", - "description": "mesa/main: fixup indent", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e80201a6858b44ff5f686e8f80b4f3bca7073b8c", - "description": "mesa/main: prefer non-suffixed enums", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a37333305bb4dec16613ff8ec4a055b99d9d242c", - "description": "mesa/main: do not return _REV format for uncompressed format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9b4507faa7bbe48407ed2e9238dc94d2445de2f", - "description": "mesa/main: clean up switch statement", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ddd0432738fe62a4a00d76bc5b33a1dee6223ee", - "description": "mesa/main: clean up _mesa_uncompressed_format_to_type_and_comps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d549d4fa824559ae2a13212840c213ba708c329f", - "description": "mesa/main: rework GL_IMAGE_PIXEL_TYPE query", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "563b9786ced2a1469c831c4a70393045a642bdf2", - "description": "mesa/main: remove unused function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07a826ba938ff40a07d19c31e75892bdfe2c68a1", - "description": "radv: fix flushing DB meta cache on GFX11.5", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc29d2c9fcf76f70b33c1ea1795a309b5d4e3636", - "description": "zink: add atomic image ops to the ms deleting pass", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "90cf8d14d619967b2da7471d04bb20aa0665a482", - "notes": null - }, - { - "sha": "8e60f260163b9363b5a72914764e611966b2bc46", - "description": "vc4/ci: skip VK piglit tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20f4cd88e14642da210dc0e44bea615fa0780f1a", - "description": "tu: Advertise VK_KHR_maintenance6", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14d3dd8984cf67b46d14031757104b77cbbd6734", - "description": "tu: Add support for version 2 of all descriptor binding commands", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94e2c6d0000ad27a3c0bbbfbe8698c60218f6e93", - "description": "tu: Add support for NULL index buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ac6aaf52220036467c28ad6a35e4ce725e53942", - "description": "tu: Add support for VkBindMemoryStatusKHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06f74071725a432a5633101a1e02e9db9d139530", - "description": "ci: disable debian-build-testing until it can be fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "410ca6a3e99c5c1c9c91f0f79bf43a35103cbd98", - "description": "Revert \"anv: Disable Ray Tracing on xe2 until our compiler supports Xe2 RT\"", - "nominated": true, - "nomination_type": 2, - "resolution": 2, - "main_sha": null, - "because_sha": "65684b0c7f852d8acaced018e0684da981cf6211", - "notes": null - }, - { - "sha": "f1b502f8c70dd5f923ff39e60444223154b48324", - "description": "anv/grl: Build for xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ffe1a9f9e6d123408482dcee08d56c8baeee074", - "description": "intel/brw: Fix SSBO/shared load offset register size for Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bc4da01f4478d3bbfb7f27fcc896d6220fa4a47", - "description": "intel/brw: Allow xe2 in brw_stage_has_packed_dispatch()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "739613ec705cf04ddb0be171d31c16bf459065f3", - "description": "intel/brw: Simplify enabling brw_fs_test_dispatch_packing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa152ef43129dbf09f02ecb59f6b81a711967d92", - "description": "anv/grl: Set INTEL_FORCE_PROBE=* when running intel_clc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2217cff68aefbe450ac5dc49a23e83fce1561caa", - "description": "pci_ids/intel: Add LNL PCI IDs (with FORCE_PROBE set)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "845ca72a14d31130251e2d0ee50cf7c5dc1d707b", - "description": "intel/dev: Add LNL device info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4beab24d69e43fcaa92ca635b20e8c12d7b504ba", - "description": "docs: Document INTEL_FORCE_PROBE env-var", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "237d9e7c450434596538d65f9cc8ffec57f593cc", - "description": "intel/dev: Support INTEL_FORCE_PROBE env-var", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c967b38c7c6fde4188f938c7cef4ebe2180a6815", - "description": "intel/dev: Allow setting FORCE_PROBE for intel PCI IDs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d098ecfea0fca662ece82f8162ea43991a4636d", - "description": "anv: check cmd_buffer is on a transfer queue more properly", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "17b8b2cffdb07eaf06a309fabcd933886f6e7070", - "notes": null - }, - { - "sha": "e6d9201c6c2f76a3d06381fc622ecfce1c4b54c5", - "description": "v3dv/ci: fix typo in `renderer_check`", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "993dd0832fb007e03bfd8bac2e90bb98b8792c0d", - "notes": null - }, - { - "sha": "dc3bc70899bc5cbc88d9620838817e63010f3a6b", - "description": ".mailmap: fix email address for @cpmichael", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76047bfa5e6aedaf801b306ef3cf9528f74b19c1", - "description": "pan/jc: Drop unused pool argument passed to pan_jc_add_job()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "443fe41ad2f9ea7b622a125d7fe4f1d54f51fe05", - "description": "pan/desc: Add missing format in translate_s_format()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "586e427b78976ffd0ebd134d08e733215cf6cf90", - "description": "pan/decode: Be robust to NULL texture payload", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20d25b9f070f99ac965686c2e3340b8f8336ad1b", - "description": "panvk: Make sure we dump memory mappings before crashing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47a1daa6da714e1ff29700e4cb97fc45814cceae", - "description": "panvk: Kill cmd_get_tiler_context()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f57fac8d3779db18e62d4c2961a39a233c7ade52", - "description": "panvk: Use vk_pipeline_shader_stage_to_nir()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f21c163baa2fd861fcf9504dbdc0338cdaca83d4", - "description": "panvk: Clean Midgard leftovers in the cmd_close_batch() path", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd8fb7139df7329a287a0d0484790095dbe28acd", - "description": "mesa/main: rewrite mipmap generation code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd373849851232ec38f83c39f037c084d4de467b", - "description": "util/format: correct a typo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fc6f95e90d0247b963a23f38a821b5919451619", - "description": "intel/genxml: Update STATE_COMPUTE_MODE for Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f5a5c3571785b2447b51843034ebc8486b7b84bb", - "description": "intel/genxml: update MI_SEMAPHORE_WAIT for Xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "569a037fb17a1292505fb402badd22074fe1d0ba", - "description": "intel/genxml: Update XY_BLOCK_COPY_BLT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26e78f83bb131e2c7b6b9900575b430fa7240fda", - "description": "intel/genxml: update CFE_STATE for LNL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "70011342462e61b6593704f2eb5a7015bc76aa1a", - "description": "isl: enable compression for CPS buffers on xe2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9c68883c43e7df3ea897214eee6e78dfbf814ee", - "description": "intel/genxml: update 3DSTATE_CPSIZE_CONTROL_BUFFER for xe2+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd0964975015de8e667351b04c1dce36dbe8a8d7", - "description": "intel/genxml: add the new state byte stride instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17b6db893be6dd517cdbf1e17aef67f049aed2c1", - "description": "intel/genxml: Update 3DSTATE_BTD for xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5709bbe0337ad89113a90c6639d97f797281b47a", - "description": "intel/genxml: Add XY_FAST_COLOR_BLT for xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92fa87f5bd975803ba321875d35a65a0f6b2da8d", - "description": "blorp: Update programming for XY_FAST_COLOR_BLT on xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7605456a9b1b5abc742788fba9a1a50e2b8eab6d", - "description": "radv: apply the SQ_THREAD_TRACE_WPTR workaround on GFX11 only", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33ae2275bf6ddb412e7a26ca5cc7d79d844b0137", - "description": "radv: apply the workaround for no PS inpputs and LDS on GFX11 only", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a93f95c69c8163eb7655ed426d9c164d8e5c085a", - "description": "radv/rt: Remove load_rt_dynamic_callable_stack_base_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "432f3eb9ca8beac699750239ad04c70565f116f2", - "description": "radv/rt: Track ray_launch_size reads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ba8fccad3b226082601368cee25161d4f1dd320", - "description": "radv/rt: Track ray_launch_id reads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9fe34a32043f23ba1fe31012bfd54ca846b3e16b", - "description": "radv: Remove uses_dynamic_rt_callable_stack", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1038f48dd119df81150b3c1e00460de2ffd12bba", - "description": "radv: Replace is_rt_shader with RADV_SHADER_TYPE_RT_PROLOG", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "272dcaff012caf9d61f51a9d37a43cd03b1d6b42", - "description": "panfrost: fix some omissions in valhall flow control", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de07fd384dc8a5a054c8eee68cf93fe9368763fc", - "description": "aco/gfx12: disallow SCC and most constants for BUF SOFFSET", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12b4bdc1344f25b8a06e54cf74d0f9079f2cb309", - "description": "aco/gfx12: decrease max_nsa_vgprs for VSAMPLE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1b3237590b15f34a7a66727c4741f89f2cda88c", - "description": "aco/gfx12: remove MIMG vector affinity", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8bc03668e154ffc6aaca83d385aad5db8964b627", - "description": "radv/gfx12: don't add workgroup id shader args", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ef74407577f7a6dc1b13d1e13513e6aa6fbc3beb", - "description": "aco/gfx12: use ttmp9/ttmp7 for workgroup id", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8123b67e04ca6b7f6afd8dc1303ea797c7aa028", - "description": "aco/gfx12: don't create v_fmac_legacy_f32", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e79a8219d23b82f239d3ce7bda133bbe07cf29af", - "description": "aco/gfx12: sign-extend s_getpc_b64", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae18c88409a11bfa0368a465cd88afc898cb28b5", - "description": "aco/gfx12: implement workgroup barrier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fae2a85d57a49bfbd4efb05ea1d4e53071c2ffd2", - "description": "aco/gfx12: implement subgroup shader clock", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "872dda2bc5bb5de4467be47cd93a227dc5ef0b56", - "description": "aco: support GFX12 in insert_NOPs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4835dc0e7f303696a11ef37dde2ea72e89211bbe", - "description": "v3dv: Emit stencil draw clear if needed for GFXH-1461", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "1e81bb05aeb8bf070652b3c7406dfd1ac61a8c99", - "notes": null - }, - { - "sha": "9912c734e96096dc0388e7bba9f7d88f476a1b4b", - "description": "v3dv: implement vkCmdBindIndexBuffer2KHR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e00da334748d2a61c0063c94fa6166533d878057", - "description": "v3dv: use pSizes paramater in vkCmdBindVertexBuffers2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "70aa470bdbfbafb6a2baa8f601296eb5a544637c", - "description": "v3dv: fix incorrect index buffer size", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d2edd2585a89ae9d7e614ec9964bf6eb32036a4", - "description": "v3dv: drop unused stride field from v3dv_pipeline_vertex_binding", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "f4d426fae6b9ffdcf957dbf91d7863963bc754be", - "notes": null - }, - { - "sha": "a9f4931a9175751be07b8cb61aeeefb4c9a90649", - "description": "ac,radv,radeonsi: a function that sets mutable CB surface fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6836118cd28bf81021991e2356c6b8d455e7d726", - "description": "anv/android: enable emulated astc for applications", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "28be0cca4515d3af1a3d71623f312731fe1fec02", - "description": "radv: Add locking to radv_replay_shader_arena_block", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c31038ef98621f726f95f8b87c46d47bff8076b6", - "description": "llvmpipe: Use a second LLVMContext for compiling sample functions", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7ebf7f49a052c75f49496e31f7b3ccca716d30e5", - "notes": null - }, - { - "sha": "a93b1960af24ddd18b85cf89fd438bcf64673802", - "description": "v3dv: emit a default point size when drawing points", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7e0616ecc58a037572b9657af21075f3cb0655fe", - "description": "v3dv: only flag 'shader writes point size' if the shader actually writes it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c30833f23375bbcaa83e2e24a234e476aca283de", - "description": "broadcom/compiler: check if vertex shader writes point size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c07f1cdfb6dbd46cc607367befbb1245e8c3866", - "description": "nouveau: import nvif/ioctl.h file from libdrm_nouveau", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "821f4c8d99a3068758db834a5c219082a9609b3c", - "notes": null - }, - { - "sha": "9b932aadf468835979b749f072f7ac27429a07df", - "description": "radv: Remove radv_cmd_dirty_dynamic_bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d963fd596eaa2462dec55f354ed48f92010b0722", - "description": "ci: fix stress counter in run'n'monitor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a47c5c9eee93c5fb2d70800d5b4b07c3583b1947", - "description": "intel/perf: Add intel_perf_stream_read_samples()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9841aeb6ad3c1a80e90918a273fd38282b77e5ae", - "description": "intel/perf: Add a macro with header + sample length", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f128b2ba57dd95f93af1c372b2dcc93c6efd7bf", - "description": "intel/perf: Replace drm_i915_perf_record_header by intel_perf_record_header", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da43bf3f2ed906689a0ef1d678548647c3c0a836", - "description": "intel/perf: Allocate sseu in heap memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1c2847b812f181173ca3611c40f89d83f1f1628", - "description": "intel/perf: Move i915 specific code to load configurations to i915 file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30f97a7242680b34b230eef60e9a9b24e94714a0", - "description": "intel/perf: Move i915 specific code from common code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8ad56247c36040d6ea1ebc38f35985fb431f3a06", - "description": "intel/perf: Move code that will be shared by both KMDs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b601e4a18ffe9d0b7663631adaf13ef3e1a44afd", - "description": "intel/perf: Replace I915_OA_FORMAT_* usage by platform check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d2c3dc62be5410647fc651c3533c9a32fa46c3b", - "description": "anv: Nuke perf_query_pass from anv_execbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0442803eee764857f04758e3742d18a917ed50e1", - "description": "intel/perf: Fix return of read_oa_samples_until()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "42ee8d80d97b79e69c51582af3ae1ace2e49e0ce", - "description": "zink/query: begin time elapsed queries even if we arent in a rp", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "62c8e58f39d39ab28cc787312424030c4209fdde", - "description": "nir: add {load,store}_global_etna intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7e7ee6a604314d38ba330a9f9437e4d23fd07703", - "description": "etnaviv: handle missing alu conversion opcodes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "348ea02801ce4337139c9c3a7b504067809b81fe", - "description": "radeonsi: use the common helper for initializing CB surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07c6fdb878dd2259e47c1d6b74c8618b3242559d", - "description": "radv: use the common helper for initializing CB surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f7a36a9fb877e2723921ae2defa523f2ab8c5e2", - "description": "amd/common: add a function to initialize cb surface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1935e63545b9f8f7ad30f521ebb4f11135d15da0", - "description": "radv: align DCC control settings to RadeonSI for GFX8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "103da56fbadc12528204e6690ebcead258dafdf0", - "description": "radeonsi/vcn: Avoid copy when resizing bitstream buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0954afff5d2d46ce176d7d99fb2360b6234a5b1b", - "description": "turnip/msm: Do rd dump only when there are commands in submission", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9f5152ddd5cee3c160cc52a4c748da1dd42883d", - "description": "radv: malloc graphics pipeline stages", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "139bc6b8136c9a7aad57d469267deafc0430f347", - "description": "radeonsi: use common build buffer descriptor helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c5173aabfa5bcb6ef2fe73259bfb74e25ea1aea", - "description": "ac,radv: add a stride parameter to ac_build_attr_ring_descriptor()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb623b61441de47be0186c534906cf271d95fded", - "description": "amd/common: add a helper to set the third word of buffer descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc03f2ea5a414d5153a9d89ed017b79d3970e4e4", - "description": "frontends/va: Fix leak when destroying VAEncCodedBufferType", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "be4287c3aa06b7f22ba83696108759f5fcd58323", - "notes": null - }, - { - "sha": "19a875f7dc10d8ef9337d9b24904a14076a8b40b", - "description": "ci/freedreno: document new failure after piglit update", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "62b490fa923d2dabe232e5bacd1924fdf254fd48", - "description": "nir: Fix out-of-bounds access in ntt_emit_store_output()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d93d989e5d65922c6467cf61874f71665856bf80", - "description": "wsi: Guard DRM-dependent function implementations with HAVE_LIBDRM", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "59813ae468dc727623b9e701d06b14f5b959973d", - "notes": null - }, - { - "sha": "930e4fa2833a2a53f6017cf87973aac42cd90f75", - "description": "vulkan/android: Fix suggestedYcbcrModel with !mapper4", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "8732a619f13b05e6469f4841d6780fcdac3586ce", - "notes": null - }, - { - "sha": "67a3c812862364f54bcce224236168af9c551c24", - "description": "nak: Encode LDC directly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4366d4d1816547717d16f6ebab3012c33481a729", - "description": "nak: Don't emit a plop3 for immediate shift sources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8b2d25052796d6a9777b39b2b45e92cdd2bc67c", - "description": "nak: Add with -0 for fabs()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8061ed728a9db00b4e54208257e26438c5b08ff7", - "description": "nak: Emit !PT for carries on IADD3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1a4fcbb4a5e9ebe3ca89eb21fbf004893314554", - "description": "freedreno/ci: Update expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "890222fb5b77cae97a80735f40efeb4047ea6e0a", - "description": "ci/lava: move wayland-protocols to the main section", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97a081d41a26d724f9a7fe2c8611d7923fd337dd", - "description": "ci/lava: do not build Vulkan for armhf images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "61c07cc1d93da85daae300fac10442a58cd030a7", - "description": "ci/lava: enable Piglit OpenCL tests so we can test rusticl on the HW", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a14e91981ac21e7ebe9ab9e96891d8a8503bcf5d", - "description": "ci/piglit: be explicit about what we building", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "312b50da5c30546d36ccdb5d0d2026936eafaaea", - "description": "ci: do not build Nine in debian-build-testing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7cf53a0b160aee4094dc7e20d899dfe8dabacc6", - "description": "ci: re-enable shader-db for nouveau", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "addeb5ca9a399f2320d460884163ecb4533ec207", - "description": "radv/ci: add a bunch of flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a7facc97db5c90fae0052b735180ae858e01305", - "description": "radv+zink/ci: document recent flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "946b1027efe354707f58e7766182caf7438ae5f8", - "description": "turnip+zink/ci: add more flakes to the expectations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fed03b966210cac87d88b0b6c019287697bff57a", - "description": "turnip/ci: bump the a750_vk timeout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b6ea47020d9c010e230313b6a9996e1efd5f25c", - "description": "turnip/ci: document a missing flake from the a750_vk job", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb5096eb37707cb8266610829f9b2e11badbafff", - "description": "nvk+zink/ci: document more flakes in the ga106", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d9092ad49d44b771fe0ffa3d7c1fffed281425f", - "description": "nvk+zink/ci/ga106: make the expectations codename-specific", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0d3924c6050d8aeb88ed0eecf46928f0a4657fe", - "description": "nvk+zink/ci: rename the ga106 jobs to be more in line with RADV", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "43f9b3b98658e0b23f60dc570847cd6c66dc4dea", - "description": "glsl: make the xfb varying sort stable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5102a922e76284c18e33cf4d6e9fc7952b4b2e02", - "description": "glsl: test both inputs when sorting varyings for xfb", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "485d56ed8167b4491622dceef8e68cf1923e98ff", - "description": "mr-label-maker: label src/vulkan/wsi/ as wsi", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "003d49c0bcb1e7b6c74fba1de8770c2eafdc193f", - "description": "ac,radv,radeonsi: add a function to translate texture data format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1997226da9889091177d04551faa302e57ec50e", - "description": "radv: use PIPE_FORMAT in radv_translate_tex_dataformat()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7785a63fc00dc0c1911886fe459beb90823e095e", - "description": "amd/common: add ac_gpu_info::has_etc_support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae9331694ba25dd87b7726d03bbd6d02b1ad5b30", - "description": "radeonsi: lower NIR resource srcs to descriptors last", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f493d6fb6f8faf8a1eee80b979ffcddcd9fa25b5", - "description": "radeonsi: don't lower UBO/SSBOs to descriptors if they are already lowered", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1c65ce680cf7c4a8b51f3b087065a1c4051248b", - "description": "radeonsi/gfx12: fix a regression in si_init_depth_surface", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "d0810d528c602cdc7e2b8dffdd2ec19800fb36e4", - "notes": null - }, - { - "sha": "321cb43c112039a02631a8357ab147264ad41bd5", - "description": "radeonsi/gfx12: fix depth bounds register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59d7d06828e46e147f46151af38a70847bcb90eb", - "description": "radeonsi/gfx12: fix a regression in si_set_mutable_tex_desc_fields", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "26cd3a1718c7e8f55fa8605f20fb001b2954d6b4", - "notes": null - }, - { - "sha": "a548ec7ad497057647e363c66351893bc45f4f3f", - "description": "radeonsi/gfx12: disable CU1 instead of CU0 for GS due to SQTT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34be14d957aa6e4252a9d61b5d5ad7cb74a8424d", - "description": "radeonsi/gfx12: fix incorrect condition for when to do clear_buffer via compute", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76b0ad33bc6399c803dd74161f1510158d358841", - "description": "radeonsi/gfx12: fix the alpha ref value", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ab0e18db4118b768efeddcd15952f2491a0bdb9", - "description": "radeonsi: vectorize loads/store after ABI lowering and optimizations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35c5435eaece10bea5013309fd473d789902eaca", - "description": "ac/llvm: fix incorrect parameter type in llvm.amdgcn.s.nop", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad07ea31622716c0f420e3159bd1b8976010df03", - "description": "amd: enable 32B minimum DCC block size for gfx1151", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cf4eb415405fc93eea1aebf734d5b2876ffbb842", - "description": "amd: add more gfx11 APUs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7650127040acbc9b557634305433693fa1c87077", - "description": "amd: update addrlib", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02745186158c4ddeb5623deb0b500302b84c4350", - "description": "nir/opt_varyings: reduce stack usage", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c66967b5cb7aa69c3c2efb12730b7b570483e01b", - "notes": null - }, - { - "sha": "f7a262cd6d4c6848fe447b72c0832c860108b020", - "description": "freedreno/devices: Fix indentation for Adreno A32", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "cd7da3a8073ff4094eabf94c0d775776aa555dca", - "notes": null - }, - { - "sha": "674d5b54bf7f41f9d77ea20d15ef6e8a1a502607", - "description": "tu: Expose VK_EXT_nested_command_buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd5f980d511b3da442565ee56b428cac37a2a103", - "description": "ac,radv,radeonsi: move ZRANGE_PRECISION to mutable DS fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "332a06903dd856256040c6388c952593b65e5ee1", - "description": "ac,radv,radeonsi: a function that sets mutable DS surface fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a08fa6150929dc5d99559925460ef6dcda32e28", - "description": "ac,radv,radeonsi: add function to get the number of ZPLANES", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "709452b9d1915f9a7a4314b97d557e78f6b076cb", - "description": "radv: do not check image usage for ITERATE256 with TC-compat HTILE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dcfa351af30e2909c0adfdd4305cc5dec1c23a91", - "description": "radv: only enable DB_STENCIL_INFO.ITERATE_FLUSH when necessary", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2adf01fa61307ce8fc145c72e55e5e88d634504c", - "description": "panvk: enable KHR and EXT BDA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "deb9756e233dbdf938680d4fdb029666d82b3af5", - "description": "panvk: Lower global memory IOs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe59b772b5d18f56de7ececbb5b4b9273e5aa2f6", - "description": "bi: Alloc replacement array once in opt_cse", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01ea55b44ca73c4e9a4d323daf613669b6828708", - "description": "midgard: Reformat code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "547308990d57d161f09d69d2a25b21d970f0ee44", - "description": "bi: Reformat code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c65d90bc8500bb8ad0b9204798905e4d79fb283", - "description": "intel/brw: ensure find_live_channel don't access arch register without sync", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "49ee3ae9e8be4fd2a4a9f658c06e0bf01e08d13c", - "notes": null - }, - { - "sha": "1add55863f30f18e48193acbbfef4e37e17732e7", - "description": "zink+nvk/ci: spec@ext_external_objects@vk-vert-buf-reuse has been fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ace5c27898f11026c71fb74ac23585735bb7d642", - "description": "zink+nvk/ci: add more flakes seen in nightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6789d4c0b28e1565c7cd5674a6bebd53838b027d", - "description": "zink+nvk/ci: more KHR-GL46.packed_pixels.varied_rectangle.* flakes, so mark the group as flaky", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6843a7951b41cfd14a95e79888b8320de6ed606b", - "description": "ci/b2c: make B2C_JOB_WARN_REGEX optional", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "bfd4db0476db3fddbbac343ffddd99e2362bbb3a", - "notes": null - }, - { - "sha": "865e682ad7ffcc97b931feb05f0541ac8a0f54fd", - "description": "broadcom/compiler: apply payload conflict to spill setup before RA", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb83f25b39173db92d8ccaeac3a9b640f46f7651", - "description": "broadcom/compiler: don't assign payload registers to spilling setup temps", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "901c4859970989a85c72bac9d71c5fd43b6deaff", - "description": "broadcom/compiler: make add_node return the node index", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33492dd9e8bc1b514d829ad2251ff7cd73221c14", - "description": "ci/radv: dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units passes now", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c39cf7bcab3bbf79f91a63d207e709bfbbf94998", - "description": "docs: correct svga3d redirected URLs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fca045f02f97b5d5e17d16cd5f3bf9c4d5bbe3f0", - "description": "ci/freedreno: a3xx will never have Vulkan support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c71f650c2dad691b7c0745a5b1b8a813704a2e5e", - "description": "ci/venus: skip a timeout test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60488962dbec646f3b9dadfec0def3bebc385f60", - "description": "venus: allow non-wsi image alias path to passthrough upon bind memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c97f9193ef5d99ec8dae90d92671be8a687c2cbe", - "description": "venus: drop internal memory pools", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db62ec3370c2b96be2bd5b1e0e6ea7042e7ddc8c", - "description": "ci/nouveau: adjust and add DEVICE_TYPE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18eb91da59ce4057fd35aa82016f618eae36289a", - "description": "ci/nouveau: separate HW definition from SW", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6bc660a5429d0cae6ea3135c1262be5edbe94b25", - "description": "ci/nouveau: move disabled jobs back from include into main gitlab-ci.yml", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9442571664e5a7d6e06f098ce4ea2246e5504796", - "notes": null - }, - { - "sha": "d315585d89dd37bd18ab3b9cc40ad3a576637c8b", - "description": "ci/r300: update flake list from nightly reports", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "450c9460c641807a66ce1017c0c8a1aec94c243d", - "description": "freedreno/loader: Switch over to probe_nctx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ea4a59ab7cf07d660c424760ec74eff8f34a3cc", - "description": "loader: Add better support for virtgpu nctx driver loading", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27ebf58ee8cf9117198af72cceafba1e1bf326ae", - "description": "virgl: Update headers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bba6418fcb67066cdf5bb92fa88ad3cbd69b1811", - "description": "freedreno: Namespace DEFINE_CAST()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f2288095b86b70db8a9ed3bf0d06b960cf1b132", - "description": "anv: fix shader identifier handling", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bfd4db0476db3fddbbac343ffddd99e2362bbb3a", - "description": "radv/ci: move amdgpu-specific kernel message warning to src/amd/ci/", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e3099fc8390b6d40ba34ad9c81f8d50763b0d5ae", - "description": "spirv: Add MESA_SPIRV_DEBUG=values to dump all values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0effbc625c06b0031b112cde3d8f328746142a1a", - "description": "nvk/ci: add missing .test rules to avoid running nvk tests in post-merge pipeline", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "94c82cd938ff5a0f7426aec33bca1bc4f540a634", - "notes": null - }, - { - "sha": "d0810d528c602cdc7e2b8dffdd2ec19800fb36e4", - "description": "radeonsi: use the common helper for initializing DS surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ed30b320c8a2c42abd27d55e22f78a60570dc440", - "description": "radv: use the common helper for initializing DS surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "636110485f465d839efd8ed921ae5d24c650343b", - "description": "amd/common: add a function to initialize ds surface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1da1c891ce4fdf80ee5373e65b83b3d42b8db6a", - "description": "radv: separate non-mutable vs mutable fields for ds surface", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55be5868c5881baa6c165afe6b67d52f31b71b71", - "description": "radv: tidy up radv_initialise_ds_surface()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e9a390cb94a77ae7c0f055ce4b593ce165ca5969", - "description": "radv: replace db_{z,stencil}_{read,write}_base by db_{depth,stencil}_base", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4d298673da9b05d826b960eece2e715a6b187330", - "description": "get_color_read_type: make sure format/type combo is legal for gles", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5120d51d82972e360b8b998e6af0befc9aba2f0f", - "description": "Uprev Piglit to e180f96239edba441f22f58dfc852cafb902844a", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c23c5c0a073b8592a386f67f0bac82083f32e1b9", - "description": "nir/opt_varyings: Don't promote flat inputs when moving post-dominator.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9dad0ced52134f317b063317415c73c558b2458e", - "description": "nir/opt_varyings: Print FS VEC4 type when debugging relocate_slot.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72330e607f5398e83af0ad062577d6cacde60f22", - "description": "nvk/ci: mark the job as failing in case of hangs, instead of silently rebooting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93493ea441df36f871c056b0ea635988bbac1b8b", - "description": "nvk/ci: adjust the regex for \"dut is broken and needs to be rebooted\"", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afef3820093253ec3c305a9cdeaf50e8403a0550", - "description": "panfrost: untangle faces from layers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8455e0521e8a8cbf136d0b21f315dc4efcac9a0c", - "description": "panfrost: explicitly loop over surfaces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6497adeb35309f126949e79a7bbcd14ee85902b1", - "description": "panfrost: simplify panfrost_texture_num_elements", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7cb2831ef57da11b6ab47c29f8d3914a47bd1b39", - "description": "v3dv/ci: Add more dEQP-VK subgroups that are currently skipped", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b448ffdd75cc94cceb5fbaf9be8d24320db00bc", - "description": "turnip+zink/ci: add gl & gles CTS jobs on the a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3088af9051f97019a0ba4fc1842c85e228b5d8ac", - "description": "turnip/ci: add vkcts jobs on the a750", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f9614c1872191f318638425a79049248bd10d4d", - "description": "ci/b2c: Reduce the length of the kernel cmdline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "265b0ebd9ac723969b18880de92d25d4ee444e73", - "description": "ci/b2c: add aarch64 tests for gl & vk", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2867a07922b5c252fdb09b8c82839df1b518b46c", - "description": "radv: fix setting a custom pitch for CB on GFX10_3+", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "3f7ddaf28163a23de218990908725387f03205c1", - "notes": null - }, - { - "sha": "f168dc6d537c21cae52d2b9a6f1f4bcf22e74bf1", - "description": "zink/ci: rename zink-turnip collabora rule to make it unambiguous", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "815a5e9a8e5efe4ab0e2824c29dfc8938e932631", - "description": "ci: add debian/arm64_test images for gl & vk", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7fb13a915328997618b6de9b252f536fc1d9e330", - "description": "ci/image-tags: rename DEBIAN_X86_64_TEST_*_TAG to drop the x86 mention", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c325632b14fb3318ff998bd973335cc10b584a84", - "description": "ci: prepare VK debian test image for multi-arch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "124ff9c2328b17f123ed47d2e06f6ad6f15dfa2f", - "description": "ci: prepare GL debian test image for multi-arch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3cd6f86b7e4aa653bf49fcb4d32cabfb74102746", - "description": "ci: prepare base debian test image for multi-arch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7cecc1604f3b9a3a7a73e53bae6aedcd0db85ca", - "description": "ci: rename debian/arm*_test to debian/baremetal_arm*_test to be clear about which infra uses that", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "968af05a531a9e6fb381438c0ad4f57d2abf9e75", - "description": "ci: drop dead variables (see previous commit)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27592453ac2a505bb44601dc8f06f5439f2ec64a", - "description": "ci: fix build-kernel.sh -> download-prebuilt-kernel.sh", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2abdc846067de60e771b4ef2b230d9d7bcba80b6", - "description": "Revert \"zink: use a slab allocator for zink_kopper_present_info\"", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "738fbddca8a1d8343e2ae322299de22a9ae108ae", - "notes": null - }, - { - "sha": "cdf75e8e02cdf68679a18db0a9141d75d162f047", - "description": "docs: update calendar for 24.1.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4cc6645ff823be25b58bf891b240ac4e483500c", - "description": "docs: add sha256sum for 24.1.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e3d86f7d33fb4017162c61e28ca8615377fce08", - "description": "docs: add release notes for 24.1.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7afebc15ce14c40a384c856ec19f84cac826ef0c", - "description": "v3dv: V3D_CL_MAX_INSTR_SIZE bytes in last CL instruction not needed", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb77ac983e4f8a265141855e60ad2a5637c9b74d", - "description": "v3dv: Increase alignment to 16k on CL BO on RPi5", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2c624e74e3ae9c2b4bdad721b4fca9bd968f515", - "description": "v3d: Increase alignment to 16k on CL BO on RPi5", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26c8a5cd72108f078dc7c064d281412adab20710", - "description": "v3dv: fix CLE MMU errors avoiding using last bytes of CL BOs.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11dce2ac8154237b74ee3c4bd2aaec685739f0cc", - "description": "v3d: fix CLE MMU errors avoiding using last bytes of CL BOs.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c974c334cf2ae2fe27fbd71d01aafb0aa7b52d6", - "description": "docs: add sha256sum for 24.0.8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7f09cac4a6a7e969bca1f59e68eb1bf8b02b517d", - "description": "docs: update calendar for 24.0.8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c9307a972998b825b61cfadce06a2a514ad56dc", - "description": "docs: add release notes for 24.0.8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be6fece6e1ef46567808d4895558519e39086a8b", - "description": "venus: enable VK_KHR_maintenance5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3359fbc25bf457bbb55002dbba58fb8a5ca77f3f", - "description": "venus: sync protocol for VK_KHR_maintenance5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "51d6162c80bb27281f014b72b52b12e7ef11db98", - "description": "anv: Attempt to compile all pipelines even after errors", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "745b0fc79f5a7efe9523be6430ec458ffd9f835c", - "description": "freedreno: Make fd_pps_driver.h usable without including other FD sources", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f458b0fc4bf6e9d48377369cb3b3a5934d339cb9", - "description": "radv: replace vk_to_non_srgb_format() by vk_format_no_srgb()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bab26a239e94dcb954e53f825c5fda26fb24ec8a", - "description": "radv: simplify radv_is_vertex_buffer_format_supported()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7016fb7a64d37bfdfa64988770db1ecf3e0ead7", - "description": "radv: remove useless check about FIXED formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "33e558f64abf1cf1a06d32cdc964a2d96f594222", - "description": "radv: remove unused radv_translate_buffer_dataformat()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3584fc64828ad2ad4d486572ec915aab8321aadd", - "description": "anv: use weak_ref mode for global pipeline caches", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3963e4b53aa73ef032709769585bdb1e3b6a8099", - "description": "radv: Fix TCS -> TES I/O linking typo of VARYING_SLOT vs. BIT.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "0e481a4adcd8006256c27d100a0a0f0c01a94171", - "notes": null - }, - { - "sha": "4b6f7613c0bd161548f1bd45d42b65b4841a278a", - "description": "panvk: Emit the fragment shader RSD dynamically", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4335560bb748a578dcfeaad34f6d75e101db1f67", - "description": "panvk: Move fs_rsd fields to an fs sub-struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6e0761d0dcfc88e1802e69a43ff248f7c671cc5", - "description": "panvk: Replace the stages array in panvk_draw_info by vs/fs fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0471a30fcc0f8c71260e1b85a91e695ea8911f6c", - "description": "panvk: Fix/simplify the shader linking logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dfbec67cb080ab6695248e37798f5e9e00eef3eb", - "description": "panvk: Simplify shader initialization in the pipeline logic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7a9bd1cbe973792b444d166286db3f3142e9716", - "description": "panvk: Don't pass the stage to shader_create()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6724ee761909da31d23baf31a4a0f26fe109ca52", - "description": "panvk: Add a blend library to deal blend shaders/descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5406a65955a90c4a90de1243cdf5fd33ef3af94c", - "description": "pan/blend: Expose pan_blend_create_shader()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92136c70629f65cb7d9a0cfc48a50201fdca2345", - "description": "pan/blend: Move constant inlining out of pan_blend_create_shader()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "214761bdfe9a0ed04f00835c8ce41e3b84ff82c0", - "description": "panvk: Fully transition to vk_vertex_binding_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd71c586cb608df8c0036315324649eb9b33c11f", - "description": "panvk: Leave holes in the attribute locations used by a shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3683aaeb02ffa50e355110802d4d5b84adf21351", - "description": "panvk: Emit VS-accessible image attributes at a fixed offset", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "497c43f1612555c931fa11e5f22164c264269653", - "description": "panvk: Move VS attribute/buffer state to panvk_cmd_graphics_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9c6b922fe1b63774036dfa3996a57cb31b090401", - "description": "panvk: Prevent re-emission of image attributes used in vertex shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "936ebd3370f1285265ae0d0b33c47fabce398f26", - "description": "panvk: Rename non_vs_attribs into img_attribs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5a37a62bed352e1fcc82f3ca4c0f8bdc76bf9ae3", - "description": "panvk: Set unused attribute buffers descriptors to zero", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a195486e6f07a70aa9609375663c2d99c8785874", - "description": "panvk: Fully transition to vk_multisample_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3e024a59e0f1a8aa957533e1a28115bf4c76e1b", - "description": "panvk: Fully transition to vk_depth_stencil_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a58171fb3c5c89772fad6e473383a58de24cc30a", - "description": "panvk: Use vk_color_blend_state to fill our blend constant", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbcf505a0823c75e046d662696225131482fdd89", - "description": "panvk: Fully transition to vk_input_assembly_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07afc7e3ed21a2be22d4486b3d85033cdc3b3d93", - "description": "panvk: Fully transition to vk_rasterization_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4ce783f0e9d352af3098019fa8aac46e9bed297", - "description": "panvk: Fully transition to vk_viewport_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b1a8226fac4908cc82488409c37bee2e54258ff", - "description": "panvk: Transition the graphics pipeline logic to vk_graphics_pipeline_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "160db68bd783685ce078565a2792e4e4f0c1bf3f", - "description": "panvk: Kill the panvk_pipeline_builder object", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2e0081d44c9336be6008f41f5af49392f599c5d6", - "description": "panvk: Use memory pools to store pipeline shaders/descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd6e32ef9c059ec913f07dfae17ce3f12421bd5c", - "description": "panvk: Split compute/graphics pipeline objects", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "513e0bd46b55f4e3fa972e527957169db6546357", - "description": "panvk: Split the graphics and compute state at the cmd_buffer level", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5196aeacf68ab5f82d9970bdaaa69e30382a2930", - "description": "panvk: Get rid of special attribute support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04b20157f8f2210847b6dc7175e522b14b4d8206", - "description": "panvk: Kill unused dynamic state bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94e28d350d0d242ed4dc50275c0318b053078b61", - "description": "panvk: Move panvk_cmd_state::batch to panvk_cmd_buffer::cur_batch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "330a75b9f3559336a381a2f866cd75b010a2060e", - "description": "panvk: Get rid of panvk_descriptor_state::dirty", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3fb990a866bc3cb7eac44804ef94bb8691ed6e2", - "description": "panvk: Kill panvk_queue_get_device()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f57af8fe1c6af6f1e609708b3d8062b1a1c992c1", - "description": "panvk: clang-format fixups", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90f8be9bda9b3841c41f48414897d89ebbceb43b", - "description": "ci: define SNMP base interface on runner", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18c736bcfc55b8fa309ede02332b9c7a2ca22e78", - "description": "radeonsi: Use max_se instead of num_se where appropriate", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db564a40b3bd936053e5e14d1f0df6b96e305a08", - "description": "radv: Use max_se instead of num_se where appropriate", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1966b6c887ac6f557f6427ee4443f04b6c36c364", - "description": "zink+nvk/ci: update expected failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "acd395f1f8aa47496c1a0e0e581f60fa0b0752ba", - "description": "zink+nvk/ci: document flakes seen during stress-testing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fc1db264edc60cc4f14d1a63966e583e53867a9a", - "description": "zink+nvk/ci: skip more tests that times out", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0bd551f6ec4ba7cb30de7df61f7c44ca5269f9b5", - "description": "zink+nvk/ci: skip timing out test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "393cd1ffdff5c32f7dd5ca2a4cf67c3b493c606d", - "description": "zink+nvk/ci: skip glx piglit tests as they all fail", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5a6ffd1420cecb9d060f386120b94d9b5eafc22e", - "description": "zink/ci: add zink+nvk glcts+piglit job on a GA106 (RTX 3060)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94c82cd938ff5a0f7426aec33bca1bc4f540a634", - "description": "nvk/ci: add nvk job on a GA106 (RTX 3060)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d6957268b24a74519adda1a93d3653df55d4961", - "description": "aco: use new common helpers for building buffer descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "074f3cfe73b06ba1e02ebf69fc5b6a13fb313c44", - "description": "radv: use new common helpers for building buffer descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d3b01fd95e70118453c459fe728be507e38dd115", - "description": "amd/common: add new helpers to build buffer descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3224fd706c57c6b4f8157c467bb7f052a5971240", - "description": "amd/common: only pass gfx_level to ac_get_gfx10_format_table()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "64fefc11793a60ad9800eb2943d9334e223288ba", - "description": "ac,radv,radeonsi: add a common helper for translating swizzle", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2487a875527f636565a7b39036690fbf7c5d46db", - "description": "ac,radv,radeonsi: add function to determine if alpha should be on MSB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "179f4ed414b4c84fb0cb5dc0f03be084a9c2b2ff", - "description": "radv: adjust determining if alpha should be on MSB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68c4d26691769f83e471c85c0775b8c584061e86", - "description": "radv: only set ALPHA_IS_ON_MSB if the image has DCC on GFX6-9", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e8b2fe053a7686df54c62acdd92382a088fda70", - "description": "broadcom/simulator: Add DRM_IOCTL_V3D_GET_COUNTER to simulator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e630812b436877a430dabf17d5985bfb4cd7775b", - "description": "broadcom/simulator: Add DRM_V3D_PARAM_MAX_PERF_COUNTERS parameter support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "017dde0d1caa981560c5e6c54491337e4e06d497", - "description": "v3d: Use DRM_IOCTL_V3D_GET_COUNTER to get perfcnt information", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c5b2d943ad4a56abaf7141a3d46ee3eda80cb3a2", - "description": "v3dv: Use DRM_IOCTL_V3D_GET_COUNTER to get perfcnt information", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "273ba51d7fa6bd5f503d7145b0a809969b25894e", - "description": "broadcom/common: Add maximum number of perf counters to v3d_device_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce7bca176f50d3df85893213255956bbe66d9d59", - "description": "drm-uapi: Update v3d_drm.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b3e286d333a9be223e6295c21c84d127b5c1323", - "description": "venus: add missing sTypes for vk_set_physical_device_properties_struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b99c48b011e4f4d087cb9c7aa2e0f71048de677c", - "description": "aco/lower_phis: don't create boolean loop header phis in some situations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ae8a558b2fd5877e44d470cf5526cf5aa36c8c1", - "description": "aco: remove nir_to_aco", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1964f03e7461e1c243b0e932516f66aefcc0627", - "description": "aco: use scalar phi lowering for lcssa workaround", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bbe46524307e5e834d5b3d593763b72120d6a3ee", - "description": "aco: create lcssa phis for continue_or_break loops when necessary", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3fc7207f5007c42829b3c8eb9b3e87676d92e982", - "description": "aco/lower_phis: create loop header phis for non-boolean loop exit phis", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "175d2d680aa8f06fa1b4e8e54e95733802b3d1dd", - "description": "wsi/wayland: Fix use after free from improperly stored VkAllocationCallbacks", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "57c03fe49c7017f44ef22e4fd706ad87c5c2cec2", - "notes": null - }, - { - "sha": "0e0c2574d1d3ea8184fc9f5403f693d40d48da3d", - "description": "radv: Add shader stats for inputs and outputs.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "590fff6906eeac7fb07c5eff466a5350b815cc68", - "description": "radv: Add TES num_linked_patch_inputs.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a6d7e79ad71b7a06989925bb55ed1b640a86514", - "description": "subprojects: uprev perfetto to v45.0", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d59fe21ce51b0c50fc5c4662a2219b5eab77ce0", - "description": "panvk: remove descriptor pool counters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bb09fac65981353a88d972fee06758fa1f822a01", - "description": "ac,radv,radeonsi: add a function for getting border color swizzle", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25a206b9ac22eab54bdd17022736bfa6fb1d1869", - "description": "tu: Don't advertise AHB handle time on non-android", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "99753001f35ae5791b64d72efe5278795004899f", - "notes": null - }, - { - "sha": "b71f3f1314c733e8159201f34ffbf4d1b6a72d1b", - "description": "docs/features: Add missing AHB for tu", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eef5e4221f03c0844ca117cc9590397a70d37126", - "description": "radeonsi: vectorize load/stores and shrink stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8cb254e0b8eaaca3ed13ea37e3bf8527efe51e63", - "description": "radeonsi: call nir_lower_int64 later to fix ACO failure with Tomb Raider", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5a115b10556e23232708ef7d8f951ab2ab36d381", - "description": "ac/llvm: global stores should have no holes in the writemask", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7952e4fc7acac2f8c5c91a8aeafe4a56ef366c65", - "description": "ac: move radv_mem_vectorize_callback to common code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26cd3a1718c7e8f55fa8605f20fb001b2954d6b4", - "description": "ac,radv,radeonsi: add a helper to set mutable tex desc fields", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7523c1ec575beba51fe8f553f9b3574b023683e6", - "description": "radv: stop clearing unnecessary bitfields in radv_set_mutable_tex_desc_fields()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d09afbdebc151e7b4cbb64c520125a6ca05b52f3", - "description": "radv: set ITERATE_256 for GFX10+ in radv_set_mutable_tex_desc_fields()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb37ea092d0717d8d4b0cbc2bb4f02e0ca029cc0", - "description": "radv: tidy up meta_va in radv_set_mutable_tex_desc_fields()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8adb326f592ed10eb0039e067b411c6b278d20f3", - "description": "radv: tidy up custom pitch for gfx10.3 in radv_set_mutable_tex_desc_fields()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1fa5ffab04b84bb24a13d4511fc579b75cea446", - "description": "radv: tidy up swizzle in radv_set_mutable_tex_desc_fields()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81e927ea05057fe59e2eb61dd350780906f24153", - "description": "ac,radv,radeonsi: add a helper to get the tile mode index", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72485fe592636505f9964e07b8147dc178320eaf", - "description": "radv: set image view descriptors as buffer for non-graphics GPU", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1d38b0b3749d890b31878b679282212cdbf1ad1", - "description": "nir: Add nir_opt_load_store_update_alignments.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b582449f0eca5f71437d798de7805fdccf86f70", - "description": "nir/lower_point_size: support lowered i/o", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "471ac97a4af751226bc51076130deae252bb481e", - "description": "drm-shim: Stub syncobj reset ioctl", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc404d45ff4fa7947cffdc75da0d2b773902a1e4", - "description": "aco: remove perfwarn", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea3e5bcc995cc4c1d902ee05aaebb24975375cb8", - "description": "aco/optimizer: remove ineffective undef opt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd699b5d88500b7ff7b4f1a82b17549d11db8fae", - "description": "aco/optimizer: remove ineffective vcc opt", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eefe34127f8e8ae2ba91a7837b9dfef999dc3f87", - "description": "panfrost: add a barrier when launching xfb jobs in CSF", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69ceb5dab9ada6d8b54c03d27f6db78713208455", - "description": "v3d: remove handled cases for devices <= 42", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbcfb34cf78245ce130077b6928f830487dbf613", - "description": "v3d: use BITSET for the masks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "924c5ad2ac9077f7bc4bd1e19ca86946fbd97c3f", - "description": "egl/android: Fix sRGB visuals", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "273e54391af7e0a89daec778980c3f8a800bcd7b", - "notes": null - }, - { - "sha": "97962f2a347dcc0c536af629d3d0082c8e49fb99", - "description": "radv: mark some formats as unsupported on GFX8/CARRIZO", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e384b28805e477f43246fa073fbd6540c7911dfc", - "description": "radeonsi: reject some texture formats but only on GFX8/CARRIZO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "95122a1cf7a8e5748b9d40fdb9c541947c413d96", - "description": "ac,radv,radeonsi: introduce a helper to build a FMASK descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1b4b399ce07266a2b04fe5c7c1df9e1c9649642", - "description": "zink: disable cpu_storage for PIPE_USAGE_STREAM", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "01bac643f6c088f7537edf18f2d4094881c1ecda", - "description": "freedreno/ir3: Fix ldg/stg offset", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "60686d4146cd3856dd2066f6e49560b1dd76bd66", - "notes": null - }, - { - "sha": "23488790c146b52a543e0210a12e076a3fb8fa89", - "description": "zink: remove dgc debug mode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e09310711540f44315871c3ffcb5059f8c3bec76", - "description": "lavapipe: lvp_indirect_command_layout -> lvp_indirect_command_layout_nv", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aaa3f37ae5917fdabcf95d106b91c747228bec52", - "description": "lavapipe: plumb print_cmds through NV DGC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "42e3d580cc75b1bd86a57ed364d802bcaf00714c", - "description": "lavapipe: split out DGC into separate file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3be436830e823a9941587bdb00a381a8dd255d2a", - "description": "ac/llvm: Remove global access ops handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2e80e57a3c3a9e35e22edc07e13427cc68779b8", - "description": "radeonsi,aco: Run ac_nir_lower_global_access pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "46644ba371e817d8f33ad7b46ce2ba7775e6d2cc", - "description": "meson: use glslang --depfile argument when possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32e43fe77cc6c76df621ecbb8869755967cf4ff7", - "description": "ac,radv,radeonsi: add helper to know if a format is supported by DB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2234adf59a19340b2564e9270a78e434a5de87f", - "description": "ac,radv,radeonsi: add helper to know if a format is supported by CB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c62f86587f47719177e088867ac8a82a4a61fb51", - "description": "amd/common: move some format related helpers to ac_formats.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "473559001f21218febaaf069441bb3d4afc4ab5c", - "description": "radv: add radv_is_colorbuffer_format_blendable()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f39e3a0f3aff238e3e4cd9960f957ce78da1580", - "description": "radv: stop checking the return value of ac_get_cb_number_type()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e227f2cc721de0c915df065b772a3d89dec79167", - "description": "radv: remove redundant check for VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 on GFX6-10", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "58ca4cee9ec156bcd26abb11cbc7d772239c1354", - "description": "d3d12: Video Encode - Fix inputs for older OS support query cap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8eb9fc9b45c17b1117e272548d59d68525fe09e", - "description": "nir: Mark variable as ASSERTED to fix unused variable warning treated as error", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07080c5fc52966cce7dbca9c1b6b6ad21df92a15", - "description": "radv: simplify creating gfx10 texture descriptors for sliced 3d/2d view of 3d", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "16952a179bb0d54b131eafc525148fdad9c284d3", - "description": "radv: allow 3d views with VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96a9625866b31b3cb11a4ea7c267f8efcfb2aa4a", - "description": "ac,radv,radeonsi: add a function to get the color format endian swap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35c6b9c066ce583648b3f833b94055537a949d12", - "description": "ac,radv,radeonsi: add a function to translate db format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "934fc47822d0fe2f87a83c81bf648e0e92887ce5", - "description": "radv: use PIPE_FORMAT in radv_translate_dbformat()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7f0430bb361899ec6f1dde412ce99e76ea844502", - "description": "ac,radv,radeonsi: add a function to translate colorswap", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40428bd497b96fd0ff5c47273ac369c5c8b4c42b", - "description": "radv: use PIPE_FORMAT in radv_translate_colorswap()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "255e76b41935ba2bfaf81d0fd893f72eea271084", - "description": "ac,radv,radeonsi: add a function to translate tex numformat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6030c876d0254251db4d5b18406a01dc4b591a1e", - "description": "radv: use PIPE_FORMAT in radv_translate_tex_numformat()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2fef95f901e8561cdc9644d63dd74e43a04d10c2", - "description": "radv: stop checking the output value of radv_translate_tex_numformat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "418fed1805a6fa4a5b12d384b74b726f956f9146", - "description": "aco: update VS prolog waitcnt for GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f01cac835f95bcc65b2ca0afeed4f29a6bbb64f0", - "description": "aco/stats: support GFX12 in collect_preasm_stats()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e9cabd2fa168690ffde09bed5675c1940b13dc5", - "description": "aco/waitcnt: support GFX12 in waitcnt pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cadce0f3b731d2a93f4e3bc3ff3b44f7d90f0fef", - "description": "aco: add GFX12 wait counters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c5e13af73cd2d3b58934cef82ae22cb00736ff08", - "description": "ci: lima farm maintenance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a31996ce5a6b7eb3b324b71eb9e9c45173953c50", - "description": "anv: switch to vk_device::mem_cache field for default cache", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b2282e3a571f18b48b8b717ec32da1d0ed93f1b5", - "description": "v3dv/meta_clear: use v3dv_renderpass used as parameter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "07f3c37b9a3e794122970bf8a589835c85c4b83b", - "description": "v3dv/meta_clear: take into account multiview for the custom clear pipeline caches", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4f26303dbb16d667e0073f8aef62cb97330f251d", - "description": "v3dv: add debug option to disable custom pipeline caches for meta operations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "795057d44ef98ae9f41234690b25f8c66e542847", - "description": "glsl: move geom input array sizing to nir linker", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "08659a0baaae74dfec90f6a871005357cacfca3c", - "description": "winsys/i915: depends on intel_wa.h", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ffe54ca2935284f0248be3f04606e0fc8ff7990d", - "description": "nir/linking: fix nir_assign_io_var_locations for scalarized dual blend", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e28061c5021b7902b39d8e93ae0e2d12682b1fbe", - "description": "nir/lower_aaline: fix for scalarized outputs", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b4bd3807045a5656848ced72ae5fbfa539b89d26", - "description": "nir/algebraic: eliminate pack+unpack and unpack+pack pairs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "681acde6d3925ec05275bea60e8b38999bc0662e", - "description": "nvk/meta: Save and restore set_dynamic_buffer_start", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e0d907f56fd84c119af22d6b4d14c52d99fd7b0c", - "notes": null - }, - { - "sha": "3e9b08f417e7e74057eb478b1686f5d985bbda17", - "description": "nvk: Refactor nvk_meta_begin() to use a desc helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6f0292f6b09aa6c5101f983672b34e9ca1421cee", - "description": "nvk: Add an NVK_MAX_SAMPLES #define", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce0efbd1758bf3141b66abd55b04cc33a256091d", - "description": "nvk: Move and better document set_dynamic_buffer_start", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99f806b7338110f99818cd65b44a95d29909c184", - "description": "nvk: Advertise 32 descriptor sets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54ce220f1084d0d399ef5036ba27cad66cf7635c", - "description": "nvk: Store an nvk_buffer_address for each set in the root table.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e417df49960a9bde0c8dbc8530b4619c125113c", - "description": "nvk: Add static asserts for nvk_buffer_address layout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6fcfcd26259d35d2c7d56444daca66e3aee792fc", - "description": "nvk: Store descriptor set addresses in descriptor state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f55c51a343c5848e6b97d098875ee65966d210fe", - "description": "ci/etnaviv: add flakes from nightly runs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "788d945c9a7a99f948d83339bf6bbf7774918248", - "description": "ci/alpine: re-enable Mold linker", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ae4a2ae34954b8dd7213a9663a2f98907c49cd6", - "description": "u_gralloc/fallback: Extract modifier from QCOM native_handle", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1373b0966cbd329e25fa9732330afdb6881482a7", - "notes": null - }, - { - "sha": "2934e1fad52806b4904a22c037c564eba6e21c85", - "description": "Revert \"egl/wayland: Remove EGL_WL_create_wayland_buffer_from_image\"", - "nominated": true, - "nomination_type": 2, - "resolution": 1, - "main_sha": null, - "because_sha": "a3418105b9169b8f72745c9901db37cd545ac583", - "notes": null - }, - { - "sha": "7fe169dd4ab2f9e0f9fbe1dd3bd5193d170480a8", - "description": "ac,radv,radeonsi: introduce a helper to build a sampler descriptor", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd05b23a954990e39f6c03348668e4042deac3d9", - "description": "radeonsi: refactor si_translate_border_color()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6b29a47887c3fb05ba3b652d1d647dd41c7a0f2", - "description": "egl/dri2: fix error returns on dri2_initialize_x11_dri3 fail", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "62f65f4bfdae169de7842f2577dca5f8160616f4", - "notes": null - }, - { - "sha": "caca5e0de6079e888d68c09b436c01c0ec006207", - "description": "radv: add more helpers to emit viewports", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73e1ff6b545c565c69a4b4b388cb5c25ecc07437", - "description": "radv: use float instead of double for viewport zscale/ztranslate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50ef8600bc665a06121587caf0792df225ba1331", - "description": "radv: pass radv_physical_device to radv_emit_default_sample_locations()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9e7c44ea1162362ac0f3098956160610ecfc50c9", - "description": "radv: simplify radv_emit_default_sample_locations()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0697452f57e057f10e662ca8510707d04a40e023", - "description": "ac,radv,radeonsi: add a helper to translate buffer dataformat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5d9bdb6410c81a4632ab0ddae90cb8b031d073be", - "description": "ac,radv,radeonsi: add a helper to translate buffer numformat", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34090151034693a231e67855c550638c209a4cc2", - "description": "radv: reject unsupported buffer formats earlier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "622e1b6385eaf4f9e109752719682e85c0e2a3c9", - "description": "radv: only enable VK_MESA_image_alignment_control on GFX9-11.5", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "6c3457033a8ecc76f7c07c87221bca69c8e7ce07", - "notes": null - }, - { - "sha": "f0200a54d953ef411c09f9e3e84f6a297942b384", - "description": "radv: add a helper to configure ring buffer descriptors", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db58d0f40b8792427d1f416ec96726fb22837115", - "description": "venus: forward nice priority when creating ring", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4d2d49c63f559f37c6d5a5ab20904c5396a254ef", - "description": "sync protocol for VkRingPriorityInfoMESA", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b02584bed62592ad17a53d233c5da8e404123b8", - "description": "ci/panfrost: Revert \"ci/panfrost: disable G52 until machines gets fixed\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "891730ac0b678c1fece36d92b921192249d90d2f", - "notes": null - }, - { - "sha": "782f2b3dea2c7e7d6c7b9f2c76594f9ef1de5c30", - "description": "ci/intel: add new jsl flake", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "49760b6af627d1b2ec506a5dd0ad56deb3679a7b", - "description": "ci: Revert \"ci: update failures list with angle for jsl, tgl\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "197f99dc703b66575cda74bea8fc4a2aca91973a", - "notes": null - }, - { - "sha": "ec8eeb39aef3c17d0c25170d65f751fa231cd3b7", - "description": "ci: bump ANGLE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a8cb81f61df3815ffd50453e2689fafa1029165", - "description": "nir/tex_instr_result_size: handle subpass_ms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72326e15f37dae710215f98651832d53d9deaa1b", - "description": "anv: Use current_frame from vk device to delimit u_trace frames", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c73b3f590b88a6406744401611121aa81a9fc912", - "description": "tu: Use current_frame from vk device to delimit u_trace frames", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4510350d5549a9d5029e01dce0e67b68a1ec1f2a", - "description": "util/u_trace: Pass explicit frame_nr argument to delimit frames", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eed28932c0f096ab67471d7c2d387c081adae37f", - "description": "vulkan/wsi: Make current_frame usable in all cases", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5637f44b8af8b3daa086a49922a5b0431c1e0e1", - "description": "asahi: unify naming for COUNTS structs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a173c2e38cb064b668cf27903d8a3aa7ac2ceb0f", - "description": "asahi: split CDM Launch words", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5fbd8bb694fc5be413274c0292189747f87a71ff", - "description": "asahi: split frag shader words", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7dcd5f1f02893d29c7da8513f2ae0bfd75e42596", - "description": "asahi: don't allocate for USC words", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06d59d3f5c62718a525edf71faeb2c6989b69420", - "description": "asahi: rename meta -> bg/eot", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd3dabe8e0702d18b7ed7a1437bb708909b7cc8e", - "description": "asahi: clean up bg/eot counts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ed2d15d42f13fc8c574ebd7051b1e90f8327eac5", - "description": "asahi: track imports for decode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ff553d1ac8a865f89a0131b9ba4bc41bd0abadfa", - "description": "asahi/decode: QoL improvements", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "564e569072d874a61097f1a622184975855207c8", - "description": "nir/lower_cl_images: set binding also for samplers", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "31ed24cec7c63fc3906e7629edf235e333c94ffe", - "notes": null - }, - { - "sha": "97c99aa9b355f9b2278d91441781aed46c0ef8c1", - "description": "tu: Add more info to renderpass tracepoint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57a3f0f9499c253a4a4e515ecda7e4c0f8163bf5", - "description": "util/u_trace: Allow mixing of ArgStruct and Arg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f4a6b5b00b392a2c98f8565fb967871bdd24a29", - "description": "radeonsi/vcn: Ensure at least one reference for H264 P/B frames", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ef3a34f1a2d404ee28b2edd9007aeb203419e24", - "description": "radeonsi/vcn: Allow duplicate buffers in DPB", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47b6ca47d0be9e218a7ca3f47f90de2ed6c174f7", - "description": "radeonsi/vcn: Ensure DPB has as many buffers as references", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9837dab4bdbb7fd438b443378570b8224f50be38", - "description": "frontends/va: Store slice types for H264 decode", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8a1d9f787908612d234c5e7ffeaab825c5b7d7a", - "description": "r600: fix vertex state update clover regression", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "659b7eb2799bccfff817961518d0ff2ab9e65bca", - "notes": null - }, - { - "sha": "f398f6ab0866ff48329cee562df20228ba36b7db", - "description": "r600/sfn: Set bit size for newly created store intrinsic", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1632948a7640e0acb569be7c61e0840451daca2e", - "notes": null - }, - { - "sha": "e1b40373ce6b4f33293a2e7b27ca00b6ce39d9b4", - "description": "zink: ci updates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee2fb2f2f379a37ca73bf0542e66650b4cc33686", - "description": "zink: split slot map between regular varyings and patch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66eb26c00ff891edf5d85168cf5f556db09ccbd0", - "description": "zink: move 'reserved' into io assign struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ca0c8cbaeb396191c7c27753f64d9be30e1e738", - "description": "zink: unify io assignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6af91a968393399277b950f4a320eeb90140fb1", - "description": "zink: track masks of io locations used during linking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f2e56350a94480e11dc86e3bbb071046645747a", - "description": "zink: pass a struct through io assignment functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "42f2719a88f960655157c980f52af1cb9a76221b", - "description": "zink: outdent assign_consumer_var_io()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "737de5573ffef4c143d548fa14e2176615c5e8c4", - "description": "zink: outdent assign_producer_var_io()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "613c7c158663d5921b3c13d8bef8b763a2eb1119", - "description": "zink: minor tweaks to shader io assignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18f9f17be522394575ba5ea88335a561ee5c4789", - "description": "zink: make unassigned io variables unreachable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "390ac5ba14c52ce0ad238dbbcd3d1a5fa75a5676", - "description": "mailmap: add entry to unify Roman Stratiienko's contributions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75931d6e6882d18e13d18b120cebb47ededf15df", - "description": "Uprev Piglit to 8a6ce9c6fc5c8039665655bca4904d5601c6dba0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0f25cef8aa103a828e7afb4f3c23426d47e99b04", - "description": "radeonsi: add testmemperf mem bandwidth test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd9f6f9e85d38b54064d7218272859557acedc64", - "description": "radeonsi: allocate sqtt and spm buffers in GTT", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afd2cbeb28efe2fda48f6c30e9cf5fee931becb2", - "description": "radeonsi/sqtt: use si_shader_binary_upload_at to reupload shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38c64001678866b0401ff55fd34d7caefd3f7674", - "description": "radeonsi: add new si_shader_binary_upload_at method", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5794a86f1918919435a85be07c58010fb8578a6d", - "description": "radeonsi/sqtt: support sqtt buffer auto-resizing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "316fff7d41765354287250edf48cac82baa4450a", - "description": "radeonsi/sqtt: cleanup si_sqtt_add_code_object a bit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e32dddf7abcfdc529f02c4010f4869a5acde0105", - "description": "radeonsi/sqtt: use ac_sqtt_get_shader_mask for spm counters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99a65117750bf029b5fce9a67ac491022de9ecfb", - "description": "gitlab: Reference hang debugging documenttion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "586bca76dd031c1abef718831aa9a77b00a5d0c6", - "description": "nvk: remove NVK_MME_COPY_QUERIES", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12fa8d749a4062bfddff0b69852475461952f7c9", - "description": "nak: Migrate sph.rs to use SPH headers defintion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fda488aecb537e342d13ff7f36136baa00c18af", - "description": "nak: Set SPH version to 4 on SM75+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "170b09790a817e66757074da64be078e4a83eec1", - "description": "nouveau: nvidia_header: Add AMPERE_B class generation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "784407f932713d5d8b3f2d0c7269ba6efe76d544", - "description": "nvk: generate Rust bindings from SPH header files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7d4e4ba2bed7971caaf50318340a2370bcb6129", - "description": "nvk: import SPH headers files from open-gpu-doc", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a83c15654c7897be9d06b015f048878c2643d11d", - "description": "drm-shim: intercept access as well", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53629b0a2d4831efbc7cc5a5dc4503482f748e2e", - "description": "rusticl: make use of new `output_inline_wrapper` meson.rust.bindgen feature", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3e3eab12d83fd7b7fccfec981700f187f5d3867e", - "description": "rusticl: bump meson req to 1.4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "86a11248a5db75ee90d62a4b8b38b017c82fd47e", - "description": "rusticl: bump bindgen req to 0.65", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c46cd101e1c84a50c4fb21b4600cc8f32fef41e8", - "description": "rusticl: move mesa_version_string out of the inline wrapper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2dfb3350f086fd6bc33259018990ecf58e07fc3", - "description": "rusticl: merge rusticl_nir and rusticl_mesa_bindings_inline_wrapper targets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2740d92e3de9195dcdacc0c71345b746c4227e7d", - "description": "vulkan: drop redundant core props query and copy helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "374a14ce4cc0cbc7721410160bc28a079fb6bc9b", - "description": "venus: define VN_SET_VK_PROPS(_EXT) to simplify vk props init", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c152a6e5ddd45077e0891d74795fa370124ad01", - "description": "venus: Use common physical device properties", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f04bc27fe1fd3a645696732e07defb16e0be43d6", - "description": "vulkan: add a property struct setter function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eb9a394e3c37f7dbe550b1226af74d634d42e1a6", - "description": "venus: move props sanitization to a separate helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dceb1b0c4db05a30aab430548be34c789d942564", - "description": "venus: move custom props fill from GPDP2 to props init", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0197924d63439b9355609615e7e64ac5cd4de910", - "description": "venus: directly use vk drm and pci props in renderer info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1e2293f8c6a24f3cede70aa0a6af895106952a5", - "description": "vulkan: cast to avoid -Wswitch for Android struct beyond VkStructureType", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1afbf0ba4a8eec886eb552754445279f16fb3564", - "notes": null - }, - { - "sha": "c522848d5afd598ac16d4dd9fdaf498111ee0d0c", - "description": "radeonsi: Update buffer for other planes in si_alloc_resource", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec90da3c7651894256283f68d5fcee3e47cf8e59", - "description": "nvk: Go wide for query copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce0da9ee975ef7d17356bb28f1e0f81e7a2bbad3", - "description": "nvk: Fix misc. whitespace and style issues", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b0bba26f04ba89edc2573612d276552e26d907c2", - "description": "v3dv/android: Migrate ANB and AHB to use common helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3facbc0cd3734dda3afc1f46dca9455a583df0be", - "description": "docs: update calendar for 24.1.0-rc4", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eebc4ec264ebbd90c5284000c6527433999bfc93", - "description": "intel/brw/xe2+: Round up spill/unspill data size to nearest reg_size multiple.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "50daf161f45bef680d23c4909631db3607c748a6", - "description": "intel/brw/xe2+: Lower 64-bit integer uadd_sat.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15a10786e317710970102e0f22cf785a0876920e", - "description": "nir: Add option to lower 64-bit uadd_sat.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4bb5b25e530e4e3b915a36b0a627ef5280751050", - "description": "intel/xe2+: Enable native 64-bit integer arithmetic.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8be9f00d84ccae838984d5a48cfb0c22cc65c5b5", - "description": "intel/brw/xe2+: Lower 64-bit SHUFFLE and CLUSTER_BROADCAST.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6261f4d36197e16f3bc5dbab4a8cc580a20ade9b", - "description": "intel/brw/xe2+: Fix 64-bit subgroup scan intrinsics not to rely on SEL instructions.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1bf93ee4ecaaf045b284be81178c66a7baa73029", - "description": "intel/brw/xe2+: Don't use SEL peephole on 64-bit moves.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b18e68fc252db7df33fdf2d08d77c5ba3b17f209", - "description": "blorp: Allocate fixed amount of space for blend state.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b73638ae5ed251cebda5f033517293aa01051d44", - "description": "iris: Allocate fixed amount of space for blend state.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f798cc9115805fd5660875889ed51a540506823", - "description": "intel/brw/xe2+: Fix indirect extended descriptor setup for scratch space.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d92ec44e52cf29a4f5de44e4623eeff3036fcb9", - "description": "intel/brw: Don't emit Z coordinate interpolation if CPS isn't in use.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "475fb687265abfdf2d2380c6eb5c5c4f6d468d77", - "description": "intel/brw: We no longer have atomic fmin/fmax ops for fp64 in xe2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d8d3666c6a1f85712527cead25691e58234c4b5", - "description": "intel/brw: Advertise fp64 atomic add's when we have 64 bit float support and a LSC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c129d93658a378aa69c7b4f392dc3019d1e2f4b", - "description": "intel/brw/xe2+: Keep PS sample mask in the f1.0 register whether or not kill is used.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7668de019b379783fabf28d3034dd7d3ef9b49b9", - "description": "intel/eu/xe2+: Fix src1 length bits of SEND instruction with UGM target.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb6638da80c033725a16613f9343f126c401ca01", - "description": "README: update links to our own docs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1662e9bc96705fd1ae596db6eba8d0b873eec61", - "description": "rusticl/mesa/context: flush context before destruction", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "50e981a0504bf0a94b7cd93105ff250707e6850d", - "notes": null - }, - { - "sha": "ec06911b3d84345a7eb672f86524a9bbcad6a5ce", - "description": "Revert \"iris: slow clear higher miplevels on single sampled 8bpp resources that have TILE64\"", - "nominated": true, - "nomination_type": 2, - "resolution": 1, - "main_sha": null, - "because_sha": "8670fd6ac4611ca29468830a8d59d99bbe872651", - "notes": null - }, - { - "sha": "9e66d89be9a300f0ace8e3ff16d740c008b36e2c", - "description": "zink/ci: rename .zink-lvp-venus-rules to .zink-venus-lvp-rules to match the rest of the names", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3cbb3c0b668c4aed9d5a49160b5f37c27a565090", - "description": "ci/env: move dead-code-with-comment to the end of the list to make it clearer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1f17b2fa767eb368e1706091dca3073243b0a03c", - "description": "ci/b2c: remove dead rules: that's always overwritten", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "93c0a607bce38e978102df7c34424620bb25f2ac", - "description": "ci/vkd3d: fail job when failing to get driver version", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3127b52ef709c4157686af24bfdbf659b01bbbcb", - "description": "ci/vkd3d: fix version sanity check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "300afd3c86ea7dfc742b73963558500821668b3e", - "description": "ci/vkd3d: un-hardcode architecture", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "978f96710590bb85f2cf2b1e8e9c2529897727df", - "description": "ci/init-stage2: set VK_DRIVER_FILES for both xorg and wayland", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0089a1ffd44550f9fc01b16002ebd729f618972", - "description": "ci/piglit-traces: drop re-definition of VK_DRIVER_FILES", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc49894e34f139b72479e23fd6d5ee0350a30fda", - "description": "ci: drop dead VK_CPU option", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b4a94b09692d20583ec61b8e3815db3d6714f904", - "description": "ci/b2c: allow setting timeouts in seconds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a07db7cd8e1c6b4e4b48c536822ec0ad63dc93e", - "description": "ci/b2c: rename B2C_TIMEOUT_* to B2C_TIMEOUT_CONSOLE_ACTIVITY_*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "09021a1c019f19ee98f75e58f4da40387015449f", - "description": "ci/b2c: rename B2C_TIMEOUT_FIRST_* to B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_*", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66ad09f569a1850189cd980b2b2cf013aebf05d9", - "description": "ci: inherit the debian container building infra for test container images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5157363772a3ac0657eedae380af441b25b5e3da", - "description": "ci: factor out all the deps to build the debian containers into .debian-container", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad9e78ba8218a04d4b5cc2eb64cac19faabc3dd9", - "description": "ci: rename debian version variable job to include the word \"version\"", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b545e78f12b02069fa363a4a7ef749a996ea3c4b", - "description": "v3dv: support 2712D0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1fc846dce396e2e0d1be23568e22ae2510df71bd", - "description": "v3d: support 2712D0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b807c3e948398da96293c6252c57505e11c74c9", - "description": "broadcom/cle: fix up shader record for V3D 7.1.10 / 2712D0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0daf5e243f3fcb72b034da7ee8a85e86906562fa", - "description": "anv: shader printf example", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b766968616a8d033855a0760335f35cc8b3b9f4", - "description": "intel/clc: enable printfs support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "64010716c847d165098b4831091eb133138d9e2c", - "description": "anv: add debug shader printf support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a36278475504ef119fc5191f7e0c4476e0c288d", - "description": "intel/nir: add printf lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6a8ff3b550ec29ec5a6c5c61a2053c2bd0627166", - "description": "intel/compiler: store u_printf_info in prog_data", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecbec25e8462ecd3c9610f64f48d47dd4ac7ef43", - "description": "intel/nir: add reloc delta to load_reloc_const_intel intrinsic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dde91d18c279fe225afa3015e4196b57594ddf5c", - "description": "intel/nir: remove unused prototypes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c16e58eabd94573d94b8c75d35fb0306d4831eae", - "description": "nir: add a low level printf emission helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c518a176f50053fb7723dea24781059e7541bf6d", - "description": "nir: add ptr_bit_size parameter to nir_lower_printf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2be28ee58a416bbd1144228ba0348ce37c049de2", - "description": "nir: add a base offset for printf indexing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d336f069e8a354e8fb0b7c69968d0e5d86af460", - "description": "nir/divergence: add missing load_printf_buffer_address", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3716bd704f8259545d34c73c2d065be7008f147f", - "description": "anv: fix push constant subgroup_id location", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7c76125db25db9bdf5521baf7c848ccd4bd37b5f", - "notes": null - }, - { - "sha": "cd7da3a8073ff4094eabf94c0d775776aa555dca", - "description": "freedreno/devices: Add support for Adreno A32 (G3x Gen 2)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aa9244c8f6bfa3fb33cf233104b00fc44fc9459f", - "description": "intel/brw: update Xe2 max SIMD message sizes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8852719d05424b9c3e79be49515fd0915191b22", - "description": "radv: rename radeon perfctr uconfig helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2957cedad7d15832970c890446461eecb219c3d6", - "description": "radv: remove redundant radeon_set_perfctr_reg() helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b023780ada5ac2ed6739a278ea3160fe7f554d9", - "description": "radv: introduce radeon_set_reg_seq()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0d4212847c9ca22b25c87bed7dc0286f9cd590f", - "description": "radv: stop using radv_physical_device for radeon helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1e78e4a344dc769b6f7d0e6a1447455d48a325cb", - "description": "rusticl/device: properly handle devices with no support for images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "017ae1f02d91c14187db92b4f0fd5f84b62d7600", - "description": "rusticl/device/caps: move enough for has_images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e02b4e0d449c2e3053a6802909fb73b19412133a", - "description": "rusticl/device: add DeviceCaps and move timestamp stuff into it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e3e5f8e6db862935e559cc6968efdefb161f4cf4", - "description": "anv/sparse: assert a format can't be standard and non-standard", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4384c8782ede3d5a0b3e6fcf3b7f7edad383ad6d", - "description": "anv+zink/ci: add failures related to multi-sampled sparse binding", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5294faee203b22185140e4f3ec665435b602bfcd", - "description": "anv: check for VK_RENDERING_SUSPENDING_BIT once at CmdEndRendering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7ef3d652b2515de002b7e161b320a80e2a2bbe9c", - "description": "anv/sparse: enable MSAA for Sparse when applicable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e5979b5a205a7d2a81131971db978832ca25f66", - "description": "anv/sparse: flush the tile cache when resolving sparse images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8abfdfe576be130667eed08da3e3d71a06be579a", - "description": "anv/sparse: exclude Xe2's Tile64's non-standard block shapes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e69c7cd1496a10fe31b53666f9ab64614dfa9e15", - "description": "anv/sparse: fix block_size_B when the image is multi-sampled", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d748f5b2c7541ffbc45e55e36d16a7154e4bb14", - "description": "anv/sparse: reject all sample flags that non-sparse doesn't support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "620f1d1a7a0a7848f9beaf8013aa4fc692cce39e", - "description": "anv/sparse: properly reject sample counts we don't support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "af725a2ccc8649f2dc2666f9eae6f98916b41f91", - "description": "anv/sparse: we can't do multi-sampled depth/stencil sparse images", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d38801ebd97e823d3d97790581056ea672a2527", - "description": "anv/sparse: add the MSAA block shape tables", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66b6671d3c104e5725f550d26b5872534760946c", - "description": "isl: add ISL_TILING_64_XE2 to isl_tiling_to_name()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c69650a95e26193652b93bb229c82b77cfac6b3c", - "notes": null - }, - { - "sha": "90b0925588d42a367bdc34dea8856691b33a44ae", - "description": "radeonsi: constify struct pipe_vertex_buffer *", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "283f8af9763f1cc7dd54073c0768c972847e0549", - "description": "radeonsi/ci: remove some gfx11 flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f237f497eb2b157de9879748b7e735b79a09819d", - "description": "radeonsi/ci: update failures for all generations", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87fd149bd8668a5f813c3aac3e361d7742568a90", - "description": "radeonsi/ci: fix caselists for vk-gl-cts/main", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b91220a825d74d79606e23d4fd8b89312bf6079f", - "description": "radeonsi: remove slow code from si_msaa_resolve_blit_via_CB", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b771d1355747d9379761dbc709394d792c628b39", - "description": "radeonsi: replace the clear_12bytes_buffer shader with the DMA compute shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "995e7d927c2613e56a05bff98acc2bf0e02b7782", - "description": "radeonsi: use set_work_size for all internal compute dispatches", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "83d8b3bc1a05ce482bf4b1e82af009205aaba557", - "description": "radeonsi: simplify the complex clear/copy_buffer shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92497d1c8fe8ca4e09f99826326d010436ec1ccd", - "description": "radeonsi: minor simplifications of clear/copy_buffer shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81c90cded01d8d68433cffa6a432ddda694816b0", - "description": "radeonsi: get NIR options from si_screen instead of calling get_compiler_options", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "56f2cc22779c204598d2216f753d405d50260e75", - "description": "radeonsi/gfx11: use a lighter workaround for Navi31 dEQP failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "602dd4c6012347bf82bfc61bfffa6c73baf12544", - "description": "radeonsi: set flags directly instead of having needs_db_flush", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ebe75fab1f963fbe8c37f4b9892028f3bc76b36", - "description": "radeonsi: remove GDS tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e546fb6833dd178bb9f7889c82ae38e14dd868d", - "description": "radeonsi: validate the buffer range in si_set_shader_buffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d3dbb2bef3fef0d873c08fcca8dbf1c11ac8a5e", - "description": "radeonsi: fix the size of the query result SSBO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96cf96f611f26b80f815c4ef5ebcc24cbd00c937", - "description": "radeonsi: serialize shader disassembly string to fix asm dumps for ACO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "573b2b813a8bc30a98ad09cde13853160611f2f6", - "description": "ac/llvm: improve/simplify/fix load_ssbo", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "197f99dc703b66575cda74bea8fc4a2aca91973a", - "description": "ci: update failures list with angle for jsl, tgl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7dcea9dd7b47e31f795ac4e6f3df94a71cdc50c0", - "description": "docs/features: add VK_EXT_legacy_dithering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2ac5e70faecab51523151611640861f0e4092022", - "description": "anv: VK_EXT_legacy_dithering support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e7ce48557a4dc6a43a7db721aaad0f23ef0810af", - "description": "vulkan/runtime: add a subpass bit for legacy dithering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "826d467e4042e17e34414cb53e36a7177ad7548c", - "description": "tu: Change commas to semicolons in VK_EXT_map_memory_placed features", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "220dae5870c03d712a1ad1323a7ae5be1c368d39", - "notes": null - }, - { - "sha": "03d8620c4cd34de0181fac75a7345ab44a0eb87d", - "description": "tu: Add missing VK_EXT_legacy_vertex_attributes feature", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "660a47ecbf693601c25660b5fac87121ff0fe8bc", - "notes": null - }, - { - "sha": "59babe9fa0b8e45e49bb0e7d5a9bdccdad6840af", - "description": "radv: make radv_pipeline_has_ngg static", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be391fdb33657ed060a4d0b18770473889c09daa", - "description": "radv: check gs_copy_shader directly for executable props", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9f24fb5f1cd34ee64b7d1f3bdbb03bf9b90e2c6", - "description": "intel/brw: fix subgroup size of geometry stages for lnl+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a28a289374b2348a528e56898a56e62a45fa01e6", - "description": "ci/freedreno: update expectations from the nightly run", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96ad012878416147653eaeeed4e92ed22d980dc8", - "description": "freedreno/ci: Implement nightly piglit job for Adreno 630 and 618", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e5a56752399b1e302ba5a414a8dee971ebe94b0", - "description": "freedreno/ci: Drop duplicated include and add missing stages", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "926865580ea48650e683924250e216566b53571c", - "description": "freedreno/ci: Increase a630/a618 piglit fraction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da212113f807c9d1addb6e50241a4a2c8b03dcab", - "description": "freedreno/ci: Skip some slow tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e1be72dd4b994f60fe7c45c188f31c028e3ade0", - "description": "freedreno/ci: Skip built-in-functions VS/GS tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6cb8c5dad0ac4d6d160ee763520c71fb4d711bfe", - "description": "freedreno/ci: Add a common skips file to a618_piglit.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b92c6e16ab76a23f8dc939ac947c0cb6a07b7f0e", - "description": "freedreno/ci: Skip max-texture-size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "242a591d4c077603bc40d5cd00fda16335ba04e1", - "description": "freedreno/ci: Skip unsupported legacy gl stuff", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2e7970b06726e5a391333a3b4d465a28ca187457", - "description": "freedreno/ci: Refactor out common a6xx skips list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d260752b83b22d7f7623641fc921ff483db1ed1", - "description": "freedreno/ci: Remove some obsolete skips", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a42db02808d3bae716d95afefadd233f658bb550", - "description": "freedreno/ci: Remove some skips", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4abe5b7927193678a86297a735338a46260011d7", - "description": "aco/gfx12: disable s_cmpk optimization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2c4f5617086289886ce3e0546cd98493cff49876", - "description": "aco: don't change prefetch mode on GFX11.5+", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5e58e3283207bfd6359281b2719ef032d8fb8622", - "description": "aco/tests: add GFX12 assembler tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1e5bc0dd051dc2392f3ba9415d678b4a59eb734", - "description": "aco: support GFX12 in assembler", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74aa6437d6edc74bb8872ca6a156f66a9f0c771f", - "description": "aco: add GFX11.5+ opcodes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97698e564acc9ee560fade47bd566fe9cdeae3dc", - "description": "aco: add SFPU/ValuPseudoScalarTrans instr class", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e9a25151fa90c0b100cda695b1d142c3ee8d4dbb", - "description": "aco/tests: support GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "43bb9890708c0bc51159338395984e93fbf6af35", - "description": "turnip: virtio: fix racy gem close for re-imported dma-buf", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f17c5297d7a01eb37815f96bbf3a87667a2f3261", - "notes": null - }, - { - "sha": "6ca192f586fe1470a97b6f34bce7761a760ce15d", - "description": "turnip: virtio: fix iova leak upon found already imported dmabuf", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f17c5297d7a01eb37815f96bbf3a87667a2f3261", - "notes": null - }, - { - "sha": "585a87ae53a181ab2a0e73fca0e4d84f75523823", - "description": "turnip: virtio: fix error path in virtio_bo_init", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f17c5297d7a01eb37815f96bbf3a87667a2f3261", - "notes": null - }, - { - "sha": "b33bb4077d7500232a5cadd956b5c8810bb5c9ba", - "description": "frontends/va: Only increment slice offset after first slice parameters", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "6746d4df6eac83d048e88c2d54aa19e7c1a0a696", - "notes": null - }, - { - "sha": "1240fbba212ed412712f8ed4b83a57eb00dc41fa", - "description": "ci: bump VVL to v1.3.285", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4a66eadf9685858da40c079dea7c06602ae9999", - "description": "zink: set all spirv caps for the vvl vtn pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "48c752d3e060fc62dcc5ed228c2464efc6591029", - "description": "event: break long dependency chains on drop", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2f1f98e8468a92d4f5e7f97fa3e674ec338f9394", - "description": "Revert \"rusticl/event: use Weak refs for dependencies\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "a45f1990860db3a8da6d7251bb627a314dfb8423", - "notes": null - }, - { - "sha": "3bdfe0e2a3d394dfda5c1445ff07f8b5bdb374f8", - "description": "intel/isl: Update quote for XeHP's CCS halign rule", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c31d59f078b70185db4fcbfc24293a025955aff5", - "description": "intel/isl: Reduce halign for disabled CCS on XeHP", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0f41ffe23049678f99e4227d43dd23c4f4900432", - "description": "intel/isl: Add and use _isl_surf_info_supports_ccs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c8224c693c59f7a5da821e3bcb8c6ea9580a2f0", - "description": "radv: simplify radv_emit_ps_inputs() slightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c63ac0521a2cf61edc1949a858e4d0ff29067347", - "description": "radv: track all graphics shaders context registers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db597d274b650fed5fb7f4560e31d0b6ce9763c9", - "description": "radv: add more radeon_opt_set_xxx variants", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d5af67ea2c89398b27c215ce247e3bcb203903e6", - "description": "radv: add graphics shaders context registers that need to be tracked", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9532b0f1b2d25c437bde67bf706386e1bd0c0fa3", - "description": "radv: emit graphics pipelines directly from the cmdbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fca40bcce37e500f4a9e0fcf42c3188bbc7b885a", - "description": "radv: make radv_conv_gl_prim_to_gs_out() a non-static function", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d516721cd0cb16d0b601c42c01de0fdcc4ae887b", - "description": "tu: Support VkExternalFormatANDROID", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29f5a78d1655777605fc542a997932d60a863e92", - "description": "tu: Skip YUV conversion for RGB formats", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99753001f35ae5791b64d72efe5278795004899f", - "description": "turnip: Support AHardwareBuffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b024a15f2660886f868c33470ba83677edd24c4", - "description": "turnip: Split tu_image_init to use layout setting logic separately", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ecd9ece9c1389128c756a7fc773b547a67f66697", - "description": "turnip: Convert tu_device_memory to use vk_device_memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1373b0966cbd329e25fa9732330afdb6881482a7", - "description": "turnip/android: Migrate to common ANB code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e047d75a5731e59a82a54cb95e5c4dd98580448e", - "description": "turnip: Change tu_image to use common initialization helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "270ee656678d4cf48e34847ab41b5ec3d4d7c825", - "description": "vulkan: Add helper to resolve Android external format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12092d1ac726a80dc2d95bbc781340bbcb776bdc", - "description": "vulkan: Don't request Ycbcr conversion for rgb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9bbeb77c76314cf3c3206a7e1bbd54e00aae1c5", - "description": "vulkan/android: Add helper to probe AHB support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be0a893a2e0126e1ed1cae60820333e8686d3593", - "description": "rusticl/spirv: enable more caps", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "ba11b12a82a1e7de5d29ae89abe24f3c52ffc38c", - "notes": null - }, - { - "sha": "590ea76104899edd6883fe50d9590f919b9e97d5", - "description": "aco/spill: Insert p_start_linear_vgpr right after p_logical_end", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "84c1870b655d4987da722f03b315d41da57d13ec", - "description": "aco/tests: Insert p_logical_start/end in reduce_temp tests", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02efe52aab6b544b57c29c9f4345de1a4a64bcb7", - "description": "panvk: Only clear UBOs descriptors when set isn't present", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "9c553bda9c182763d7f3cf8c9d5b583fbb4923e8", - "notes": null - }, - { - "sha": "1f0f76dbdccf7226a46b64d0c4db6f569f0ba303", - "description": "radv/ci: Document recent flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9db41dfec5f3e4ecfcd8297f670cdd855eb0f920", - "description": "radv/ci: Add back pipeline library flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cb81ec7a61fb41dd51bc3e1a22efffb4c1492086", - "description": "aco: don't count certain pseudo towards VMEM_STORE_CLAUSE_MAX_GRAB_DIST", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34844deb3ed50c3cdda1cc00239e291f5e4773ef", - "description": "ci: fix section_end in debian-build-testing", - "nominated": false, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d428cc1116fd5cec4b397bfaca87e59570f178da", - "notes": null - }, - { - "sha": "d0c364a24b139ef22f49c4fff40f3197a60d23c2", - "description": "ci: drop unused piglit-test and integrate it into piglit-traces-test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a40345aaebeec561b1a2ab70762b0bffa11591fa", - "description": "ci: reuse dead .vkd3d-proton-test to make vkd3d less radv-specific", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68c09a00c8cee182a12e57a2ba76375c4d27e62e", - "description": "mr-label-maker: mark *-vkd3d.txt files as CI results expectations files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9af82fc98f9e80e78beeb412dd549c4b83718019", - "description": "amd/ci: track changes to VKD3D_PROTON_RESULTS files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7dd2b9e11ae860607a533b0fbf71c51496063089", - "description": "ci: hardcode `-vkd3d` namespace for VKD3D_PROTON_RESULTS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c50f3d62b9a316e50d200c5f666232708123e277", - "description": "ci: drop default VKD3D_PROTON_RESULTS file name", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5502ecd7716045e76f13f007a4aa5f5653c80ecd", - "description": "util: shift the mask in BITSET_TEST_RANGE_INSIDE_WORD to be relative to b", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "fb994f44d91a4b94738ea4ebb83aab1a257ef123", - "notes": null - }, - { - "sha": "6c3457033a8ecc76f7c07c87221bca69c8e7ce07", - "description": "radv: Implement VK_MESA_image_alignment_control", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14457b358f9cbbc600810c6d937f411d00af1311", - "description": "ac/surface: Add surface flags to prefer 4K and 64K alignment.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47044cb0196be667acbbbe3d2e7dba3875a765b4", - "description": "vulkan: Update XML and headers to 1.3.285.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ea7880478e878debc5ea1f901930fa7a2c938427", - "description": "anv/anroid: Query gralloc for tiling mode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2097bec163d9783d8a52f8dfe21a5545b86dd611", - "description": "radv: fix the late scissor workaround for GFX9 since a recent refactoring", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "92337aff030d5895ddde07f03a918dd416172a9b", - "notes": null - }, - { - "sha": "01608de8752a76df2b7b75c55b53978bca6f2266", - "description": "iris: ForceZeroRTAIndexEnable if last geom stage does not write layer id", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c22112a7d237a357fc9f373aaa413c8da8ccaab", - "description": "util/format: add missing null check in util_format_is_srgb()", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "ff6cf60cb80c3bc31d9a4307c32185f65054bc58", - "notes": null - }, - { - "sha": "2f02af39b34c013b4829cfde626ab13b69c173b8", - "description": "radv/video/encode: fix quality params on v2 hw.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "54d499818ca9a004ba735635d328a1ed0ff010b6", - "notes": null - }, - { - "sha": "d2cf17022da57f8363632307cc427878d1d4580d", - "description": "libagx: don't use get_group_id()", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "d22f936019f84191072a5686826f53b93d755419", - "notes": null - }, - { - "sha": "21f0b14844c457f11ec524b9c1e614431e6a5413", - "description": "libagx: add query copy kernel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "13d875da32d4ec33cbe1c3a95ffd243c4940db34", - "description": "libagx: use sub_group_scan_inclusive_add", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76bb81dd5920433447f02d8cb8e019aa8fc5acca", - "description": "asahi: don't reserve extra UVS space for layer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "48d16b3972c1aa056b889f8df56b6ac772652726", - "description": "asahi: extend epilog key for force early frag handling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee9dab83e7351b8979c2f538450bf86e40fc6327", - "description": "asahi: don't ralloc in agx_fast_link", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1d68da5e28102f76cd795cc86288d86354b70eb", - "description": "asahi: plumb tri fan flatshading through common", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cad60ab4b185472e8c6edacd0e67ed4565a444c9", - "description": "asahi: extend varying linking for tri fan weirdness", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d763ab2de01fc5de297a52cc41d917e1cbd0e15f", - "description": "asahi: don't allocate for ppp updates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3eacd8a8b2dcabe5558231a63e547cab1208c3e4", - "description": "asahi: don't allocate varyings ourselves", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "96521fbce3589470772414cc05d240e18ef52ccd", - "description": "asahi: use ppp_merge", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "59d2b7283c9ce5c465f13f14683446b005f9e436", - "description": "asahi: add agx_ppp_push_merged helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22292afd3cbdff5ae604aba5e6657dfd10593697", - "description": "asahi: pack tilebuffer usc word ahead-of-time", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "289cc5f5dd6441a7db5e3fc055c2ceabf57debc9", - "description": "asahi: drop bogus assertion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "64e2502e5470fe1bd1ff7ccb118fc9365fda97f1", - "description": "asahi: eliminate num_workgroups for VS->GS + VS->TCS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c829f46fde81460927a56e5962331cb70d5ca649", - "description": "asahi: update comment for maint5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c16df593a5cd54e6e51bb3656d004bbf9382dc6f", - "description": "asahi: update comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a2094e8142af914035e8ecf198f3f6bf81e9d76b", - "description": "asahi: rm always true param", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52211088a2cd4a8eb33c94f047f1be2cf1787aa7", - "description": "asahi: rm more dead lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "45e5b7ad5021710d1cf4f880425a360cbb18fa9f", - "description": "asahi: mv initialization of grid z for indirect GS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4a344de276d6eb90fc0e2be494fb4d4afda67eb9", - "description": "asahi: rm redundant input_vertices", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5c7bca88d6e07a8294fce20d4232cb69374dfbc", - "description": "asahi: rm num_vertices uses", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a9841ddeffcaec4bcce4d529738149e243e5111", - "description": "asahi: rm unused lower", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d90887a7f1ccc183d487e3df860418084ba06603", - "description": "asahi: rm dated comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8fd2e3c71b1271778854273870c88dd1938f2a19", - "description": "asahi: rm another num_vertices use", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5af1828440fac8215952903bd9e8bbc8b50ec7b8", - "description": "asahi: mv vertex_id_for_topology_class into GS lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a76e8447acbe24843329a3e16926c37ef49e50d7", - "description": "asahi: don't use load_num_vertices in geometry shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b7b201ab61cc78881f12c98428ade9f21a34167", - "description": "asahi: move some GS lowering into lower_gs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a27a803961c6fe67e23c5c50dc05bfc71b49f0a7", - "description": "asahi: add agx_index_size_to_B helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f18f578b634ed5f27535babd680f8363f1f0785d", - "description": "asahi: rm dead code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6b863df300b4008f7d878e7936e45fc95b81165", - "description": "asahi: set src_type for store_output", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1632948a7640e0acb569be7c61e0840451daca2e", - "notes": null - }, - { - "sha": "5b3af5b7e6daa491ae7979ffbbafd9db01dc8b01", - "description": "asahi: rearrange VS uniforms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d518609e33c7ebd1b8eddbf1555ccf2f198318d", - "description": "asahi: eliminate troublesome empty uniforms", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e845e38f960663c5d9ebdee6f81e7e8d1d50d11", - "description": "asahi: free libagx if we don't use a ralloc memctx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b47d9c6002edb7d7ac5d4f5f767e0ff20bcf9ce", - "description": "asahi: move primitive MSAA field", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cccf0609a6364ffdb68ffa61c2f50dc0730caffc", - "description": "asahi: simplify image atomic lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9069ac986bb131554fd43a922deabf65c0476a5f", - "description": "asahi: fix cull unknown bits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e04779ad4b244d3789f6682011aa67174fec0347", - "description": "asahi: lower texture instructions with epilogs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4991baa8974b0321608373884ba43125e31c232", - "description": "asahi: fix sample ID with multiblock epilogs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cf653997d74c2a5c579a397081fb3854b38c3f8a", - "description": "asahi: fix store_output component/offset", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "696f4654d4176c7c8a41ebe21f7f5f82d3b39540", - "description": "asahi: fix rgb565 blending", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "292cd87054cf3659632b166ea7a4454a32516ee2", - "description": "asahi: clarify format code in image lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18239f3e883d6c9f50c580091094598d1060b767", - "description": "asahi: handle agx_ppp_fragment_face_2 with no info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afdc6891c17f5ece89b6976dd67865428be2f795", - "description": "asahi: mv AGX_MAX_OCCLUSION_QUERIES define", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "883b5407c8d336509a05e4dbc46c91b4e1221651", - "description": "asahi: rework VBO lower for divisor=0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "602d9b98d86f3c2d55027615d0143d3df044fb54", - "description": "asahi: fix txf/image_load robustness with arrays", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3dd148bfc0ef9e5c282b6efdcc4caf9f733fa125", - "description": "asahi: fix 1D array atomics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4d832f8433a43a54a4591732d7239de25ff95089", - "description": "asahi: add missing rgba4 format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12ebea098ce801f79a4ea76a6fbdaf7528d71ddb", - "description": "asahi: drop rgb10a2_sint rendering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5f40b0e9fd5d2a02734c7feebd175fd50ce3e3b1", - "description": "asahi: rm deadcode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3cb8c1de819105cb21bab8ab02f1fc9a14ff4863", - "description": "asahi: get debug in common", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "15333424a5803dad227da777c273bf50105c0c0f", - "description": "asahi: plumb shader stage into info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee79b717530d424d0689abcc2bb3760dd9f8a254", - "description": "asahi: pack UVS key properly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1df126025910cd9ac2b5560fa1e34c7000dd365e", - "description": "asahi: fix prolog emit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6373de5195e68ef5f50ab329c3979694d57423d6", - "description": "asahi: move agx_link_varyings_vs_fs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fadb9904637ff455f143a0e2bf268fb92658f11d", - "description": "asahi: cleanup fs epilog link info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71692a5d0b11072d7aa0e615c5d426b77825058a", - "description": "asahi: resize key", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a38f7c91518a25dd50f352f7d9ac748cd5db8460", - "description": "asahi: rm unused #include", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad5f46ff8c43ef639f65bf20ff9d859dc3dac722", - "description": "asahi: implement PIPE_CAP_QUERY_MEMORY_INFO", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74963d5364855f4aa7179e6a1a049ca1b7376fc9", - "description": "asahi: unwrap pointless null check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8494288451a7836ae3946ab5073d2acc61f96a62", - "description": "asahi: assert bo size > 0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e05f549ea0f99b9213d1c5f5c078566854b6b58", - "description": "asahi: agx_translate_sample_count", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "feabbddc2a28e67af1bcf5652ac4fcf2009d9f8f", - "description": "asahi: calculate validity when unpacking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac726ae5a937af3bd36f154fade91bf7ad393431", - "description": "asahi: mark eMRT loads as in-bounds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac114030a70972c022478904b2c79800c0b37552", - "description": "ail: constify everything", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "efa9f242a8d4452fbe3c33fd3c9870e050d02e44", - "description": "agx: fix UB in cursor comparison", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bcffc8430697438e704d87994a1f605d2750cb9f", - "description": "agx: optimize elect()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc26e11c2a792aba82739a65931702cda545291f", - "description": "agx: lower more quad ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7aa17a122febdc76d8ed57a8d29ea0009227dce8", - "description": "agx: implement quad_ballot", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a656b29f3f3f61165ab1cecf8d978503ec3d67c", - "description": "agx: handle quad reduce", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1be0e8e3480668a75fa99cfb859bd792f5038dc7", - "description": "agx: stash early_fragment_test info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1c8aab388cdc1c70c07de9d0a6174da14d47ecea", - "description": "agx: speed-up dce", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b03e7bab378d76b67870d6b163d30e249e09f70", - "description": "agx: fix bogus unit test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aad82f4265f26c5c5af7ca9734563b8f3ad9aaaa", - "description": "agx: optimize txf with lod 0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c898e56b2d20d69d63cf0e74f1b038a2478571d", - "description": "agx: reserve scratch registers for mem<-->mem swaps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f7ff0041c122c4ee3a214c126df2545b00220b36", - "description": "agx: document another sample_mask restriction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "840394c169fc3c1eec3dc517b31ee7eb29d67f3d", - "description": "agx: expose agx_link_libagx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5a3ac737476188063a3c1dcdf6bced0501230bfc", - "description": "agx: report uses_txf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54ec9512ef67475688d967fadee68b21351dbc6b", - "description": "agx: flesh out subgroup lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "659db5049c7ed6952c89ea1b270d45f2a7f76659", - "description": "agx: lower 8-bit subgroups", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "00cfe84fd9485537700a68aa5eee98dcaf599767", - "description": "agx: forbid uniforms on ballots", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c2c49b261cf133e5da53a6ec46fe5bce09b75bf4", - "description": "agx: add missing b2b16 implementation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3cb0cbfda81b06ba89572a6de8ef508696ba3b9", - "description": "agx: handle quad swaps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f4a5ac35541b06393b61fc41d07a9715903271a7", - "description": "agx: handle quad_broadcast", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7b33c549b97858129a520483d1eaa254c704d254", - "description": "agx: handle non-immediate shuffles in divergent CF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "589c69a6460a70a2c69b6cd75e26b76b17a7e024", - "description": "agx: lower shuffle", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fbcd9a83e48dd412cf18572ab6229c009018a81e", - "description": "agx: model more subgroup ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e718a536ac0411e7708f4d1b630c7a4903a6d1f0", - "description": "agx: delete unreachable blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3efa723b630dc153252ac7841f60924078684e04", - "description": "agx: lower nir_intrinsic_load_num_subgroups", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "765bf9a25be2a69bdd94bac6d95afb022973110e", - "description": "agx: switch to demote internally", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "35d6f4a3945b221d39a8d25aac21b8fb818f35a9", - "description": "agx: fix spilling inside sample loop", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdd200a20290f03f90058a7a925066c8894dd255", - "description": "agx: handle subgroup barriers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d183b76fd490e8e61a7cb1373a45ab91cf3104a8", - "description": "agx: fix frag sidefx with sample shading", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6269a1474d50ed2cfc6b673f444b3c5b06826eb2", - "description": "agx: fix load_helper_invocation with sample shading", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "94f0209fb26032f888e3d21dabcd7d657e0b48dd", - "description": "agx: fix phi translation corruption", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f21dbfe5aebb9ecc30a8a576df43cfa06956f8cd", - "description": "agx: allow 8-bit bcsel", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a948244058c97be3391d201fb92bff42f2e5f821", - "description": "agx: handle cross-workgroup memory barriers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c22ce3cab9897133476675bbc8990616b5f1ef45", - "description": "agx: fix some ms texture packing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ec47f325f88adb5b90793e084a1a4e0f08a46379", - "description": "agx: fix query LOD of array", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8df39ac49b9b8badf02e1e31fdc4b8fd513ed55d", - "description": "agx: enable more lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69d7063ec0ca0c011861172f5a38eeb4872164ba", - "description": "agx: optimize and/or with booleans", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c43413f729f2d671be4d265aff02372d1ab3b24b", - "description": "compiler: add ACCESS_IN_BOUNDS_AGX", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eb5f82d221b42d63109f5a173f21c33b1f835bb6", - "description": "nir,agx: fix load_active_subgroup_index", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7fb60c4c81380071e4870ac2e32aa5e3935a2d82", - "description": "nir,agx: add depth=never workaround", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d824bd123ca79aa3ed89977ceaac844ee94430f", - "description": "nir: add quad_ballot_agx intrinsic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2912f531a7937cef03e279b8ff82f5a85fd53d15", - "description": "nir: add texops for AGX border colour emulation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b9ed851ec9f9aa2d5ce3d1a3a601b4cc756185f", - "description": "nir: add is_first_fan_agx sysval", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8bc694223ed9a0bd354139a3b174f13004442591", - "description": "zink: Set workarounds.can_do_invalid_linear_modifier for NVK", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e6f77defec0d61f9f5851bdbda5bf4cc97cd1cea", - "description": "nvk/wsi: Advertise modifier support", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "28342a581f926777f9923835525fd2f267edfd53", - "description": "vulkan/wsi: Bind memory planes, not YCbCr planes.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f5433e4d6ce247b86daed741c07aa99f2bd02c0d", - "notes": null - }, - { - "sha": "cd428e01d7876da243933ee49f10f866777820f5", - "description": "nvk: Advertise VK_EXT_image_drm_format_modifier", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d8e200c0d954892c9ecf152c4c465a915700d743", - "description": "nvk: Advertise VK_EXT_queue_family_foreign", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bca2f13dd8ee3904fac67bbe273226a0864caa59", - "description": "nvk: enable rendering to DRM_FORMAT_MOD_LINEAR images", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "224d9a514a83a3236ad42c1b74458cde69dc6647", - "description": "nvk: Implement DRM format modifier queries", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ad79bfef427b0b40acca403587b2e249389f533", - "description": "nvk: Set tile mode and PTE kind on dedicated dma-buf BOs", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f1fdffa1b2e5c1b9b813191a2881030cc7278906", - "description": "nvk: Support image creation with modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3bb531d24599d8daa10c1cee631ea8ed3e9fa432", - "description": "nouveau/winsys: Add back nouveau_ws_bo_new_tiled()", - "nominated": true, - "nomination_type": 2, - "resolution": 1, - "main_sha": null, - "because_sha": "ce1cccea98d6257f2015b32b92d826e4ebc0a7f9", - "notes": null - }, - { - "sha": "03c4a46fe5511d09b5b99a0a370e8f308a892549", - "description": "drm-uapi: Sync nouveau_drm.h", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8cce121da44adb8141b98b9a8352f1deda7fddcc", - "description": "nvk: Allow VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6063f96c61dc80990ed3ad67eb0acb5a3796676a", - "description": "nil: Support creating images with DRM modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1bd4127f36cf509d1a418402a641e361ec48b0f", - "description": "nil: Add some helpers for DRM format modifiers", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b7773f96f9e86a087855345a030c9cd585efe702", - "description": "nil: Default to NV_MMU_PTE_KIND_GENERIC_MEMORY on Turing+", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "603389f7a3508a94bb44718bbb9b21c468c65bf7", - "description": "nvk: Set color/Z compression based on nil_image::compressed", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "873a044cb3d6c99e6fc749fa7c5d2afc5e904f4b", - "description": "nil: Add a nil_image::compressed bit", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73c87dbc0c447ed8f1b3e4f1fbd19608e3a4baaa", - "description": "nil: Use the right PTE kind for Z32 pre-Turing", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "426553d61d164a04ecf540d933f72e16dcbf9e33", - "notes": null - }, - { - "sha": "71d1fa129a2e854bafbc4fc1064733e65e8f82f7", - "description": "nvk: Allow GART for dma-bufs", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6cd58de4eb79dcced41ca77faae1449368f9ac5e", - "description": "nouveau/winsys: Make BO_LOCAL and BO_GART separate flags", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "19b143b7bc3865fed8c8b09156b85d8c41c32d6b", - "description": "nouveau/winsys: Take a reference to BOs found in the cache", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "c370260a8f15e9be2f43a7d237f438592a09cccd", - "notes": null - }, - { - "sha": "d63f015d0baf688cfed007fe6dd6eea70ea7657a", - "description": "nvk: Improve the GetMemoryFdKHR error", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "756cbb41a2c259495afad77cb728657f0ddb590c", - "description": "nvk: Use the upload queue for NVK_DEBUG=zero_memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22e44d54fd1396411ff58807180c4b8ac051bdc8", - "description": "nvk/upload_queue: Add a _fill method", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3132a49eb005bd5ad782caddf8f7cf71f2c79957", - "description": "nvk/upload_queue: Add some useful asserts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9b098209b9d3b3a9379003d7e53152859967c30e", - "description": "nvk/upload_queue: Only upload one line of data", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2074e28a0d6aa65d2a979ba6bae9012797dd3352", - "notes": null - }, - { - "sha": "ac78076cd2ca895d64e13220d3ed204b8509ac92", - "description": "zink: hook up VK_EXT_legacy_vertex_attributes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "97e3c6a12a2c981bf70e64fbd4ab4e7bbf8601eb", - "description": "intel/brw: Use range analysis to optimize fsign", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5786573132cb35395a8405cd886167c65b9ec84", - "description": "intel/brw: Implement more strictly correct fsign lowering", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "864268ff0d15693fae42d3e6ae478994bbd6cecb", - "description": "intel/brw: Algebraic optimizations for CSEL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "033405cd4bd9ee93755eccdca82d56d6f06ee1af", - "description": "intel/brw: Combine constants and constant propagation for CSEL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "504b742b834067ac25dca018b279e7429d61242d", - "description": "intel/brw: Update CSEL source type validation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3f151c03af3d159c8725f5f6dc7050b6a418de51", - "description": "intel/brw: Handle fsign optimization in a NIR algebraic pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd343fb9acd49706320ea3bf1bbc0c842b9c6970", - "description": "intel/brw: Add support for fcsel opcodes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d51ad9f4e03c2b36c37ad2c72573915795b6cd15", - "description": "intel/brw: Use fs_inst::resize_sources in brw_fs_opt_algebraic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11c6b6c1022991978d941fb3b82cae57b99ec454", - "description": "intel/elk: Remove dsign optimization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ded8690336efbc781aadaa98e1db3dee54219c4f", - "description": "intel/brw: Remove dsign optimization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa9fb239b7d1075b7193f081f483aa4daf59de68", - "description": "docs/features: Add EXT_conservative_rasterization for NVK", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db2f2ee0786f4facacc6d389f4b2e87741562d5b", - "description": "nvk, nak: Wire up conservative rasterization underestimate", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "715f2f14258053c8ead7337dbbe0c33a2ac8e79c", - "description": "nvk: implement VK_EXT_conservative_rasterization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4dd97b1d729048f3ccf3a2ed4ddbfa53c057e4a3", - "description": "vk/graphics_state: Add last bits for extraPrimitiveOverestimationSize", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a875598d9e0f2e5d0f5a9b7cf0e2cbfebf2cab94", - "description": "nvk: update 3d classes for conservative raster", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11448823b900173c8a320a23cb52fcb4ec00984d", - "description": "ci: bump VVL to snapshot-2024wk19", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "891730ac0b678c1fece36d92b921192249d90d2f", - "description": "ci/panfrost: disable G52 until machines gets fixed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04f945d6c34b0c00721e2e8e591893090ee3ff0a", - "description": "docs: Update VK_EXT_legacy_vertex_attributes entries", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "8c1cc405d37143eb819e1272e8e2befdf26fcce8", - "notes": null - }, - { - "sha": "3d5ad071bf68122aa82eb55fc6f08301d8b65416", - "description": "freedreno/ci: re-enable a306_piglit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fed2c9df016682e14f5a1bf7fc991c9701ef26dc", - "description": "freedreno/ci: switch a306 to weston", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6652d55da0c50f77e56ca783a1ecad8532b8c2f", - "description": "freedreno/ci: do not depend on single job rules for another jobs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8cf60b4da74090fef2a3a8270984cec3f9cd410e", - "description": "freedreno/ci: Switch a306_* to deqp-runner", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9a0373a65963dc0507538b77de68808c6652f94", - "description": "freedreno/ci: move the disabled jobs from include to the main file", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "9442571664e5a7d6e06f098ce4ea2246e5504796", - "notes": null - }, - { - "sha": "e0f44f817d16e4625054e605e87715c7b3c09076", - "description": "freedreno/ci: move platform to the deqp toml file for a530", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "312150f5241804a21b1871626fbe875678bcf023", - "description": "freedreno/ci: Switch a618_piglit to deqp-runner", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "758b639d1b83a48e18a11fc1f839e1d52ab47e76", - "description": "venus: drop the workaround for excessive dma-buf import oom on turnip", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "fdc21a95aa6cbb0a47a37155b76c19a92b99f5a0", - "notes": null - }, - { - "sha": "a1392394ba1de0fad8cbcf10bdece3d623c9d7a6", - "description": "turnip: msm: fix racy gem close for re-imported dma-buf", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "63904240f21b192a5fb1e79046a2c351fbd98ace", - "notes": null - }, - { - "sha": "3909803849ef492e66dd4590fbf3bf51256efb22", - "description": "turnip: msm: clean up iova on error path", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e23c4fbd9b6b95537ab00d19a034eaffe5fe86b0", - "notes": null - }, - { - "sha": "80b8bbf0c5c223014b70eff1c10db28e1d7368d7", - "description": "aco/gfx11: use v_swap_b16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5803a40e2fe445fcb275375c91cb89d2702ba564", - "description": "radeonsi/ci: document new crash (assert)", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "38cbc3c605ff17c813e70521f4a6c8d3a5d1e397", - "description": "radv: advertise VK_EXT_legacy_vertex_attributes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ddd675168eb96ff46ba06cf67e9a0735d68f6a4", - "description": "aco/util: improve small_vec assertion", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "869253b66c386286c374c57e3badf18ff9b92cdb", - "description": "aco: support VS prologs with unaligned access", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ec2fa392f6004ca2e01656a475c6f454be607fc", - "description": "aco: copy VS prolog constants after loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "46b8ba8154652ce73fba6c38dee057b4e50f6378", - "description": "aco: form hard clauses in VS prologs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d48c8905f1ec6cc6c22a023900fa2883e90df87e", - "description": "radv: keep track of unaligned dynamic vertex access", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "62b4e9a7790cbad25da8b9986095dbd34c03d0c4", - "description": "radv: simplify radv_emit_hw_gs() slightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdefab362c045213562825811baac7d37a2dcdb6", - "description": "radv: simplify radv_emit_hw_vs() slightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5572a83b00b9e78c136c3bdee15b0c3d9f7d2747", - "description": "radv: simplify radv_emit_hw_ngg() slightly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd3ae170a732cce283806a2a8b4ce9f4fa6268db", - "description": "radv: do not emit VGT_GS_OUT_PRIM_TYPE to ctx_cs on GFX11", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f228e7ed2d3fcae392b188d949cb878cb27fb4e3", - "description": "radv: remove gfx10_emit_ge_pc_alloc()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df39994d51b4c28201f1b9ca12e572692d8d169c", - "description": "clover: fix memory leak related to optimize", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2d4fe5f229791fde52846b3f583c12508b5109d6", - "notes": null - }, - { - "sha": "28eb1b1eaf0086464505f7396d635c23b4a95f89", - "description": "vc4: use IO semantics for location", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "aefe237e47f5e10403c90ed7a4d7925c9a1c1733", - "description": ".gitignore: add .cache folder", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7eb6123e98e0eaa65b24e41a8f1efe44b4a95513", - "description": "tu/a750: Disable HW binning when there is GS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1ed874b5ef568ea4018577e4194b26e2c7dae4ee", - "description": "Revert \"ci: disable Collabora's farm due to maintance\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "e154f90aa9e71cc98375866c3ab24c4e08e66cb7", - "notes": null - }, - { - "sha": "8b85c584292dc61bb71a10d54d390823fbfa8e68", - "description": "radeonsi: remove the _unused parameter in all radeon_xxx macros", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5272a813f276646c02b84122349a682709c34b1e", - "description": "vc4: use tlb_color_brcm intrinsic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "87cd11ecd2cbc853cdcbcfe0c1fb14c989c049a3", - "description": "nir,v3d: rename tlb_color_v3d intrinsic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ab023edeecab129cbbd3943478ae54254330267", - "description": "Revert \"ci: fail pipeline for users who got access to restricted traces\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "754ad73b8be95eb68577644c0faf3a71332404e1", - "notes": null - }, - { - "sha": "985ee5441ac81a8452a72adf94bd7d9db559b77a", - "description": "ci: Allow to override the virglrenderer render server", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "02ab51a61eed8fed5940cf88df71f536ce14f0e2", - "description": "glxext: don't try zink if not enabled in mesa", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7d9ea77b4598e23d4415b529924f1cbdca6e33bd", - "notes": null - }, - { - "sha": "3163b65ba73c4c6343e1d3ee69db07721a3713bf", - "description": "drisw: fix build without dri3", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "1887368df4166ae854245c0306d43661ef120e42", - "notes": null - }, - { - "sha": "e154f90aa9e71cc98375866c3ab24c4e08e66cb7", - "description": "ci: disable Collabora's farm due to maintance", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63e17ccc0a2ed5e762aedfa71d9133672e77aa24", - "description": "zink: rework sparse semaphore waits", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f339f1e7ad344ed33d44a7f6bde58fdc96d5b338", - "description": "zink: stop leaking sparse semaphores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "723ac0cb59a06a5f3ef7fce393c162448ae490cc", - "description": "zink: add a batch array for tracked semaphores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "604573cf0a81c499667bb107b42c25e21bfa98db", - "description": "zink: clean up semaphore arrays on batch state destroy", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5c8a7e3ca58fb9c8c47e31c397bfeac3a58c3e23", - "description": "zink: refcount miptails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a728bed23568c69eccf84884c56bdded70e5501", - "description": "zink: always commit full miptails", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "920e2a52197c112ab68d8b53ee2e4c44c4e77b23", - "description": "zink: use u_minify for sparse calcs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1232bcc4700e02d70435c53a31a171126a28872f", - "description": "etnaviv: migrate from piglit include to generic deqp and toml spec", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "406dda70e7c9baa59c975eb64025e7c3b210c3bc", - "description": "radv: Zero initialize capture replay group handles", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "df82221bb32c73f111d60e02655339846136e2de", - "description": "radv: Remove arenas from capture_replay_arena_vas", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e050abc961d2d063f9d7cf419f43aaf17ba0b039", - "description": "radv: Fix radv_shader_arena_block list corruption", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e21ea25de916b88cc6075b267874fc3085e598a7", - "description": "radv: Remove radv_queue::device again", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "0fb19b8331f53b03d51f026acefa07bf97cbfe5b", - "notes": null - }, - { - "sha": "79cb8842753e6dc7c10d6c5af1f1cf7ece5ecc75", - "description": "radv: Use zerovram for Enshrouded.", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e28195bf4b0e928ae16fe09f6a076bef4c719c60", - "description": "radeonsi/vcn: enable decoding in vcn5.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f9441cdb8e6f91d95979f7d6a0477ba066355654", - "description": "radeonsi/vcn: add hevc support for vcn5", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "04d6b46d2ddf5562a011493dfbdb4a9e2e56d44a", - "description": "radeonsi/vcn: add vcn5.0 for h264 enc only", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52f0d5b96d51840718868640a43aafb7e88d3637", - "description": "radeonsi/vcn: add vcn5 encoding interface change", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f703dfd1bb8c22b6791dd95c7de270e176452b4b", - "description": "radeonsi: add gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8ad0f07155d79ac28748f6d47483634b46d8953", - "description": "ac/surface/tests: add gfx12 tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d22564d29cc6d1d1d7d9370eeeb71f21e2d1fbbc", - "description": "ac/surface: add gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "686e5a03f52f0e805a59d3affd098cca98a603fe", - "description": "ac/llvm: add a workaround for nir_intrinsic_load_constant for LLVM on gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "546465e1ba750a80febd78a06422b0e65e4af2a2", - "description": "ac/llvm: implement nir_intrinsic_ordered_xfb_counter_add_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5d94ec9ec435970e3b55c0314866233ce9d4c5c0", - "description": "ac/llvm: handle nir_atomic_op_ordered_add_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2a7302f6011d35a6ea6a3ef088f4a8ef616c4bcb", - "description": "ac/nir: add gfx12 streamout NIR code", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "542c7ee75f2b5dbeae0952444f65d881867009a1", - "description": "ac/nir: add ac_nir_sleep and handle the intrinsics", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "af9f04ad59fb39da4e0cd35320c30912fdb7ebf7", - "description": "ac/llvm: update inline assembly for buffer_load_format_xyzw with TFE for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d33e66ad6a2568f88ebed3fa68b6653605d1260", - "description": "ac/llvm: add CS SGPR changes for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0356209543fd716e6f676444f75eeac2ab292340", - "description": "ac/llvm: add new cache flags for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6c46509ccb10b3836fe273f740b521b3bdfe7d6", - "description": "ac/llvm: use new s_wait instructions and split the existing ones for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "12bca6123a80a771f812b499b6543b02ee1e3441", - "description": "ac/nir,llvm: add GS VGPR changes for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4e1abe5d8cec2270b55b86b872f8b259f1be442c", - "description": "ac/nir: update ac_nir_lower_resinfo for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2adc66e586a3f9f90bdee52dd3976d4480b39a20", - "description": "amd: add initial common code for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "58a5de5c346b78211500a26d338b4c0dc64fe760", - "description": "amd: add gfx12 register definitions into the register header generator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "724b6d667c6d805ea60808c4cea4a7bcdada1ad2", - "description": "amd: add gfx12 register definitions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ff47395757001f8bb299948ce4822958b72dc6f0", - "description": "amd: import gfx12 addrlib", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d8addb0733cd17fb1f0b7f21b8e64d115106195", - "description": "drm-uapi: update amdgpu_drm.h and drm_fourcc.h for gfx12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74ea0d006ef7a3faf037c8ce1c2c669f4bfd06a3", - "description": "mailmap: add Freya Gentz entry", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a02ca1b2eb9dc100a5c7a6089e515485e50fecc", - "description": "egl/x11: Allow all RGB visuals to match 32-bit RGBA EGLConfigs", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9bdab38424543061ea9e76bc420e07b8ddd8be03", - "description": "egl: Implement EGL_MESA_x11_native_visual_id", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3736c9997c6efb3ef6b63923bbddada3d003e632", - "description": "egl/x11: Move RGBA visuals in the second config selection group", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d90415625c12f534aae7767ca801b310dc3f376", - "description": "egl: Implement EGL_EXT_config_select_group", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b6b327d1b9bc6f6e2053d30911c9d7888e4848d", - "description": "treewide: Cleanup unused structs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f42a34625bdd0f246afd47a5fa126788a40321e", - "description": "ci/deqp: correct EGL_EXT_config_select_group detection", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "671c646a0ded70299aaf93ea189587a2cdc96981", - "description": "Revert \"ci: mark microsoft farm as offline\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "45edd99b6bee4c15a71a9faf7d8fde7d2333b34c", - "notes": null - }, - { - "sha": "4842bbb200cab04c5548074b609dcbf2e44bf0a9", - "description": "nouveau/headers: Add a bool for whether or not to dump offsets", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "99b0117243e233f7dcdbaa346220389b5fdb36c9", - "description": "nvk: Don't rely on push_dirty for which push sets exist", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53737b9d5b9e5c8a4949dc4ee42d9b7cbe790a33", - "description": "nvk: Get rid of sets_dirty", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c834644c4e4b39d65003b455e3be5e129767200d", - "description": "nvk/meta: Restore set_sizes[0]", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "af3e7ba1057e122c9ccd6d0f09b233ca8278af28", - "notes": null - }, - { - "sha": "a160c2a14e71bb36d420929b0cb408f6346d845d", - "description": "nvk: Re-emit sample locations when rasterization samples changes", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "41d094c2cc1da09444830dca866d2be7f03ae5b4", - "notes": null - }, - { - "sha": "bc15c95c7afe56cc0408aa2ba02a5a21f766547b", - "description": "frontends/dri: always init opencl_func_mutex in InitScreen hooks", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a1225e81c9d0d2b6ada9e6af51be710d2ae2d4dc", - "description": "frontends/dri: only release pipe when screen init fails", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b8dbd64267cc8dc2543a1e235d751b61947f1ed7", - "description": "intel/brw: Fix commas when dumping instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9fe20fdf1a9d5670cb14279dbc1f014219872c5", - "description": "intel/brw: Use `vNN` instead of `vgrfNN` when printing instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a081106b0fb8dd0c4fdde1f8666489b50f350e5", - "description": "intel/brw: Hide register pressure information in dumps", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "866b1245e9e99bce7932fb6828de28c8fcf8ad0d", - "description": "intel/brw: Don't print IP as part of the dump", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fd47f90d37b9d29283f92713b479d9886f1f03f9", - "description": "brw: drop dependency on libintel_common", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "36c043e2ebc3c5fbabaef54d64e867b7dd915b5c", - "description": "intel: move debug identifier out of libintel_dev", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4882f49e6baa6e4cbe6277a2a5702b17d52176d0", - "description": "zink: don't submit main cmdbuf if has_work is not set", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0a24b8f9a342a59ba155692b437b3998eb15172f", - "description": "zink: stop flagging has_work on batch tracking", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74f572b28fce085f780f3c25673b97f4553de668", - "description": "zink: flag has_work in a few more places", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f687f2a46529206737385bce46b4b0507b2b42c", - "description": "zink: rely on zink_get_cmdbuf() to set has_work flags", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9ec12d4392b7de6c026881d8e01b5d2658a6136", - "description": "zink: check all has_work flags for flushes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "06abe4399d242a84abefb06c1de24dacc228904b", - "description": "zink: reset all the has_work flags in the same place", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e4c516bece592e7a664fd7238259ce9b66ac42ad", - "description": "zink: zink_batch_state::has_barriers -> has_reordered_work", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac07fefdda145025a0a3b89d812b1f969ab09381", - "description": "zink: delete zink_batch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "40f595b30c14ac2c042660018f96a9d548ad9e17", - "description": "zink: remove all zink_batch usage from zink_context.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91969dfa5a743c76b3514f9f1f48a780d2367406", - "description": "zink: remove all zink_batch usage from zink_render_pass.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "05ba13ed18a6f7e421302654c4719371c7c85c8f", - "description": "zink: remove all zink_batch usage from zink_draw.cpp", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bdb4860c107c03d58c2513225e0c19abc4d9f11a", - "description": "zink: remove all zink_batch usage from zink_resource.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0d8d90d5776d5b1ccbe4abca6e31e01794a48a60", - "description": "zink: remove all uses of zink_batch from zink_batch.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4adfb03f5b122c22b4e07f6f16bda68586b88f1e", - "description": "zink: remove zink_batch usage from zink_clear.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "efa8ce29a4a9e59e838c2307f602bcdcf9ada28e", - "description": "zink: delete all zink_batch uses from zink_query.c", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e27018dc79181af1d84aea396e4efb56309dea53", - "description": "zink: rename zink_batch::state -> zink_batch::bs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "107bf9ec7c9887cc6e13d5601560543d78f9a077", - "description": "zink: move swapchain from zink_batch to zink_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2837cf9dde54d2c7791675e57a46de23e5adf2e9", - "description": "zink: move work_count from zink_batch to zink_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8eacafaccc669f16fce509c3b4c5df7dd15e7872", - "description": "zink: move last_work_was_compute from zink_batch to zink_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb6828a9a1619664f7d59f942f9aec697e904d4e", - "description": "zink: rename last_was_compute -> last_work_was_compute", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d157b89bee9574b57b6ec674821dbaec3e4bd6da", - "description": "zink: move has_work from zink_batch to zink_batch_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c8026f01bc5a944ca21e3438b6f869ecd90e2f8f", - "description": "zink: move ref_lock from zink_batch to zink_batch_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f8876a0533d1cdee08fd1f19295d1113030ada96", - "description": "zink: move in_rp to zink_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c85fc875d961a28c5c18e080e258a65128490e4e", - "description": "zink: delete unused zink_batch struct member", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae8fbe220ae67ffdce662c26bc4a634d475c0389", - "description": "freedreno/replay: use inttypes format string for 64bit", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "654ef356357e8df618e82c9ed19619fbe4d4524d", - "description": "zink: avoid designated initializers as they are not supported in C++ < 20", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "7bdaf6e95f79d3c159ae6418ac403c0aba550ed4", - "notes": null - }, - { - "sha": "320c0b44f480f517a9ea7a5af3ec78ed32c3a96a", - "description": "radv/ci: add navi21 flakes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "32f2b5d245fcaadc540cbac9f4780cc199b1ae0d", - "description": "llvmpipe: wrap the push/pull in the ifdef as well", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "c7634c25e4fe78cf993de65dd184d7155564eca2", - "notes": null - }, - { - "sha": "860b262f4487977fcab0d7efe89187dcaf202ee6", - "description": "microsoft/clc: fix incorrect changes that got through while the Windows CI was down", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "e80d52223e13f02ab9a3c56452f39e4fff326c1e", - "notes": null - }, - { - "sha": "18c53157318d6c8e572062f6bb768dfb621a55fd", - "description": "meson: Update proc_macro2 meson.build patch", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1c01e256d0df30bee884a49a9d4bfc5b1551ae8", - "description": "brw: add more condition for reducing sampler simdness", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0aa70bd557509fd49ac608d4fa768560fc535d8", - "description": "dzn: use common stype debug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90866bc58cced7de930d348b67f1b807b6ff734d", - "description": "anv,hasvk: use common stype debug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c7c80e047a1e66514e2ccf02720416fea2127a9", - "description": "pvr: use common stype debug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "edac80d8a7d25f9928308037b46a91dca8a9bc15", - "description": "broadcom: use common stype debug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd6dfd6c2de3f94560c79ff525e3f8be03ec25a6", - "description": "nvk: use common stype debug", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d34c0f7053475be1e4f39c5c4546fc350332166", - "description": "vulkan: add vk_debug_ignored_stype helper", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d5f15abb064f0c81a03d80e2dec11294d089786", - "description": "docs: add header-stub for vk_enum_to_str", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3ccf7208a26758c5cfb6820d173c37cad49a4ff5", - "description": "nir/lower_robust_access: also handle image derefs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fb187c9c893fb507d04d594e96532770d522e76a", - "description": "nir/lower_subgroups: relax ballot_type_to_uint", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b9a0c8dc6d9d780c5e261a4e47cf6a6290801d35", - "description": "nir/lower_subgroups: add generic scan/reduce lower", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b070c36ec38388724ebf95f449b9eb1f0944fc7", - "description": "nir/lower_subgroups: add filter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3990463c484939caa358cb91882e6c957fee5109", - "description": "v3d/vc4/ci: set full renderer version check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0e6a72b002b083f046bb3c26033f163ee79eaf1", - "description": "rpi5/ci: use deqp-runner suite for vk job", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "993dd0832fb007e03bfd8bac2e90bb98b8792c0d", - "description": "rpi4/ci: use deqp-runner suite for vk job as well", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3825e24085a27d98b1ea050dd4d87f13f4c0b7b1", - "description": "loader: silence implicit-load zink error by the loader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dc7e80ce85578c3596f860da5a46f2e140c6d806", - "description": "ci/shader-db: drop extra nesting section", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d428cc1116fd5cec4b397bfaca87e59570f178da", - "description": "ci/debian-build-testing: drop extra nesting section", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "75532d8687bbb6668d023ace8dc283652255cfac", - "description": "aco: add wait_imm::unpack and wait_imm::max", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c894c9ab1b1aa7951f17630e891c7d7729b83617", - "description": "aco/stats: refactor for indexable wait_imm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f3e461d6435d9e00f95833024f508f261b8d7028", - "description": "aco/waitcnt: refactor for indexable wait_imm", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ff2e3ef5ebd0de75235d2548ff99c0b015d2e077", - "description": "aco/waitcnt: add target_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "20b4e30e2591df30a9d14776b99ed74b7035f6d0", - "description": "aco: make wait_imm indexable", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5b1b09ad429f180dd0b7758487b7e0557c8b094b", - "description": "aco/waitcnt: fix DS/VMEM ordered writes when mixed", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "16eae62f0d9fe6c49baad8d6edf112ea57678829", - "description": "aco/stats: don't use VS counter pre-GFX10", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "16a9f6e2a4aa6baf448bb1a078c89d276c49d391", - "description": "aco/stats: fix s_waitcnt parsing", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd004defd4920243b5b1ad2ca4f8a79e67e5900f", - "description": "u_blitter: stop leaking saved blitter states on no-op blits", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c44e76676b7ff246b9d3455dcb1cd2f3a750535b", - "description": "glsl: use hash table when serializing resource data", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f6e038fd0f36766e4790805db7c631b211ceb8f4", - "description": "spirv: Use fp16 fp_fast_math settings when lowering fp16 asin and acos", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "750bd9757eb9d2f4245bc633919495363ecfa232", - "notes": null - }, - { - "sha": "67a356742fd3ff0f03abac07161da6e5c2e1daca", - "description": "zink: add a batch ref for committed sparse resources", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ee9809c889cf5fbb1c60593ebb253878316d6092", - "description": "pan/mdg: quirk to disable auto32", - "nominated": true, - "nomination_type": 4, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7246f25677116fe8667ab9fd527ceb5917f3aaaf", - "description": "radeonsi/vcn: enable yuv440 jpeg decode", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "906f207f9ce94c95191dbaac050547248ad1e7cd", - "description": "frontends/va,gallium/vl: add support for yuv440 format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "afd15f481be2be5614fc755257c63c1fdabc0c88", - "description": "util/format: add planar3 y8_u8_v8_440 pipe format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "221371e9039bcf6fbd54fe31c9938da596c7783f", - "description": "mesa: replace shader_info::source_sha1", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7c0b0e660a5c83bc46ac024c22af5ddce87acdc5", - "description": "mesa: Add functions to print blake3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69fc7ee6220072b013bd0fae4338db1474c4e1f5", - "description": "intel/disasm: Fix cache load/store disassembly for URB messages", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "925fff229fdc963a02348c59ef30ebc3f814d59f", - "description": "zink: use bitcasts instead of pack/unpack double opcodes", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "146ac5169d2583ee2f800b8d59291648edf799d1", - "description": "rusticl/icd: remove CLObject", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7f77f91929c9cdaddde78a59e532657d024d7731", - "notes": null - }, - { - "sha": "9d2711fcb88b20914210e4d986b7b725d6216843", - "description": "nir/dead_cf: stop reindexing blocks for each non-block cf node", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e86a2b0db167d47729b573c0e6551441a7ef014a", - "description": "Revert \"ci: disable g52\"", - "nominated": false, - "nomination_type": 2, - "resolution": 4, - "main_sha": null, - "because_sha": "f02310934cb3a0866449810653cacbffadf14028", - "notes": null - }, - { - "sha": "43fbbc0732dc7e10cf6c1ca6cfe44215d6065f2a", - "description": "radv: track and bind more VRS states from the graphics pipeline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c17b056151bc2db3f2338ae48d415ecda41b791", - "description": "radv: do not emit non-context registers to radv_pipeline::ctx_cs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "24814be08a41c136099854e945ece56169c195c8", - "description": "radv: stop recomputing the last VGT API stage when emitting graphics shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6753f981b6a7a137f0b657f11c9f09b7691639c4", - "description": "radv: remove unused parameter to radv_pipeline_emit_pm4()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "920025533ec891e77658fa5682ec60433d66168b", - "description": "broadcom/compiler: do not run lowering I/O for FS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1545dc94b4f871caf75bf64cf45c571ba2ee5e1f", - "description": "broadcom/compiler: simplify v3d_vir_emit_tex", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c24a149d2dd8f85b83dcc29490dba8225d6800f4", - "description": "broadcom/compiler: don't read excess channels on image loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd094f7dbb5823a4dce923eefff4291900730058", - "description": "broadcom/compiler: fix num_textures for precompiled shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "989cfb60359968677991abb0c7317b58a5e70dc7", - "description": "v3d: fix array_len when precompiling outputs for shader-db", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae7f20d8d4195fb0ae2b72e49b29b0203d3d3b96", - "description": "broadcom/compiler: assert on array overflow", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6a22dd05c96144084c1d7884f2d8316b513966f", - "description": "radv: precompute NGG register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "751e5d8bd7a7ddd1809099ecd359544821d11311", - "description": "radv: move common registers between VS/GS and NGG", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "69b0ee7b6cb21765110b2b9a3cdf110d0fd8d724", - "description": "spirv: Get rid of the old caps struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e80d52223e13f02ab9a3c56452f39e4fff326c1e", - "description": "microsoft: Use spirv_capabilities for spirv_to_dxil", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3672702be2f600a73a1494b92c8673767b14b5dd", - "description": "ir3: Use spirv_capabilities in ir3_cmdline", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91b62e986867ba12dad20789e51f978f1883f38c", - "description": "anv: Use spirv_capabilities for the float64 shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "25dfaf5ff4f9e7d074753eccb40a38ad8d17a553", - "description": "zink: Use the new spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6dca6809b2ac989d51c7bbcba7096c18da7ad6d5", - "description": "asahi/clc: Use the new spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9d5b4a4ffdc2afa68afc6fe962003d13ae16099c", - "description": "intel/kernel: Use the new capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac500495ac4af71e811a54dfc964988bf4fdf63f", - "description": "radv: Use vk_physical_device_get_spirv_capabilities()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce2946ae0f0fbc9369f727dcf3e5e421f7d70b49", - "description": "vulkan: Set SPIR-V caps from supported features", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1759c0eba774615c57097e5579ad4ff1abc1f6c8", - "description": "vulkan: add helper to fill out spirv caps automatically", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ba11b12a82a1e7de5d29ae89abe24f3c52ffc38c", - "description": "rusticl: Use the new spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "30f209c017f94c94951465f7e9613c1cbf24f928", - "description": "clover: Use the new spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "22171d16f8b993547da59b5279fcf17319d97423", - "description": "mesa: Use the new spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4203d7339cb6b561bbf3c6f42f56e47ff748db4a", - "description": "mesa: Flip the script on SPIR-V extension enabling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d5f3233a06198c3f63447c9d833daf17b2ced4c1", - "description": "spirv: Use spirv_capabilities in tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d7a465ad47fa53d09b62d9c874d2e96d944f5cb", - "description": "spirv: Add support for specifying caps through the new struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a7f8555b96269a6ae2ba945fb2a11bf0a7b09f6f", - "description": "spirv: Check capabilities using the supported_capabilities table", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5836e2430c19891392485f2b916e8a187acb519f", - "description": "spirv: Add a table of all implemented capabilities", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c1eaa0390412d4dbd0c971c668499eedcb650698", - "description": "spirv: Drop the SubgroupUniformControlFlow check", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9ae61a152dc974dd280422b5eac2c7626c0823c2", - "description": "spirv: Use supported_capabilities for various checks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "29aa6cefccf92978d768a4aedfa399ac4aebd981", - "description": "spirv: Add supported_capabilities to vtn_builder", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b3561b14d70eb09c0459967c66e585a9150a2b1", - "description": "spirv: Move the printf enable out of capabilities", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eed3b56402c10fca81a48adbcc2a7c0c906c7e8d", - "description": "spirv: Move the old AMD extensions out of capabilities", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18df453add520a1f11865de8a02f95afb238e0f9", - "description": "mesa: Stop pretending to support SPV_AMD_gcn_shader in OpenGL", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1d574dcf19f3f1ada6c5ee8fc4d6c09d4272e749", - "description": "spirv: Record capabilities rather than ad-hoc bools", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c07cf9c395f2497fac920b00f306828ab9bd775d", - "description": "spirv: Generate a spirv_capabilities struct", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "74b17b8d25da47cddde4a396448254e5ccea9736", - "description": "spirv: Better handle duplicated enums in the JSON parser", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "182877342f210480df3ac3632fa3a8bf49f567ea", - "description": "spirv: Update the JSON and headers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a09c5d55ed7481a9ec61cec956538b8759212c98", - "description": "spirv: Auto-generate spirv_info.h", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7634c25e4fe78cf993de65dd184d7155564eca2", - "description": "llvmpipe: Fix build error with clang-18", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "568807cf889060fe7c3bd5b9f11ced4d84966790", - "description": "egl/x11: disable dri3 with LIBGL_KOPPER_DRI2=1 as expected", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "28a0f98123f6174249e63acff624e08701c978a6", - "description": "intel/tools: add README file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bab52763f45860fba90116e553df5cd8a510282f", - "description": "intel/hang_replay: fix batch address", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9f1151de270c5270a9e0280924b70b39d4692e1", - "description": "intel/hang_replay: use hw image param", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4d698700715313e30d7980477d29583f428bbb6b", - "description": "intel/hang_replay: use newer API of i915 execbuffer", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a45f1990860db3a8da6d7251bb627a314dfb8423", - "description": "rusticl/event: use Weak refs for dependencies", - "nominated": true, - "nomination_type": 0, - "resolution": 2, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "665cad6408217c35a26f12ae0751441f213aecc6", - "description": "anv: fix ycbcr plane indexing with indirect descriptors", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce5863bee414a09c3a6f5a2f6a8f96815a169fd5", - "description": "ci/traces: majanes has no longer access to the restricted traces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "754ad73b8be95eb68577644c0faf3a71332404e1", - "description": "ci: fail pipeline for users who got access to restricted traces", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "92cac2fe5df2f0fbe8197332b459282439cb2274", - "description": "docs: update calendar for 24.1.0-rc3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "423ba5d1c7e2d2958c37ba5b6be6dafe4161b333", - "description": "meson: disallow Venus debug + LTO build via GCC", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be7c137229ceceffcac6d427ed5c7017a013f9b3", - "description": "aco/gfx11+: optimize v_fma_mix throughput", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f02310934cb3a0866449810653cacbffadf14028", - "description": "ci: disable g52", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "76725c2fac7b3d04a2b5d04d9b5618161a228d29", - "description": "docs: add sha256sum for 24.0.7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a2218002addc7e60e66ba87e7a8c7fd49a81121a", - "description": "docs: update calendar for 24.0.7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bd725681e4225a04ca51cfaa895aa2396498baa5", - "description": "docs: add release notes for 24.0.7", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c225f89d346e5c94b8b30334b1609d1b3b845e84", - "description": "anv: skip gfx push constants alloc optimization on gfx9/11", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "62d96a65464317326cdc2686aa34eb30f8c21952", - "notes": null - }, - { - "sha": "065b3b04d2411f91cd34c7fec90e17157fd1d81e", - "description": "freedreno/ir3: Skip DAG validation on release builds", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a3e5c156647aa9d72a3d37e0a3227b440ad8adef", - "description": "tu: Fix a6xx lineWidthGranularity", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "48da361eb7b355f6ce79983d661dd0422e278967", - "notes": null - }, - { - "sha": "5c7f5362c025657b73eb440615a6af708d17904f", - "description": "tu: Add missing error path cleanup", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9f72e22230e6385f17c93dc68c1f95d751deb484", - "description": "broadcom/compiler: remove unused parameters in vpm read", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b8e79d2769b4a4aed7e2103cf0405acc5bdadb86", - "description": "mr-label-maker: fix yaml syntax", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "117305800282d0f495cb16d79556db9550da1b40", - "description": "radv: add a new mechanism for tracking registers per cmdbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39a9f6868564f89bd0b0c6346ba12efb12b68bcd", - "description": "v3dv: enable VK_EXT_extended_dynamic_state2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a2d7e3830006305ffb80055b65565612931a91d", - "description": "v3dv: SetRasterizerDiscardEnable is dynamic now", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b59e1d8e40cb085bfdf804f3bea75f1eadbd777", - "description": "v3dv: DepthBiasEnable is dynamic now", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8ab0c55a53bc320bfb6719b41e09f49140c4136d", - "description": "v3dv: PrimitiveRestartEnable is now dynamic.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebbb8242404eaaedccbaa0a42e686dbde59fb302", - "description": "v3dv: fixes StencilTestEnable handling", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "60e9237e81c918d3a126427568d09b8b7dd093ca", - "notes": null - }, - { - "sha": "ef5697a884b668b0caab422fe3aa81613319622f", - "description": "v3dv/cmd_buffer: missing updates due PrimitiveTopology being dynamic now", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "2526f74adeda00cca0a62adf4980c7bdad711529", - "notes": null - }, - { - "sha": "6bcc300e00cd3c03d57de233e9eaece61c6842b2", - "description": "rusticl: add RUSTICL_MAX_WORK_GROUPS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "91552bb4ecc0f58518fae27239ae4f0e3d5d54d9", - "description": "rusticl: lower huge grids", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "204c287327fd2353f68d38d464f485e24c8cce30", - "description": "rusticl/kernel: properly handle grid and offsets being usize", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8da8c6c2d8bf9b9b04ee030df68d7d44146fc877", - "description": "rusticl: use stream uploader for cb0 if prefered", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5ff33f99058b5338fa83689da3d3c34d7079f4f7", - "notes": null - }, - { - "sha": "56f7b0297e0906426a876cb423b2d26be3e67ddf", - "description": "v3dv: Use errno when logging an error to stderr", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2b9c5a9e3e4f9b532067af8022eaef8d6fc6c00", - "description": "zink: move blocking gfx program init functions to thread", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66dc759d0f883fd4f5fb32a6fa7f3cf1fe90cc16", - "description": "zink: precompile_job() -> gfx_program_precompile_job()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54db502053ded629c371c34f6a71b682c2a2da7b", - "description": "zink: split gfx program creation into 2-stage functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da04a316f70d8b041a88cb79ed611d93e88d81e8", - "description": "zink: reorder fencing in zink_create_gfx_program()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7d849da0fdf63b0d5cbebc792166462beb83bb06", - "description": "zink: reorder some code in zink_create_gfx_program()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "921fbac6a3883b18cca8fff18bf44bf85d36e923", - "description": "zink: move gfx shader init to thread", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "450447257b08134a0857a67bfbb6845bf6f18e3d", - "description": "zink: split generated tcs creation into 2-stage functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "68eaba7e87edcf966d2b058258b7252f2c9db6b2", - "description": "zink: reorder precompile_separate_shader_job() in file", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ca51c5a9da26572b81109b2f41d37704383e87a5", - "description": "zink: split shader create into 2-stage functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b540129410c3023e1dc1be9dd01ea5ce1dfdd90", - "description": "zink: use zink_shader type directly in zink_create_gfx_shader_state()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b6b91a3ed98c63588f3df2db5a35bc63092a9238", - "description": "zink: more effectively synchronize separate shader program precompiles", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "27fe924cf00e56732a32aa48b9a9d10194cde121", - "description": "zink: always block the precompile threads when pruning shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ac1d003d372b3c0f5b557fff345828b645e2b687", - "description": "zink: break out shadow sampler scanning", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "de6139027ca09c1dcd41606ff0693d83b1506407", - "description": "zink: rename zink_shader variable in create functions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3849f367cc061f3f7fac4a4d6709c440f10e17c3", - "description": "zink: simplify flagging legacy shadow samplers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "95e4a2b37e39da305ee28b665ef8484739595d70", - "description": "zink: simplify confusing return in rewrite_tex_dest", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21a61d75b72be73afb5d357806ca87b8fc06bea1", - "description": "zink: use info.fs.uses_sample_qualifier instead of manual scan", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7bdaf6e95f79d3c159ae6418ac403c0aba550ed4", - "description": "zink: use zink_shader_key_optimal unions for pipeline state asserts", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "843287661435a9d11f3b3051ed58bec283a1704c", - "description": "zink: delete GS conditional in update_so_info", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d77a1762bd3da3216b7935ac856ba3f56c61f64d", - "description": "zink: clamp buffer_indices_hashlist resets to used region", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72b3c2e4baa124d84a798873a36f497cf3a9243f", - "description": "ci: identify and label S3 buckets", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cc6bd04dd7bad9ec694e1f9623d63a061ed72757", - "description": "ci: kernel stored in a different s3 bucket", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "73188a4590a8d407e5dbc181d3d61a82f92a80e0", - "description": "intel/perf: Add function to open perf stream", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d27dcb815eed30148d69d40b7b43e2543a6e3e4b", - "description": "intel/perf: Add and use a function to return platform OA format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b98538d54c998b32fd5af273965003a5fd249766", - "description": "crocus: Free intel_perf_config and intel_perf_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eb97d813c25acd5bbbfa8c95b2c9988ce8aa10dd", - "description": "iris: Free intel_perf_config and intel_perf_context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "137021fbe00d50918c8fee5f4ceaf51e28fc3bb5", - "description": "hasvk: Free intel_perf_config when destroying physical device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a941ce746a7aca7284085489c63f1e74c657ee4f", - "description": "anv: Free intel_perf_config when destroying physical device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b179e7bea3df4683df31334dbd8d043f32f829d", - "description": "intel/ds: Nuke ralloc_ctx and ralloc_cfg", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c3ebff569d22326f60878c233e949013f2525d5", - "description": "intel/ds: Free perf config and context", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2cecf3e8a8744692e2d2a2ec6b599ad3bdcd7f93", - "description": "intel/perf: Add intel_perf_free_context()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ebe8d2f9ea5c1cc1099eda232aa14e43b9bb2655", - "description": "intel/perf: Add intel_perf_free()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a9a53c914db7778f0c6984410129137e6b79f94b", - "description": "intel/perf: Store pointer intel_device_info to in intel_perf_config", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "da45594c5e92000b60219c0b835f91c2eb116568", - "description": "amd/vpelib: Bypass de/regam on HLG", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "88b43f717479198df71731afb545a82dd53cb9b6", - "description": "amd/vpelib: Fix blndgam bypass flag assignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "921f0afe42850333e9a3bb60525eddd1760d69c1", - "description": "amd/vpelib: Fix Color Adjustment Failing Test Cases", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5027ba64a1549632fce0c10601ced99634c7b3ed", - "description": "amd/vpelib: Remove checks for pitch alignment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0df1054d060204d6f38082e7c8532571933aba41", - "description": "amd/vpelib: adding blend gamma bypass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0e6df4d458eb66d680b2c2c2d85d5b7c078201f4", - "description": "amd/vpelib: Remove support for non-linear FP16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "acad1328a17c6efab8e92269c3ad02a8e98f0814", - "description": "amd/vpelib: Remove gamma cached table", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7a41fb59d3acdc235d17372487dc9212da01e1be", - "description": "amd/vpelib: Remove linear_0_125 TF", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39b08da80a6a147cd37fe75d3e1e7446ee2f6737", - "description": "amd/vpelib: Resolve mismatch with shader", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "383c3a417f81c515073ba0d111158eff03fcba20", - "description": "lavapipe: VK_EXT_legacy_vertex_attributes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d93211bde058934cad98d2c06524cb80bc9132f9", - "description": "ci: disable lavapipe-vk-asan job", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6342903f56e761c948cf44babd12a512c6e20d68", - "description": "lavapipe/ci: move a few skips out from under the \"llvm jit\" comment", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a5604094051da7c35d43cb1685098b969723227", - "description": "llvmpipe: add KHR-Single-GL45.arrays_of_arrays_gl.AtomicUsage skip", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "660a47ecbf693601c25660b5fac87121ff0fe8bc", - "description": "tu: support VK_EXT_legacy_vertex_attributes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2890a0615ef2d36b5d71bc076f98be6932f4d743", - "description": "tu/a7xx: Don't set FLUSH_PER_OVERLAP_AND_OVERWRITE for feedback loops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "26417211aef39b29878d7db9ac7c2c7222cf2022", - "description": "virtio/ci: separate hiden jobs to -inc.yml files", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "928dd386fa234ab60c18de47758796d2bc629bb0", - "description": "nvk: Add sha1_h as a dependency", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2efa1ae0d538b446cd61c837564ecdc724953f0c", - "description": "dri: rename 'implicit' param from earlier series", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9666756f603f0285d8a93ef93db1c7ec702b671f", - "description": "tu: Handle non-overlapping WaW hazard with buffer copy/fill/update", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4cefb5ece8208be8c8aacc9be75045f40cb2e820", - "description": "docs/android: Fix example meson cross file again", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "57abef5af1f316bc1e9c6baefe986950e65b516b", - "notes": null - }, - { - "sha": "59192b851f36fbd4f4066df573ebdba05c1b92b2", - "description": "freedreno: Update HLSQ_*_CMD registers for a7xx", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "13fdde0c7d265f0e577a8e9fb3b53e044b8f941d", - "description": "freedreno/crashdec: Initial a7xx support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "81f42d82edef8b3617cc504bfc1bbfc381e52f3b", - "description": "panfrost: report correct MAX_VARYINGS", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4c74d1473054ca3cc609bae6e31028063bd531bf", - "description": "pan/kmod: Make default allocator thread-safe", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d95ec56f8c6884e0ae975b683fe7249fab9e740d", - "notes": null - }, - { - "sha": "068d111884a588f4972e27477b1cb2cf4f52d0e3", - "description": "pan/kmod: Fix a syncobj leak in the panthor backend", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "97f6a62f7ef82b909f62ca78788d4f24416fbd31", - "notes": null - }, - { - "sha": "2cc317763ccc2f33bbff0920bb0833d09300f60c", - "description": "panfrost: Add the BO containing fragment program descriptor to the batch", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "087b63cb07717e83ea606648f2551fc9586b9165", - "notes": null - }, - { - "sha": "31b039d8b735d91e899123a69b87cba2608499d2", - "description": "radv: advertise VK_KHR_dynamic_rendering_local_read", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c533a79878f1e0561e62a2f4788f6a1bcfeadec5", - "description": "radv: implement VK_KHR_dynamic_rendering_local_read", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "53a142ad23bc7617396e498cae3a6196a42413c3", - "description": "aco: add support for remapping color attachments", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39379e30dbf69111d798e54b3afd73c9ed55066b", - "description": "mr-label-maker: specialize CI labels", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a30e6b9afce87ca41f286caa4e3ec190c2d524b1", - "description": "ci: backport fix for gl_PointSize bug in CTS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbe2630f19e86638229f65fb1ee1992f71889c2a", - "description": "iris: change stream uploader default size to 2MB", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "0b6693a3a14029c31db2ee8576baa78fc914b9e5", - "notes": null - }, - { - "sha": "2d575034f23038163d502e744b957b184334a74b", - "description": "hasvk: switch to use runtime physical device properties infrastructure", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "55967a411d40f534b03afa237c2848fd65a53bab", - "description": "anv: Move completely over to common runtime GetPhysicalDeviceProperties2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c0fcc0a2fd8708511cd6593e743770535f1e89ac", - "description": "docs: update anv features", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c1cc405d37143eb819e1272e8e2befdf26fcce8", - "description": "anv: VK_EXT_legacy_vertex_attributes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3d20245f43bcc34afbfc62b4be1c59529ae438cb", - "description": "glsl: wrap nir_opt_loop in NIR_PASS()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d2e5ff058583fda6d917cfcf1fb1579831dca826", - "description": "nouveau/headers: Clean up the meson a bit", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a6036033f0d523f42a38baa4731cfae56fefb8a3", - "description": "nouveau/headers: Make nvk_cl**** turn to nv_push_cl****", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8a0afd127602023ee74c0d901303f3366b62ae06", - "description": "nvk: Advertise VK_EXT_pipeline_robustness", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cda0d6331bacf81a1a94787fb55981e5e6ca8688", - "description": "nouveau/class_parser.py: Fix the docs for --out-rs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e32828f5fc4d8fac717fab113ab5c837ea2e2bc6", - "description": "intel/compiler: Fix destination type for CMP/CMPN", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6c5acc6db7ac56d27c22b0143bcac29e31354ac6", - "description": "etnaviv: Zero init all srcs passed to etna_emit_alu(..)", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "5aede1a157b7aa99052282a6960646da81b0a399", - "notes": null - }, - { - "sha": "1cc48123986e38cb5608b159e080408b737954be", - "description": "ci/lima: expect fail of window_8888_colorspace_srgb on wayland", - "nominated": false, - "nomination_type": 3, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "066fc39f45181c30b9b3ee93c17f52763a8e4356", - "description": "egl/wayland: Fix sRGB format look up for config", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "6a084e2b081882ff027e426e8faddbe1f5497614", - "notes": null - }, - { - "sha": "c26fc237bbdb9663040a4a6c722c746d9cc556db", - "description": "lavapipe/ci: skip two more timing out ray query tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d17e9994e40b4ac25613afb7e2df39d1dc713cc3", - "description": "freedreno: add a7xx perfcounter support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5fb8ab62d277e7e8ec009bc3be9c6220029a2439", - "description": "fdperf: simplify counter value output", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bc6cee935eda5b157bd49d4506b9c56b88523f62", - "description": "fdperf: improve reads of counter values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9a45487708b41f608135ad1e4a2ec068749de95d", - "description": "fdperf: prettify logic around the reserved CP counter", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "547f20773c043ddc966e8749666eadeb80428e56", - "description": "fdperf: select_counter() should work with a countable value", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "704cceab30412a3e4c0de2334c03cba2e992084b", - "description": "fdperf: use snprintf instead of asprintf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "17fcb86a26ba4a0cde282c276d6608a0050965c5", - "description": "vulkan: Update XML and headers to 1.3.284", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c9162034bce014d7e00758c12c5fcd243607c834", - "description": "radv: precompute DB_SHADER_CONTROL for fragment shaders later", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c658ed5136119d78842f818b33bed5dd1cd3d8ac", - "description": "radv: precompute vertex shader register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4b53d36f0d4b44d661126615809c2a1656d9c239", - "description": "radv: precompute legacy GS register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fa9b0ee86cff1e5128e021136dbfe6742ca80135", - "description": "radv: precompute mesh shader register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7f7ef10bea7de974e9ccf367bb8bddd7bce0ea2d", - "description": "radv: precompute fragment shader register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e5bc4d85bbd19264be9c2d8e9529c497576e724b", - "description": "radv: precompute existing legacy GS register values later", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "88dfe04b08d5a1279dbde042b2e79ca2e7a530a6", - "description": "Revert \"radeonsi/vcn: AV1 skip the redundant bs resize\"", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6746d4df6eac83d048e88c2d54aa19e7c1a0a696", - "description": "frontends/va: Fix AV1 slice_data_offset with multiple slice data buffers", - "nominated": true, - "nomination_type": 0, - "resolution": 0, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "569c2fcf952a3ec13ddf77c0058e769bf68f3aaf", - "description": "nir: fix nir_shader_get_function_for_name for functions without names.", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2aa9eb497d0f670136b5c2a50b962f4ce0faa917", - "notes": null - }, - { - "sha": "13bd41386086b9d44684aea4813697333500db40", - "description": "zink: clean up accidental debug print", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "19e8df39b62a26ae55273de7b4866c24d1657dda", - "notes": null - }, - { - "sha": "f8489211480a4789533b6c117dbcd9f6cb6cf71e", - "description": "clover: fix pipe_box update regression", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "651191801a8751c9ac1bc09327a50c19a9927392", - "notes": null - }, - { - "sha": "e7b942393af8f7170ad2d7e9403ace139c142f22", - "description": "aco/tests: simplify small constant copy test", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "44cc0d31b8220c91d036c523108232f5ad5f55ce", - "description": "aco/gfx10: use v_add_u16 with literal for constant copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7823065f64a4231b269f3d664e3bbb73539c3455", - "description": "aco/gfx11+: use v_cvt_pk_u8_f32 for 8bit constant copies", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "23368f8c0c278b77283563a57ab79d3a24567083", - "description": "vc4: set src type on storing sample mask", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1632948a7640e0acb569be7c61e0840451daca2e", - "notes": null - }, - { - "sha": "9e0978cd76f8063ba54a6e7c86e3729046ecf60c", - "description": "vc4/v3d/ci: update expected list", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d163498dbe1a1777702ef6300df497793abc16ee", - "description": "nouveau: fix potential double-free in nouveau_drm_screen_create", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "821f4c8d99a3068758db834a5c219082a9609b3c", - "notes": null - }, - { - "sha": "3e2df678743c4dcfc35c29c84894842e81538eea", - "description": "vulkan/properties: Document RENAMED_PROPERTIES in the property generator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a5d59a50a998389cb29a5e9ad4a67af37d3160d3", - "description": "v3dv: Use common runtime vk_properties", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "18c9b64e656132db7bfe384d891bf8f60a154683", - "description": "v3dv: constify arguments of vendor/device id getters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1afbf0ba4a8eec886eb552754445279f16fb3564", - "description": "vulkan/properties: support Android in the property generator", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "610a7c84c3766337778b273bc2a6dbf47900de39", - "description": "anv: move empty_vs_input to physical device", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "725397759a3133a610180743952b3c763aabfd3a", - "description": "anv: move device initialization as the last step of vkCreateDevice", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "63c4d24f7d2e496df3c5d08ece47d913a783d3b1", - "description": "anv: avoid requirement to put flush_data as first field", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ae6d20815ad1029c50bf8a3bdde13d34414142aa", - "description": "anv: fix leak of custom border colors", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "4dad2a4a6fd76d8bc889d655c812a6f0ba757ed7", - "notes": null - }, - { - "sha": "e260b16b1110174169f6234b8f59cb42fc42f69f", - "description": "anv: fixup alloc failure handling in reserved_array_pool", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "806281f61fe1be3c52e6a1aa77bb22e98161b3cd", - "notes": null - }, - { - "sha": "92337aff030d5895ddde07f03a918dd416172a9b", - "description": "radv: split cmdbuf dirty flags into dirty/dirty_dynamic", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "db7bfe85ae499257ec214a543f6d8ef9c7a3738a", - "description": "clc: Always use spir for 32 bit", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "22fa315ee0622b73956cebf8375497f3ccb8d456", - "notes": null - }, - { - "sha": "8732a619f13b05e6469f4841d6780fcdac3586ce", - "description": "vulkan/android: Add common vkGetAndroidHardwareBufferPropertiesANDROID", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e8f7e7582acc5eb7fa4ccc025720a22af727d417", - "description": "vulkan/android: Add common helpers for the AHB extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0996d1a30a5e054f6eed533aa324d4b9430c77f", - "description": "vulkan/android: Add common helpers for the ANB extension", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b0f0b0ab963c25a0ec231a5d7db176210c50da7", - "description": "vulkan/android: Add android buffer classification to vk_image", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c406d53858543da81b5bec5826c30d0698d95fb6", - "description": "vulkan/android: Add common vkGetSwapchainGrallocUsage{2}ANDROID", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd9a426e3ee8da7e49867b9791446db3ad602e05", - "description": "vulkan/android: Add basic u_gralloc support", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd3871e7a41eb516ab85a4b13203daa22257d8bf", - "description": "docs/features: Add VK_EXT_map_memory_placed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "220dae5870c03d712a1ad1323a7ae5be1c368d39", - "description": "tu: Implement VK_EXT_map_memory_placed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6d2de5b5b0716edd4216af5a4fa23018cadcc9db", - "description": "tu: Handle VkDeviceMemory BO unmapping in VkUnmapMemory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "854640ea261cf4479dafa81e0f4e056a837d6bc1", - "description": "vdrm: Add fixed VA parameter for mapping memory", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "603982ea802b3846e91a943b413a7baf430e875d", - "description": "nir/opt_16bit_tex_image: optimize packed conversions too", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "eeed928111c24fcf035369a3cfc4f57a0f6a37a2", - "description": "nir/opt_16bit_tex_image: pass options to opt_16bit_dest", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e63afdc6815e4461c75faa217062d2de595c86da", - "description": "radv: always run nir_opt_16bit_tex_image", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a35522c8a48bd19d37223c24d271e08ed5b1a34", - "description": "radv, radeonsi: don't use D16 for f2f16_rtz", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4287358f59b65deaf953934c8d88362de7c864d6", - "description": "ac/nir: explicitly use pack_half_2x16_rtz", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b8cf06fc76b7baf78dab80bd8023377f8fb410e", - "description": "nir/algebraic: Optimize some extract_* expressions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0fa17962d6b26fe29996a5767fbdd44dc2dbd082", - "description": "intel/elk: Fix optimize_extract_to_float for i2f of unsigned extract", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "e6022281f273287499e9012f9a7c3dd87a733e5b", - "notes": null - }, - { - "sha": "fc2360167c48bd51f2cb536efadba4a5b846142d", - "description": "intel/brw: Avoid optimize_extract_to_float when it will just be undone later", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bf5d82654ab9d3a67dacab4571d814066e0593c4", - "description": "intel/brw: Fix optimize_extract_to_float for i2f of unsigned extract", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "29ce110be6d0d4e4df51be635810f528f7dd7f40", - "notes": null - }, - { - "sha": "82dab8691e5d95d00139e27108d15c361e493a36", - "description": "ci: uprev mold to 2.31.0", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7de8a010876b6e1fdf7fc8cf15f3f0e10ba5c569", - "description": "mesa/st: don't use base shader serialization when uniforms are not packed", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "5eb0136a3c561e25d3f274e33a86812cfb2af589", - "notes": null - }, - { - "sha": "087e9a96d13155e26987befae78b6ccbb7ae242b", - "description": "venus: make cross-device optional", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "811ed6286590bed340a73d3115a283a027d9091b", - "description": "zink/kopper: Wait for last QueuePresentKHR to finish before acquiring for readback", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "8ade5588e39d736bdeab9bdd8ffa7cbfb6a5191e", - "notes": null - }, - { - "sha": "fd392745c2f231e6b675eda0dd35e894834465e7", - "description": "Uprev Piglit to 7aa7bc1b01d57b4b091c4fc82a94a6ff47f38ebf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b4b04473986c9b0e77c925a116be39f6ff3982f", - "description": "nir/opt_loop: add loop peeling optimization", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3a2226be47751272c3ce4b7bbf39e2e2470a1f29", - "description": "nir/opt_if: don't split ALU of phi into otherwise empty blocks", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e74f5b16e37b399dcf469eff230363b4bbe055f4", - "description": "nir/loop_analyze: adjust negative (or huge) iteration count check for bit size", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "52efb6cc83453224774c04a01bd9f22db0d4084b", - "description": "panfrost: skip gles-3.0-transform-feedback-uniform-buffer-object on Mali G52 and G57", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ce51e48cb6636d6eb02899d6c9894b436b80a44e", - "description": "radv: move nir_opt_dead_cf() before nir_opt_loop()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4453971fbb36c440608d00f277424bb8fb9ee6db", - "description": "radv: mark nir_opt_loop() as not idempotent", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2e38cc06f8f96cd863c9dd25bcf3cf21b4c6b6fe", - "description": "radv/ci: document a recent regression on GFX6-8", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "dd171d21dd1ba54c2028e01e9334ffb2735714d0", - "description": "vc4/ci: add fails seen overnight", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "03474500b55223458e2523b79b39c17e4682eca8", - "notes": null - }, - { - "sha": "0c96b03fcf90ad3167e156068a5662feed7b7e19", - "description": "r300: better packing for immediates", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11ad056ee94e78566ddab024d3e9482a543d51cb", - "description": "r300: compact scalar uniforms into empty slots", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5d3483bfe4edaac596ebd2022ee65d188863d729", - "description": "r300: switch to a new constant remap table format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71761e211736c92fea4317cc1ed8a05a5492a0e5", - "description": "r300: move dead constants pass earlier for vertex shaders", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a0ee1ac2b7a459ef26082bc386cbe71f77798bcf", - "description": "r300: replace constant size field with usemask", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d71d1897904f1319f37fcde885a4db688ae1f687", - "description": "radv: add a new dirty state for emitting the color output state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "66d4188ec53f3e428b9f58c977fe98b928616acc", - "description": "radv: store cb_shader_mask for fragment shaders and epilogs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0ce1bfc040276f5b7f1bcf290efa804b7ad83fda", - "description": "radv: rename col_format_non_compacted to spi_shader_col_format", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "199f52180473f481cb6350eacfdb07c60a738f50", - "description": "radv: compact SPI_SHADER_COL_FORMAT as late as possible", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e1483d022b28218bd53aea1c4917739cf0398b3e", - "description": "radv: clear unwritten color attachments for monolithic PS earlier", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3b41fbd4b8c249f11146cfc747180afec4b60f4a", - "description": "radv: precompute compute/task shader register values", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0549649bcfbc32cc4a2d2d72baeb6541f7f6584b", - "description": "vulkan: optimize vk_dynamic_graphics_state_any_dirty", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "602c62a2736d7c9f8a8b9964d772ba65b2a58f47", - "description": "vulkan/video: correctly set sub-layer ordering in H.265 VPS/SPS", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b613566faf6974846508a7616a0916f03aafc690", - "description": "vulkan/video: generate profile_tier_level structure correctly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8d983b34255087e0c913ed04f3792dfbc5476016", - "description": "intel/nir: Set src_type on TCS quads workaround store_output", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "1632948a7640e0acb569be7c61e0840451daca2e", - "notes": null - }, - { - "sha": "42ed28a726eb4c9e273a46a91e8951c0a1eb534f", - "description": "nvk: advertise EXT_depth_range_unrestricted", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5d37a5c7b6901ce42c7c1486830a68fae4162e7c", - "description": "nvk: Only clip Z with the guardband", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14d749f13d67a220146c2a3cc0ce3c3bcca8c670", - "description": "nak: Don't saturate depth writes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c6dc61775f65a0e45dbf5eb39536c619dfc8d3bd", - "description": "wsi/wayland: Add tracepoint in wsi_wl_swapchain_wait_for_present", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c4b432f83e0776f1536c4d1278b6e6fa2ff7a43b", - "description": "wsi/wayland: Add a perfetto track for image presentation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e9596149cfcf13816e047c5d49122febb01f1397", - "description": "perfetto: Add some functions for timestamped events", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "57c03fe49c7017f44ef22e4fd706ad87c5c2cec2", - "description": "wsi/wayland: Add latency information to perfetto profiling", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "60eb27591f5d1618e02a28e1b599139dfb05707f", - "description": "perfetto: Add simple support for counters", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "34273bc4eddd0c195220f305e2628d411394f028", - "description": "wsi/wayland: Add timing debugging", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "23b4fb2b4ceb009012315004b5119c133ad6610e", - "description": "wsi/wayland: Add flow id to presentation feedback", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5ba7b3f40c1ea7226b26b128a7fb82b16e481fcb", - "description": "wsi/wayland: Add perfetto flows to image acquisition and presentation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "16b8dbedfa8b0d701b7f7b9900190fa6375c2bd3", - "description": "perfetto: Add flows", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8b460cf9b5cd524f661cd32c460bcf00068f6ee7", - "description": "egl/wayland: Use loader_wayland_dispatch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "90effcceab797ffdd439427c32427d9328900a99", - "description": "wsi/wayland: refactor wayland dispatch", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1062b3e813706bdbc56532dd1b0c1f45778472f6", - "description": "vulkan/wsi/wayland: refactor wsi_wl_swapchain_wait_for_present", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0554d11f1e88ae139532e65c34c2340b2b666948", - "description": "etnaviv/nn: Pipe through input/accumulation buffer depth from hwdb", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e82d70d472cc28978ebc6a667fbe8d2c5274b5c4", - "description": "freedreno/a7xx: Add A7XX_HLSQ_DP_STR location from kgsl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "37f9a7a9c20feaaf432e135ac1b1553c4c21553d", - "description": "freedreno/a7xx: Add AQE-related registers from kgsl", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "bed4ad26ad050ac6ea38167411277b4f110eb48f", - "description": "tu: Disable depth and stencil tests when attachment state requires it", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "03474500b55223458e2523b79b39c17e4682eca8", - "description": "vc4/ci: update results", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "39c4de7e42a85a6871c552c2d55ddb7d3a1988ee", - "description": "anv: Fix descriptor sampler offsets assignment", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "7c76125db25db9bdf5521baf7c848ccd4bd37b5f", - "notes": null - }, - { - "sha": "be518657b9c3df0f8a71cb43d65ccdf0475af8ec", - "description": "intel/perf: Change oa_format to uint64_t", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "9cb4ff9b0e8ccca3e46f45608e0f5b49abf037b8", - "description": "intel/perf: Fix the error check of i915_add_config()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a56dc30ba660bc30d0413b44afeed9a99f980652", - "description": "intel/perf: Remove i915_drm.h include from gen_perf.py", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "14b890c7971999621e483a2c249d8619dfd0d35c", - "description": "intel/perf: Nuke platform_supported", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ad4c24b797f009ffda896e4dcce3351659792371", - "description": "zink: Add missing currentExtent special value handling", - "nominated": false, - "nomination_type": 1, - "resolution": 4, - "main_sha": null, - "because_sha": "0217a7c00722932a58f0bd659230443e4236cb65", - "notes": null - }, - { - "sha": "b69189a279c6fe23277e2b40e878c2a72c17d118", - "description": "zink: Always call deinit_multi_pool_overflow when destroying zink_descriptor_pool_multi", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4084f7f09acc28ec16b98bc1feb15b71a6e87d3", - "description": "aco/lower_to_hw: remove gfx6/7 subdword paths", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6ecbda83f898d983abcd461d6ea79fee04f04bbd", - "description": "aco/ra: remove gfx6/7 subdword paths", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d914ff3aa58b862ecdbc2d968811a19b721364bc", - "description": "aco: add tests for lower_subdword", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47566d0df3f1c9f850ff42db3d1fde9b6472c254", - "description": "aco: add a subdword lowering pass", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6b35de971cac42ff2f88aeaa54e0193e3aecdfaf", - "description": "aco/lower_to_hw: don't use regClass to identify subdword reductions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8c4d0b287fa007f33cb11df2011ab23098fe9bc8", - "description": "radv: emit compute pipelines directly from the cmdbuf", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72a73a6f8a3f86d5ccfe6bb2b30184b35c525e81", - "description": "ac/nir/legacy: Use new pre-rasterization output info helper.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4ac0727f877095ca901c4c0c74658c0b4c573a7c", - "description": "ac/nir/ngg: Use new pre-rasterization output info helper.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b1819d60ea505b6a5e7781d60234804dcde7f72c", - "description": "ac/nir: Add helper for pre-rasterization output info.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "039e739eeac7ff9574a7d43948d4b30dafb24a4d", - "description": "ac/nir: Move some helpers to new file.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd66b77af04aba8abad9b0d892289e2ba853b5af", - "description": "aco: Add missing nir_builder include.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e50234de8624a8c42d050806de9f404ce189f452", - "description": "anv: allocate space for generated indirect draw id's using the temporary allocation helper", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "82d772fa9b3a5eb7809921ca448b6e796a3d92b3", - "notes": null - }, - { - "sha": "482d9fcbf304e41a0a4ab461894277e5cfd2c9b2", - "description": "nouveau: Fix crash when destination or source screen fences are null", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "5aede1a157b7aa99052282a6960646da81b0a399", - "description": "etnaviv: isa: Do src swizzle with isaspec", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "894f7f438745f4f76ea21391a89752ce601f7e2d", - "description": "nir_opt_algebraic: Add a couple optimizations for lowered unpack(pack())", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a24ed1146de94d3bf0d06aacc28ca78a24f606b6", - "description": "anv: consolidate DestroyPipeline for graphics and graphics_lib", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "6223388c738e37a6d509ba54e2d179ee5773a4d6", - "description": "anv: fix casting to graphics_pipeline_base", - "nominated": true, - "nomination_type": 0, - "resolution": 1, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d802aca523a729852f1e9dba3fdab2afac41270e", - "description": "nir/lower_image: support FMASK loads with a 16-bit sample index", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a01712874d9effb97ed6d8c7dd80966fed0c44ce", - "description": "nir/lower_tex: support FMASK loads with a 16-bit sample index", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8f1ae6c7b11306c55186dc110d4a979dd4e78c09", - "description": "nir: add shader_info::use_aco_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fcb627945b96e8550b683b16c5c1a02b43967357", - "description": "nir: add more build helpers", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1632948a7640e0acb569be7c61e0840451daca2e", - "description": "nir: validate src_type of store_output intrinsics, require bit_size >= 16", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0217a7c00722932a58f0bd659230443e4236cb65", - "description": "zink: handle swapchain currentExtent special value", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2827ec97f8e74ef0d5991a03f442fdcaccebe984", - "description": "lavapipe/ci: skip ray tracing tests that sometimes time out", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3369ec9adeb2d74c5e57adbc279a824d40761c2b", - "description": "lavapipe/ci: generalize flakes list to all formats for these flaky tests", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "71dded5f25215047e52c4f09fa775a0c7e34f04d", - "description": "lavapipe/ci: add flakes seen lately", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "165e21a5f842e926023c0a6950ab73fb5e33b239", - "description": "lavapipe/ci: trigger jobs on draw & gallivm changes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7586d4fd5cc3711348d0f50a8d3571598ed35646", - "description": "llvmpipe/ci: trigger jobs on draw & gallivm changes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e0dae5a3225a5cc1c83e3a6c7ba2642577289bfe", - "description": "docs: update calendar for 24.1.0-rc2", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8654809dda7c53d5ab4a9e0b555f69608580f911", - "description": "lavapipe/ci: only run jobs when their corresponding files are changed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e2b682898169af793e98aa783aedfbba3eec897b", - "description": "lavapipe/ci: avoid running all lavapipe jobs when llvmpipe ci is changed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e4feeacf59c2623a75ca840be8a4475de07d6984", - "description": "lavapipe/ci: fix indentation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b38f52482bb4a71e99c066b6eca4dda4949cc8ac", - "description": "llvmpipe/ci: only run jobs when their corresponding files are changed", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d9fafdad06edf0d6edaa85345918494c35f15e98", - "description": "llvmpipe/ci: fix indentation", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "47f6e24ad5dfcb59dd1511800aee8c56b4f8fee4", - "description": "meson: move tsan-blacklist.txt to build-support with the other build support files", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "0d46e0e88bdeb8bfff3b30c65002cc34d3b7ba4e", - "notes": null - }, - { - "sha": "84139470a5606b64f3c31b02a1fe22445dd4d604", - "description": "intel/brw: Use VEC for emit_unzip()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1b54b4fad5650f2204d36974d6daaab1d01fd1c5", - "description": "intel/brw: Use VEC for NIR vec*() sources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4563747d9229359982ba40b5645f813e5980a78", - "description": "intel/brw: Use VEC for output stores", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f0c29c9b716fd3fd072fc94cc1108c92a44d1c78", - "description": "intel/brw: Use VEC for FS outputs", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cbe7a13f2b438cf2b5d385de4f96a73808138814", - "description": "intel/brw: Use VEC for TCS/TES/GS input/output loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a94e1bd0ac42a5ff7d5c5a75f1f091c7fc4cfc72", - "description": "intel/brw: Use VEC for gl_FragCoord", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d0a24496fdbe9487b7bb8576a1e76542b2bbcf89", - "description": "intel/brw: Use VEC for load_const", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "3c867bf2c7a52737c519eaf0734e76dc30353bcd", - "description": "intel/brw: Add a new VEC() helper.", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c194df565a4331a76871d3c7dc603687b8003f38", - "description": "intel/brw: Don't include unnecessary undefined values in texture results", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e42914529a4e4906f98edb898217ad3c4d982b4b", - "description": "intel/brw: Support CSE on more ops", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "ed3e4c16dce6d14cc6540d221708c9e734cf251a", - "description": "intel/brw: Do not create empty basic blocks when removing instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "391da3610c09cbb72609377c9778b19adade9a93", - "description": "intel/brw: Print W/UW immediates correctly", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "72ed71877c31eb40b3c6850c076f7bb03f450d2e", - "description": "glapi: fix param type in TexGenxOES", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "54258c1ee187e3eb092c096ba5ed58ce8302f859", - "description": "lavapipe/ci: skip another test that goes over the timeout", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "0b739f7db86b721cc12ff9ce11cbfa72ac3d0863", - "description": "lavapipe/ci: add the rest of the failures introduced by the 1.3.8.2 uprev", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "c7d4b7a59c205aa14c1de6984c144d8c976df11b", - "description": "lavapipe/ci: drop fixed test from failures", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "a963c67298e9433b8832e08edd827b7818600bc5", - "description": "meson: use bool.to_int() instead of manually converting", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "f9d78f110cb42947852f4977bb602a3e653078e4", - "description": "nir: add sleep intrinsics for AMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "b06a71b3cd65957b8f8706ae69dc64a014e8e89e", - "description": "nir: add streamout intrinsics for AMD GFX12", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "1a791c130378288fc40a76c549f93deda81e7a6b", - "description": "nir: add nir_atomic_op_ordered_add_gfx12_amd", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d4cfcbdde8fdc350d778ca1020038b1ff33c444b", - "description": "nir: add ACCESS_CP_GE_COHERENT_AMD", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "7187373ec2259d2ade1f3a5741f58de6a57c132e", - "description": "meson: always set USE_LIBGLVND", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "21b527632ec23038cde9cbc83ce40bebc15931e5", - "description": "egl+glx: fix two #ifdef that should be #if like the rest", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "11b060f41acf8fb297b64757f49b7cf0a8f8401c", - "description": "meson: simplify `-gsplit-dwarf` compiler argument check", + "sha": "a78c2bf2a41252045f7bb695d02d75fcd73a3957", + "description": "util: Remove MMX/MMXext detection code", "nominated": true, "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "44b080af07f0ba516f0d5519bba86eb7c1ea7da2", - "notes": null - }, - { - "sha": "dd3ee08b0507859b173feb072104220cd43d45c9", - "description": "docs/panfrost: link to conformant products", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "fe4ebace7902e2686a9ab888725c9fa64e17ee3c", - "description": "ir3: Don't manually scalarize SSBO loads", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "cd15dec66e05cbdc9a07394f32d3848f71457146", - "description": "ir3: Don't scalarize all SSBO instructions", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "86281ef15fca378ef48bcb072a762168e537820d", - "description": "radv: add shaders BO to the cmdbuf BO list at bind time", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "42554e81b97d9769dd54c775f1667ce1ebbfdb68", - "description": "radv: add RT prolog BO to the cmdbuf BO list at bind time", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "42dc4b463b57a26e6c97d490a162bd4b3a82a0e2", - "description": "radv: add GS copy shader BO to the cmdbuf BO list at bind time", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "2664e058de34cb2b2ed3cfe6b31c722db20912f5", - "description": "radv: use the bound GS copy shader when emitting shader objects", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "be98fe27244ec65c117a408378d49b05f229c74e", - "description": "radv: pre-compute VGT_TF_PARAM.DISTRIBUTION_MODE", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d7679c0370890a019e367eaa6a5b8ecaa1d3e5f0", - "description": "radv: remove useless DB_Z_INFO.NUM_SAMPLES when emitting the MSAA state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "4dd682e227ff6925288aeefa23b692398ec300ae", - "description": "radv: inline radv_get_pa_su_sc_mode_cntl() in radv_emit_culling()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "e651a2c856407c263db644aea94e608aa7d8cd51", - "description": "radv: simplify radv_emit_primitive_restart_enable()", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "d1e5b13359751f4bbe0402b7bc99a9dd6490949d", - "description": "mr-label-maker: Add teflon marker", - "nominated": false, - "nomination_type": 3, - "resolution": 4, - "main_sha": null, - "because_sha": null, - "notes": null - }, - { - "sha": "8416ba9c25467b027411527bd04ee199601d587c", - "description": "amd/ci: 17 piglit failures are fixed for raven", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "98e976dcdb086f729946f2163ae05272728d68ad", - "description": "radeonsi: check for FMASK correctly in gfx10_get_bin_sizes", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "ae85e6920c18c6f850c22e183f2f740c45b69ad3", + "description": "util: Drop 3Dnow optimisation leftovers", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "a3218e65d1e52469421226a17f2ba91a6b3e4bb8", "notes": null }, { - "sha": "1a3c5cf17b0a074a51a7852127a2600932513b24", - "description": "radeonsi: enable DCC for MSAA on gfx10-10.3", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "59b25492795eb415b8d894b2238cb6bcc6b17169", + "description": "glsl/nir: fix function cloning at link time", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "cbfc225e2bda2c8627a4580fa3a9b63bfb7133e0", "notes": null }, { - "sha": "eb7d7476517072ca6432a9ee624b1d400f20e686", - "description": "radeonsi: add workarounds for DCC MSAA for gfx9-10", + "sha": "6a6e37728d8e2229c69d4b3a652680916e515e97", + "description": "turnip/ci: document regression", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1929bb0d8d88a63f2cdaedef41c7bc44c4b8e008", - "description": "radeonsi: validate IO semantics in scan_io_usage", + "sha": "b0c9789bc1ed808d29f642e9445599dc85896444", + "description": "docs: add sha sum for 24.2.7", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cfe197e61cc5bc15552482fde462b0fb290d34fb", - "description": "radeonsi: fix KHR-GL46.texture_lod_bias.texture_lod_bias_all on gfx10-11", + "sha": "c2c89b1a4937cb3f6cdae183aa82cec6e58e0bed", + "description": "docs: add release notes for 24.2.7", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6f09751548831c6e296d379cd45c7a2ae1564014", - "description": "radeonsi: don't invalidate L2 for internal compute without DCC stores", + "sha": "b4654cef704430eaecc4e89562d88adddd2d87e9", + "description": "docs: update calendar for 24.2.7", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c87ce78d1013a52a78a05470ca33fd8597d3f289", - "description": "ac/surface: enable thick tiling for 3D textures for better perf on gfx6-8", + "sha": "b4b5f9eeb0efe5d826c1727ae7b5cd5d015afaff", + "description": "radv,aco: dump VGPRS from the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "33f642aa09a82a3a7ba9b6b583d615bfa28f78c4", - "description": "ac/surface: disable DCC for 3D textures on gfx9 to improve performance", + "sha": "132b7a85c7098dd731241263fd46213615628f6d", + "description": "aco: drop the second M0 operand for s_set_gpr_idx_on", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e05aec3fcd86613abcb7b0618f1b5f49b8ce0f4e", - "description": "ac/gpu_info: set tcc_rb_non_coherent only if number of TCCs != number of RBs", + "sha": "c712555a9fc4767c2725ada03a7853e408cfe5f4", + "description": "aco: save/restore VGPRS on GFX8 in the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "027c01bd8f6d1551e856c4d0771147d1212aac28", - "description": "v3d,v3dv: stop hard-coding max attrib divisor", + "sha": "a77af57e83ff1a4fb3bf963d3d045f79106d1e92", + "description": "aco: use all invocations from the current wave in the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e8f96dd0b01df9c7e9e48b68eb846d93bd5036a9", - "description": "v3dv: fix VK_KHR_vertex_attribute_divisor", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d38ff02c033a2cd0d7d926f395a0728bc7f2abf6", - "notes": null - }, - { - "sha": "fe8fdc58db9cc364e7215b70f229cac3001a4676", - "description": "gallium/auxiliary/vl: fix typo which negatively impacts the src_stride initialization", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "76725452239e9e7740c0edd6a5f3663ab897c343", - "notes": null - }, - { - "sha": "3daee9b677ba5cbb50bbd01278e817e3c8bb117b", - "description": "svga: update timespan in copyright message", + "sha": "034014a165117bbb4e83f3bf577104da148f41f7", + "description": "aco: restore m0/exec before exiting the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "901269955dd133aa20c86b0e75c8b5f2c8c9c689", - "description": "svga: convert license block to SPDX", + "sha": "185a165a8593f435b54a55c6ffcb084a9162ce17", + "description": "aco: fix validation for v_movrels_b32 and friends", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ad39355e837829a9d3ed36c3e60cce55a131d0b6", - "description": "kopper: don't set drawable buffer age", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "2a8c6cf7ac4cb88149ca8e99ba163fcecc055032", - "notes": null - }, - { - "sha": "19e8df39b62a26ae55273de7b4866c24d1657dda", - "description": "zink: slightly better swapinterval failure handling", - "nominated": true, + "sha": "40b343bbeed69d7c5b4f7d25d0e0724cc43f6486", + "description": "aco: add a new variant for vop1() with two operands", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a50c17802ab1f60d2fc707f05552f73f4b2d284a", - "description": "kopper: fix bufferage/swapinterval handling for non-window swapchains", - "nominated": true, + "sha": "f4cf6a71edd065bf9af14605c8bc3d88992732a4", + "description": "aco: use a 64-bit mov to save exec in the trap handler shader", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7352f948bee551f205476eeff2aec7cb657daf50", - "description": "meson: Fix invalid kwarg name", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "44b080af07f0ba516f0d5519bba86eb7c1ea7da2", - "notes": null - }, - { - "sha": "8248cc0bf45d0d7558cc3d77a63dcd078a96aa66", - "description": "docs/panfrost: move details to separate articles", + "sha": "7d4cc041563a93ce80ce38afcc9ebdb7d103a0ca", + "description": "radv,ac/nir: split global access using nir_lower_mem_access_bit_sizes", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "da2cc2071477a2f2384dab22e5a6c15f21bb7d77", - "description": "docs/panfrost: compact gpu-table", + "sha": "17cc8a5a541e3c206b29f6d2b89a8b11a4da7dc0", + "description": "aco: remove load byte_align", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2cb8e9a85672614a8f604f4c82617565510612bd", - "description": "etnaviv: isa: Add name for full writemask", + "sha": "8fdc5d7f9f853dcea6d8934239a3a63ad8e87ff9", + "description": "radv,ac/nir: lower sub-dword loads using nir_lower_mem_access_bit_sizes", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cb69595037c198e43ea381c4cf248c44df5af870", - "description": "etnaviv: isa: Rework modeling of left shift for store/load", + "sha": "d3ae1842a20f4a747a6aec01ed036f0340fbed97", + "description": "aco,ac/nir: flag loads to use smem in NIR", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f8c38ec64838a304b1b839ac5ec2435a7f88c700", - "description": "etnaviv: isa: Add more flags to etna_inst", + "sha": "7fe4f4c14c893f9228251ccaf0fcc65f637bf40f", + "description": "nir_lower_mem_access_bit_sizes: support load_constant", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a0dad2e705f51db1e2c20b5310f84be95ec29a46", - "description": "etnaviv: isa: Switch to enum isa_thread", + "sha": "45c1280d2cb2f35e95b8d24f697b950fc4603189", + "description": "nir_lower_mem_access_bit_sizes: pass access to callback", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "87e5ad3930ee0e727b938b7c392cbcd723d8a1fe", - "description": "etnaviv: isa: Print dst_full for ALU", + "sha": "61752152f799274e178e534fa42b16277c9686c1", + "description": "nir_lower_mem_access_bit_sizes: add nir_mem_access_shift_method", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0c70dcd6f7a7950e7008ee2631ed966944fe0bcd", - "description": "etnaviv: isa: Add clang-format special comments", + "sha": "e2dd36c66ef6a615b4be63e43da88401b68aec04", + "description": "nir_lower_mem_access_bit_sizes: support 64-bit offsets", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bc72126cb4e425893918e2d17f0cc2a253096651", - "description": "radeonsi/vcn: Only enable VBAQ with rate control mode", - "nominated": true, + "sha": "0619e4db6382095cb487c586ba9c676547727245", + "description": "nir,aco,ac/llvm: add nir_op_alignbyte_amd", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b144f501906dcb4a54e0aa8d699768c8d9d13bbb", - "description": "radeonsi/vcn: Fix 10bit HEVC VPS general_profile_compatibility_flags", - "nominated": true, + "sha": "db0cbb7e9b8fc2be6a9a93711e52adaf674a1bd4", + "description": "aco: optimize nir_op_shfr with <32 src1", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cc0df497f0d4579301dc853587aef7ca8aa679ea", - "description": "radeonsi/vcn: Allocate session buffer in VRAM", - "nominated": true, + "sha": "bd88c8733aef7b5f01135ee90f9c1b7588a42271", + "description": "ac/nir: add ACCESS_CAN_REORDER to lowered load_global_constant", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0b518681938c9eeb9133972a66a91fc4ff6cf2a1", - "description": "radv: remove bogus VkShaderCreateInfoEXT::flags being 0 assert for compute", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "0c7830eb858cba5aa66418698ee9a96f0d82ecfb", + "description": "nir/algebraic: optimize ushr(a, ishl(iand(b, 3), 3))", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "37d7c2172b2a9dbf9b0469fdff40b33b92cc99a5", + "because_sha": null, "notes": null }, { - "sha": "8c2a749f67204fd3bdcad1af87b8dd25cd934ff7", - "description": "etnaviv: isa: Drop capturing of python output", + "sha": "e95a3364b863fe86e65e0e041ced0982b420dfc0", + "description": "nir/algebraic: optimize bcsel(ieq(b, 0), a, shift(a, b))", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "85deb9f706c8cbccd928eaf84f3f550662bf83bd", - "description": "radv: simplify DB_Z_INFO.NUM_SAMPLES with null ds target on GFX11", + "sha": "80b76ba692f715bbe63c1def45400a9fc940eb6a", + "description": "nir: add more intrinsics to nir_intrinsic_can_reorder", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "45edd99b6bee4c15a71a9faf7d8fde7d2333b34c", - "description": "ci: mark microsoft farm as offline", + "sha": "c9257307797d9d543d0c91f5dfae89d9f0340a4c", + "description": "freedreno/ci: document flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "674e89953f0ba10ce6a537a1b2d181179576061b", - "description": "intel/brw: Use new builder helpers that allocate a VGRF destination", + "sha": "234b9c72f9a8e407a7266280f2b8f6590e145bb2", + "description": "nvk/ci: document flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4c2c49f7bcdf0686b1f7689624b813784aedf4bd", - "description": "intel/brw: Add builder helpers that allocate temporary destinations", + "sha": "d688a25d7e51c18c5db72fb2ddda2fe1202e9e65", + "description": "broadcom/ci: document flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "319ba85e10121717759d125cc86a753e7f6896cf", - "description": "intel/brw: Add builder helpers for math functions", + "sha": "6018d15f320df55263a64ba770f2a99a14083607", + "description": "radv/ci: document flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cf8ed9925f2901a95c6add875118ed2c37e9e1d1", - "description": "intel/brw: Make a helper for finding the largest of two types", + "sha": "0c77469995be4dd7ef7694de7eeba640dd55809e", + "description": "aco: fix saving/restoring VGPRS in the trap handler on GFX9", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f5473e6edd5dd155fac0726b8b1c7afd6d213d08", - "description": "intel/brw: Don't use inst return value when it isn't needed", + "sha": "b32d0d4b4588bf207a9b85b03f2f1c7bb9e72d57", + "description": "meson: define only once the versions of the x11 deps", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "dfe5e5667155421dd25a5ac6cb70d0fe24e0d874", - "description": "radv/ci: add more flakes", + "sha": "9dc872c4c7a86a7e0258850e06177d94e4cb10e4", + "description": "meson: move openmp block out of the middle of the x11 deps block", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "42b992cfab54b92817a35fbdb564b3a667b32443", - "description": "turnip: rename tu_queue_submit struct to follow ODR", + "sha": "594b8d9f81d90fe7a5aca00d7ba6d54cf3a2dff1", + "description": "ci: reduce priority of nightly pipeline jobs from 50 to 45", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ea863c0c1ccbc26ad6f9e1e6fbc834ebcd85bc3c", - "description": "nir/print: Do not access invalid indices of load_uniform", + "sha": "50f9bec3ce4424afb508be81ef0fe31e2b8b1fc2", + "description": "ci: raise priority of release manager pipelines", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "a83fd26d0effc8e65ff601c2ad3314058b98f107", + "because_sha": null, "notes": null }, { - "sha": "cc9141f0449b84204172f5729ea3dbc1724239c0", - "description": "rust/program: remove Program::kernels", + "sha": "62da644221143dab80b739965ed411ec28724f66", + "description": "panfrost: use mesa_log infra instead of stdio", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d8ed73b5f618d1bd1fdbd661e1f15f1b599e2d47", - "description": "rusticl/program: Arc the stored KernelInfo", + "sha": "c53b94445349787a83f9fe5e6e07dfa879c0257f", + "description": "panvk: drop unused include", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "672de78d667922f285305e7adf38a6a4ac872a76", - "description": "core/kernel: skip validating unique kernel signatures", + "sha": "936da3eb9c00fec2d61638863ba386009a00f099", + "description": "etnaviv/ml: Zero out the NN config", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6ab4b2d7a063c525dc98c80f272643bc47f41f96", - "description": "spirv: preserve signed zero in modf", + "sha": "b3057ab5119c0cc4c5c66c00603cc669a8882146", + "description": "etnaviv/ci: Update expectations for the NPU in the A311D", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c2053c5363973435dddbc50aef3a632b7dd01979", - "description": "etnaviv: Allow collecing both GPU and NPU specs", + "sha": "459da82db6edbd2eee0a1f6f87a493662540c8a9", + "description": "etnaviv/ml: Make use of the new depthwise support in V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a4653587cc434e8dbaa2b06cd18c8132ab611f78", - "description": "etnaviv: Add a separate NPU pipe", + "sha": "63a10f770c206f59ae694bfca50b22596fbeca6a", + "description": "etnaviv/ml: Only reshuffle when needed on V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "108d2103ea86f699ffa764f759021bd3745cc1e1", - "description": "etnaviv: Pass npu to etna_screen_create in a separate parameter", + "sha": "93298a873bba60e3c21bf448b24fe595af434552", + "description": "etnaviv/ml: Fix reshuffle TP jobs on V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "06683288e0b891aba3b1ae602e820cde17638197", - "description": "etnaviv: drm: Stop after model query failure", + "sha": "f186844545a3c4fbf81f55ca1a0878318803ad1c", + "description": "etnaviv/ml: Disable caching on V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ba59882212afdc3ddafc070c53092ae3f0aea618", - "description": "etnaviv: drm: Suppress get-param error message for non-existent core", + "sha": "41a9540ab91def37f5390edb96641b0e47678781", + "description": "etnaviv/ml: Set two bits in the NN instruction for V8", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4ec84adbed1e7cc0b78af754294c4a2b254bc317", - "description": "venus: fix to destroy all pipeline handles on early error paths", - "nominated": true, + "sha": "bb06e082f8d8faba32fccc17bf8d76938c6a3e3f", + "description": "etnaviv/ml: Implement tiling for V8", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c3be21f1778ff3e3de4d6506bb20a0ffd11f5003", - "description": "wsi/wayland: Dispatch event queue in wsi_wl_swapchain_queue_present", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "0ef5aa5fb6e32626f03053d0e5f7a2fb7fc08412", + "description": "etnaviv/ml: Fix padding for convolutions in V8", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "5f7a5a27ef1b630bd1aea0cc0b1256fadee9de8e", + "because_sha": null, "notes": null }, { - "sha": "2a417e3fc1911f5edc912621fe532c1c3ec64d0b", - "description": "intel: Build float64 shader only for Vulkan", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "b4ba62fcda0eaeb4f7864ee31ca5598b9969f851", + "description": "etnaviv/ml: Add encoding of coefficients for V8", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "b52e25d3a8eee702ff5d21e4cdb9a4dc0736282a", + "because_sha": null, "notes": null }, { - "sha": "bdbcba52693cc62b0ec5d1afea6609a28df2a7ca", - "description": "v3dv/ci: add rpi5 failure", + "sha": "f3d765ed5d12b47ad92494dd71a3a2882504e76e", + "description": "etnaviv/ml: Split V7 coefficient encoding to a new file", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b4874aa5cf56a7041eb609b6d9829719f8a49bcb", - "description": "ir3: Use scalar ALU instructions when possible", + "sha": "3744defc7e1f1766a84a72b1f4b5885ccf2f5e23", + "description": "etnaviv: Add script to decode weights in Huffman format", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "32308fe9f1c6c9ef6716be4d9812ad41794f48b4", - "description": "ir3/nir: Fix imadsh_mix16 definition", + "sha": "88b5b998d2e6a17bca09f53e8680ea23c8b983f4", + "description": "etnaviv/ml: Rework the dumping of tensors", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "17cb1c78bde01eedbfe0f5e874b1208d8d08d570", - "description": "ir3: Directly use shared registers when possible", + "sha": "4ca98fa662d95e4c4f5194d4815abb3d09bdbe0a", + "description": "etnaviv/ci: Add expectation files for the VIPNano-SI+ NPU", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3bec9e684d02642fdebdebd6f5c509f7eecea2b4", - "description": "ir3: Rewrite shared reg handling when translating from NIR", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "f9bb9aa7d5ee87069c65ccef26e0f762dadce597", + "description": "etnaviv/nn: Fix use of etna_core_info", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "92a6f697d589c926edf712ca40a7742ce7d187d7", "notes": null }, { - "sha": "4828942d0c3353ced285c9aebed1109bd696db77", - "description": "ir3: Get sources before emitting scan_clusters.macro", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "70bff0c971aa41d9eacf813a771a73918b0146aa", + "description": "etnaviv/ml: Fix includes", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "d6473ce28ee0f36890e24b3832cd53d3ed5e98e7", "notes": null }, { - "sha": "ce6c4f03201b5046b5bed74934b52a7a874288d2", - "description": "ir3: Add scalar ALU-specific passes", + "sha": "79b34a6539dcfe7b09096af97f58bcd833fea3a9", + "description": "frontends/va: add support for VAProcColorStandardExplicit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4c4234501fb6281ff0a4c235b0ba7cb0fda4325c", - "description": "ir3: Support scalar ALU in the builder", + "sha": "a9e4461c26c938262e2b14f530449f53ff1adbc8", + "description": "frontends/va: add support for VAProcColorStandardExplicit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "823e034db28392362868a441cfc4833275676d89", - "description": "ir3: Make type_flags() return a bitmask enum", + "sha": "acb48bde44e7c807701a2248fc263868e04cfc10", + "description": "ci: disable mupuf's farm", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ac132b3f62dc8cc016476a9e1e442d329c7bec4d", - "description": "ir3: Create reduce identity directly", + "sha": "fbe5d41b588ed76da4ed3ce657c8cf9fee210b1a", + "description": "anv: extend Wa_14017794102 with lineage Wa_14023061436", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "497fcd26b51e7be7ddcd30a6450e1fa273af6206", - "description": "ir3: Add builder support for shared immediates", + "sha": "9429c0075ba6bddd5b46f2caf471dec58fb3f924", + "description": "anv: utilize ray query bo per queue for Wa_14022863161", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "736570b74d25b67acc5e681aa080c4f61320d36d", - "description": "ir3: Add support for ldc.u", + "sha": "1bd9e51a73fc6332e4c29bc4aac6f73711fd8d9d", + "description": "intel/dev: update mesa_defs.json from workaround database", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "94c1ff415bdd109bfc52b8990c5aac9dd2b421b0", - "description": "ir3: Distinguish lowered shared->normal moves", + "sha": "e757238370dda6290057b8be8151717db0ffdc94", + "description": "vulkan/wsi: Support alpha swapchains on win32", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a64dd98e5502806dc78212ad309445593c87e5cc", - "description": "ir3/cf: Don't fold shared conversions", + "sha": "f2f4206d4920cc347a5de24573038e0300af4946", + "description": "intel/decoder: fix INTEL_DEBUG=bat", "nominated": false, - "nomination_type": 3, + "nomination_type": 2, "resolution": 4, "main_sha": null, - "because_sha": null, + "because_sha": "8906816f49f97c496c14ed69d48a1abfbdc8dc64", "notes": null }, { - "sha": "0f62203edf3ec0ab6729bd69cf814b0e4480b0e8", - "description": "ir3/cp: Support swapping mad srcs for shared regs", + "sha": "68cdcf5bbc40acebd8559e8acce9b0a9b51bf378", + "description": "nvk: Fix two typos in comments", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ef75ea18cd352e4bee17c46069babe5ca3390641", - "description": "ir3: Don't emit single-source collects", + "sha": "05770374a374d790e17373125dd34454cc629e06", + "description": "nvk: Remove params for dirty_cbufs_for_descriptors", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4ffef73bf5c7801ab6c4e1448931fdb26f947f43", - "description": "ir3: Immediate source for stc is invalid", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "dc12c78235bb5334dd9c2d3c91ffc4c7990e1c2b", + "description": "nvk: Fix invalidation of NVK_CBUF_TYPE_DYNAMIC_UBO", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "091a945b57995a0184bf83085e2dc5b5e8fa619b", "notes": null }, { - "sha": "37748bbe78064ed73bc08498f4b0f35f7e05b866", - "description": "ir3: Validate scalar ALU sources", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "64f17c1391860ca2d0898dd5076514c22b1cbdfa", + "description": "nvk/cmd_buffer: Pass count to set_root_array", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "b2d85ca36f9522689f55f2193936507b74af094d", "notes": null }, { - "sha": "06cf178edeb66fa99c6f8aa1854cc64eb24daf72", - "description": "ir3: Implement source restrictions for shared ALU", + "sha": "08530462bd5d2aa98d08763409cd7ad3612e3fa4", + "description": "anv: implement Wa_16011107343/22018402687 for generated draws", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "876c5396a7893d2a55a2d6635085d70c03c216d4", - "description": "ir3: Add support for \"scalar ALU\"", + "sha": "53eed61a90113f09cdb9bd60d0eb20fa44050cd6", + "description": "intel: make sure intel_wa.h can be included by opencl code", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f8ac16b4b98732153ea838e6cc4c1546551823af", - "description": "ir3: Use correct category for OPC_PUSH_CONSTS_LOAD_MACRO", + "sha": "672d41d22a64ad601d1cb329c2c361432c9d49c3", + "description": "anv: split generated draw flags from mocs/dword-count", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "507b51e7ae669b811fb1d246951728747a15e080", - "description": "ir3/legalize: any/all/getone are non-prefetch helper users", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "d6acb56f11edfdccfcc477ded897feb25383a31a", + "description": "anv: update shader descriptor resource limits", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "6e230d7607f9b3e082d00859bd7725c4dc87e5cf", "notes": null }, { - "sha": "4ac1b13f1a7083b2ac4f81f939a7c974e7167c49", - "description": "ir3/legalize: Remove bad (eq) micro-optimization", + "sha": "1794ff730978a2b316daee86621ddfabd3d860db", + "description": "gfxstream: use canonical Mesa dependencies", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a56de0774b1bf867de0a03a251ef138a6b17416a", - "description": "ir3/legalize: Take (ss) into account in WaR hazards", + "sha": "5e9c14395d91910ff410694bea97242ac0924393", + "description": "gfxstream: guest: use internal version of AEMU headers + impls", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ae2db62aab2f39ae72d935aa4c75562dbf59124e", - "description": "ir3: Moves with shared destination are always legal", + "sha": "a8c1021d79583768d3f1a36d4717fbbb84b6904f", + "description": "gfxstream: modify libaemu for Mesa use case", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4ee0f6d1fbf62438c69b1fe17ecf029e888414a0", - "description": "ir3: Allow propagation of normal->shared copies", + "sha": "43e378c537aa16b1e29d927758d13974d077264a", + "description": "gfxstream: aemu: vendor it", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b309418380e6ed25135f31437d30c76a4ddec432", - "description": "ir3: Validate that shared registers are in-bound", + "sha": "c7decb61ee8fd61436495a4365733262063c5415", + "description": "gfxstream: nuke EntityManager.h include", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "468f070a911607db10acc50e505c0f1a1bd956f2", - "description": "ir3: Reset num when creating parallel copies", + "sha": "8f094a7762603918903fed0db09607584828aa02", + "description": "nir: handle fmul(a,a)/ffma(a,a,b) in nir_def_all_uses_ignore_sign_bit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c00e06bc62718aa97d9bfb24cfe4e680cbad05c8", - "description": "ir3: Use INVALID_REG in array store", + "sha": "7e8a08ae777351ebdbd166ef1828873368db075b", + "description": "aco: use nir_def_all_uses_ignore_sign_bit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b2cf2dfd78db607b2966239afba3a96145a59142", - "description": "ir3/ra: Use ra_reg_get_num() for validating num", + "sha": "7d5db1ee52b5c718838b66cc2b996f84310cdb87", + "description": "pan/bi: use nir_def_all_uses_ignore_sign_bit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "81015b262082e3228233e1d142b431b9cfaee883", - "description": "ir3/lower_copies: Fix \"inaccessible\" half reg lowering with shared regs", + "sha": "34f41abe24726c4a4cff095f9a5b86dbff784769", + "description": "nir: add nir_def_all_uses_ignore_sign_bit", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "fec5b9397f43ec350b40a1c3a6c013213559bb4a", - "description": "ir3/lower_copies: Handle HW bug with shared half-floats", + "sha": "44fa24580f6a4ec344071eeba058f19172a8bb4d", + "description": "radv: optimize the pipe misaligned L2 cache invalidation on GFX11", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "100096394f3db44bd41863e30dfec8e74962832b", - "description": "ir3: Don't use swz with shared registers", + "sha": "7a3a65c0c4f192aeb19dd1436e7965419485805a", + "description": "radv: pass the image subresource range to radv_{src,dst}_access_flush()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ec036fe51e18754cc3fbb8903a5be9b001259c36", - "description": "ir3: Fix shared parallel copy validation", + "sha": "f7a39fac108d94ca45e84c32a92e43cc8a1585d6", + "description": "radv: use vk_image_view_subresource_range() when possible", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ca91b58457ba671b3a7338c7f7a5a00d8ebaed27", - "description": "ir3/lower_pcopy: Fix immed/const flags for copy from shared", + "sha": "7a8b725d035da7ce697baa394d192f7dd4d9dd3f", + "description": "radv: determine the first mip that is pipe misaligned on GFX10+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "90dabe5a1831af92a7fce2b9f5a0253b68b3ab3f", - "description": "ir3: Fix lowering shared parallel copies with immed src", + "sha": "c5d5f2fbef238aa523162fb446c6c7ed790c87c2", + "description": "radv: move the GFX11 special case for mips to radv_image_is_pipe_misaligned()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4937172534a71382cfc437b74ae80376ef65985c", - "description": "ir3/ra: Prepare for shared phis", + "sha": "65bb39bf9624a04c21d6cf5ff7c80b37deddb8e0", + "description": "radv: do not always invalidate L2 for GPUs with non-coherent RBs on GFX10+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a7cae84078cdd4fd4aa4b9841a669638ad7ceb16", - "description": "ir3/ra: Fix printing shared reg file", + "sha": "eff8a3517d4225c577d8e6f3fe3657434231c688", + "description": "panvk: Enable CI on G610", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "478cd71308072b2879ac8e0662a9cde2eacb3caa", - "description": "ir3/ra: Prepare for shared half-regs", + "sha": "5e0b81413de588803c9a0736acd8decd40d19ab6", + "description": "radv: emit nir_debug_break instructions when the trap handler is enabled", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f8632862d0856225f56932c6d15341f6bd5953b6", - "description": "ir3: Rewrite regmask implementation", + "sha": "2d5df46c254222f726004fa03b69a93af4c75ed0", + "description": "aco: emit nir_intrinsic_debug_break", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "90067425a63d8ea9bace891e1b6261cd081de037", - "description": "ir3/legalize: Use define for register size", + "sha": "b6c72b371740344e1b673707e228d378ae3842a9", + "description": "spirv: handle NonSemantic.DebugBreak to emit nir_debug_break()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "750e6843c02dfdced6d44e5a1ba206a415a40665", - "description": "ir3: Rewrite postsched dependency handling", + "sha": "a85f0143e0525f208d892932ad032bde5cd7da13", + "description": "nir: add nir_intrinsic_debug_break instruction", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "dbeeec25704f9c8a43527b04e8088627f2fbc4bb", - "description": "ir3/ra: Don't demote movmsk instructions to non-shared", + "sha": "5b951bcdd7faf1cbfc189a953c33334378ada3df", + "description": "v3d: Enable Early-Z with discards when depth updates are disabled", "nominated": true, "nomination_type": 1, "resolution": 1, "main_sha": null, - "because_sha": "fa22b0901af548d5e1433ad4cdbda314182137c5", + "because_sha": null, "notes": null }, { - "sha": "79c89a36703e9d9f1b35f271f8bc9d1597e10c5b", - "description": "ir3: Validate tied sources better", + "sha": "fef8490eb962e8f171583db22d362b16ad9bee36", + "description": "anv: Enable MCS_CCS compression on Gfx12+", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3c71667dda5cf360f8759a18f54eb74d3c3c8dd7", - "description": "ir3: Add scan_clusters.macro to is_subgroup_cond_mov_macro()", + "sha": "2a7df331af65216e0229fe6481c1eca70221b225", + "description": "nir: Fix `no_lower_set` leak on early return", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "60413e11c2bc3d50acabe99a3fd82da6885769ae", + "because_sha": "7e986e5f045a0e9da3ee64970a89d89907d0fcb4", "notes": null }, { - "sha": "031b61244930b6c94ea1dd36d093840be0316c2a", - "description": "ir3: Add scan_clusters_macro to ir3_valid_flags()", + "sha": "c923eff742b83cc475d02ad57c538754db991c06", + "description": "tu: Fix potential alloc of 0 size", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "60413e11c2bc3d50acabe99a3fd82da6885769ae", + "because_sha": "4cfd021e3f74fd75e7998cae5697a1ba598237d6", "notes": null }, { - "sha": "063ef2254b7029e9d88b9e4a486bfff0ceeb6fd1", - "description": "v3dv: enable VK_EXT_extended_dynamic_state", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "53c2d5e426d8a5b919ea3c64bad9e46b354b2fc9", + "description": "tu: Fix push_set host memory leak on command buffer reset", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "03294e1dd1cd0e3de2bfe45e91765ee56d217d4a", "notes": null }, { - "sha": "499d5cb18dbcb507ebbb53f927662ae10bdc5864", - "description": "v3dv/ci: update expected list due VK_EXT_extended_dynamic_state", + "sha": "5f79b8ea2dc8fc9b718564aa1578838ff8af4da3", + "description": "radv,aco: save/restore overwritten VGPRs in the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "60e9237e81c918d3a126427568d09b8b7dd093ca", - "description": "v3dv: StencilOp and StencilTestEnable are now dynamic", + "sha": "ccde8ecd64d9d6194ec4ecc47db7bf4e214b3f2c", + "description": "radv: compute the TMA BO size instead of using a constant", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2526f74adeda00cca0a62adf4980c7bdad711529", - "description": "v3dv: PrimitiveTopology is now dynamic", + "sha": "3e88f996a5ae203c34d6971df5d2ea2be85ac3cc", + "description": "radv: fix the TMA descriptor size", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "fbfb99cbc395cd9c002a592cf46a7282221e9499", - "description": "v3dv: ez_state/incompatible_ez_test could be recomputed at cmd_buffer", + "sha": "6ec0c859084271b876f999169a548609c7c20a50", + "description": "radv,aco: use the trap handler layout struct while compiling the shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b6e473cd5859268bdc18429f00630edca5a13196", - "description": "v3dv: move depth CFG bits setting to cmd buffer emission", + "sha": "6bfd92123fc2a902cbe9372e847daecff537d208", + "description": "aco: simplify postprocessing the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9fa023f11107669540f0418feed7f9dc4984ff32", - "description": "v3dv: DepthBoundsTestEnable is dynamic now", + "sha": "44dfeb4479164e1862310d3daaf4e03347cb5466", + "description": "radv,aco: add a separate function to compile the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "29c8aca881b44df21bbc89b0cd9419f88fb4a187", - "description": "v3dv: CullMode and FrontFace are dynamic now", + "sha": "62e335c779df2fab9cf372a1b3e58439fcfac188", + "description": "radv,aco: dump more SQ_WAVE regs from the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e3061e628117d22fce3ba35c6243e8ada562c935", - "description": "v3dv: provide implementation for CmdSetViewportWithCount", + "sha": "0cc21d060120b86347ac5fe7f879425bcf21be94", + "description": "radv: cleanup printing SGPRS dumped from the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f4d426fae6b9ffdcf957dbf91d7863963bc754be", - "description": "v3dv: provide implementation for vkCmdBindVertexBuffers2", + "sha": "ee74b090dba18d771ae1b1d16d2c4a5cf36ae6c8", + "description": "nir/opt_16bit_tex_image: optimize extract half sources", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f2236065b70930243a741806223616234d14980c", - "description": "v3dv: port dynamic state tracking to use Mesa Vulkan", + "sha": "bad38c1e7610a141224f678d839de410169d267a", + "description": "panvk: Implement global priority extensions", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "858154b84ecc7f2ff79f866275bb210106d9dd3d", - "description": "ir3: Don't set saturation on `flat.b`", + "sha": "e2c81380a941aeadcd9ed0d4674e35720ca7546e", + "description": "pan/kmod: Expose medium priority on panfrost", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3b3df7b8a98c4171e402a7c4e7170b9d937aae09", - "description": "panvk: avoid dereferencing a null-pointer", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "d970fe2e9d6a8e9997a0ce212146d62013b3b455", - "notes": null - }, - { - "sha": "8456588b1f97ceeec13e23db528d2346e278328e", - "description": "panvk: drop needless null-checks", + "sha": "2237cff1af9096fffb691dd07930dd816907dc35", + "description": "panfrost: Report default value for GROUP_PRIORITIES_INFO in drm-shim", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5df20cac22f8d27befd24b7e788faa323329c547", - "description": "panvk: do not leak bindings", + "sha": "25b73dff5a01e160e8d42bbbc0026543efa96e84", + "description": "tu/a7xx: use concurrent resolve groups", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8fd171b02d1819628e0235d78435ed21078b8ca4", - "description": "panvk: drop needless null-check", + "sha": "f0e5331b21b507f7f9d6b337ed87ea34ab3bf79c", + "description": "freedreno/registers: update RB_BLIT_INFO, RB_CCU_CNTL", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9058d5ff6252a1bf340453551613c4717cb87f6c", - "description": "panfrost: correct first-tracking for signature", + "sha": "b36a7ce0f1988dd93ec31059cd6ab0ccec32ee91", + "description": "ir3/ra: prevent moving source intervals for shared collects", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "4da88060d0a3662a579a26748d7e3458c1b4800d", + "because_sha": "fa22b0901af548d5e1433ad4cdbda314182137c5", "notes": null }, { - "sha": "f852f86a3112a1f3cbcb96549aa9c55cab5c294d", - "description": "panfrost: check return-code of drmSyncobjWait", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "a2c4a34303cd70e1df3e822bec53312b96e94293", + "description": "anv: Align anv_descriptor_pool::host_mem", + "nominated": true, + "nomination_type": 2, + "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "2570a58bcdf30d699b89323fef60692093dee7ea", "notes": null }, { - "sha": "70dcdb31303d8e5e3a4fc3bd3f8abf8c74ef02d9", - "description": "panfrost: assert that drmSyncobjWait returns 0", + "sha": "ece1ab3b87f58528fab4a75f8ef1f173159aabd8", + "description": "radv: run copy prop before vectorizing", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f59e5ee5fbae221bb873151d2e5f322d5b9635d4", - "description": "panfrost: check return-value from u_trim_pipe_prim", + "sha": "107f29c39a91fcc73e6b3bddb84335a91b78d66e", + "description": "aco: do not reorder s_trap instructions", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8deaf37047c2295c0454e0668e0008edb21dd40e", - "description": "panfrost: do not deref potentially null pointer", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "f94889d0797f6dc66b7875e68ae7d44c0f018131", - "notes": null - }, - { - "sha": "186f7fa915b1d748f73a13f12c089af4e47b5c29", - "description": "panfrost: do not write outside num_wg_sysval", - "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "500616706148d2e340bbdfecad45204b515ae9b5", - "notes": null - }, - { - "sha": "39f919707afe5185733206f6f22a09b8f19a4937", - "description": "panfrost: remove nonsensical assert", + "sha": "252e9a4cdfb71b9735f02f8e3058b7fd5714feb9", + "description": "hk: Bump up max buffer size", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "71fd7836f693c8acf59a2577fa13c4b795f1589b", - "description": "spirv: deduplicate default debug log level", + "sha": "81546c769e69f9ed67422a778cc8cfaac3cbd3e5", + "description": "asahi: Use 64bit size fields", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "378bed6fa6986f5f24a957ae397ecdb6cb08729d", - "description": "v3dv/ci: skip all the WSI tests, they are way too flaky to be worth it", + "sha": "63dd4c13d0c8be654be775a9cda2a6d77264670c", + "description": "asahi: move agx_gather_device_key", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1dadf950c3654da8ac2a90b445ee7b8657bc8686", - "description": "rpi3/ci: drop duplicate comment without any corresponding actual skip line", + "sha": "7e57e0aa7d6554adb1c3462a4b2b68c22505fee0", + "description": "asahi: factor out more compiled shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "42183a9f2b8524d739c0448fbf4e0e0dc57dd227", - "description": "v3dv/ci: dEQP-VK.dynamic_state.*.double_static_bind are fixed now", + "sha": "f36ea1818b00f975cf680cdee428eef04aba6b29", + "description": "asahi: drop dead param", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e14f5252fac3282cd95b950fd01d40fca04e8985", - "description": "v3dv/cmd_buffer: always bind pipeline static state", + "sha": "e7f100013f7ba1fe2bf3beae120903a3db6b5f5c", + "description": "asahi: don't take compiled_shader in agx_build_internal_usc", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1f07f5a79b4b09eee58594fffd6ebe61bdf32c5d", - "description": "radv/video: Report maxBitrate in encode capabilities", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "8d73a3ae40db6accd8b0d5e38d2ef0d730f1788e", + "description": "asahi: assert/cse resource valid", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "54d499818ca9a004ba735635d328a1ed0ff010b6", + "because_sha": null, "notes": null }, { - "sha": "c210bb79521b1900db3b38643396b200fa09a043", - "description": "radv/video: Check encode profiles and bit depth in capabilities query", + "sha": "b94bcf0318f28eb9f75e7c238d3bd4fd606aee0a", + "description": "asahi: fix a2c with sample shading, harder", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "967e4e09dee81b93cfb30195ab5e1878aca9dbd0", + "because_sha": "9bbe93d158915f5b4b0904c12e52d393dc30f4ae", "notes": null }, { - "sha": "2d0282f5762c4980aa2f926f5d1b966d31118693", - "description": "radv/video: Set correct bit depth and format for 10bit input", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "b9429930b9b7a7060bce1ce8d6bd2ad599c9570f", + "description": "asahi: correct core count, max freq", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "967e4e09dee81b93cfb30195ab5e1878aca9dbd0", + "because_sha": null, "notes": null }, { - "sha": "ae866966e63f49a12d1b4f77fa1ff0113ac099b4", - "description": "aco/tests: add tests for divergent merge phi with undef", + "sha": "beab5d27923cd22f265ca03b6a353410a17fcfe2", + "description": "asahi: extract agx_get_num_cores", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0f61e0c27ee0f439440fafece182d90f5459c291", - "description": "aco/tests: add tests for hidden breaks/continues", + "sha": "e145425746f7d5004eb39b0aced63c8463b70462", + "description": "agx: fuse also 8-bit address math", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6b3e14ba83be399719f9b296ac746599016041e1", - "description": "aco/optimizer: remove p_linear_phi handling from optimizer", + "sha": "75d3c51e51b13523f8291969475f6e00f6a70b27", + "description": "libagx: drop silliness in restart kernel", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2d0c6647f0ce8db6d252d63ae5fee512be82c4de", - "description": "aco: use SGPR phi lowering for all scalar phis", + "sha": "4660911cf90aa754580c4d8e2cde6aeb3ee90195", + "description": "libagx: fix unroll kernel constant qualifier", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6ec6899bff4ebee10822c763032b24f141ad7b1d", - "description": "aco: use SGPR phi lowering for all loop header phis", + "sha": "2963cd900fa132b9ae438e3d0e662df226f72815", + "description": "libagx: don't key unroll to index size", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7c0119329999fdc71325d1191280667fc35b3618", - "description": "aco: use SGPR phi lowering for uniform phis in divergent merge blocks", + "sha": "6030b204d5dc553b81baaff9fe1eeab032d540bd", + "description": "libagx: simplify index patch expression", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9ab5e7fe5d2b696203d879b0da72c442c45c3917", - "description": "aco/lower_phis: implement SGPR phi lowering", + "sha": "5e4e8df95aa81ed9f7356a4e1b82e048cf52a9f1", + "description": "libagx: drop Clockwise", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f2d32e1c1388599256aa2a4169ca55c9394e67a1", - "description": "aco/lower_phis: generalize init_state() so that it works with any scalar phis", + "sha": "0c0097ab34cdb21ad8cdd8b3574c3a60e6e595c4", + "description": "libagx: vectorize triangle def'n", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "55130069b8bbb7abf4de31f4925be9fdfc11101f", - "description": "aco/vn: copy-propagate trivial phis", + "sha": "c54fdde1a418a14c19ff46fe48b6e2b259b4828b", + "description": "libagx: drop dead code", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6e3446422f816d974a7cd5dfa27e8db3829e1cf0", - "description": "aco: introduce aco_opcode::p_boolean_phi", + "sha": "d00a504cb0a30c4c4952b214694417f0bd600f5e", + "description": "libagx: drop branch", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3b832fe2abb8933e2a0fa4aaab41ce050b53fb36", - "description": "aco/lower_phis: simplify check for uniform predecessors", + "sha": "28a284430976e2aac857050f633a33ad90d69300", + "description": "libagx: fix cl warning", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d6c9b1d03fd80935131dd93968312eec11a2f38e", - "description": "radv: Handle all dependencies of CmdWaitEvents2", - "nominated": true, + "sha": "663b367a768fd8779a0290d4742b0ff9f9b4826e", + "description": "hk: fix meta shader name", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7c0b73e0aac322d2c6c4e26fa344f67554b88017", - "description": "radv/rt: rework the helper that hashes a ray tracing pipeline", + "sha": "f8b69ebdc2fdede355c0d08ae2b690a5168e8524", + "description": "hk: drop assert", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "58fb6db649fd0560e89c54603861ae2abe36fd42", - "description": "radv/rt: pass radv_ray_tracing_state_key to radv_rt_pipeline_compile()", + "sha": "ece3bd74dbd3f757505931290b52ead24e3356aa", + "description": "agx: make imad+ishl rules actually work", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7be635719c0a7bdf1d4cd1c7a53e67ac8e0a2a3c", - "description": "radv/rt: add radv_ray_tracing_state_key", + "sha": "f7374707360644057cd686efd46192e1b0c80c2c", + "description": "agx: fuse iadd+large shift into imad", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ec78cbce4c18ba868ac2cc7761e896d210c3b3df", - "description": "radv/video: don't truncate frame_num and POC to 32", + "sha": "c9e42073a1ca2ef57bb1e9b123a703eb4db62129", + "description": "agx: optimize signext imad", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ee7e0168a18ad9642d216a5d0bd2c9154e7fed11", - "description": "venus: reclaim signal semaphore feedback resources for wasteful clients", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "cf0261980ae399f839aafaa7bfb74b8fcf8fed20", + "description": "hk: Enable missing swapchainMaintenance1 support", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "d63432012d9189d5f1d8eb8025acfae2463fd449", + "because_sha": null, "notes": null }, { - "sha": "fdc21a95aa6cbb0a47a37155b76c19a92b99f5a0", - "description": "venus: workaround excessive dma-buf import failure on turnip", + "sha": "d449800e4664c04ee458953639694a0ce1a47086", + "description": "hk: don't advertise impossible modifiers", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "824a8542d724d29f714053cca8116f846d627a52", - "description": "venus: silence a stack array false alarm", + "sha": "e5d61631fe394a2005c769b7e7b6765cff98451a", + "description": "hk: Fix DRM modifier selection for compressed surfaces", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3e16d25d1a2f217aa0e6e9b8e7eec9f974e38e0b", - "description": "venus: avoid client allocators for ring internals", - "nominated": true, + "sha": "da1601a4ecb87c9b7266b79fccb5766654f51b11", + "description": "hk: Add virtio implicit sync support", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9926aedc96fe13cf9ff343cd7c4d92aa771e323a", - "description": "anv: enable EDS3 AlphaToCoverageEnable & RasterizationSamples", + "sha": "1a621a6967fa24d4cc41e3a5f99815864253a18a", + "description": "agx: Add support for EGL_NV_context_priority_realtime", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ada806baa35bff35d4f47cbd2dae84cb390dfa34", - "description": "anv: remove fs_msaa_flags from the graphics pipeline", + "sha": "ddc6d9e98468109cbfe3f9b23727e72531db40f2", + "description": "agx: fix atomics in tess count shaders", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ddf31d2f407bcb101aeb163bd72b0c4432aea9c4", - "description": "anv: move 3DSTATE_MULTISAMPLE to partial emission", + "sha": "2c7635ab638fa763714e71d466b2359cb7e1c96a", + "description": "agx: add tests for sign/zero-extend propagate", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "815d2e3e8b182d62eb1b1eef3af6fd4397cf6f8f", - "description": "anv: move 3DSTATE_PS to partial packing", + "sha": "6d56c8bc02ac2a2720b2bc00e3c6f7c9d92175ec", + "description": "agx: fold zext into int sources", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3a336a98e9f43f0b8c9f4036cc10c326ef0b2cac", - "description": "anv: move more PS_EXTRA programming to runtime", + "sha": "200d0794e274ec3de88dc0eb998b3912deba5872", + "description": "agx: optimize signext+iadd", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "355549e7b096a0ef1ee5fb37ebdb84f516f40a39", - "description": "anv: move 3DSTATE_WM::BarycentricInterpolationMode programming to runtime", + "sha": "cfe0a9acec7cf0a1d8de17e9ad248523ce149e7f", + "description": "agx: add pseudo for signext", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "11b348a1c58fdc9b9669f72f74dde1b401533e4e", - "description": "anv: add dirty tracking of fs_msaa_flags in runtime", + "sha": "8de339c0d811e45e941a89ccebe6ef4888db28fe", + "description": "agx: change int conversion test", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "25b57a6a7501ed66dc55c93ecb8e9b9a18628381", - "description": "anv: track sample shading enable & min sample shading", + "sha": "85c5a25ec3a6c8d068b2dd8bd6dfbf39bd546ee7", + "description": "asahi: In-place decompress shared resources for feedback loops", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b80dd22d573ac9276efb19c0f5ea8dae39ab3ab1", - "description": "intel/brw: add min_sample_shading value in wm_prog_data", + "sha": "f04387a41550c3247e241247ba30e3db50df3c47", + "description": "asahi: Introduce batch->feedback to disable compression in PBE", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bdfa25dc776f1bb334f827ee17aa20e50c78d28f", - "description": "intel/fs: decouple alphaToCoverage from per sample dispatch", + "sha": "9288a3a583ae6c8204333e1c9fc304a1ebfeee93", + "description": "asahi: Extract agx_decompress_inplace()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1bbe2d9833518442a656a393a2219f7c756d09cb", - "description": "intel/brw: fixup wm_prog_data_barycentric_modes()", - "nominated": true, + "sha": "f28a1b3fcf248145db2a6ef1b43994c870b545ba", + "description": "asahi: Add PIPE_BIND_SHARED to imported resources", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "48bf95ba96c6277cf930b2aa79c2cea60dc391b5", - "description": "anv: factor out wm_prog_data get in runtime flush", + "sha": "59501af7237e5c629e007d4495b76fd48d3943cc", + "description": "asahi: Add pipe bind flags to resource debug", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e302825fef6787eca08ac1ea0d5cc6305f679c3f", - "description": "anv: fixup indentation", + "sha": "e17038cc8831440b95dc134c1d3f79bb00688f52", + "description": "fd/pps: provide derived counters on a7xx", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2f0c2d2ed735f6098676ace1730c2388eb67ac38", - "description": "anv: simplify multisampling check", + "sha": "fae4a23ab11fc1c06a703eb4b25f105d81d8c079", + "description": "fd/pps: specify counter group for each countable", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bd1a3921d135a99ae8098aa8eb7be90cc2c9eaab", - "description": "zink: fully wait on all program fences during ctx destroy", - "nominated": true, + "sha": "21359417ba5bd21fbd7c893146be8152ac300bc2", + "description": "ir3/parser: Print the line where parsing error occurred", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f18a1d3a311c00dd3e11356f6a604e1fea593004", - "description": "zink: prune zink_shader::programs under lock", - "nominated": true, + "sha": "30d9166d803d4fdbab890758bf4bd5493c315323", + "description": "radv: dump the trap handler shader with RADV_DEBUG=dump_trap_handler", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "866dc85d67396cf6549f7ca97ed19c1614319e49", - "description": "panfrost: Skip new failure from VKCTS 1.3.8.x", + "sha": "4d50691ae961e2913dcbcf59c6927e83dec95861", + "description": "radv: remove unused parameter to radv_fill_nir_compiler_options()", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "fc15041255fe83a9898fbe92ff0875e56340560f", - "description": "panvk: Ensure we lower load_base_workgroup_id to 0", + "sha": "fb5a3cca7aaddd8f18a0c32e2643be161d30515c", + "description": "docs: add missing documentation for RADV_DEBUG=psocachestats", "nominated": false, - "nomination_type": 1, + "nomination_type": 0, "resolution": 4, "main_sha": null, - "because_sha": "d22f936019f84191072a5686826f53b93d755419", + "because_sha": null, "notes": null }, { - "sha": "33db56e784bcb91620c7582f151b91d3e9dbf1d0", - "description": "isaspec: Improve 'meta' handling", + "sha": "e3cf6290e085b692e95207d23e28a6e11424dbe4", + "description": "radv: Add RADV_DEBUG=nirdebuginfo", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1747fed633f30ef9d119c29eadba2bb435150fb4", - "description": "isaspec: Add method to get the displayname of BitSetEnumValue", + "sha": "cf447c5da10952fd70bf8ca1eee12c72ecf0e219", + "description": "nir: Do not gather source locations for phis", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8ebf07eccd1f7476033e0151b9eb19a51d871c51", - "description": "anv: check requirements for VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE", - "nominated": true, + "sha": "f2c204daf0924c636ae5b11f3c6935be12fabb81", + "description": "nir: Add a first_line parameter to gather_debug_info", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "497672ac7471253d0789b0cfe741fae50a4236a0", - "description": "ci: pass MESA_VK_ABORT_ON_DEVICE_LOSS through to the DUT", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "736c8c6f238b1bd3d149a8c193ee5bb361fffa24", + "description": "radv: Dump nir shaders before compiling", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "9bbbe90f060914448910d17a38d815ac24db6030", + "because_sha": null, "notes": null }, { - "sha": "ae68fa51a48c1a7f561b3020681bdce1c1c84cad", - "description": "radeonsi: respect pipe_picture_desc::flush_flags", + "sha": "aaf65d6219182b714366fe6bf3bc154be87b37b7", + "description": "radv: Store debug info inside radv_shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "08d3b93ce7777bb4cfa9202ac5d5af43f98e3342", - "description": "radeonsi: prep for pipe_picture_desc::flush_flags", + "sha": "54c22656b84023d08f573981dc1b36fa07ca3f67", + "description": "radv: Add a helper for accessing the shader binary", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7ed38749961c613c949622f71996f74085c532f2", - "description": "frontends/va: set PIPE_FLUSH_ASYNC when possible", + "sha": "69ebba82d422a7f2dcff4eaa7c05642e063d7486", + "description": "aco: Pass debug information to the driver", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a90075e772af5671234296f8d8c8869e77b4c2b1", - "description": "frontends/va: track whether there are imported/exported surfaces", + "sha": "f8ef1afec805ac9f1bd3e93c395350bc6519e10b", + "description": "aco: Handle nir_debug_info_instr", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "893797eb32123ede1d2a0c098b39824bda1ec4b1", - "description": "gallium: add pipe_picture_desc::flush_flags", + "sha": "7dd98401287761c48a5d43fcce03c4c104833c4a", + "description": "amd: Add ac_shader_debug_info", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b2c0c83be19949a9e45fe4d7e79aa82da9128b34", - "description": "d3d12: Fix static analysis issues due to bad parenthesis closing", + "sha": "4d09cd7fa590cbd52d8772d5a251fab8b0874ab7", + "description": "nir/lower_non_uniform_access: Group accesses using the same resource", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7809c5f222c4ada94964f3e2c97dfbe36151e516", - "description": "ac/nir/tess: Implement packed 16-bit HS->TES I/O using helper macros.", + "sha": "c5e40a60f88aad9ff4075f7ce456be9ea2ce0609", + "description": "radv: Lower non-uniform access after vectorization", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e92e0bab936a145eacf25afe3f1ea57b0abdca7f", - "description": "ac/nir/tess: Implement packed 16-bit LS->HS I/O using helper macros.", + "sha": "d44f74896eca6c03cc739e80a88f6c4a126ef976", + "description": "nir: Add missing access flags to print_access", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "67c2016dd58a9521e76427ca742fbf855248a71c", - "description": "ac/nir/esgs: Implement packed 16-bit ES->GS I/O using helper macros.", + "sha": "01ca43626325f6696fb662f53f03cc3435d24ad3", + "description": "util: Fix some brackets in util_dynarray_.*_ptr", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7bfbff74400a8805a306af7b994844f5ff9e2819", - "description": "ac/nir: Add helper macros for emitting IO code.", + "sha": "d379a3a42833c76bd0a0b47adcfd32f1e9c36aec", + "description": "amd/vpelib: remove luma offset (#459)", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "feb2ba9e9b30db149d53ea164b472c87757f8b94", - "description": "ac/nir/tess: Slightly refactor emitting LS outputs.", + "sha": "2172ab2c2a6a396687b09955b2b63cf6c4dae23a", + "description": "amd/vpelib: patch to match shader (#456)", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "55757ce03bec5cf9dd359b49b2def62ba1a315c3", - "description": "ac/nir/esgs: Slightly refactor emitting IO loads and stores.", + "sha": "891c4694ba692e91c31a189dc8e58172d6922896", + "description": "amd/vpelib: Refactor OCSC and update missing check", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "86cce0e677ea2da6c03d3bf637a758a76d9ca7ea", - "description": "panfrost: clamp buffer-size to max-size", + "sha": "dc1fe83aa524f3297905d33841ca2420f84d8b93", + "description": "zink/ci: document new-ish vangogh flakes", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "19aa0b9473bd092564ca00353bc4b3213cab7467", - "description": "panfrost: add PAN_MAX_TEXEL_BUFFER_ELEMENTS define", + "sha": "1299f5c50a490fadeb60b61677596f13399ee136", + "description": "gallium/radeon: import libdrm_radeon source code, drop the dependency", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1277f58d8a4a57c7522e07359cbe7aa2b8f9b661", - "description": "etnaviv/nn: Make parallel jobs disabled by default", + "sha": "ae9d3656860622ab40a9d824373bc13c32014bfc", + "description": "perfetto: fix macos compile", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "d6473ce28ee0f36890e24b3832cd53d3ed5e98e7", + "because_sha": "a871eabcedffb4f817033b393e25ce373d977b1a", "notes": null }, { - "sha": "b40675947996faea8c4455dc44492d003bc9f49f", - "description": "anv: formatting fix when printing pipe controls", + "sha": "276447ef814ba94db2a75f9c5a16bd542e0642bf", + "description": "ci/b2c: update RESULTS_DIR for .b2c-test jobs", "nominated": true, - "nomination_type": 1, - "resolution": 1, - "main_sha": null, - "because_sha": "abc4111d19761d51599330a1b13be718d0255600", - "notes": null - }, - { - "sha": "7101aecc53f49402b725a8081f7005c15839cb43", - "description": "ci: Use id_tokens for JWT auth", - "nominated": false, - "nomination_type": 3, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "9b6d14aed1df46c31b9debd9b7c346b4dcb76662", "notes": null }, { - "sha": "2639c9105267cc8228c5bf2f08f8203207014b37", - "description": "ci: Add S3 id_token for all jobs", + "sha": "b5b2515f8622dfcc50af0a472fe5d8d296adf49f", + "description": "ci: Remove duplicate slash before $RESULTS_DIR", "nominated": false, - "nomination_type": 3, - "resolution": 1, + "nomination_type": 0, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "87fa1fdcb245b41190e54d97a377b3c0fc71ed50", - "description": "radeonsi/vcn: set accurate size for dec header and index_codec", + "sha": "e368623fff8dfb0f488cf3f29be0040e99920fd7", + "description": "freedreno/ci: add prefix for a630-vk-asan tests", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2c180c47f74b716448a0fb8b505b533b556e458a", - "description": "zink: reconstruct features pnext after determining extension support", - "nominated": true, + "sha": "0a81434adf44eaeeb246a57e2f00a00a01e0e67a", + "description": "agx: rewrite address mode lowering", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e1c9b2a4553ab75e14caa53ebe0abc4ddbd14dae", - "description": "aco/ra: assert that the register file is empty after register allocation completed", + "sha": "d466ccc6bd975c9ba3b270974780bb7f75ab7ffa", + "description": "libagx: promote math to use AGX address mode", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "be1e68b4ee97ed714417c8917182a5326f5b379f", - "description": "aco/ra: fix kill flags after renaming fixed Operands", - "nominated": true, + "sha": "77ce91e99b3689285f93ce7945a27f5e0b40927e", + "description": "hk: reduce max SSBO size", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "548763709b3d0d6fcfeb41933f09cb6e8278cf74", - "description": "lavapipe/ci: add flakes", + "sha": "01d2aa1d536bb068d6077a4cce6f421680d5f538", + "description": "agx: fix bfeil timing", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "908d62be1da5d0df5909fb93c4dfe1fb88c13909", - "description": "freedreno/ci: add flake", + "sha": "db8d467ec64c85c4efd99577af93328b9a5a3495", + "description": "agx: model IC dispatch", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4b0362637bf504b8299399d299cf99755fff768b", - "description": "anv: reuse embedded samplers across shaders", + "sha": "3c222da6c063ac484a0f083f9912ccfcb915ca2b", + "description": "agx: vectorize SSBOs", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "78558de8a67f595fcbf6ef2cfeb566a56ac61a8a", - "description": "panvk: Kill panvk_sysval_vec4", + "sha": "b593a6aa98896dc71a6b1fcfa61f37d505017499", + "description": "rusticl: respect late_lower_int64", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "6d4b376a9b2bb23bbd3855db56f7a06b2284dedb", - "description": "panvk: Lower sysvals to push uniforms", + "sha": "5c73a8af445d22d7f3c9a022537818a4283065c3", + "description": "nir/lower_uniforms_to_ubo: use amul", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9c553bda9c182763d7f3cf8c9d5b583fbb4923e8", - "description": "panvk: Prepare dynamic buffer descriptors at bind time", + "sha": "fc460e7f20a657bee15f4c245a386d67190a200a", + "description": "nir/opt_algebraic: don't lower amul if requested", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a603c66659d9e0e314bb6578592af02811daaa53", - "description": "panvk: Move the dynamic SSBO descriptors to their own UBO", + "sha": "1f3c97547acf8be0a8851e3f3581060922e4c2da", + "description": "nir/builder: use amul over ishl on agx", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "cfe22541498a9519b848f85e79a4e118b38a19e4", - "description": "panvk: Put dynamic uniform buffers at the end of the UBO array", + "sha": "9ab8d70fa628e689b53695170eca8dca5b16b447", + "description": "nir: add ilea_agx/ulea_agx opcodes", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "66721357488c752f5ff315eb5a58779b97a95522", - "description": "panvk: Prepare things so we can push sysvals to our push uniform buffer", + "sha": "23afe968adcc8e27926e7ce2d6989e6f601f367d", + "description": "nir: add late_lower_int64 option", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0bafa94f9a94e3e42f7498050646485a8d3eb116", - "description": "lavapipe/ci: add WSI testing to all the deqp-vk jobs", + "sha": "eaf75169ee413087d7e1a43f604c2d54766287d9", + "description": "nir: add amul flag", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5497c3e75a9e835ad9b2df135076771485758639", - "description": "panvk/ci: add WSI testing to all the deqp-vk jobs", + "sha": "227026b7adf4907f2b6abe692acf9439e9ced325", + "description": "nir/opt_algebraic: add another 64-bit pattern", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "84632dce93f44e8d88cda47648cfd4cc0958918f", - "description": "v3d: Move spec@!opengl 1.1@getteximage-formats, Fail in broadcom-rpi4-fails", + "sha": "2a3f133fd0538cc3a8cde314b8cf5b23bff7f12a", + "description": "nir/opt_algebraic: add more 64-bit patterns", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d20295363962a2f121d10fb141e7f0b1c8bcc121", - "description": "v3d: Move spec@arb_texture_view@rendering-formats, Crash in broadcom-rpi4-fails", + "sha": "a4a3487aae98cc83990b1c79785983b65124145f", + "description": "nir/opt_algebraic: optimize patterns from Skia", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "4660ee1deaace6457bf5fbf3fc8810e4a2453cb5", - "description": "glthread: check for invalid primitive modes in DrawElementsBaseVertex", + "sha": "015f6a7aff46122d60d1cbee9d3ee8a7da002966", + "description": "panvk: ensure res table is restored after meta", "nominated": true, - "nomination_type": 0, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": null, + "because_sha": "5067921349a9830eeac3414e47f11119cfae9291", "notes": null }, { - "sha": "f153f945fc6ee4239e15c536bdff67ca7eeba664", - "description": "pan/bi: clean up tex coord lowering", + "sha": "8906816f49f97c496c14ed69d48a1abfbdc8dc64", + "description": "anv,hasvk,genxml: Rename genxml files using verx10", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3139f8f62384901b02d1fdc516ff3989f8a1f339", - "description": "pan/bi: fix 1D array tex coord lowering", - "nominated": true, + "sha": "7e0e4334820e367e15f45f655aceb82840eed707", + "description": "radv+zink/ci: add flakes seen recently", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "0fbaf8703a1b778bfe68994730cf340e4a012356", - "description": "anv: enable VK_KHR_shader_float_controls2", + "sha": "66df09ffda224c26093d7987f6f673fb05dc2968", + "description": "nvk+zink/ci: add flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "22fa29ac2f3d669f942f9e3b0f54d6f04fc06005", - "description": "vtn: support float controls2", + "sha": "f9593d9eb53c8749900f91b931099a9319cb3074", + "description": "freedreno/ci: add flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "7f97fa6df01bc3d707d4e39885e4d6b577537ad5", - "description": "nir/algebraic: move float control conditions to be per instruction", + "sha": "4ab210f588abcb4508140a8274be35f80e9c72be", + "description": "broadcom/ci: add flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8c4cd3e74e6e005be3bf29f5364342411363d547", - "description": "nir/algebraic: support float controls conditions per instruction", + "sha": "8d2620569c470c32b24ed043400faae681d9cccd", + "description": "ci: make error handling quieter", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "08df0c7dde33722f34f5036f43b3fe3b64b0aac6", - "description": "nir: check inf/nan/sz preserve per-instruction", - "nominated": false, - "nomination_type": 3, - "resolution": 4, + "sha": "e5708ab2b45c58ab33e866cb5688beee628ceabe", + "description": "ci: use quiet alias for commands", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "d69bd583655974922e965e76a8f703c67d661b17", + "notes": null + }, + { + "sha": "5cd054ebe5512aeac80e08528d8363335d0aeeb8", + "description": "ci: move error handling functions at the end", + "nominated": true, + "nomination_type": 1, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "750bd9757eb9d2f4245bc633919495363ecfa232", - "description": "spirv: gather some float controls bits per instruction", + "sha": "aee04bf4fb778049140e7400ba67c8d65653a9c7", + "description": "intel/rt: fix ray_query stack address calculation", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "6c84cbd8c95e93df0298042fea9ea0de336f2eb1", + "notes": null + }, + { + "sha": "7aad19ccd252e259edf1fce7eef175abd6619fbd", + "description": "brw/lower: Lower invalid source conversion to better code", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "666647acaedb1b4112f19192b992b05547975dfa", - "description": "nir: track some float controls bits per instruction", + "sha": "2a57568ebd29404f1f1f9ebbd500a037120268e6", + "description": "brw/build: Add scalar_group() helper", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "829ea357146683f74d93b66de86fcf2c88b1ff57", - "description": "compiler: reorder FLOAT_CONTROLS enums", + "sha": "5dfea87623cc9a68de55a1e444eb4eae60df9313", + "description": "brw/opt: Always do both kinds of copy propagation before lower_load_payload", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "df6cfb4dd0460430a49a4e9f6b7b5654c0819d88", - "description": "intel/brw: Rename brw_reg_type_to_hw_type to brw_type_encode", + "sha": "be26012f1d9be3a3602505807dee21a8f069f478", + "description": "brw/opt: Always do copy prop, DCE, and register coalesce after lower_regioning", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9205f6ff513b7d644b3a845b768a5a93fc6b7c0a", - "description": "intel/brw: Combine a1/a16 3src type decoding functions", + "sha": "b2d7a823be83ed300462bd1b1ca329373da201bc", + "description": "brw/lower: Don't emit spurious moves to or from NULL register", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "28034aac34dba480d94991fa3c19916daa163785", - "description": "intel/brw: Combine a1/a16 3src type encoding functions", + "sha": "9aba731d0354d456a8aab53e3a1ceef94a0d7f99", + "description": "brw/cse: Don't eliminate instructions that write flags", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "234c45c929e0341f1d0c2a51a587c4ce7e4bba52", + "notes": null + }, + { + "sha": "80a5d158ae7d675e2cc62c78970a84abc1c85cfe", + "description": "brw/copy: Don't copy propagate through smaller entry dest size", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "e3f502e0074cc0b9d5a6807fa900b240cf7e0fc6", + "notes": null + }, + { + "sha": "ced2404cb433deaa84cf6cf9edce212733117c0b", + "description": "vulkan/runtime: return same cmdbuf level from the command pool freelist", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "545bb8fb6f738b44e6430a333eba46401e247320", - "description": "intel/brw: Replace type_sz and brw_reg_type_to_size with brw_type_size_*", + "sha": "c1c09e3c4a0fedd777442828efefb672e99b8dbc", + "description": "brw/emit: Add correct 3-source instruction assertions for each platform", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "7bed11fbdebbd70cf12d1ff55d15db7231b7e9ad", + "notes": null + }, + { + "sha": "aebc6c974ff7888daa0ac809774d91b62d47458b", + "description": "gfxstream: use vulkan_lite_runtime", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c22f44ff07983cf28b238bebc50654f84b5cabb7", - "description": "intel/brw: Replace brw_reg_type_from_bit_size by brw_type_with_size", + "sha": "dd5244e6ac1366e4cd464e8b7548e0fc14ca281d", + "description": "gfxstream: nuke android::base::SubAllocator", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "007d8912393344c270dadf0d2cc7076f694789ab", - "description": "intel/brw: Use newer brw_type_is_* shorter names", + "sha": "6a9eb986c2c74fb08dd57cdbfb2eaeeea757c323", + "description": "gfxstream: move isHostVisible function", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f523bfcf90128a4759a76d0c6cebe017f4767440", - "description": "intel/brw: Reindent after shortening BRW_REGISTER_TYPE_* to BRW_TYPE_*", + "sha": "5d299a0bd44caa66ccde65369e743c8ba0a9b7cf", + "description": "util: add c++ guards to u_mm.h", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "873fcdff38ffbc7af81fd4aacb19577a88b2f81f", - "description": "intel/brw: Stop using long BRW_REGISTER_TYPE enum names", + "sha": "5f70858ece37144e87574767769ca3aa7057d0c2", + "description": "vulkan/wsi/wayland: Use X11-style image count strategy when using FIFO.", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "d052b0201ee651cdce1f25aefb41d1b9b6b6a6dd", + "notes": null + }, + { + "sha": "437bd632657e4c11bf75d526c65c868d9c49dd96", + "description": "radv,aco: dump m0 and exec from the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9d8f2c442120c98532dac8e5055c06efe0942c5f", - "description": "intel/brw: Rework BRW_REGISTER_TYPE's representation semantics", + "sha": "d1d41be43fa7ed135b8e3bb2e0174964ced11d83", + "description": "aco: declare phys regs for tba_hi/tma_hi", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c45e235df5dba1387c6e31f993272c1c553378a9", - "description": "intel/brw: Drop NF type support", + "sha": "13bab450a247bda365664baa9b828b2b90fc0f95", + "description": "aco: fix storing SQ_WAVE_STATUS in the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "1c6f863fc7d42ce17d771a7ac83d0e707ca82619", - "description": "intel/brw: Delete gfx10 table for align1 3src type encoding", + "sha": "494050d2ea5b35909e881ec7c850389127bfd79c", + "description": "aco: add a helper to dump SGPR to memory for the trap handler", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "40422927dcb1249cdb1444557aca671387140428", - "description": "nak: Pass has_mod to all form of src2 requiring it", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "8c6f2fef1b4e338d13f67f27563da20c7487f754", + "description": "aco: use scalar buffer stores for dumping SGPRS from the trap on GFX8", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "bad23ddb4849908a648d503a615a5a9b15e9768a", + "because_sha": null, "notes": null }, { - "sha": "46598758e7a2ce0b81610db612cb2beeb5c49a8d", - "description": "radv: Trace indirect dispatch sizes", + "sha": "17f6b4e51e046952b3b3ad6c73fbfac06ddf9c91", + "description": "aco: save/restore SCC in the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "2b2f67aa2b01204d92ba9178667dbf8aba8d3288", - "description": "radv: Use a struct for the trace_bo layout", + "sha": "7b4386facd2519b91dcec2351c9f9fc3ab5b28ee", + "description": "aco: cleanup using fixed registers in the trap handler shader", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "575565af5819367ada69c8bbed367ab7215d3b7c", - "description": "ac/debug,radv: Read UMR wave dumps into memory before parsing", + "sha": "9c3ac69568c534b6de77a1a2ae16468a3f7d6387", + "description": "ac/perfcounter: fix buffer overflow", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "9a43987780a17e763ab47844ba6989552d1c8198", - "description": "docs: Add an alternative way to debug GPU hangs with RADV", + "sha": "8467f57e304e7e5d3b885473c742802c28d5e2ea", + "description": "radeonsi/tests: update expected results", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bb719640b5514c2148293d6e288a44e2cfda7436", - "description": "docs: Add documentation about debugging GPU hangs on RADV", + "sha": "cce45dc0bf9b4e518336c8d8e4d540c939cceb29", + "description": "ac: switch AMD_FORCE_FAMILY handling to using ac_fake_hw_db", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f6143d3f48fe23d26af49a582c475a542c195c63", - "description": "aco/tests: validate before and after post-ra tests", + "sha": "c097c3745582a8fc5aaf7530665ab56244e55fe3", + "description": "ac: add 'polaris12' gpu to ac_fake_hw_db", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "47d824a64416b2cf662237cd8d32594cd6d806a5", - "description": "aco/lower_to_hw: fix 16bit p_insert on gfx8", + "sha": "1c31cec31e10382b151adb218ee46babd496069e", + "description": "ac: rename ac_surface_test_common -> ac_fake_hw_db", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "bb80ac7a70975e7f5d6fe587836775b2ef8b8c32", - "description": "aco/lower_to_hw: fix v_cvt_pk_u16_u32 instruction format", + "sha": "2ff67083e5ae4fa58693d600a11946506096ad27", + "description": "radeonsi: refuse to import texture with family_overriden being set", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "619470732f89e95729f927fce8400a4b07008e23", - "description": "aco/tests/post_ra: fix various validation errors", + "sha": "9d0aba1f97a958b4010978bb7d6170fcb637ae75", + "description": "ac/surface: add flags to surface metadata", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f85e6c82a64ad3adf0eecb75d4d0e78b6d0caf13", - "description": "aco/tests: don't use undef for descriptors", + "sha": "acc32cadf517d05cf54663beb99b184444fd87d1", + "description": "radv: set info->family_overridden when RADV_FORCE_FAMILY is used", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "68dfe17abcca6299951734df3f9758c401286b57", - "description": "anv: disable dual source blending state if not used in shader", - "nominated": true, + "sha": "3154920c3617238794fcdb3c73e5eb30bb851cbc", + "description": "gallium: drop PIPE_SHADER_IR_NIR_SERIALIZED", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e6fb3ba03798fc2550bdb5ec6651690a34ac3509", - "description": "isl: Set MOCS to uncached for Gfx12.0 blitter sources/destinations", - "nominated": true, - "nomination_type": 1, - "resolution": 1, + "sha": "80c4ffb61a91ed252d45e38a96e893cec0771940", + "description": "clover: drop support for nir drivers", + "nominated": false, + "nomination_type": 0, + "resolution": 4, "main_sha": null, - "because_sha": "194afe841635e43d55c4f71f4122c6048f585450", + "because_sha": null, "notes": null }, { - "sha": "0666a715c7210558017ce717f6b0b947c679a68e", - "description": "ci: fix container rules on release branches and tags", + "sha": "277925471e47916fb88b39edc5d66d3cb5ddb8b9", + "description": "nvc0: return NULL instead of asserting in nvc0_resource_from_user_memory", "nominated": true, - "nomination_type": 1, + "nomination_type": 2, "resolution": 1, "main_sha": null, - "because_sha": "2487e18d4e25c56a70630ccf5faf5d2081fbee2f", + "because_sha": "212f1ab40ea5945919a92926fd9b2aa085fed661", "notes": null }, { - "sha": "e8d94536d21a6f2087b21eecc9f15dcac0a362e8", - "description": "radv: fix image format properties with fragment shading rate usage", - "nominated": true, + "sha": "89d709a43ec55c0522f41fd1d439b4af8593b2b4", + "description": "virgl: Propagate the GL_MAX_stage_SHADER_STORAGE_BLOCKS for each stage", + "nominated": false, "nomination_type": 0, - "resolution": 1, + "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "ce1bbd241eb1ff69254000232a42a840893206dc", - "description": "venus: extend image cache to vkGetDeviceImageMemoryRequirements", + "sha": "85d25cc5c8063d7132a5b60093da09afb80cc462", + "description": "Uprev Piglit to eebe1b555f51dbb702f696d08ad5ae8153bcdcdd", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "f4f8f2ecbba978233a139c90b7142d7a466b8272", - "description": "venus: refactor out image requirements helpers", + "sha": "79b12001fd261d39306446b67323f6638579798a", + "description": "radeonsi/vcn: Stop clearing decode internal buffers", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "b06e2108eb0e1badb4c0f2d37e45f98f179a0624", - "description": "docs: update calendar for 24.1.0-rc1", + "sha": "1f00dfd1a79fe95e3fefc1c7c74240f47b42799b", + "description": "radeonsi: Support PIPE_VIDEO_CAP_SKIP_CLEAR_SURFACE", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d95248ee0b6cc79e85bbaffdd34f6b858fbb3f01", - "description": "docs: add sha256sum for 24.0.6", + "sha": "b4b74617ae5a2854910ace547b5d2b25fc5705a1", + "description": "frontends/vdpau: Support skip clear on surface creation", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d4f23331bda0d0b1170460a2825d86f3b06cdb62", - "description": "docs: add an extra 24.0.x release", + "sha": "5df9097c95357ed0ca77d8eca0427f40ccf0dffd", + "description": "frontends/va: Support skip clear on surface creation", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "c6ff1f0ca52c511599d7e3e56761d593ef611955", - "description": "docs: update calendar for 24.0.6", + "sha": "76df53f59b0b70393404903acf921fc662ec6b71", + "description": "gallium: Add PIPE_VIDEO_CAP_SKIP_CLEAR_SURFACE", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5ee4523a75a24abf35ff9decc4991d96e4a1bc20", - "description": "docs: add release notes for 24.0.6", + "sha": "47a1565c3d0599c8748e6c97c46b9e18655d3201", + "description": "nv/codegen: Do not use a zero immediate for tex instructions", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "85a31fa1fc906d500e10a7fa5c9973aa17e7f1d6", + "notes": null + }, + { + "sha": "2c3dd2a37d1b8204ae5c6a98716940101ac911ca", + "description": "frontends/va: Add minus_1 to AV1 render_width/height", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "5e1a98800324082d1018ba5582d5db5c5a0e7757", - "description": "nir: document base_global_invocation_id and base_workgroup_id", + "sha": "7f2624e6aebd0ce413ef5214c6ebad96eefb6774", + "description": "radeonsi/vcn: Fix coding AV1 render size", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "d22f936019f84191072a5686826f53b93d755419", - "description": "nir: remove workgroup_id_zero_base", + "sha": "4ad8a5443b66f5a2c8b0e6ee404e9ee899700e8a", + "description": "ci/build: add workaround for incorrect maybe-uninitialized error", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3217838fef80a1085c2ca090c0ff1d9e4c76c637", - "description": "nir: remove global_invocation_id_zero_base", + "sha": "f09ae95c102247c5e27402d0c29139ea57ca7df7", + "description": "ci/build: drop \"verify after bump to F39\" as that did not help", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a2c96b8e7f3fc3a6ee7b3df610bce9ce625b943d", - "description": "mesa/st: lower base invoc and workgroup id", + "sha": "45e1ffeceba767c7e996c0a6770a574f39351a0d", + "description": "ci: upgrade the fedora image from 38 to 41", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "e040a08e5e988703008c412bd31d7c9bbf0c7b20", - "description": "lavapipe: lower base_workgroup_id to zero", + "sha": "3ecf2a0518c076c4af6ebc238e4570d0e8deea4a", + "description": "anv: fix extent computation in image->image host copies", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "0317c448727b2558a3748b7d621d6006de5ba51b", + "notes": null + }, + { + "sha": "625ad5bc52172ea4b4412c43714e1b9416095b67", + "description": "freedreno/ci: add more flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "a62fb368d62fe9a8ddfbcece3193ffa4990f2463", - "description": "v3d: call nir_lower_compute_system_values to get rid of base intrinsics", + "sha": "a1b309a17719d8e8f902f115ddeec22fc98a462c", + "description": "broadcom/ci: add more flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "51f54cdec440226678a7f7a006106eec63aa5b5f", - "description": "intel/compiler: lower workgoup id to index only for mesh shaders", + "sha": "e83613d906d2bd6128be9b2750e52cf78a4dd464", + "description": "radv/ci: add more flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "3625a44dcc61d261b4167363bb7a8a4b152d59ce", - "description": "nir/divergence_analysis: handle load_base_global_invocation_id", + "sha": "9229bcaf1382cb516d06cbc65051b5c81a58e234", + "description": "radeonsi/ci: add more flakes seen recently", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "25d697ef259e0a5c8c02910eb45ad69a22f62dc6", - "description": "nir: add SYSTEM_VALUE_BASE_WORKGROUP_ID", + "sha": "b130cc0af7226f8e01f0f744ad7dfaf6d4f0508f", + "description": "docs/release-calendar: update one more time for pushed back release", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "07685ea89b0e7269e4029e889fffd18734ea7136", + "sha": "95c24964123eb01ed316d9f9a6295c20183b5849", + "description": "meson: bump spirv-tools version needed to v2022.1", + "nominated": true, + "nomination_type": 2, + "resolution": 1, + "main_sha": null, + "because_sha": "c60a421f0c2357fe13636f0d51f21e7be25b625e", + "notes": null + }, + { + "sha": "d301046eaa1f3a5b57ced60d392d3dfbdb6e6a9d", "description": "docs: reset new_features.txt", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, "notes": null }, { - "sha": "8fff01e9d0cee30c7adf901a61810660f957ab69", - "description": "VERSION: bump to 20.2", + "sha": "ad0c3c4ebfd461a4bac9f7e11e40e63ca4af6cde", + "description": "VERSION: bump to 25.0", "nominated": false, - "nomination_type": 3, + "nomination_type": 0, "resolution": 4, "main_sha": null, "because_sha": null, diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 000000000..8534815fd --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1,10 @@ +# Allow using `source` to execute the contents of other files than the one +# being checked. +external-sources=true + +# Do not print links to wiki pages explaining why this is an issue. +wiki-link-count=0 + +# All shell scripts are being run using bash, even if they are lacking +# a shebang. +shell=bash diff --git a/README.rst b/README.rst index b35246e03..d9f2f06e9 100644 --- a/README.rst +++ b/README.rst @@ -13,16 +13,14 @@ Build & install --------------- You can find more information in our documentation (`docs/install.rst -`_), but the recommended way is to use -Meson (`docs/meson.rst `_): +`_), but the recommended way is to use +Meson (`docs/meson.rst `_): .. code-block:: sh - $ mkdir build - $ cd build - $ meson .. - $ sudo ninja install - + $ meson setup build + $ ninja -C build/ + $ sudo ninja -C build/ install Support ------- @@ -46,7 +44,7 @@ Bug reports ----------- If you think something isn't working properly, please file a bug report -(`docs/bugs.rst `_). +(`docs/bugs.rst `_). Contributing @@ -54,6 +52,6 @@ Contributing Contributions are welcome, and step-by-step instructions can be found in our documentation (`docs/submittingpatches.rst -`_). +`_). Note that Mesa uses gitlab for patches submission, review and discussions. diff --git a/VERSION b/VERSION index 777875491..e9a9b4514 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -24.1.5 +24.3.0 diff --git a/android/Android.mk b/android/Android.mk index ced12e305..d5b4c10ab 100644 --- a/android/Android.mk +++ b/android/Android.mk @@ -27,6 +27,12 @@ LOCAL_PATH := $(call my-dir) MESA3D_TOP := $(dir $(LOCAL_PATH)) LIBDRM_VERSION = $(shell cat external/libdrm/meson.build | grep -o "\\s*:\s*'\w*\.\w*\.\w*'" | grep -o "\w*\.\w*\.\w*" | head -1) +LLVM_VERSION_MAJOR = $(shell \ + if [ -f external/llvm-project/cmake/Modules/LLVMVersion.cmake ]; then \ + grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/cmake/Modules/LLVMVersion.cmake | grep -o '[0-9]\+'; \ + else \ + grep 'set.LLVM_VERSION_MAJOR ' external/llvm-project/llvm/CMakeLists.txt | grep -o '[0-9]\+'; \ + fi) MESA_VK_LIB_SUFFIX_amd := radeon MESA_VK_LIB_SUFFIX_intel := intel @@ -42,7 +48,7 @@ include $(CLEAR_VARS) LOCAL_SHARED_LIBRARIES := libc libdl libdrm libm liblog libcutils libz libc++ libnativewindow libsync libhardware LOCAL_STATIC_LIBRARIES := libexpat libarect libelf LOCAL_HEADER_LIBRARIES := libnativebase_headers hwvulkan_headers -MESON_GEN_PKGCONFIGS := cutils expat hardware libdrm:$(LIBDRM_VERSION) nativewindow sync zlib:1.2.11 libelf +MESON_GEN_PKGCONFIGS := log cutils expat hardware libdrm:$(LIBDRM_VERSION) nativewindow sync zlib:1.2.11 libelf LOCAL_CFLAGS += $(BOARD_MESA3D_CFLAGS) ifneq ($(filter swrast,$(BOARD_MESA3D_GALLIUM_DRIVERS) $(BOARD_MESA3D_VULKAN_DRIVERS)),) @@ -86,8 +92,8 @@ MESON_GEN_PKGCONFIGS += DirectX-Headers endif ifneq ($(MESON_GEN_LLVM_STUB),) -MESON_LLVM_VERSION := 12.0.0 -LOCAL_SHARED_LIBRARIES += libLLVM12 +MESON_LLVM_VERSION := $(LLVM_VERSION_MAJOR).0.0 +LOCAL_SHARED_LIBRARIES += libLLVM$(LLVM_VERSION_MAJOR) endif ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 30; echo $$?), 0) @@ -96,7 +102,10 @@ LOCAL_SHARED_LIBRARIES += \ libgralloctypes \ libhidlbase \ libutils - +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 35; echo $$?), 0) +LOCAL_SHARED_LIBRARIES += libui +MESON_GEN_PKGCONFIGS += ui +endif MESON_GEN_PKGCONFIGS += android.hardware.graphics.mapper:4.0 endif @@ -157,9 +166,9 @@ endif endef ifneq ($(strip $(BOARD_MESA3D_GALLIUM_DRIVERS)),) -# Module 'libgallium_dri', produces '/vendor/lib{64}/dri/libgallium_dri.so' +# Module 'libgallium_dri', produces '/vendor/lib{64}/libgallium_dri.so' # This module also trigger DRI symlinks creation process -$(eval $(call mesa3d-lib,libgallium_dri,dri,MESA3D_GALLIUM_DRI_BIN)) +$(eval $(call mesa3d-lib,libgallium_dri,,MESA3D_GALLIUM_BIN)) # Module 'libglapi', produces '/vendor/lib{64}/libglapi.so' $(eval $(call mesa3d-lib,libglapi,,MESA3D_LIBGLAPI_BIN)) @@ -178,6 +187,7 @@ $(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), \ ifneq ($(filter true, $(BOARD_MESA3D_BUILD_LIBGBM)),) # Modules 'libgbm', produces '/vendor/lib{64}/libgbm.so' $(eval $(call mesa3d-lib,$(MESA_LIBGBM_NAME),,MESA3D_LIBGBM_BIN,$(MESA3D_TOP)/src/gbm/main)) +$(eval $(call mesa3d-lib,dri_gbm,,MESA3D_DRI_GBM_BIN)) endif #------------------------------------------------------------------------------- diff --git a/android/mesa3d_cross.mk b/android/mesa3d_cross.mk index 680788709..b83427927 100644 --- a/android/mesa3d_cross.mk +++ b/android/mesa3d_cross.mk @@ -63,16 +63,22 @@ MESON_OUT_DIR := $($(M_TARGET_PREFIX)TARGET_OUT_INTER MESON_GEN_DIR := $(MESON_OUT_DIR)_GEN MESON_GEN_FILES_TARGET := $(MESON_GEN_DIR)/.timestamp -MESA3D_GALLIUM_DRI_DIR := $(MESON_OUT_DIR)/install/usr/local/lib/dri -$(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libgallium_dri.so +MESA3D_GALLIUM_DIR := $(MESON_OUT_DIR)/install/usr/local/lib +$(M_TARGET_PREFIX)MESA3D_GALLIUM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libgallium_dri.so $(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libEGL.so $(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv1_CM.so $(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libGLESv2.so $(M_TARGET_PREFIX)MESA3D_LIBGLAPI_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/libglapi.so $(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/$(MESA_LIBGBM_NAME).so +$(M_TARGET_PREFIX)MESA3D_DRI_GBM_BIN := $(MESON_OUT_DIR)/install/usr/local/lib/gbm/dri_gbm.so +MESA3D_GBM_BINS := \ + $($(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN) \ + $($(M_TARGET_PREFIX)MESA3D_DRI_GBM_BIN) \ + MESA3D_GLES_BINS := \ + $($(M_TARGET_PREFIX)MESA3D_GALLIUM_BIN) \ $($(M_TARGET_PREFIX)MESA3D_LIBEGL_BIN) \ $($(M_TARGET_PREFIX)MESA3D_LIBGLESV1_BIN) \ $($(M_TARGET_PREFIX)MESA3D_LIBGLESV2_BIN) \ @@ -82,12 +88,12 @@ MESON_GEN_NINJA := \ cd $(MESON_OUT_DIR) && PATH=/usr/bin:/usr/local/bin:$$PATH meson ./build \ --cross-file $(call relative-to-absolute,$(MESON_GEN_DIR))/aosp_cross \ --buildtype=release \ - -Ddri-search-path=/vendor/$(MESA3D_LIB_DIR)/dri \ -Dplatforms=android \ -Dplatform-sdk-version=$(PLATFORM_SDK_VERSION) \ -Dgallium-drivers=$(subst $(space),$(comma),$(BOARD_MESA3D_GALLIUM_DRIVERS)) \ -Dvulkan-drivers=$(subst $(space),$(comma),$(subst radeon,amd,$(BOARD_MESA3D_VULKAN_DRIVERS))) \ -Dgbm=enabled \ + -Dgbm-backends-path=/vendor/$(MESA3D_LIB_DIR) \ -Degl=$(if $(BOARD_MESA3D_GALLIUM_DRIVERS),enabled,disabled) \ -Dllvm=$(if $(MESON_GEN_LLVM_STUB),enabled,disabled) \ -Dcpp_rtti=false \ @@ -284,19 +290,14 @@ endif $(MESON_BUILD) touch $@ -MESON_COPY_LIBGALLIUM := \ - cp `ls -1 $(MESA3D_GALLIUM_DRI_DIR)/* | head -1` $($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN) - -$(MESON_OUT_DIR)/install/.install.timestamp: MESON_COPY_LIBGALLIUM:=$(MESON_COPY_LIBGALLIUM) $(MESON_OUT_DIR)/install/.install.timestamp: MESON_BUILD:=$(MESON_BUILD) $(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp rm -rf $(dir $@) mkdir -p $(dir $@) DESTDIR=$(call relative-to-absolute,$(dir $@)) $(MESON_BUILD) install - $(if $(BOARD_MESA3D_GALLIUM_DRIVERS),$(MESON_COPY_LIBGALLIUM)) touch $@ -$($(M_TARGET_PREFIX)MESA3D_LIBGBM_BIN) $(MESA3D_GLES_BINS): $(MESON_OUT_DIR)/install/.install.timestamp +$(MESA3D_GBM_BINS) $(MESA3D_GLES_BINS): $(MESON_OUT_DIR)/install/.install.timestamp echo "Build $@" touch $@ @@ -308,14 +309,3 @@ $(MESON_OUT_DIR)/install/usr/local/lib/libvulkan_$(MESA_VK_LIB_SUFFIX_$1).so: $( endef $(foreach driver,$(BOARD_MESA3D_VULKAN_DRIVERS), $(eval $(call vulkan_target,$(driver)))) - -$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: MESA3D_GALLIUM_DRI_DIR:=$(MESA3D_GALLIUM_DRI_DIR) -$($(M_TARGET_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES)/dri/.symlinks.timestamp: $(MESON_OUT_DIR)/install/.install.timestamp - # Create Symlinks - mkdir -p $(dir $@) - ls -1 $(MESA3D_GALLIUM_DRI_DIR)/ | PATH=/usr/bin:$$PATH xargs -I{} ln -s -f libgallium_dri.so $(dir $@)/{} - touch $@ - -$($(M_TARGET_PREFIX)MESA3D_GALLIUM_DRI_BIN): $(TARGET_OUT_VENDOR)/$(MESA3D_LIB_DIR)/dri/.symlinks.timestamp - echo "Build $@" - touch $@ diff --git a/bin/ci/ci_post_gantt.py b/bin/ci/ci_post_gantt.py index 131f27e93..d5191ea6f 100755 --- a/bin/ci/ci_post_gantt.py +++ b/bin/ci/ci_post_gantt.py @@ -82,7 +82,7 @@ def gitlab_post_reply_to_note(gl, event, reply_message): merge_request = project.mergerequests.get(merge_request_iid) # Find the discussion to which the note belongs - discussions = merge_request.discussions.list(as_list=False) + discussions = merge_request.discussions.list(iterator=True) target_discussion = next( ( d diff --git a/bin/ci/ci_run_n_monitor.py b/bin/ci/ci_run_n_monitor.py index 6ead6c6ec..5cd732be4 100755 --- a/bin/ci/ci_run_n_monitor.py +++ b/bin/ci/ci_run_n_monitor.py @@ -21,7 +21,7 @@ from functools import partial from itertools import chain from subprocess import check_output, CalledProcessError -from typing import TYPE_CHECKING, Iterable, Literal, Optional +from typing import Dict, TYPE_CHECKING, Iterable, Literal, Optional, Tuple import gitlab import gitlab.v4.objects @@ -33,6 +33,7 @@ get_gitlab_project, get_token_from_default_dir, pretty_duration, + print_once, read_token, wait_for_pipeline, ) @@ -53,90 +54,138 @@ "success": Fore.GREEN, "failed": Fore.RED, "canceled": Fore.MAGENTA, + "canceling": Fore.MAGENTA, "manual": "", "pending": "", "skipped": "", } -COMPLETED_STATUSES = ["success", "failed"] +COMPLETED_STATUSES = frozenset({"success", "failed"}) +RUNNING_STATUSES = frozenset({"created", "pending", "running"}) -def print_job_status(job, new_status=False) -> None: +def print_job_status( + job: gitlab.v4.objects.ProjectPipelineJob, + new_status: bool = False, + job_name_field_pad: int = 0, +) -> None: """It prints a nice, colored job status with a link to the job.""" - if job.status == "canceled": + if job.status in {"canceled", "canceling"}: return if new_status and job.status == "created": return - if job.duration: - duration = job.duration - elif job.started_at: - duration = time.perf_counter() - time.mktime(job.started_at.timetuple()) + job_name_field_pad = len(job.name) if job_name_field_pad < 1 else job_name_field_pad - print( + duration = job_duration(job) + + print_once( STATUS_COLORS[job.status] - + "🞋 job " - + URL_START - + f"{job.web_url}\a{job.name}" - + URL_END - + (f" has new status: {job.status}" if new_status else f" :: {job.status}") + + "🞋 job " # U+1F78B Round target + + link2print(job.web_url, job.name, job_name_field_pad) + + (f"has new status: {job.status}" if new_status else f"{job.status}") + (f" ({pretty_duration(duration)})" if job.started_at else "") + Style.RESET_ALL ) +def job_duration(job: gitlab.v4.objects.ProjectPipelineJob) -> float: + """ + Given a job, report the time lapsed in execution. + :param job: Pipeline job + :return: Current time in execution + """ + if job.duration: + return job.duration + elif job.started_at: + return time.perf_counter() - time.mktime(job.started_at.timetuple()) + return 0.0 + + def pretty_wait(sec: int) -> None: """shows progressbar in dots""" for val in range(sec, 0, -1): - print(f"⏲ {val} seconds", end="\r") + print(f"⏲ {val} seconds", end="\r") # U+23F2 Timer clock time.sleep(1) def monitor_pipeline( - project, - pipeline, + project: gitlab.v4.objects.Project, + pipeline: gitlab.v4.objects.ProjectPipeline, target_jobs_regex: re.Pattern, - dependencies, - force_manual: bool, + include_stage_regex: re.Pattern, + exclude_stage_regex: re.Pattern, + dependencies: set[str], stress: int, -) -> tuple[Optional[int], Optional[int]]: +) -> tuple[Optional[int], Optional[int], Dict[str, Dict[int, Tuple[float, str, str]]]]: """Monitors pipeline and delegate canceling jobs""" statuses: dict[str, str] = defaultdict(str) target_statuses: dict[str, str] = defaultdict(str) - stress_status_counter = defaultdict(lambda: defaultdict(int)) - target_id = None - + stress_status_counter: dict[str, dict[str, int]] = defaultdict(lambda: defaultdict(int)) + execution_times = defaultdict(lambda: defaultdict(tuple)) + target_id: int = -1 + name_field_pad: int = len(max(dependencies, key=len))+2 + # In a running pipeline, we can skip following job traces that are in these statuses. + skip_follow_statuses: frozenset[str] = (COMPLETED_STATUSES) + + # Pre-populate the stress status counter for already completed target jobs. + if stress: + # When stress test, it is necessary to collect this information before start. + for job in pipeline.jobs.list(all=True, include_retried=True): + if target_jobs_regex.fullmatch(job.name) and \ + include_stage_regex.fullmatch(job.stage) and \ + not exclude_stage_regex.fullmatch(job.stage) and \ + job.status in COMPLETED_STATUSES: + stress_status_counter[job.name][job.status] += 1 + execution_times[job.name][job.id] = (job_duration(job), job.status, job.web_url) + + # jobs_waiting is a list of job names that are waiting for status update. + # It occurs when a job that we want to run depends on another job that is not yet finished. + jobs_waiting = [] + # FIXME: This function has too many parameters, consider refactoring. + enable_job_fn = partial( + enable_job, + project=project, + pipeline=pipeline, + job_name_field_pad=name_field_pad, + jobs_waiting=jobs_waiting, + ) while True: deps_failed = [] to_cancel = [] - for job in pipeline.jobs.list(all=True, sort="desc"): - # target jobs - if target_jobs_regex.fullmatch(job.name): + jobs_waiting.clear() + for job in sorted(pipeline.jobs.list(all=True), key=lambda j: j.name): + if target_jobs_regex.fullmatch(job.name) and \ + include_stage_regex.fullmatch(job.stage) and \ + not exclude_stage_regex.fullmatch(job.stage): target_id = job.id + target_status = job.status - if stress and job.status in ["success", "failed"]: + if stress and target_status in COMPLETED_STATUSES: if ( stress < 0 or sum(stress_status_counter[job.name].values()) < stress ): - job = enable_job(project, pipeline, job, "retry", force_manual) - stress_status_counter[job.name][job.status] += 1 + stress_status_counter[job.name][target_status] += 1 + execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url) + job = enable_job_fn(job=job, action_type="retry") else: - job = enable_job(project, pipeline, job, "target", force_manual) + execution_times[job.name][job.id] = (job_duration(job), target_status, job.web_url) + job = enable_job_fn(job=job, action_type="target") - print_job_status(job, job.status not in target_statuses[job.name]) - target_statuses[job.name] = job.status + print_job_status(job, target_status not in target_statuses[job.name], name_field_pad) + target_statuses[job.name] = target_status continue - # all jobs + # all other non-target jobs if job.status != statuses[job.name]: - print_job_status(job, True) + print_job_status(job, True, name_field_pad) statuses[job.name] = job.status # run dependencies and cancel the rest if job.name in dependencies: - job = enable_job(project, pipeline, job, "dep", True) + job = enable_job_fn(job=job, action_type="dep") if job.status == "failed": deps_failed.append(job.name) else: @@ -146,9 +195,9 @@ def monitor_pipeline( if stress: enough = True - for job_name, status in stress_status_counter.items(): + for job_name, status in sorted(stress_status_counter.items()): print( - f"{job_name}\tsucc: {status['success']}; " + f"* {job_name:{name_field_pad}}succ: {status['success']}; " f"fail: {status['failed']}; " f"total: {sum(status.values())} of {stress}", flush=False, @@ -160,22 +209,29 @@ def monitor_pipeline( pretty_wait(REFRESH_WAIT_JOBS) continue - print("---------------------------------", flush=False) + if jobs_waiting: + print_once( + f"{Fore.YELLOW}Waiting for jobs to update status:", + ", ".join(jobs_waiting), + Fore.RESET, + ) + pretty_wait(REFRESH_WAIT_JOBS) + continue - if len(target_statuses) == 1 and {"running"}.intersection( + if len(target_statuses) == 1 and RUNNING_STATUSES.intersection( target_statuses.values() ): - return target_id, None + return target_id, None, execution_times if ( {"failed"}.intersection(target_statuses.values()) - and not set(["running", "pending"]).intersection(target_statuses.values()) + and not RUNNING_STATUSES.intersection(target_statuses.values()) ): - return None, 1 + return None, 1, execution_times if ( {"skipped"}.intersection(target_statuses.values()) - and not {"running", "pending"}.intersection(target_statuses.values()) + and not RUNNING_STATUSES.intersection(target_statuses.values()) ): print( Fore.RED, @@ -183,20 +239,20 @@ def monitor_pipeline( deps_failed, Fore.RESET, ) - return None, 1 + return None, 1, execution_times - if {"success", "manual"}.issuperset(target_statuses.values()): - return None, 0 + if skip_follow_statuses.issuperset(target_statuses.values()): + return None, 0, execution_times pretty_wait(REFRESH_WAIT_JOBS) def get_pipeline_job( pipeline: gitlab.v4.objects.ProjectPipeline, - id: int, + job_id: int, ) -> gitlab.v4.objects.ProjectPipelineJob: pipeline_jobs = pipeline.jobs.list(all=True) - return [j for j in pipeline_jobs if j.id == id][0] + return [j for j in pipeline_jobs if j.id == job_id][0] def enable_job( @@ -204,19 +260,24 @@ def enable_job( pipeline: gitlab.v4.objects.ProjectPipeline, job: gitlab.v4.objects.ProjectPipelineJob, action_type: Literal["target", "dep", "retry"], - force_manual: bool, + job_name_field_pad: int = 0, + jobs_waiting: list[str] = [], ) -> gitlab.v4.objects.ProjectPipelineJob: - """enable job""" + # We want to run this job, but it is not ready to run yet, so let's try again in the next + # iteration. + if job.status == "created": + jobs_waiting.append(job.name) + return job + if ( - (job.status in ["success", "failed"] and action_type != "retry") - or (job.status == "manual" and not force_manual) - or job.status in ["skipped", "running", "created", "pending"] + (job.status in COMPLETED_STATUSES and action_type != "retry") + or job.status in {"skipped"} | RUNNING_STATUSES ): return job pjob = project.jobs.get(job.id, lazy=True) - if job.status in ["success", "failed", "canceled"]: + if job.status in {"success", "failed", "canceled", "canceling"}: new_job = pjob.retry() job = get_pipeline_job(pipeline, new_job["id"]) else: @@ -224,32 +285,34 @@ def enable_job( job = get_pipeline_job(pipeline, pjob.id) if action_type == "target": - jtype = "🞋 " + jtype = "🞋 target" # U+1F78B Round target elif action_type == "retry": - jtype = "↻" + jtype = "↻ retrying" # U+21BB Clockwise open circle arrow else: - jtype = "(dependency)" + jtype = "↪ dependency" # U+21AA Left Arrow Curving Right - print(Fore.MAGENTA + f"{jtype} job {job.name} manually enabled" + Style.RESET_ALL) + job_name_field_pad = len(job.name) if job_name_field_pad < 1 else job_name_field_pad + print(Fore.MAGENTA + f"{jtype} job {job.name:{job_name_field_pad}}manually enabled" + Style.RESET_ALL) return job -def cancel_job(project, job) -> None: +def cancel_job( + project: gitlab.v4.objects.Project, + job: gitlab.v4.objects.ProjectPipelineJob +) -> None: """Cancel GitLab job""" - if job.status in [ - "canceled", - "success", - "failed", - "skipped", - ]: + if job.status not in RUNNING_STATUSES: return pjob = project.jobs.get(job.id, lazy=True) pjob.cancel() - print(f"♲ {job.name}", end=" ") + print(f"🗙 {job.name}", end=" ") # U+1F5D9 Cancellation X -def cancel_jobs(project, to_cancel) -> None: +def cancel_jobs( + project: gitlab.v4.objects.Project, + to_cancel: list +) -> None: """Cancel unwanted GitLab jobs""" if not to_cancel: return @@ -257,10 +320,15 @@ def cancel_jobs(project, to_cancel) -> None: with ThreadPoolExecutor(max_workers=6) as exe: part = partial(cancel_job, project) exe.map(part, to_cancel) - print() + # The cancelled jobs are printed without a newline + print_once() -def print_log(project, job_id) -> None: + +def print_log( + project: gitlab.v4.objects.Project, + job_id: int +) -> None: """Print job log into output""" printed_lines = 0 while True: @@ -278,7 +346,7 @@ def print_log(project, job_id) -> None: pretty_wait(REFRESH_WAIT_LOG) -def parse_args() -> None: +def parse_args() -> argparse.Namespace: """Parse args""" parser = argparse.ArgumentParser( description="Tool to trigger a subset of container jobs " @@ -290,10 +358,31 @@ def parse_args() -> None: "--target", metavar="target-job", help="Target job regex. For multiple targets, pass multiple values, " - "eg. `--target foo bar`.", + "eg. `--target foo bar`. Only jobs in the target stage(s) " + "supplied, and their dependencies, will be considered.", required=True, nargs=argparse.ONE_OR_MORE, ) + parser.add_argument( + "--include-stage", + metavar="include-stage", + help="Job stages to include when searching for target jobs. " + "For multiple targets, pass multiple values, eg. " + "`--include-stage foo bar`.", + default=[".*"], + nargs=argparse.ONE_OR_MORE, + ) + parser.add_argument( + "--exclude-stage", + metavar="exclude-stage", + help="Job stages to exclude when searching for target jobs. " + "For multiple targets, pass multiple values, eg. " + "`--exclude-stage foo bar`. By default, performance and " + "post-merge jobs are excluded; pass --exclude-stage '' to " + "include them for consideration.", + default=["performance", ".*-postmerge"], + nargs=argparse.ONE_OR_MORE, + ) parser.add_argument( "--token", metavar="token", @@ -303,19 +392,27 @@ def parse_args() -> None: f"otherwise it's read from {TOKEN_DIR / 'gitlab-token'}", ) parser.add_argument( - "--force-manual", action="store_true", help="Force jobs marked as manual" + "--force-manual", action="store_true", + help="Deprecated argument; manual jobs are always force-enabled" ) parser.add_argument( "--stress", default=0, type=int, - help="Stresstest job(s). Number or repetitions or -1 for infinite.", + help="Stresstest job(s). Specify the number of times to rerun the selected jobs, " + "or use -1 for indefinite. Defaults to 0. If jobs have already been executed, " + "this will ensure the total run count respects the specified number.", ) parser.add_argument( "--project", default="mesa", help="GitLab project in the format / or just ", ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Exit after printing target jobs and dependencies", + ) mutex_group1 = parser.add_mutually_exclusive_group() mutex_group1.add_argument( @@ -344,12 +441,14 @@ def parse_args() -> None: def print_detected_jobs( - target_dep_dag: "Dag", dependency_jobs: Iterable[str], target_jobs: Iterable[str] + target_dep_dag: "Dag", + dependency_jobs: Iterable[str], + target_jobs: Iterable[str], ) -> None: def print_job_set(color: str, kind: str, job_set: Iterable[str]): print( color + f"Running {len(job_set)} {kind} jobs: ", - "\n", + "\n\t", ", ".join(sorted(job_set)), Fore.RESET, "\n", @@ -361,10 +460,14 @@ def print_job_set(color: str, kind: str, job_set: Iterable[str]): print_job_set(Fore.BLUE, "target", target_jobs) -def find_dependencies(token: str | None, - target_jobs_regex: re.Pattern, - project_path: str, - iid: int) -> set[str]: +def find_dependencies( + token: str | None, + target_jobs_regex: re.Pattern, + include_stage_regex: re.Pattern, + exclude_stage_regex: re.Pattern, + project_path: str, + iid: int +) -> set[str]: """ Find the dependencies of the target jobs in a GitLab pipeline. @@ -390,7 +493,7 @@ def find_dependencies(token: str | None, gql_instance, {"projectPath": project_path.path_with_namespace, "iid": iid} ) - target_dep_dag = filter_dag(dag, target_jobs_regex) + target_dep_dag = filter_dag(dag, target_jobs_regex, include_stage_regex, exclude_stage_regex) if not target_dep_dag: print(Fore.RED + "The job(s) were not found in the pipeline." + Fore.RESET) sys.exit(1) @@ -401,7 +504,45 @@ def find_dependencies(token: str | None, return target_jobs.union(dependency_jobs) -if __name__ == "__main__": +def print_monitor_summary( + execution_collection: Dict[str, Dict[int, Tuple[float, str, str]]], + t_start: float, +) -> None: + """Summary of the test execution""" + t_end = time.perf_counter() + spend_minutes = (t_end - t_start) / 60 + print(f"⏲ Duration of script execution: {spend_minutes:0.1f} minutes") # U+23F2 Timer clock + if len(execution_collection) == 0: + return + print(f"⏲ Jobs execution times:") # U+23F2 Timer clock + job_names = list(execution_collection.keys()) + job_names.sort() + name_field_pad = len(max(job_names, key=len)) + 2 + for name in job_names: + job_executions = execution_collection[name] + job_times = ', '.join([__job_duration_record(job_execution) + for job_execution in sorted(job_executions.items())]) + print(f"* {name:{name_field_pad}}: ({len(job_executions)}) {job_times}") + + +def __job_duration_record(dict_item: tuple) -> str: + """ + Format each pair of job and its duration. + :param job_execution: item of execution_collection[name][idn]: Dict[int, Tuple[float, str, str]] + """ + job_id = f"{dict_item[0]}" # dictionary key + job_duration, job_status, job_url = dict_item[1] # dictionary value, the tuple + return (f"{STATUS_COLORS[job_status]}" + f"{link2print(job_url, job_id)}: {pretty_duration(job_duration):>8}" + f"{Style.RESET_ALL}") + + +def link2print(url: str, text: str, text_pad: int = 0) -> str: + text_pad = len(text) if text_pad < 1 else text_pad + return f"{URL_START}{url}\a{text:{text_pad}}{URL_END}" + + +def main() -> None: try: t_start = time.perf_counter() @@ -463,31 +604,58 @@ def find_dependencies(token: str | None, target = '|'.join(args.target) target = target.strip() - deps = set() - print("🞋 job: " + Fore.BLUE + target + Style.RESET_ALL) + print("🞋 target job: " + Fore.BLUE + target + Style.RESET_ALL) # U+1F78B Round target # Implicitly include `parallel:` jobs target = f'({target})' + r'( \d+/\d+)?' target_jobs_regex = re.compile(target) + include_stage = '|'.join(args.include_stage) + include_stage = include_stage.strip() + + print("🞋 target from stages: " + Fore.BLUE + include_stage + Style.RESET_ALL) # U+1F78B Round target + + include_stage_regex = re.compile(include_stage) + + exclude_stage = '|'.join(args.exclude_stage) + exclude_stage = exclude_stage.strip() + + print("🞋 target excluding stages: " + Fore.BLUE + exclude_stage + Style.RESET_ALL) # U+1F78B Round target + + exclude_stage_regex = re.compile(exclude_stage) + deps = find_dependencies( token=token, target_jobs_regex=target_jobs_regex, + include_stage_regex=include_stage_regex, + exclude_stage_regex=exclude_stage_regex, iid=pipe.iid, project_path=cur_project ) - target_job_id, ret = monitor_pipeline( - cur_project, pipe, target_jobs_regex, deps, args.force_manual, args.stress + + if args.dry_run: + sys.exit(0) + + target_job_id, ret, exec_t = monitor_pipeline( + cur_project, + pipe, + target_jobs_regex, + include_stage_regex, + exclude_stage_regex, + deps, + args.stress ) if target_job_id: print_log(cur_project, target_job_id) - t_end = time.perf_counter() - spend_minutes = (t_end - t_start) / 60 - print(f"⏲ Duration of script execution: {spend_minutes:0.1f} minutes") + print_monitor_summary(exec_t, t_start) sys.exit(ret) except KeyboardInterrupt: sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/bin/ci/gitlab_common.py b/bin/ci/gitlab_common.py index 54e0cc792..46b43a0a7 100644 --- a/bin/ci/gitlab_common.py +++ b/bin/ci/gitlab_common.py @@ -12,6 +12,7 @@ import os import re import time +from functools import cache from pathlib import Path GITLAB_URL = "https://gitlab.freedesktop.org" @@ -28,30 +29,40 @@ "Feed token": "glft-", "Incoming mail token": "glimt-", "GitLab Agent for Kubernetes token": "glagent-", - "SCIM Tokens": "glsoat-" + "SCIM Tokens": "glsoat-", } +@cache +def print_once(*args, **kwargs): + """Print without spamming the output""" + print(*args, **kwargs) + + def pretty_duration(seconds): """Pretty print duration""" hours, rem = divmod(seconds, 3600) minutes, seconds = divmod(rem, 60) if hours: - return f"{hours:0.0f}h{minutes:0.0f}m{seconds:0.0f}s" + return f"{hours:0.0f}h{minutes:02.0f}m{seconds:02.0f}s" if minutes: - return f"{minutes:0.0f}m{seconds:0.0f}s" + return f"{minutes:0.0f}m{seconds:02.0f}s" return f"{seconds:0.0f}s" -def get_gitlab_pipeline_from_url(gl, pipeline_url): - assert pipeline_url.startswith(GITLAB_URL) - url_path = pipeline_url[len(GITLAB_URL) :] - url_path_components = url_path.split("/") - project_name = "/".join(url_path_components[1:3]) - assert url_path_components[3] == "-" - assert url_path_components[4] == "pipelines" - pipeline_id = int(url_path_components[5]) - cur_project = gl.projects.get(project_name) +def get_gitlab_pipeline_from_url(gl, pipeline_url) -> tuple: + """ + Extract the project and pipeline object from the url string + :param gl: Gitlab object + :param pipeline_url: string with a url to a pipeline + :return: ProjectPipeline, Project objects + """ + pattern = rf"^{re.escape(GITLAB_URL)}/(.*)/-/pipelines/([0-9]+)$" + match = re.match(pattern, pipeline_url) + if not match: + raise AssertionError(f"url {pipeline_url} doesn't follow the pattern {pattern}") + namespace_with_project, pipeline_id = match.groups() + cur_project = gl.projects.get(namespace_with_project) pipe = cur_project.pipelines.get(pipeline_id) return pipe, cur_project @@ -88,19 +99,23 @@ def get_token_from_default_dir() -> str: def validate_gitlab_token(token: str) -> bool: - token_suffix = token.split("-")[-1] + # Match against recognised token prefixes + token_suffix = None + for token_type, token_prefix in TOKEN_PREFIXES.items(): + if token.startswith(token_prefix): + logging.info(f"Found probable token type: {token_type}") + token_suffix = token[len(token_prefix):] + break + + if not token_suffix: + return False + # Basic validation of the token suffix based on: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/gems/gitlab-secret_detection/lib/gitleaks.toml if not re.match(r"(\w+-)?[0-9a-zA-Z_\-]{20,64}", token_suffix): return False - for token_type, token_prefix in TOKEN_PREFIXES.items(): - if token.startswith(token_prefix): - logging.info(f"Found probable token type: {token_type}") - return True - - # If the token type is not recognized, return False - return False + return True def get_token_from_arg(token_arg: str | Path | None) -> str | None: diff --git a/bin/ci/gitlab_gql.py b/bin/ci/gitlab_gql.py index eefdf214d..144e3c31d 100755 --- a/bin/ci/gitlab_gql.py +++ b/bin/ci/gitlab_gql.py @@ -325,16 +325,24 @@ def create_job_needs_dag(gl_gql: GitlabGQL, params, disable_cache: bool = True) return final_dag -def filter_dag(dag: Dag, regex: Pattern) -> Dag: - jobs_with_regex: set[str] = {job for job in dag if regex.fullmatch(job)} - return Dag({job: data for job, data in dag.items() if job in sorted(jobs_with_regex)}) +def filter_dag( + dag: Dag, job_name_regex: Pattern, include_stage_regex: Pattern, exclude_stage_regex: Pattern +) -> Dag: + filtered_jobs: Dag = Dag({}) + for (job, data) in dag.items(): + if not job_name_regex.fullmatch(job): + continue + if not include_stage_regex.fullmatch(data["stage"]): + continue + if exclude_stage_regex.fullmatch(data["stage"]): + continue + filtered_jobs[job] = data + return filtered_jobs def print_dag(dag: Dag) -> None: - for job, data in dag.items(): - print(f"{job}:") - print(f"\t{' '.join(data['needs'])}") - print() + for job, data in sorted(dag.items()): + print(f"{job}:\n\t{' '.join(data['needs'])}\n") def fetch_merged_yaml(gl_gql: GitlabGQL, params) -> dict[str, Any]: @@ -474,8 +482,23 @@ def parse_args() -> Namespace: "--regex", type=str, required=False, + default=".*", help="Regex pattern for the job name to be considered", ) + parser.add_argument( + "--include-stage", + type=str, + required=False, + default=".*", + help="Regex pattern for the stage name to be considered", + ) + parser.add_argument( + "--exclude-stage", + type=str, + required=False, + default="^$", + help="Regex pattern for the stage name to be excluded", + ) mutex_group_print = parser.add_mutually_exclusive_group() mutex_group_print.add_argument( "--print-dag", @@ -517,8 +540,7 @@ def main(): gl_gql, {"projectPath": args.project_path, "iid": iid}, disable_cache=True ) - if args.regex: - dag = filter_dag(dag, re.compile(args.regex)) + dag = filter_dag(dag, re.compile(args.regex), re.compile(args.include_stage), re.compile(args.exclude_stage)) print_dag(dag) diff --git a/bin/ci/nightly_compare.py b/bin/ci/nightly_compare.py new file mode 100755 index 000000000..76c49b945 --- /dev/null +++ b/bin/ci/nightly_compare.py @@ -0,0 +1,175 @@ +#!/usr/bin/env python3 +# Copyright © 2020 - 2024 Collabora Ltd. +# Authors: +# David Heidelberg +# Sergi Blanch Torne +# SPDX-License-Identifier: MIT + +""" +Compare the two latest scheduled pipelines and provide information +about the jobs you're interested in. +""" + +import argparse +import csv +import re +import requests +import io +from tabulate import tabulate + +import gitlab +from colorama import Fore, Style +from gitlab_common import read_token + + +MARGE_BOT_USER_ID = 9716 + +def print_failures_csv(id): + url = 'https://gitlab.freedesktop.org/mesa/mesa/-/jobs/' + str(id) + '/artifacts/raw/results/failures.csv' + missing: int = 0 + MAX_MISS: int = 20 + try: + response = requests.get(url) + response.raise_for_status() + csv_content = io.StringIO(response.text) + csv_reader = csv.reader(csv_content) + data = list(csv_reader) + + for line in data[:]: + if line[1] == "UnexpectedImprovement(Pass)": + line[1] = Fore.GREEN + line[1] + Style.RESET_ALL + elif line[1] == "UnexpectedImprovement(Fail)": + line[1] = Fore.YELLOW + line[1] + Style.RESET_ALL + elif line[1] == "Crash" or line[1] == "Fail": + line[1] = Fore.RED + line[1] + Style.RESET_ALL + elif line[1] == "Missing": + if missing > MAX_MISS: + data.remove(line) + continue + missing += 1 + line[1] = Fore.YELLOW + line[1] + Style.RESET_ALL + elif line[1] == "Fail": + line[1] = Fore.RED + line[1] + Style.RESET_ALL + else: + line[1] = Fore.WHITE + line[1] + Style.RESET_ALL + + if missing > MAX_MISS: + data.append([Fore.RED + f"... more than {MAX_MISS} missing tests, something crashed?", "Missing" + Style.RESET_ALL]) + headers = ["Test ", "Result"] + print(tabulate(data, headers, tablefmt="plain")) + except Exception: + pass + + +def job_failed_before(old_jobs, job): + for old_job in old_jobs: + if job.name == old_job.name: + return old_job + + +def parse_args() -> None: + """Parse args""" + parser = argparse.ArgumentParser( + description="Tool to show merge requests assigned to the marge-bot", + ) + parser.add_argument( + "--target", + metavar="target-job", + help="Target job regex. For multiple targets, pass multiple values, " + "eg. `--target foo bar`.", + required=False, + nargs=argparse.ONE_OR_MORE, + ) + parser.add_argument( + "--token", + metavar="token", + help="force GitLab token, otherwise it's read from ~/.config/gitlab-token", + ) + return parser.parse_args() + + +if __name__ == "__main__": + args = parse_args() + token = read_token(args.token) + gl = gitlab.Gitlab(url="https://gitlab.freedesktop.org", private_token=token) + + project = gl.projects.get("mesa/mesa") + + print( + "\u001b]8;;https://gitlab.freedesktop.org/mesa/mesa/-/pipelines?page=1&scope=all&source=schedule\u001b\\Scheduled pipelines overview\u001b]8;;\u001b\\" + ) + pipelines = project.pipelines.list( + source="schedule", ordered_by="created_at", sort="desc", page=1, per_page=2 + ) + print( + f"Old pipeline: {pipelines[1].created_at}\t\u001b]8;;{pipelines[1].web_url}\u001b\\{pipelines[1].status}\u001b]8;;\u001b\\\t{pipelines[1].sha}" + ) + print( + f"New pipeline: {pipelines[0].created_at}\t\u001b]8;;{pipelines[0].web_url}\u001b\\{pipelines[0].status}\u001b]8;;\u001b\\\t{pipelines[0].sha}" + ) + print( + f"\nWebUI visual compare: https://gitlab.freedesktop.org/mesa/mesa/-/compare/{pipelines[1].sha}...{pipelines[0].sha}\n" + ) + + # regex part + if args.target: + target = "|".join(args.target) + target = target.strip() + print("🞋 jobs: " + Fore.BLUE + target + Style.RESET_ALL) + + target = f"({target})" + r"( \d+/\d+)?" + else: + target = ".*" + + target_jobs_regex: re.Pattern = re.compile(target) + + old_failed_jobs = [] + for job in pipelines[1].jobs.list(all=True): + if ( + job.status != "failed" + or target_jobs_regex + and not target_jobs_regex.fullmatch(job.name) + ): + continue + old_failed_jobs.append(job) + + job_failed = False + for job in pipelines[0].jobs.list(all=True): + if ( + job.status != "failed" + or target_jobs_regex + and not target_jobs_regex.fullmatch(job.name) + ): + continue + + job_failed = True + + previously_failed_job = job_failed_before(old_failed_jobs, job) + if previously_failed_job: + print( + Fore.YELLOW + + f":: \u001b]8;;{job.web_url}\u001b\\{job.name}\u001b]8;;\u001b\\" + + Fore.MAGENTA + + f" \u001b]8;;{previously_failed_job.web_url}\u001b\\(previous run)\u001b]8;;\u001b\\" + + Style.RESET_ALL + ) + else: + print( + Fore.RED + + f":: \u001b]8;;{job.web_url}\u001b\\{job.name}\u001b]8;;\u001b\\" + + Style.RESET_ALL + ) + print_failures_csv(job.id) + + if not job_failed: + exit(0) + + print("Commits between nightly pipelines:") + commit = project.commits.get(pipelines[0].sha) + while True: + print( + f"{commit.id} \u001b]8;;{commit.web_url}\u001b\\{commit.title}\u001b]8;;\u001b\\" + ) + if commit.id == pipelines[1].sha: + break + commit = project.commits.get(commit.parent_ids[0]) diff --git a/bin/ci/nightly_compare.sh b/bin/ci/nightly_compare.sh new file mode 100644 index 000000000..d72cfdc50 --- /dev/null +++ b/bin/ci/nightly_compare.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -eu + +this_dir=$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")") +readonly this_dir + +exec \ + "$this_dir/../python-venv.sh" \ + "$this_dir/requirements.txt" \ + "$this_dir/nightly_compare.py" "$@" + diff --git a/bin/ci/requirements.txt b/bin/ci/requirements.txt index a1448999b..81be9147b 100644 --- a/bin/ci/requirements.txt +++ b/bin/ci/requirements.txt @@ -1,11 +1,15 @@ -colorama==0.4.5 +PyYAML==6.* +colorama==0.4.* filecache==0.81 -gql==3.4.0 -kaleido==0.2.1 -python-dateutil==2.8.2 -pandas==2.1.1 -plotly==5.17.0 -python-gitlab==3.5.0 -PyYAML==6.0.1 -ruamel.yaml.clib==0.2.8 -ruamel.yaml==0.17.21 +filelock==3.* +fire==0.5.0 +gql==3.* +kaleido==0.2.* +lavacli==1.5.2 +pandas==2.* +plotly==5.* +python-dateutil==2.* +python-gitlab==4.* +ruamel.yaml.clib==0.2.* +ruamel.yaml==0.17.* +tabulate==0.9.* diff --git a/bin/ci/test/requirements.txt b/bin/ci/test/requirements.txt index f80621af2..1576c0c7d 100644 --- a/bin/ci/test/requirements.txt +++ b/bin/ci/test/requirements.txt @@ -1,5 +1,9 @@ +-r ../requirements.txt filelock==3.12.4 fire==0.5.0 +freezegun==1.1.0 +hypothesis==6.67.1 mock==5.1.0 polars==0.19.3 pytest==7.4.2 +pytest-cov==3.0.0 diff --git a/bin/ci/update_traces_checksum.py b/bin/ci/update_traces_checksum.py index 064573d55..b3411aaae 100755 --- a/bin/ci/update_traces_checksum.py +++ b/bin/ci/update_traces_checksum.py @@ -20,10 +20,10 @@ import gitlab from colorama import Fore, Style -from gitlab_common import get_gitlab_project, read_token, wait_for_pipeline +from gitlab_common import get_gitlab_project, read_token, wait_for_pipeline, get_gitlab_pipeline_from_url -DESCRIPTION_FILE = "export PIGLIT_REPLAY_DESCRIPTION_FILE='.*/install/(.*)'$" +DESCRIPTION_FILE = "export PIGLIT_REPLAY_DESCRIPTION_FILE=.*/install/(.*)$" DEVICE_NAME = "export PIGLIT_REPLAY_DEVICE_NAME='(.*)'$" @@ -40,7 +40,7 @@ def gather_results( cur_job = project.jobs.get(job.id) # get variables print(f"👁 {job.name}...") - log: list[str] = cur_job.trace().decode("unicode_escape").splitlines() + log: list[str] = cur_job.trace().decode("unicode_escape", "ignore").splitlines() filename: str = '' dev_name: str = '' for logline in log: @@ -69,7 +69,7 @@ def gather_results( target = yaml.load(target_file) # parse artifact - results_json_bz2 = cur_job.artifact(path="results/results.json.bz2", streamed=False) + results_json_bz2 = cur_job.artifact("results/results.json.bz2") results_json = bz2.decompress(results_json_bz2).decode("utf-8", errors="replace") results = json.loads(results_json) @@ -113,13 +113,18 @@ def parse_args() -> None: epilog="Example: update_traces_checksum.py --rev $(git rev-parse HEAD) " ) parser.add_argument( - "--rev", metavar="revision", help="repository git revision", required=True + "--rev", metavar="revision", help="repository git revision", ) parser.add_argument( "--token", metavar="token", help="force GitLab token, otherwise it's read from ~/.config/gitlab-token", ) + parser.add_argument( + "--pipeline-url", + metavar="pipeline_url", + help="specify a pipeline url", + ) return parser.parse_args() @@ -133,8 +138,15 @@ def parse_args() -> None: cur_project = get_gitlab_project(gl, "mesa") - print(f"Revision: {args.rev}") - (pipe, cur_project) = wait_for_pipeline([cur_project], args.rev) + if args.pipeline_url: + pipe, cur_project = get_gitlab_pipeline_from_url(gl, args.pipeline_url) + REV = pipe.sha + else: + if not args.rev: + print('error: the following arguments are required: --rev') + sys.exit(1) + print(f"Revision: {args.rev}") + (pipe, cur_project) = wait_for_pipeline([cur_project], args.rev) print(f"Pipeline: {pipe.web_url}") gather_results(cur_project, pipe) diff --git a/bin/flamegraph_map_lp_jit.py b/bin/flamegraph_map_lp_jit.py new file mode 100644 index 000000000..39e727726 --- /dev/null +++ b/bin/flamegraph_map_lp_jit.py @@ -0,0 +1,142 @@ +# +# Copyright 2024 Autodesk, Inc. +# +# SPDX-License-Identifier: MIT +# + +import argparse +from bisect import bisect_left, bisect_right +from dataclasses import dataclass +from pathlib import Path +import re + + +@dataclass +class Instruction: + address: int + assembly: str + samples: int = 0 + + +def mapping_address_key(mapping: tuple[int, int, str]): + return mapping[0] + + +def instruction_address_key(instruction: Instruction): + return instruction.address + + +def parse_mappings(map_file_path: Path): + mappings: list[tuple[int, int, str]] = [] + with open(map_file_path) as map_file: + for mapping in map_file: + address_hex, size_hex, name = mapping.split(' ') + address = int(address_hex, base=16) + mappings.append((address, address + int(size_hex, base=16), name.strip())) + + mappings.sort(key=mapping_address_key) + return mappings + + +def parse_traces(trace_file_path: Path): + pattern = re.compile(r'((?:[^;]+;)*?[^;]+) (\d+)\n') + + traces: list[tuple[list[str], int]] = [] + with open(trace_file_path) as trace_file: + for trace in trace_file: + match = pattern.fullmatch(trace) + traces.append((match.group(1).split(';'), int(match.group(2)))) + + return traces + + +def parse_asm(asm_file_path: Path): + symbol_pattern = re.compile(r'(\w+) ([0-9a-fA-F]+):\n') + instruction_pattern = re.compile(r' *([0-9a-fA-F]+):\t(.*?)\n') + + asm: dict[tuple[int, str], list[Instruction]] = {} + with open(asm_file_path) as asm_file: + current_instructions = None + for line in asm_file: + if match := symbol_pattern.fullmatch(line): + symbol = (int(match.group(2), base=16), match.group(1)) + current_instructions = asm[symbol] = [] + elif match := instruction_pattern.fullmatch(line): + current_instructions.append(Instruction(int(match.group(1), base=16), match.group(2))) + + return asm + + +def main(): + parser = argparse.ArgumentParser(description='Map LLVMPipe JIT addresses in FlameGraph style ' + 'collapsed stack traces to their symbol name. Also optionally ' + 'annotate JIT assembly dumps with sample counts.') + parser.add_argument('jit_symbol_map', type=Path, help='JIT symbol map from LLVMPipe') + parser.add_argument('collapsed_traces', type=Path) + parser.add_argument('-a', '--asm', type=Path, nargs='?', const='', metavar='asm_path', + help='JIT assembly dump from LLVMPipe. Defaults to ".asm"') + parser.add_argument('-o', '--out', type=Path, metavar='out_path') + arguments = parser.parse_args() + + mappings = parse_mappings(arguments.jit_symbol_map) + traces = parse_traces(arguments.collapsed_traces) + + asm = {} + asm_file_path: Path | None = arguments.asm + if asm_file_path: + if len(asm_file_path.parts) <= 0: + asm_file_path = Path(str(arguments.jit_symbol_map) + '.asm') + if asm_file_path.exists(): + asm = parse_asm(asm_file_path) + else: + asm = parse_asm(asm_file_path) + + merged_traces: dict[str, int] = {} + for stack, count in traces: + for i, function in enumerate(stack): + if not function.startswith('0x'): + continue + + address = int(function, base=16) + mapping = mappings[bisect_right(mappings, address, key=mapping_address_key) - 1] + if address < mapping[0] or address >= mapping[1]: + continue + + stack[i] = f'lp`{mapping[2]}@{mapping[0]:x}' + + symbol = (mapping[0], mapping[2]) + if symbol in asm: + instructions = asm[symbol] + instruction_address = address - symbol[0] + index = bisect_left(instructions, instruction_address, key=instruction_address_key) + if index < len(instructions) and instructions[index].address == instruction_address: + instructions[index].samples += count + + stack_key = ';'.join(stack) + if stack_key in merged_traces: + merged_traces[stack_key] += count + else: + merged_traces[stack_key] = count + + out_file_path: Path | None = arguments.out + if not out_file_path: + out_file_path = arguments.collapsed_traces.with_stem(f'{arguments.collapsed_traces.stem}_mapped') + with open(out_file_path, 'w') as out: + for t, c in merged_traces.items(): + print(f'{t} {c}', file=out) + + if asm: + annotated_asm_file_path = asm_file_path.with_stem(f'{asm_file_path.stem}_annotated') + with open(annotated_asm_file_path, 'w') as out: + for symbol, instructions in asm.items(): + print(f'{symbol[1]}: ;{symbol[0]:x}', file=out) + for instruction in instructions: + print(f'\t{instruction.assembly}', end='', file=out) + if instruction.samples: + print(f' ;s {instruction.samples}', file=out) + else: + print(file=out) + print(file=out) + +if __name__ == '__main__': + main() diff --git a/bin/gen_release_notes.py b/bin/gen_release_notes.py index 0725120ae..21df6f640 100755 --- a/bin/gen_release_notes.py +++ b/bin/gen_release_notes.py @@ -65,8 +65,8 @@ the apiVersion property of the VkPhysicalDeviceProperties struct depends on the particular driver being used. - SHA256 checksum - --------------- + SHA checksums + ------------- :: diff --git a/bin/install_megadrivers.py b/bin/install_megadrivers.py index 60ee4576c..216f6999f 100644 --- a/bin/install_megadrivers.py +++ b/bin/install_megadrivers.py @@ -26,23 +26,32 @@ import os +def resolve_libdir(libdir): + if os.path.isabs(libdir): + destdir = os.environ.get('DESTDIR') + if destdir: + return os.path.join(destdir, libdir[1:]) + else: + return libdir + return os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], libdir) + + def main(): parser = argparse.ArgumentParser() parser.add_argument('megadriver') parser.add_argument('libdir') parser.add_argument('drivers', nargs='+') + parser.add_argument('--megadriver_libdir') args = parser.parse_args() - if os.path.isabs(args.libdir): - destdir = os.environ.get('DESTDIR') - if destdir: - to = os.path.join(destdir, args.libdir[1:]) - else: - to = args.libdir + to = resolve_libdir(args.libdir) + if args.megadriver_libdir: + md_to = resolve_libdir(args.megadriver_libdir) else: - to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir) + md_to = to - master = os.path.join(to, os.path.basename(args.megadriver)) + basename = os.path.basename(args.megadriver) + master = os.path.join(to, basename) if not os.path.exists(to): if os.path.lexists(to): @@ -54,8 +63,11 @@ def main(): if os.path.lexists(abs_driver): os.unlink(abs_driver) - print('installing {} to {}'.format(args.megadriver, abs_driver)) - os.link(master, abs_driver) + + symlink = os.path.relpath(os.path.join(md_to, basename), start=to) + + print(f'Installing symlink pointing to {symlink} to {abs_driver}') + os.symlink(symlink, abs_driver) try: ret = os.getcwd() @@ -70,8 +82,7 @@ def main(): finally: os.chdir(ret) - # Remove meson-created master .so and symlinks - os.unlink(master) + # Remove meson-created .so symlinks name, ext = os.path.splitext(master) while ext != '.so': if os.path.lexists(name): diff --git a/bin/khronos-update.py b/bin/khronos-update.py index 901d27ab8..43260af35 100755 --- a/bin/khronos-update.py +++ b/bin/khronos-update.py @@ -13,9 +13,13 @@ def error(msg: str) -> None: class Source: - def __init__(self, filename: str, url: typing.Optional[str]): + def __init__(self, filename: str, url: typing.Optional[str], + template: typing.Optional[str] = None, remove: + typing.Optional[str] = None): self.file = pathlib.Path(filename) self.url = url + self.template = template + self.remove = remove def sync(self) -> None: if self.url is None: @@ -35,12 +39,37 @@ def sync(self) -> None: else: content = req.content - with open(self.file, 'wb') as f: + content = str(content, encoding='utf-8') + if self.remove is not None: + content = content.replace(self.remove, '') + if self.template is not None: + content = self.template % content + + with open(self.file, 'w') as f: f.write(content) print('Done') +VK_ANDROID_NATIVE_BUFFER_TEMPLATE = """\ +/* MESA: A hack to avoid #ifdefs in driver code. */ +#ifdef __ANDROID__ + +#include +#if ANDROID_API_LEVEL < 28 +/* buffer_handle_t was defined in the deprecated system/window.h */ +typedef const native_handle_t *buffer_handle_t; +#endif + +#else + +typedef void *buffer_handle_t; + +#endif + +%s\ +""" + # a URL of `None` means there is no upstream, because *we* are the upstream SOURCES = [ { @@ -176,7 +205,8 @@ def sync(self) -> None: Source('include/vulkan/vulkan_xcb.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xcb.h'), Source('include/vulkan/vulkan_xlib.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib.h'), Source('include/vulkan/vulkan_xlib_xrandr.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vulkan/vulkan_xlib_xrandr.h'), - Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT'), + Source('include/vulkan/vk_android_native_buffer.h', 'https://android.googlesource.com/platform/frameworks/native/+/master/vulkan/include/vulkan/vk_android_native_buffer.h?format=TEXT', + template=VK_ANDROID_NATIVE_BUFFER_TEMPLATE, remove='#include \n'), Source('include/vk_video/vulkan_video_codec_av1std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std.h'), Source('include/vk_video/vulkan_video_codec_av1std_decode.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_av1std_decode.h'), Source('include/vk_video/vulkan_video_codec_h264std.h', 'https://github.com/KhronosGroup/Vulkan-Headers/raw/main/include/vk_video/vulkan_video_codec_h264std.h'), diff --git a/bin/meson.build b/bin/meson.build index ef28adf34..2034bccf1 100644 --- a/bin/meson.build +++ b/bin/meson.build @@ -1,22 +1,5 @@ # Copyright © 2017 Eric Engestrom - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. +# SPDX-License-Identifier: MIT git_sha1_gen_py = files('git_sha1_gen.py') gen_vs_module_defs_py = files('gen_vs_module_defs.py') diff --git a/bin/perf-annotate-jit.py b/bin/perf-annotate-jit.py index 680a77566..d62b4e8ee 100755 --- a/bin/perf-annotate-jit.py +++ b/bin/perf-annotate-jit.py @@ -104,7 +104,7 @@ def lookupMap(filename, matchSymbol): def lookupAsm(filename, desiredFunction): stream = open(filename + '.asm', 'rt') - while stream.readline() != desiredFunction + ':\n': + while not stream.readline().startswith(desiredFunction + ' '): pass asm = [] diff --git a/bin/pick/core.py b/bin/pick/core.py index cde058602..987f6621f 100644 --- a/bin/pick/core.py +++ b/bin/pick/core.py @@ -71,10 +71,10 @@ class PickUIException(Exception): @enum.unique class NominationType(enum.Enum): - CC = 0 - FIXES = 1 - REVERT = 2 - NONE = 3 + NONE = 0 + CC = 1 + FIXES = 2 + REVERT = 3 BACKPORT = 4 diff --git a/bin/renderdoc-update.py b/bin/renderdoc-update.py new file mode 100755 index 000000000..661083f68 --- /dev/null +++ b/bin/renderdoc-update.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 + +import base64 +import pathlib +import requests +import subprocess + +def error(msg: str) -> None: + print('\033[31m' + msg + '\033[0m') + +if __name__ == '__main__': + git_toplevel = subprocess.check_output(['git', 'rev-parse', '--show-toplevel'], + stderr=subprocess.DEVNULL).decode("ascii").strip() + if not pathlib.Path(git_toplevel).resolve() == pathlib.Path('.').resolve(): + error('Please run this script from the root folder ({})'.format(git_toplevel)) + exit(1) + + file = 'include/renderdoc_app.h' + url = 'https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h' + + print('Syncing {}...'.format(file), end=' ', flush=True) + req = requests.get(url) + + if not req.ok: + error('Failed to retrieve file: {} {}'.format(req.status_code, req.reason)) + exit(1) + + with open(file, 'wb') as f: + f.write(req.content) + + print('Done') diff --git a/bin/toml_lint.py b/bin/toml_lint.py new file mode 100755 index 000000000..344228477 --- /dev/null +++ b/bin/toml_lint.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + +import argparse +import pathlib +import re + + +def detect_misleading_indentation( + toml_path: str, + toml_lines: list[str], +) -> bool: + issue_detected = False + previous_indentation = 0 + for line_number, line in enumerate(toml_lines, start=1): + if match := re.match(r'^(\s*)\S', line): + line_indentation = len(match.group(1)) + if line_indentation < previous_indentation: + # Allow de-indenting when starting a new section (`[`) or + # terminating a multi-line list (`]`) + if not re.match(r'^\s*(\[|\])', line): + print(f'{toml_path}:{line_number}: ' + f'Misleading indentation found') + issue_detected = True + else: + line_indentation = 0 + previous_indentation = line_indentation + + return issue_detected + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + 'toml_files', + type=pathlib.Path, + nargs=argparse.ZERO_OR_MORE, + help='*.toml files to lint (default: src/**/ci/*.toml)', + ) + + args = parser.parse_args() + + if not args.toml_files: + args.toml_files = pathlib.Path('src').glob('**/ci/*.toml') + + error = False + + for path in args.toml_files: + with path.open('r') as toml_file: + toml_lines = toml_file.readlines() + if detect_misleading_indentation(path.as_posix(), toml_lines): + error = True + + if error: + exit(1) + + +if __name__ == '__main__': + main() diff --git a/debian/changelog b/debian/changelog index 0862a210b..bb5892796 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,17 +1,172 @@ -mesa (24.1.5-1deepin2) unstable; urgency=medium +mesa (24.3.0-1) experimental; urgency=medium - * Fix a bad loop implementation in zx_print_driver_map_list(). + * New upstream release. + + -- Timo Aaltonen Fri, 22 Nov 2024 13:43:07 +0200 + +mesa (24.3.0~rc2-1) experimental; urgency=medium + + * New upstream release candidate. + + -- Timo Aaltonen Thu, 14 Nov 2024 17:09:15 +0200 + +mesa (24.3.0~rc1-1) experimental; urgency=medium + + * New upstream release candidate. + * patches: Refreshed. + * rules: Drop obsoleted config options. + * libglx-mesa0.symbols: Updated. + * libgbm1: Add dri_gbm.so. + + -- Timo Aaltonen Tue, 12 Nov 2024 15:17:38 +0200 + +mesa (24.2.6-1) unstable; urgency=medium + + * New upstream release. + * fix-armhf-build.diff: Dropped, upstream. + + -- Timo Aaltonen Tue, 05 Nov 2024 09:59:12 +0200 + +mesa (24.2.4-1) unstable; urgency=medium + + * New upstream release. + * clc-find-opencl-headers.diff: Dropped, upstream. + + -- Timo Aaltonen Thu, 03 Oct 2024 22:18:55 +0300 + +mesa (24.2.3-1) unstable; urgency=medium + + * New upstream release. + * patches: Fix build on armel/armhf with llvm-19. + + -- Timo Aaltonen Fri, 20 Sep 2024 21:57:00 +0300 + +mesa (24.2.2-1+exp1) experimental; urgency=medium + + * rules: Migrate to llvm-19. + * clc-find-opencl-headers.diff: Fix finding the opencl headers with + llvm-19. + + -- Timo Aaltonen Tue, 17 Sep 2024 14:43:27 +0300 + +mesa (24.2.2-1) unstable; urgency=medium + + * New upstream release. + * patches: dril fixes dropped, upstream. + + -- Timo Aaltonen Fri, 06 Sep 2024 07:13:53 +0300 + +mesa (24.2.1-4) unstable; urgency=medium + + * patches: Add patches to fix autopkgtest regressions in dril. + * rules: Enable softpipe everywhere again. (Closes: #1080475) + + -- Timo Aaltonen Thu, 05 Sep 2024 11:49:34 +0300 + +mesa (24.2.1-3) unstable; urgency=medium + + * rules: Set MESON_PACKAGE_CACHE_DIR only for archs where nvk is + built, fixes armel build. + + -- Timo Aaltonen Thu, 29 Aug 2024 10:54:30 +0300 + +mesa (24.2.1-2) unstable; urgency=medium + + [ WANG Xuerui ] + * rules: disable TLSDESC for loong64 for now + + [ Fabio Pedretti ] + * removed unused lua5.4 dependency - -- Mingcong Bai Fri, 18 Oct 2024 17:48:47 +0800 + [ Timo Aaltonen ] + * Add upstream metadata, drop old git url from d/watch. + * New upstream release. + * control: Bump librust-syn-dev build-dep. + + -- Timo Aaltonen Thu, 29 Aug 2024 09:42:42 +0300 + +mesa (24.2.0-2) experimental; urgency=medium + + * control, rules: Drop armel, mips64el, loong64 from NVK_ARCHS (FTBFS). + * rules: ORCJIT is enabled by default now, so don't force draw-use- + llvm=false on riscv64. + * rules: Fix m68k build, and rework setting buildflags. (Closes: + #1067207) + * rules: Really drop ppc64el from optimization workaround, drop sh3 as + it's an obsolete arch, and for sh4 limit it to just setting a single + flag. + + -- Timo Aaltonen Thu, 15 Aug 2024 09:14:51 +0300 -mesa (24.1.5-1deepin1) unstable; urgency=medium +mesa (24.2.0-1) experimental; urgency=medium - * Add missing patches from previous branches. - * Sync OrcJIT patches from AOSC-Tracking/mesa @ aosc/mesa-24.1.5. - * Actually enable OrcJIT for loong64, riscv64 - * Disable Rust features as we are locked into an older version. + * New upstream release. + * rules: Build llvmpipe only where llvm is enabled. + * rules: Build softpipe or llvmpipe depending on the arch, not both. + + -- Timo Aaltonen Wed, 14 Aug 2024 22:13:47 +0300 + +mesa (24.2.0~rc4-1) experimental; urgency=medium + + * New upstream release candidate. + * control: Add python3-yaml to build-depends. + * control: Move libclc-NN dependency to LLVM_ARCHS. - -- Mingcong Bai Fri, 02 Aug 2024 16:19:12 +0800 + -- Timo Aaltonen Wed, 07 Aug 2024 16:34:17 +0300 + +mesa (24.2.0~rc3-2) experimental; urgency=medium + + * Add ldconfig trigger for mesa-drm-shim. + * control: Bump libdrm-dev build-dep. + + -- Timo Aaltonen Mon, 05 Aug 2024 09:38:13 +0300 + +mesa (24.2.0~rc3-1) experimental; urgency=medium + + [ Timo Aaltonen ] + * New upstream release candidate. + * control: Migrate to pkgconf. + * Add some lintian-overrides. + * control: Fix drm-shim description. + * control, rules: Bump llvm to 18. (Closes: #1072901) + + [ Simon McVittie ] + * d/rules: Replace deprecated swrast with softpipe and llvmpipe + * d/rules: Replace deprecated glvnd=true with glvnd=enabled + * libglx-mesa0.symbols: Update for new symbols + * Add a new private shared library package for libgallium.so + + -- Timo Aaltonen Fri, 02 Aug 2024 11:53:58 +0300 + +mesa (24.1.6-1) unstable; urgency=medium + + * New upstream release. + + -- Timo Aaltonen Wed, 14 Aug 2024 22:04:49 +0300 + +mesa (24.1.5-3) unstable; urgency=medium + + * control: Mark NVK build-deps accordingly. + * rules: Drop --wrap-mode=default, leftover from previous testing. + (Closes: #1077729) + + -- Timo Aaltonen Fri, 02 Aug 2024 17:45:45 +0300 + +mesa (24.1.5-2) unstable; urgency=medium + + [ Adrian Bunk ] + * control, rules: mips64el has latest LLVM already for some time + + [ Timo Aaltonen ] + * rules: Fix FTBFS by only cleaning some nvk test binaries if they + actually get built. + * rules: Add a new NVK_ARCHS which is a subset of RUSTICL_ARCHS, strip + powerpc, ppc64el and s390x from it. + * control: Add lua5.4 to build-depends for arm* in order to work + around FTBFS caused by setting MESON_PACKAGE_CACHE_DIR for nvk. + (Closes: #1077729) + + -- Timo Aaltonen Fri, 02 Aug 2024 11:25:02 +0300 mesa (24.1.5-1) unstable; urgency=medium @@ -158,12 +313,6 @@ mesa (24.0.2-1) unstable; urgency=medium -- Timo Aaltonen Thu, 29 Feb 2024 09:22:00 +0200 -mesa (24.0.1-1deepin3) unstable; urgency=medium - - * Add radeon-fix-gnome-shell-crash.diff. - - -- xiangzelong Fri, 12 Apr 2024 16:46:54 +0800 - mesa (24.0.1-1) unstable; urgency=medium * New upstream release. @@ -445,12 +594,6 @@ mesa (23.1.3-1) unstable; urgency=medium -- Timo Aaltonen Wed, 05 Jul 2023 17:23:23 +0300 -mesa (23.1.2-1deepin1) unstable; urgency=medium - - * add zx support . - - -- LiChengGang Fri, 16 Jun 2023 16:47:02 +0800 - mesa (23.1.2-1) unstable; urgency=medium * New upstream release. diff --git a/debian/control b/debian/control index db34e830d..700745f02 100644 --- a/debian/control +++ b/debian/control @@ -8,11 +8,11 @@ Build-Depends: debhelper-compat (= 13), directx-headers-dev (>= 1.613.0) [linux-amd64 linux-arm64], flatbuffers-compiler [linux-arm64], - glslang-tools [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + glslang-tools [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], meson (>= 1.4.0), quilt (>= 0.63-8.2~), - pkg-config, - libdrm-dev (>= 2.4.119), + pkgconf, + libdrm-dev (>= 2.4.121), libx11-dev, libxxf86vm-dev, libexpat1-dev, @@ -22,7 +22,7 @@ Build-Depends: libxext-dev, libva-dev (>= 1.6.0) [linux-any] , libvdpau-dev (>= 1.5) [linux-any], - libvulkan-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libvulkan-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], x11proto-dev, linux-libc-dev (>= 2.6.31) [linux-any], libx11-xcb-dev, @@ -41,23 +41,31 @@ Build-Depends: python3, python3-mako, python3-ply, + python3-yaml, python3-pycparser [arm64 armhf], python3-setuptools, flex, bison, - libelf-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libelf-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], libwayland-dev (>= 1.15.0) [linux-any], libwayland-egl-backend-dev (>= 1.15.0) [linux-any], - llvm-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], - libclang-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], - libclang-cpp17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], - libclc-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], - libclc-17 [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + llvm-19-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclang-19-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclang-cpp19-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclc-19-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libclc-19 [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], wayland-protocols (>= 1.34), zlib1g-dev, libglvnd-core-dev (>= 1.3.2), valgrind [amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x], - libllvmspirvlib-17-dev [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + rustc (>= 1.73) [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + rustfmt [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + bindgen (>= 0.66.1~) [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + cbindgen [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + llvm-spirv-19 [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32], + libllvmspirvlib-19-dev [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + librust-paste-dev [amd64 arm64 armhf i386 ppc64 riscv64 x32], + librust-syn-dev (>= 2.0.48) [amd64 arm64 armhf i386 ppc64 riscv64 x32], Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa @@ -129,6 +137,7 @@ Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, + mesa-libgallium (= ${binary:Version}), Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: generic buffer management API -- runtime @@ -160,6 +169,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libgbm1 (= ${binary:Version}) [!hurd-any], + mesa-libgallium (= ${binary:Version}), Provides: libegl-vendor Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same @@ -218,6 +228,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libgl1-mesa-dri, + mesa-libgallium (= ${binary:Version}), Provides: libglx-vendor Breaks: libopengl-perl (<< 0.6704+dfsg-2), @@ -244,7 +255,7 @@ Section: libs Architecture: any Pre-Depends: ${misc:Pre-Depends} Depends: - libvulkan1 [amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], + libvulkan1 [amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32], ${shlibs:Depends}, ${misc:Depends} Multi-Arch: same @@ -287,6 +298,19 @@ Description: Developer documentation for Mesa extensions, the complete set of release notes and the development header files common to all Mesa packages. +Package: mesa-libgallium +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: shared infrastructure for Mesa drivers + This package contains libgallium, a private library shared between + multiple Mesa drivers. This library is an implementation detail of Mesa + and should not be used directly by user code. + Package: libosmesa6 Section: libs Architecture: any @@ -377,7 +401,7 @@ Description: Mesa VDPAU video acceleration drivers Package: mesa-vulkan-drivers Section: libs -Architecture: amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +Architecture: amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 Pre-Depends: ${misc:Pre-Depends} Depends: libvulkan1, @@ -392,10 +416,10 @@ Description: Mesa Vulkan graphics drivers Package: mesa-opencl-icd Section: libs -Architecture: amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +Architecture: amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 Pre-Depends: ${misc:Pre-Depends} Depends: - libclc-17, + libclc-19, ocl-icd-libopencl1 | libopencl1, ${shlibs:Depends}, ${misc:Depends}, @@ -416,7 +440,7 @@ Depends: ${misc:Depends}, Multi-Arch: same Description: DRM shim libraries - This package provides drm-shim libraries which can be used for testing DRM drivers when - none exists on the host + This package provides drm-shim libraries which can be used for testing DRM + drivers when none exists on the host. # vim: tw=0 diff --git a/debian/control.in b/debian/control.in index bef0ce647..1dcc7c584 100644 --- a/debian/control.in +++ b/debian/control.in @@ -11,8 +11,8 @@ Build-Depends: glslang-tools [@LLVM_ARCHS@], meson (>= 1.4.0), quilt (>= 0.63-8.2~), - pkg-config, - libdrm-dev (>= 2.4.119), + pkgconf, + libdrm-dev (>= 2.4.121), libx11-dev, libxxf86vm-dev, libexpat1-dev, @@ -41,6 +41,7 @@ Build-Depends: python3, python3-mako, python3-ply, + python3-yaml, python3-pycparser [arm64 armhf], python3-setuptools, flex, @@ -57,7 +58,14 @@ Build-Depends: zlib1g-dev, libglvnd-core-dev (>= 1.3.2), valgrind [@VALGRIND_ARCHS@], + rustc (>= 1.73) [@RUSTICL_ARCHS@], + rustfmt [@RUSTICL_ARCHS@], + bindgen (>= 0.66.1~) [@RUSTICL_ARCHS@], + cbindgen [@RUSTICL_ARCHS@], + llvm-spirv-@LLVM_VERSION@ [@RUSTICL_ARCHS@], libllvmspirvlib-@LLVM_VERSION@-dev [@LLVM_ARCHS@], + librust-paste-dev [@NVK_ARCHS@], + librust-syn-dev (>= 2.0.48) [@NVK_ARCHS@], Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/xorg-team/lib/mesa.git Vcs-Browser: https://salsa.debian.org/xorg-team/lib/mesa @@ -129,6 +137,7 @@ Architecture: linux-any Depends: ${shlibs:Depends}, ${misc:Depends}, + mesa-libgallium (= ${binary:Version}), Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: generic buffer management API -- runtime @@ -160,6 +169,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libgbm1 (= ${binary:Version}) [!hurd-any], + mesa-libgallium (= ${binary:Version}), Provides: libegl-vendor Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same @@ -218,6 +228,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, libgl1-mesa-dri, + mesa-libgallium (= ${binary:Version}), Provides: libglx-vendor Breaks: libopengl-perl (<< 0.6704+dfsg-2), @@ -287,6 +298,19 @@ Description: Developer documentation for Mesa extensions, the complete set of release notes and the development header files common to all Mesa packages. +Package: mesa-libgallium +Section: libs +Architecture: linux-any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: shared infrastructure for Mesa drivers + This package contains libgallium, a private library shared between + multiple Mesa drivers. This library is an implementation detail of Mesa + and should not be used directly by user code. + Package: libosmesa6 Section: libs Architecture: any @@ -416,7 +440,7 @@ Depends: ${misc:Depends}, Multi-Arch: same Description: DRM shim libraries - This package provides drm-shim libraries which can be used for testing DRM drivers when - none exists on the host + This package provides drm-shim libraries which can be used for testing DRM + drivers when none exists on the host. # vim: tw=0 diff --git a/debian/libegl-mesa0.symbols b/debian/libegl-mesa0.symbols index 7d8cfeb78..2c094dfad 100644 --- a/debian/libegl-mesa0.symbols +++ b/debian/libegl-mesa0.symbols @@ -1,3 +1,2 @@ libEGL_mesa.so.0 libegl-mesa0 #MINVER# __egl_Main@Base 17.0.0~ - zx_print_driver_map_list@Base 23.1.2-1deepin1 diff --git a/debian/libgbm1.install b/debian/libgbm1.install index 4854230e2..3e7b8d92b 100644 --- a/debian/libgbm1.install +++ b/debian/libgbm1.install @@ -1 +1,2 @@ usr/lib/*/libgbm.so.1* +usr/lib/*/gbm/dri_gbm.so diff --git a/debian/libgbm1.lintian-overrides b/debian/libgbm1.lintian-overrides index 4b9f4bdfa..b622d568a 100644 --- a/debian/libgbm1.lintian-overrides +++ b/debian/libgbm1.lintian-overrides @@ -1 +1 @@ -symbols-declares-dependency-on-other-package libgbm1-private +symbols-declares-dependency-on-other-package libgbm1-private (libgbm.so.1) [symbols] diff --git a/debian/libgbm1.symbols b/debian/libgbm1.symbols index ecb90368d..2ece8411c 100644 --- a/debian/libgbm1.symbols +++ b/debian/libgbm1.symbols @@ -1,3 +1,5 @@ +dri_gbm.so libgbm1 #MINVER# + gbmint_get_backend@Base 24.3.0~rc1 libgbm.so.1 libgbm1 #MINVER# | libgbm1-private gbm_bo_create@Base 7.11~1 @@ -38,4 +40,3 @@ libgbm.so.1 libgbm1 #MINVER# gbm_surface_has_free_buffers@Base 8.1~0 gbm_surface_lock_front_buffer@Base 8.1~0 gbm_surface_release_buffer@Base 8.1~0 - zx_print_driver_map_list@Base 23.1.2-1deepin1 diff --git a/debian/libglx-mesa0.symbols b/debian/libglx-mesa0.symbols index 085898205..cae9e4f6f 100644 --- a/debian/libglx-mesa0.symbols +++ b/debian/libglx-mesa0.symbols @@ -325,6 +325,8 @@ libGLX_mesa.so.0 libglx-mesa0 glFramebufferTexture@Base 0 glFramebufferTextureLayer@Base 0 glFramebufferTextureLayerEXT@Base 0 + glFramebufferTextureMultisampleMultiviewOVR@Base 24.3.0~rc1 + glFramebufferTextureMultiviewOVR@Base 24.3.0~rc1 glFrontFace@Base 0 glFrustum@Base 0 glFrustumf@Base 0 @@ -1001,6 +1003,8 @@ libGLX_mesa.so.0 libglx-mesa0 glTexImage3D@Base 0 glTexImage3DEXT@Base 0 glTexImage3DMultisample@Base 0 + glTexStorageAttribs2DEXT@Base 24.2.0~rc1 + glTexStorageAttribs3DEXT@Base 24.2.0~rc1 glTexParameterIiv@Base 0 glTexParameterIivEXT@Base 0 glTexParameterIuiv@Base 0 @@ -1299,4 +1303,3 @@ libGLX_mesa.so.0 libglx-mesa0 glWindowPos3sARB@Base 0 glWindowPos3sv@Base 0 glWindowPos3svARB@Base 0 - zx_print_driver_map_list@Base 23.1.2-1deepin1 diff --git a/debian/mesa-drm-shim.lintian-overrides b/debian/mesa-drm-shim.lintian-overrides new file mode 100644 index 000000000..1c65a5fa0 --- /dev/null +++ b/debian/mesa-drm-shim.lintian-overrides @@ -0,0 +1,4 @@ +package-name-doesnt-match-sonames libamdgpu-noop-drm-shim libnouveau-noop-drm-shim libradeon-noop-drm-shim +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libamdgpu_noop_drm_shim.so libamdgpu_noop_drm_shim.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libnouveau_noop_drm_shim.so libnouveau_noop_drm_shim.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libradeon_noop_drm_shim.so libradeon_noop_drm_shim.so diff --git a/debian/mesa-drm-shim.triggers b/debian/mesa-drm-shim.triggers new file mode 100644 index 000000000..dd8660367 --- /dev/null +++ b/debian/mesa-drm-shim.triggers @@ -0,0 +1 @@ +activate-noawait ldconfig diff --git a/debian/mesa-libgallium.install b/debian/mesa-libgallium.install new file mode 100644 index 000000000..9e1c57dfb --- /dev/null +++ b/debian/mesa-libgallium.install @@ -0,0 +1 @@ +usr/lib/*/libgallium-*.so diff --git a/debian/mesa-libgallium.lintian-overrides b/debian/mesa-libgallium.lintian-overrides new file mode 100644 index 000000000..7763abc06 --- /dev/null +++ b/debian/mesa-libgallium.lintian-overrides @@ -0,0 +1 @@ +package-name-doesnt-match-sonames libgallium-* diff --git a/debian/mesa-opencl-icd.lintian-overrides b/debian/mesa-opencl-icd.lintian-overrides index 535b919cc..71ed4bc28 100644 --- a/debian/mesa-opencl-icd.lintian-overrides +++ b/debian/mesa-opencl-icd.lintian-overrides @@ -1,2 +1,4 @@ -package-name-doesnt-match-sonames libMesaOpenCL1 -package-name-doesnt-match-sonames libRusticlOpenCL +link-to-shared-library-in-wrong-package usr/lib/*/libMesaOpenCL.so.1.0.0 [usr/lib/*/libMesaOpenCL.so] +link-to-shared-library-in-wrong-package usr/lib/*/libRusticlOpenCL.so.1.0.0 [usr/lib/*/libRusticlOpenCL.so] +package-name-doesnt-match-sonames libMesaOpenCL1 libRusticlOpenCL1 +shared-library-lacks-prerequisites [usr/lib/x86_64-linux-gnu/gallium-pipe/pipe_i915.so] diff --git a/debian/mesa-vulkan-drivers.lintian-overrides b/debian/mesa-vulkan-drivers.lintian-overrides index a47177420..49017a496 100644 --- a/debian/mesa-vulkan-drivers.lintian-overrides +++ b/debian/mesa-vulkan-drivers.lintian-overrides @@ -1,3 +1,12 @@ -package-name-doesnt-match-sonames libvulkan-intel libvulkan-radeon +no-manual-page [usr/bin/mesa-overlay-control.py] +package-name-doesnt-match-sonames libVkLayer-INTEL-nullhw libVkLayer-MESA-device-select libVkLayer-MESA-overlay libvulkan-intel libvulkan-intel-hasvk libvulkan-lvp libvulkan-nouveau libvulkan-radeon libvulkan-virtio +script-with-language-extension [usr/bin/mesa-overlay-control.py] +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libVkLayer_INTEL_nullhw.so libVkLayer_INTEL_nullhw.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libVkLayer_MESA_device_select.so libVkLayer_MESA_device_select.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libVkLayer_MESA_overlay.so libVkLayer_MESA_overlay.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libvulkan_intel_hasvk.so libvulkan_intel_hasvk.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libvulkan_lvp.so libvulkan_lvp.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libvulkan_nouveau.so libvulkan_nouveau.so +shared-library-lacks-version usr/lib/x86_64-linux-gnu/libvulkan_virtio.so libvulkan_virtio.so shlib-without-versioned-soname usr/lib/*/libvulkan_intel.so libvulkan_intel.so shlib-without-versioned-soname usr/lib/*/libvulkan_radeon.so libvulkan_radeon.so diff --git a/debian/patches/0001-meson-set-default-drivers-for-ppc-ppc64.patch b/debian/patches/0001-meson-set-default-drivers-for-ppc-ppc64.patch deleted file mode 100644 index a42fad259..000000000 --- a/debian/patches/0001-meson-set-default-drivers-for-ppc-ppc64.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 1cc1cb3b5893fa6ba91fe79aa25a28743114c871 Mon Sep 17 00:00:00 2001 -From: Mingcong Bai -Date: Thu, 20 Jun 2024 15:25:42 +0000 -Subject: [PATCH 01/26] meson: set default drivers for ppc, ppc64 - -Part-of: ---- - meson.build | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index dee53381935..68c04ff38a4 100644 ---- a/meson.build -+++ b/meson.build -@@ -140,7 +140,7 @@ system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly - gallium_drivers = get_option('gallium-drivers') - if gallium_drivers.contains('auto') - if system_has_kms_drm -- # TODO: PPC, Sparc -+ # TODO: Sparc - if ['x86', 'x86_64'].contains(host_machine.cpu_family()) - gallium_drivers = [ - 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'swrast', -@@ -152,7 +152,7 @@ if gallium_drivers.contains('auto') - 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', 'iris', - 'zink' - ] -- elif ['mips', 'mips64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) -+ elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) - gallium_drivers = [ - 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'swrast', 'zink' - ] --- -2.46.0 - diff --git a/debian/patches/0002-meson-set-default-Vulkan-drivers-for-ppc-ppc64.patch b/debian/patches/0002-meson-set-default-Vulkan-drivers-for-ppc-ppc64.patch deleted file mode 100644 index d68264909..000000000 --- a/debian/patches/0002-meson-set-default-Vulkan-drivers-for-ppc-ppc64.patch +++ /dev/null @@ -1,25 +0,0 @@ -From bf7cadf01a553442373ee65d490106cf27a33324 Mon Sep 17 00:00:00 2001 -From: Mingcong Bai -Date: Fri, 21 Jun 2024 11:26:38 +0800 -Subject: [PATCH 02/26] meson: set default Vulkan drivers for ppc, ppc64 - ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 68c04ff38a4..bc38e845194 100644 ---- a/meson.build -+++ b/meson.build -@@ -224,7 +224,7 @@ if _vulkan_drivers.contains('auto') - _vulkan_drivers = ['amd', 'intel', 'intel_hasvk', 'nouveau', 'swrast'] - elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) - _vulkan_drivers = ['swrast', 'intel'] -- elif ['mips', 'mips64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) -+ elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) - _vulkan_drivers = ['amd', 'swrast'] - elif ['loongarch64'].contains(host_machine.cpu_family()) - _vulkan_drivers = ['amd', 'swrast'] --- -2.46.0 - diff --git a/debian/patches/0003-fix-meson.build-more-Gallium-Vulkan-drivers-for-on-a.patch b/debian/patches/0003-fix-meson.build-more-Gallium-Vulkan-drivers-for-on-a.patch deleted file mode 100644 index 72d9da762..000000000 --- a/debian/patches/0003-fix-meson.build-more-Gallium-Vulkan-drivers-for-on-a.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 71b26e87e31f3405c46b9c4eb308909080e39dd8 Mon Sep 17 00:00:00 2001 -From: Mingcong Bai -Date: Thu, 20 Jun 2024 23:18:13 +0800 -Subject: [PATCH 03/26] fix(meson.build): more Gallium, Vulkan drivers for on - all architectures - -- This is a pre-upstream patch, I will split this into multiple ones to - justify each. -- Enable svga Gallium driver by default on ARM targets as VMware can run ARM - guest machines. -- Enable etnaviv Gallium driver by default on all architectures to support - older JEMO JM-series GPUs. -- The xe kernel driver is now available and possible to be utilised on all - known architectures listed in meson.build. Enable iris Gallium drivers - on all architectures by default. -- Enable more Vulkan drivers following the same spirit as above. ---- - meson.build | 27 +++++++++++++++++++-------- - 1 file changed, 19 insertions(+), 8 deletions(-) - -diff --git a/meson.build b/meson.build -index bc38e845194..b4d5e2bc0dc 100644 ---- a/meson.build -+++ b/meson.build -@@ -144,21 +144,23 @@ if gallium_drivers.contains('auto') - if ['x86', 'x86_64'].contains(host_machine.cpu_family()) - gallium_drivers = [ - 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'swrast', -- 'iris', 'crocus', 'i915', 'zink' -+ 'iris', 'crocus', 'i915', 'zink', 'etnaviv' - ] - elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) - gallium_drivers = [ - 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', 'svga', - 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', 'iris', -- 'zink' -+ 'zink', 'r300', 'r600', 'radeonsi', 'svga', 'asahi' - ] - elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) - gallium_drivers = [ -- 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'swrast', 'zink' -+ 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'swrast', 'iris', -+ 'zink', 'etnaviv' - ] - elif ['loongarch64'].contains(host_machine.cpu_family()) - gallium_drivers = [ -- 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'etnaviv', 'swrast', 'zink' -+ 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'etnaviv', 'swrast', -+ 'iris', 'zink' - ] - else - error('Unknown architecture @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format( -@@ -221,13 +223,22 @@ _vulkan_drivers = get_option('vulkan-drivers') - if _vulkan_drivers.contains('auto') - if system_has_kms_drm - if host_machine.cpu_family().startswith('x86') -- _vulkan_drivers = ['amd', 'intel', 'intel_hasvk', 'nouveau', 'swrast'] -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'intel_hasvk', 'nouveau', 'swrast', 'virtio' -+ ] - elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) -- _vulkan_drivers = ['swrast', 'intel'] -+ _vulkan_drivers = [ -+ 'amd', 'broadcom', 'freedreno', 'intel', 'nouveau', 'panfrost', -+ 'swrast', 'virtio' -+ ] - elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) -- _vulkan_drivers = ['amd', 'swrast'] -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'nouveau', 'swrast', 'virtio' -+ ] - elif ['loongarch64'].contains(host_machine.cpu_family()) -- _vulkan_drivers = ['amd', 'swrast'] -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'nouveau', 'swrast', 'virtio' -+ ] - else - error('Unknown architecture @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format( - host_machine.cpu_family())) --- -2.46.0 - diff --git a/debian/patches/0004-gallivm-add-lp_context_ref-for-combine-usage-of-LLVM.patch b/debian/patches/0004-gallivm-add-lp_context_ref-for-combine-usage-of-LLVM.patch deleted file mode 100644 index 62b0a542f..000000000 --- a/debian/patches/0004-gallivm-add-lp_context_ref-for-combine-usage-of-LLVM.patch +++ /dev/null @@ -1,603 +0,0 @@ -From 65b265375f4982cbcf9a94dcf70857e7d0ad06c7 Mon Sep 17 00:00:00 2001 -From: Yonggang Luo -Date: Wed, 19 Jun 2024 16:35:39 +1000 -Subject: [PATCH 04/26] gallivm: add lp_context_ref for combine usage of - LLVMContextSetOpaquePointers - -Reviewed-by: Dave Airlie -Part-of: ---- - src/gallium/auxiliary/draw/draw_context.c | 2 +- - src/gallium/auxiliary/draw/draw_llvm.c | 31 +++++++---------- - src/gallium/auxiliary/draw/draw_llvm.h | 5 ++- - src/gallium/auxiliary/gallivm/lp_bld.h | 34 +++++++++++++++++-- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 ++-- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 2 +- - src/gallium/drivers/llvmpipe/lp_context.c | 23 ++++++------- - src/gallium/drivers/llvmpipe/lp_context.h | 2 +- - src/gallium/drivers/llvmpipe/lp_state_cs.c | 2 +- - src/gallium/drivers/llvmpipe/lp_state_fs.c | 2 +- - src/gallium/drivers/llvmpipe/lp_state_setup.c | 2 +- - src/gallium/drivers/llvmpipe/lp_test_arit.c | 11 +++--- - src/gallium/drivers/llvmpipe/lp_test_blend.c | 11 +++--- - src/gallium/drivers/llvmpipe/lp_test_conv.c | 11 +++--- - src/gallium/drivers/llvmpipe/lp_test_format.c | 22 +++++------- - src/gallium/drivers/llvmpipe/lp_test_printf.c | 11 +++--- - .../drivers/llvmpipe/lp_texture_handle.c | 12 +++---- - .../drivers/llvmpipe/lp_texture_handle.h | 2 +- - 18 files changed, 98 insertions(+), 93 deletions(-) - -diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c -index ef371dc1214..a184370ae51 100644 ---- a/src/gallium/auxiliary/draw/draw_context.c -+++ b/src/gallium/auxiliary/draw/draw_context.c -@@ -77,7 +77,7 @@ draw_create_context(struct pipe_context *pipe, void *context, - - #if DRAW_LLVM_AVAILABLE - if (try_llvm && draw_get_option_use_llvm()) { -- draw->llvm = draw_llvm_create(draw, (LLVMContextRef)context); -+ draw->llvm = draw_llvm_create(draw, (lp_context_ref *)context); - } - #endif - -diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c -index 5273814adfc..03bcfb1dc90 100644 ---- a/src/gallium/auxiliary/draw/draw_llvm.c -+++ b/src/gallium/auxiliary/draw/draw_llvm.c -@@ -382,7 +382,7 @@ get_vertex_header_ptr_type(struct draw_llvm_variant *variant) - * Create per-context LLVM info. - */ - struct draw_llvm * --draw_llvm_create(struct draw_context *draw, LLVMContextRef context) -+draw_llvm_create(struct draw_context *draw, lp_context_ref *context) - { - struct draw_llvm *llvm; - -@@ -395,17 +395,14 @@ draw_llvm_create(struct draw_context *draw, LLVMContextRef context) - - llvm->draw = draw; - -- llvm->context = context; -- if (!llvm->context) { -- llvm->context = LLVMContextCreate(); -- --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(llvm->context, false); --#endif -- -- llvm->context_owned = true; -+ if (context) { -+ llvm->context = *context; -+ llvm->context.owned = false; -+ } -+ if (!llvm->context.ref) { -+ lp_context_create(&llvm->context); - } -- if (!llvm->context) -+ if (!llvm->context.ref) - goto fail; - - llvm->nr_variants = 0; -@@ -434,9 +431,7 @@ fail: - void - draw_llvm_destroy(struct draw_llvm *llvm) - { -- if (llvm->context_owned) -- LLVMContextDispose(llvm->context); -- llvm->context = NULL; -+ lp_context_destroy(&llvm->context); - - /* XXX free other draw_llvm data? */ - FREE(llvm); -@@ -510,7 +505,7 @@ draw_llvm_create_variant(struct draw_llvm *llvm, - if (!cached.data_size) - needs_caching = true; - } -- variant->gallivm = gallivm_create(module_name, llvm->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &llvm->context, &cached); - - create_vs_jit_types(variant); - -@@ -2525,7 +2520,7 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm, - if (!cached.data_size) - needs_caching = true; - } -- variant->gallivm = gallivm_create(module_name, llvm->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &llvm->context, &cached); - - create_gs_jit_types(variant); - -@@ -3179,7 +3174,7 @@ draw_tcs_llvm_create_variant(struct draw_llvm *llvm, - needs_caching = true; - } - -- variant->gallivm = gallivm_create(module_name, llvm->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &llvm->context, &cached); - - create_tcs_jit_types(variant); - -@@ -3698,7 +3693,7 @@ draw_tes_llvm_create_variant(struct draw_llvm *llvm, - if (!cached.data_size) - needs_caching = true; - } -- variant->gallivm = gallivm_create(module_name, llvm->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &llvm->context, &cached); - - create_tes_jit_types(variant); - -diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h -index 65199feab1b..c95ef4e0c2f 100644 ---- a/src/gallium/auxiliary/draw/draw_llvm.h -+++ b/src/gallium/auxiliary/draw/draw_llvm.h -@@ -538,8 +538,7 @@ struct llvm_tess_eval_shader { - struct draw_llvm { - struct draw_context *draw; - -- LLVMContextRef context; -- bool context_owned; -+ lp_context_ref context; - - struct draw_vs_jit_context vs_jit_context; - struct draw_gs_jit_context gs_jit_context; -@@ -585,7 +584,7 @@ llvm_tess_eval_shader(struct draw_tess_eval_shader *tes) - } - - struct draw_llvm * --draw_llvm_create(struct draw_context *draw, LLVMContextRef llvm_context); -+draw_llvm_create(struct draw_context *draw, lp_context_ref *llvm_context); - - void - draw_llvm_destroy(struct draw_llvm *llvm); -diff --git a/src/gallium/auxiliary/gallivm/lp_bld.h b/src/gallium/auxiliary/gallivm/lp_bld.h -index e1f6200ac94..fd2a4943f56 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld.h -@@ -48,9 +48,11 @@ - - #include - --#include -- -+#include - -+#include -+#include -+#include - - /** - * Redefine these LLVM entrypoints as invalid macros to make sure we -@@ -136,4 +138,32 @@ LLVMBuildCall2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, - - #endif /* LLVM_VERSION_MAJOR < 8 */ - -+typedef struct lp_context_ref { -+ LLVMContextRef ref; -+ bool owned; -+} lp_context_ref; -+ -+static inline void -+lp_context_create(lp_context_ref *context) -+{ -+ assert(context != NULL); -+ context->ref = LLVMContextCreate(); -+ context->owned = true; -+#if LLVM_VERSION_MAJOR == 15 -+ if (context->ref) { -+ LLVMContextSetOpaquePointers(context->ref, false); -+ } -+#endif -+} -+ -+static inline void -+lp_context_destroy(lp_context_ref *context) -+{ -+ assert(context != NULL); -+ if (context->owned) { -+ LLVMContextDispose(context->ref); -+ context->ref = NULL; -+ } -+} -+ - #endif /* LP_BLD_H */ -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 4b859776e5c..62d26141175 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -329,7 +329,7 @@ fail: - */ - static bool - init_gallivm_state(struct gallivm_state *gallivm, const char *name, -- LLVMContextRef context, struct lp_cached_code *cache) -+ lp_context_ref *context, struct lp_cached_code *cache) - { - assert(!gallivm->context); - assert(!gallivm->module); -@@ -337,7 +337,7 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name, - if (!lp_build_init()) - return false; - -- gallivm->context = context; -+ gallivm->context = context->ref; - gallivm->cache = cache; - if (!gallivm->context) - goto fail; -@@ -486,7 +486,7 @@ lp_build_init(void) - * Create a new gallivm_state object. - */ - struct gallivm_state * --gallivm_create(const char *name, LLVMContextRef context, -+gallivm_create(const char *name, lp_context_ref *context, - struct lp_cached_code *cache) - { - struct gallivm_state *gallivm; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index 418921cb7ad..f53702f17a1 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -79,7 +79,7 @@ lp_build_init(void); - - - struct gallivm_state * --gallivm_create(const char *name, LLVMContextRef context, -+gallivm_create(const char *name, lp_context_ref *context, - struct lp_cached_code *cache); - - void -diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c -index 8e5e8ced3fe..bdf956d45a9 100644 ---- a/src/gallium/drivers/llvmpipe/lp_context.c -+++ b/src/gallium/drivers/llvmpipe/lp_context.c -@@ -107,10 +107,7 @@ llvmpipe_destroy(struct pipe_context *pipe) - - llvmpipe_sampler_matrix_destroy(llvmpipe); - --#ifndef USE_GLOBAL_LLVM_CONTEXT -- LLVMContextDispose(llvmpipe->context); --#endif -- llvmpipe->context = NULL; -+ lp_context_destroy(&llvmpipe->context); - - align_free(llvmpipe); - } -@@ -257,23 +254,25 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv, - llvmpipe_init_sampler_matrix(llvmpipe); - - #ifdef USE_GLOBAL_LLVM_CONTEXT -- llvmpipe->context = LLVMGetGlobalContext(); -+ llvmpipe->context.ref = LLVMGetGlobalContext(); -+ llvmpipe->context.owned = false; -+#if LLVM_VERSION_MAJOR == 15 -+ if (llvmpipe->context.ref) { -+ LLVMContextSetOpaquePointers(llvmpipe->context.ref, false); -+ } -+#endif - #else -- llvmpipe->context = LLVMContextCreate(); -+ lp_context_create(&llvmpipe->context); - #endif - -- if (!llvmpipe->context) -+ if (!llvmpipe->context.ref) - goto fail; - --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(llvmpipe->context, false); --#endif -- - /* - * Create drawing context and plug our rendering stage into it. - */ - llvmpipe->draw = draw_create_with_llvm_context(&llvmpipe->pipe, -- llvmpipe->context); -+ &llvmpipe->context); - if (!llvmpipe->draw) - goto fail; - -diff --git a/src/gallium/drivers/llvmpipe/lp_context.h b/src/gallium/drivers/llvmpipe/lp_context.h -index 7dd6a3f8596..f05e3c6189d 100644 ---- a/src/gallium/drivers/llvmpipe/lp_context.h -+++ b/src/gallium/drivers/llvmpipe/lp_context.h -@@ -190,7 +190,7 @@ struct llvmpipe_context { - unsigned render_cond_offset; - - /** The LLVMContext to use for LLVM related work */ -- LLVMContextRef context; -+ lp_context_ref context; - - int max_global_buffers; - struct pipe_resource **global_buffers; -diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c -index 0bf0e5cab9c..d9e2a1b7788 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_cs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c -@@ -1241,7 +1241,7 @@ generate_variant(struct llvmpipe_context *lp, - if (!cached.data_size) - needs_caching = true; - -- variant->gallivm = gallivm_create(module_name, lp->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &lp->context, &cached); - if (!variant->gallivm) { - FREE(variant); - return NULL; -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 6fb3b8b31c2..0e1e6ebcaba 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3751,7 +3751,7 @@ generate_variant(struct llvmpipe_context *lp, - char module_name[64]; - snprintf(module_name, sizeof(module_name), "fs%u_variant%u", - shader->no, shader->variants_created); -- variant->gallivm = gallivm_create(module_name, lp->context, &cached); -+ variant->gallivm = gallivm_create(module_name, &lp->context, &cached); - if (!variant->gallivm) { - FREE(variant); - return NULL; -diff --git a/src/gallium/drivers/llvmpipe/lp_state_setup.c b/src/gallium/drivers/llvmpipe/lp_state_setup.c -index 2f4bbdf7a88..d181a79557c 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_setup.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_setup.c -@@ -652,7 +652,7 @@ generate_setup_variant(struct lp_setup_variant_key *key, - variant->no); - - struct gallivm_state *gallivm; -- variant->gallivm = gallivm = gallivm_create(func_name, lp->context, NULL); -+ variant->gallivm = gallivm = gallivm_create(func_name, &lp->context, NULL); - if (!variant->gallivm) { - goto fail; - } -diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c -index fd8489f8358..7c5a2fb6ad9 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_arit.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c -@@ -417,7 +417,7 @@ test_unary(unsigned verbose, FILE *fp, const struct unary_test_t *test, unsigned - { - char test_name[128]; - snprintf(test_name, sizeof test_name, "%s.v%u", test->name, length); -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef test_func; - unary_func_t test_func_jit; -@@ -433,11 +433,8 @@ test_unary(unsigned verbose, FILE *fp, const struct unary_test_t *test, unsigned - in[i] = 1.0; - } - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module", &context, NULL); - - test_func = build_unary_test_func(gallivm, test, length, test_name); - -@@ -512,7 +509,7 @@ test_unary(unsigned verbose, FILE *fp, const struct unary_test_t *test, unsigned - } - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - align_free(in); - align_free(out); -diff --git a/src/gallium/drivers/llvmpipe/lp_test_blend.c b/src/gallium/drivers/llvmpipe/lp_test_blend.c -index 7851bf29dd6..d1bcdd11dc1 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_blend.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_blend.c -@@ -437,7 +437,7 @@ test_one(unsigned verbose, - const struct pipe_blend_state *blend, - struct lp_type type) - { -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef func = NULL; - blend_test_ptr_t blend_test_ptr; -@@ -451,11 +451,8 @@ test_one(unsigned verbose, - if (verbose >= 1) - dump_blend_type(stdout, blend, type); - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module", &context, NULL); - - func = add_blend_test(gallivm, blend, type); - -@@ -584,7 +581,7 @@ test_one(unsigned verbose, - write_tsv_row(fp, blend, type, cycles_avg, success); - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - return success; - } -diff --git a/src/gallium/drivers/llvmpipe/lp_test_conv.c b/src/gallium/drivers/llvmpipe/lp_test_conv.c -index 9fb64486f11..9bb7e0e9d77 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_conv.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_conv.c -@@ -157,7 +157,7 @@ test_one(unsigned verbose, - struct lp_type src_type, - struct lp_type dst_type) - { -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef func = NULL; - conv_test_ptr_t conv_test_ptr; -@@ -222,11 +222,8 @@ test_one(unsigned verbose, - eps *= 2; - } - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module", &context, NULL); - - func = add_conv_test(gallivm, src_type, num_srcs, dst_type, num_dsts); - -@@ -337,7 +334,7 @@ test_one(unsigned verbose, - write_tsv_row(fp, src_type, dst_type, cycles_avg, success); - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - return success; - } -diff --git a/src/gallium/drivers/llvmpipe/lp_test_format.c b/src/gallium/drivers/llvmpipe/lp_test_format.c -index 6d3a60bd8db..250a74a935e 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_format.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_format.c -@@ -139,7 +139,7 @@ test_format_float(unsigned verbose, FILE *fp, - const struct util_format_description *desc, - unsigned use_cache) - { -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef fetch = NULL; - fetch_ptr_t fetch_ptr; -@@ -149,11 +149,8 @@ test_format_float(unsigned verbose, FILE *fp, - bool success = true; - unsigned i, j, k, l; - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module_float", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module_float", &context, NULL); - - fetch = add_fetch_rgba_test(gallivm, verbose, desc, - lp_float32_vec4_type(), use_cache); -@@ -228,7 +225,7 @@ test_format_float(unsigned verbose, FILE *fp, - } - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - if (fp) - write_tsv_row(fp, desc, success); -@@ -243,7 +240,7 @@ test_format_unorm8(unsigned verbose, FILE *fp, - const struct util_format_description *desc, - unsigned use_cache) - { -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef fetch = NULL; - fetch_ptr_t fetch_ptr; -@@ -253,11 +250,8 @@ test_format_unorm8(unsigned verbose, FILE *fp, - bool success = true; - unsigned i, j, k, l; - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module_unorm8", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module_unorm8", &context, NULL); - - fetch = add_fetch_rgba_test(gallivm, verbose, desc, - lp_unorm8_vec4_type(), use_cache); -@@ -331,7 +325,7 @@ test_format_unorm8(unsigned verbose, FILE *fp, - } - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - if (fp) - write_tsv_row(fp, desc, success); -diff --git a/src/gallium/drivers/llvmpipe/lp_test_printf.c b/src/gallium/drivers/llvmpipe/lp_test_printf.c -index 7e53aa51928..77b1f591d95 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_printf.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_printf.c -@@ -89,17 +89,14 @@ static bool - test_printf(unsigned verbose, FILE *fp, - const struct printf_test_case *testcase) - { -- LLVMContextRef context; -+ lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef test; - test_printf_t test_printf_func; - bool success = true; - -- context = LLVMContextCreate(); --#if LLVM_VERSION_MAJOR == 15 -- LLVMContextSetOpaquePointers(context, false); --#endif -- gallivm = gallivm_create("test_module", context, NULL); -+ lp_context_create(&context); -+ gallivm = gallivm_create("test_module", &context, NULL); - - test = add_printf_test(gallivm); - -@@ -112,7 +109,7 @@ test_printf(unsigned verbose, FILE *fp, - test_printf_func(0); - - gallivm_destroy(gallivm); -- LLVMContextDispose(context); -+ lp_context_destroy(&context); - - return success; - } -diff --git a/src/gallium/drivers/llvmpipe/lp_texture_handle.c b/src/gallium/drivers/llvmpipe/lp_texture_handle.c -index a2020276bdf..fac2a2be94e 100644 ---- a/src/gallium/drivers/llvmpipe/lp_texture_handle.c -+++ b/src/gallium/drivers/llvmpipe/lp_texture_handle.c -@@ -209,19 +209,19 @@ llvmpipe_sampler_matrix_destroy(struct llvmpipe_context *ctx) - - util_dynarray_fini(&ctx->sampler_matrix.gallivms); - -- if (ctx->sampler_matrix.context) -- LLVMContextDispose(ctx->sampler_matrix.context); -+ if (ctx->sampler_matrix.context.ref) -+ lp_context_destroy(&ctx->sampler_matrix.context); - } - --static LLVMContextRef -+static lp_context_ref * - get_llvm_context(struct llvmpipe_context *ctx) - { - struct lp_sampler_matrix *matrix = &ctx->sampler_matrix; - -- if (!matrix->context) -- matrix->context = LLVMContextCreate(); -+ if (!matrix->context.ref) -+ lp_context_create(&matrix->context); - -- return matrix->context; -+ return &matrix->context; - } - - static void * -diff --git a/src/gallium/drivers/llvmpipe/lp_texture_handle.h b/src/gallium/drivers/llvmpipe/lp_texture_handle.h -index 6259b517ddd..333bfd14eba 100644 ---- a/src/gallium/drivers/llvmpipe/lp_texture_handle.h -+++ b/src/gallium/drivers/llvmpipe/lp_texture_handle.h -@@ -52,7 +52,7 @@ struct lp_sampler_matrix { - struct llvmpipe_context *ctx; - - /* Use a separate LLVMContext since it is not thread safe but can be accessed by shaders. */ -- LLVMContextRef context; -+ lp_context_ref context; - - struct util_dynarray gallivms; - }; --- -2.46.0 - diff --git a/debian/patches/0005-gallivm-move-ppc-denorm-disable-to-inline.patch b/debian/patches/0005-gallivm-move-ppc-denorm-disable-to-inline.patch deleted file mode 100644 index 1fa7be227..000000000 --- a/debian/patches/0005-gallivm-move-ppc-denorm-disable-to-inline.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 18a926c9ca1ddac5dd224b5d7d75c65bc0dc6e21 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Fri, 21 Jun 2024 12:13:42 +1000 -Subject: [PATCH 05/26] gallivm: move ppc denorm disable to inline - -This just puts it out of the way - -Reviewed-By: Mike Blumenkrantz -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 22 +--------------- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 28 +++++++++++++++++++++ - 2 files changed, 29 insertions(+), 21 deletions(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 62d26141175..398ebe070ae 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -453,27 +453,7 @@ lp_build_init(void) - - lp_set_target_options(); - --#if DETECT_ARCH_PPC_64 -- /* Set the NJ bit in VSCR to 0 so denormalized values are handled as -- * specified by IEEE standard (PowerISA 2.06 - Section 6.3). This guarantees -- * that some rounding and half-float to float handling does not round -- * incorrectly to 0. -- * XXX: should eventually follow same logic on all platforms. -- * Right now denorms get explicitly disabled (but elsewhere) for x86, -- * whereas ppc64 explicitly enables them... -- */ -- if (util_get_cpu_caps()->has_altivec) { -- unsigned short mask[] = { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, -- 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF }; -- __asm ( -- "mfvscr %%v1\n" -- "vand %0,%%v1,%0\n" -- "mtvscr %0" -- : -- : "r" (*mask) -- ); -- } --#endif -+ lp_bld_ppc_disable_denorms(); - - gallivm_initialized = true; - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index f53702f17a1..d29837eeb0e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -32,6 +32,7 @@ - - #include "util/compiler.h" - #include "util/u_pointer.h" // for func_pointer -+#include "util/u_cpu_detect.h" - #include "lp_bld.h" - #include - -@@ -102,6 +103,33 @@ gallivm_jit_function(struct gallivm_state *gallivm, - unsigned gallivm_get_perf_flags(void); - - void lp_init_clock_hook(struct gallivm_state *gallivm); -+ -+static inline void -+lp_bld_ppc_disable_denorms(void) -+{ -+#if DETECT_ARCH_PPC_64 -+ /* Set the NJ bit in VSCR to 0 so denormalized values are handled as -+ * specified by IEEE standard (PowerISA 2.06 - Section 6.3). This guarantees -+ * that some rounding and half-float to float handling does not round -+ * incorrectly to 0. -+ * XXX: should eventually follow same logic on all platforms. -+ * Right now denorms get explicitly disabled (but elsewhere) for x86, -+ * whereas ppc64 explicitly enables them... -+ */ -+ if (util_get_cpu_caps()->has_altivec) { -+ unsigned short mask[] = { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, -+ 0xFFFF, 0xFFFF, 0xFFFE, 0xFFFF }; -+ __asm ( -+ "mfvscr %%v1\n" -+ "vand %0,%%v1,%0\n" -+ "mtvscr %0" -+ : -+ : "r" (*mask) -+ ); -+ } -+#endif -+} -+ - #ifdef __cplusplus - } - #endif --- -2.46.0 - diff --git a/debian/patches/0006-gallivm-split-some-code-out-from-init-module.patch b/debian/patches/0006-gallivm-split-some-code-out-from-init-module.patch deleted file mode 100644 index 7e28f53a3..000000000 --- a/debian/patches/0006-gallivm-split-some-code-out-from-init-module.patch +++ /dev/null @@ -1,304 +0,0 @@ -From 59671a7a7af5a465d9e0e5d72de184b018ddf59c Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Fri, 21 Jun 2024 13:13:18 +1000 -Subject: [PATCH 06/26] gallivm: split some code out from init module. - -In order to introduce orc some code should be split out where -it can be reused. - -Reviewed-By: Mike Blumenkrantz -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 87 +----------- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 2 + - .../auxiliary/gallivm/lp_bld_init_common.c | 127 ++++++++++++++++++ - src/gallium/auxiliary/meson.build | 1 + - 4 files changed, 131 insertions(+), 86 deletions(-) - create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init_common.c - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 398ebe070ae..c255696f72e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -56,40 +56,8 @@ - #include - #endif - --unsigned gallivm_perf = 0; -- --static const struct debug_named_value lp_bld_perf_flags[] = { -- { "brilinear", GALLIVM_PERF_BRILINEAR, "enable brilinear optimization" }, -- { "rho_approx", GALLIVM_PERF_RHO_APPROX, "enable rho_approx optimization" }, -- { "no_quad_lod", GALLIVM_PERF_NO_QUAD_LOD, "disable quad_lod optimization" }, -- { "no_aos_sampling", GALLIVM_PERF_NO_AOS_SAMPLING, "disable aos sampling optimization" }, -- { "nopt", GALLIVM_PERF_NO_OPT, "disable optimization passes to speed up shader compilation" }, -- DEBUG_NAMED_VALUE_END --}; -- --unsigned gallivm_debug = 0; -- --static const struct debug_named_value lp_bld_debug_flags[] = { -- { "tgsi", GALLIVM_DEBUG_TGSI, NULL }, -- { "ir", GALLIVM_DEBUG_IR, NULL }, -- { "asm", GALLIVM_DEBUG_ASM, NULL }, -- { "perf", GALLIVM_DEBUG_PERF, NULL }, -- { "gc", GALLIVM_DEBUG_GC, NULL }, --/* Don't allow setting DUMP_BC for release builds, since writing the files may be an issue with setuid. */ --#if MESA_DEBUG -- { "dumpbc", GALLIVM_DEBUG_DUMP_BC, NULL }, --#endif -- DEBUG_NAMED_VALUE_END --}; -- --DEBUG_GET_ONCE_FLAGS_OPTION(gallivm_debug, "GALLIVM_DEBUG", lp_bld_debug_flags, 0) -- -- - static bool gallivm_initialized = false; - --unsigned lp_native_vector_width; -- -- - /* - * Optimization values are: - * - 0: None (-O0) -@@ -420,19 +388,6 @@ fail: - return false; - } - --unsigned --lp_build_init_native_width(void) --{ -- // Default to 256 until we're confident llvmpipe with 512 is as correct and not slower than 256 -- lp_native_vector_width = MIN2(util_get_cpu_caps()->max_vector_bits, 256); -- assert(lp_native_vector_width); -- -- lp_native_vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", lp_native_vector_width); -- assert(lp_native_vector_width); -- -- return lp_native_vector_width; --} -- - bool - lp_build_init(void) - { -@@ -447,9 +402,7 @@ lp_build_init(void) - */ - LLVMLinkInMCJIT(); - -- gallivm_debug = debug_get_option_gallivm_debug(); -- -- gallivm_perf = debug_get_flags_option("GALLIVM_PERF", lp_bld_perf_flags, 0 ); -+ lp_init_env_options(); - - lp_set_target_options(); - -@@ -496,39 +449,6 @@ gallivm_destroy(struct gallivm_state *gallivm) - } - - --/** -- * Validate a function. -- * Verification is only done with debug builds. -- */ --void --gallivm_verify_function(struct gallivm_state *gallivm, -- LLVMValueRef func) --{ -- /* Verify the LLVM IR. If invalid, dump and abort */ --#if MESA_DEBUG -- if (LLVMVerifyFunction(func, LLVMPrintMessageAction)) { -- lp_debug_dump_value(func); -- assert(0); -- return; -- } --#endif -- -- if (gallivm_debug & GALLIVM_DEBUG_IR) { -- /* Print the LLVM IR to stderr */ -- lp_debug_dump_value(func); -- debug_printf("\n"); -- } --} -- --void lp_init_clock_hook(struct gallivm_state *gallivm) --{ -- if (gallivm->get_time_hook) -- return; -- -- LLVMTypeRef get_time_type = LLVMFunctionType(LLVMInt64TypeInContext(gallivm->context), NULL, 0, 1); -- gallivm->get_time_hook = LLVMAddFunction(gallivm->module, "get_time_hook", get_time_type); --} -- - /** - * Compile a module. - * This does IR optimization on all functions in the module. -@@ -722,8 +642,3 @@ gallivm_jit_function(struct gallivm_state *gallivm, - - return jit_func; - } -- --unsigned gallivm_get_perf_flags(void) --{ -- return gallivm_perf; --} -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index d29837eeb0e..d0a68eea475 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -104,6 +104,8 @@ unsigned gallivm_get_perf_flags(void); - - void lp_init_clock_hook(struct gallivm_state *gallivm); - -+void lp_init_env_options(void); -+ - static inline void - lp_bld_ppc_disable_denorms(void) - { -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_common.c b/src/gallium/auxiliary/gallivm/lp_bld_init_common.c -new file mode 100644 -index 00000000000..0ab69acd11c ---- /dev/null -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init_common.c -@@ -0,0 +1,127 @@ -+/************************************************************************** -+ * -+ * Copyright 2009 VMware, Inc. -+ * All Rights Reserved. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sub license, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial portions -+ * of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR -+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+ * -+ **************************************************************************/ -+ -+#include "util/u_debug.h" -+#include "util/u_cpu_detect.h" -+#include "lp_bld.h" -+#include "lp_bld_debug.h" -+#include "lp_bld_init.h" -+#include "lp_bld_type.h" -+ -+#include -+#include -+ -+unsigned gallivm_perf = 0; -+ -+static const struct debug_named_value lp_bld_perf_flags[] = { -+ { "brilinear", GALLIVM_PERF_BRILINEAR, "enable brilinear optimization" }, -+ { "rho_approx", GALLIVM_PERF_RHO_APPROX, "enable rho_approx optimization" }, -+ { "no_quad_lod", GALLIVM_PERF_NO_QUAD_LOD, "disable quad_lod optimization" }, -+ { "no_aos_sampling", GALLIVM_PERF_NO_AOS_SAMPLING, "disable aos sampling optimization" }, -+ { "nopt", GALLIVM_PERF_NO_OPT, "disable optimization passes to speed up shader compilation" }, -+ DEBUG_NAMED_VALUE_END -+}; -+ -+unsigned gallivm_debug = 0; -+ -+static const struct debug_named_value lp_bld_debug_flags[] = { -+ { "tgsi", GALLIVM_DEBUG_TGSI, NULL }, -+ { "ir", GALLIVM_DEBUG_IR, NULL }, -+ { "asm", GALLIVM_DEBUG_ASM, NULL }, -+ { "perf", GALLIVM_DEBUG_PERF, NULL }, -+ { "gc", GALLIVM_DEBUG_GC, NULL }, -+/* Don't allow setting DUMP_BC for release builds, since writing the files may be an issue with setuid. */ -+#if MESA_DEBUG -+ { "dumpbc", GALLIVM_DEBUG_DUMP_BC, NULL }, -+#endif -+ DEBUG_NAMED_VALUE_END -+}; -+ -+DEBUG_GET_ONCE_FLAGS_OPTION(gallivm_debug, "GALLIVM_DEBUG", lp_bld_debug_flags, 0) -+ -+unsigned lp_native_vector_width; -+ -+unsigned -+lp_build_init_native_width(void) -+{ -+ // Default to 256 until we're confident llvmpipe with 512 is as correct and not slower than 256 -+ lp_native_vector_width = MIN2(util_get_cpu_caps()->max_vector_bits, 256); -+ assert(lp_native_vector_width); -+ -+ lp_native_vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", lp_native_vector_width); -+ assert(lp_native_vector_width); -+ -+ return lp_native_vector_width; -+} -+ -+void -+lp_init_env_options(void) -+{ -+ gallivm_debug = debug_get_option_gallivm_debug(); -+ -+ gallivm_perf = debug_get_flags_option("GALLIVM_PERF", lp_bld_perf_flags, 0 ); -+} -+ -+unsigned -+gallivm_get_perf_flags(void) -+{ -+ return gallivm_perf; -+} -+ -+void -+lp_init_clock_hook(struct gallivm_state *gallivm) -+{ -+ if (gallivm->get_time_hook) -+ return; -+ -+ LLVMTypeRef get_time_type = LLVMFunctionType(LLVMInt64TypeInContext(gallivm->context), NULL, 0, 1); -+ gallivm->get_time_hook = LLVMAddFunction(gallivm->module, "get_time_hook", get_time_type); -+} -+ -+/** -+ * Validate a function. -+ * Verification is only done with debug builds. -+ */ -+void -+gallivm_verify_function(struct gallivm_state *gallivm, -+ LLVMValueRef func) -+{ -+ /* Verify the LLVM IR. If invalid, dump and abort */ -+#if MESA_DEBUG -+ if (LLVMVerifyFunction(func, LLVMPrintMessageAction)) { -+ lp_debug_dump_value(func); -+ assert(0); -+ return; -+ } -+#endif -+ -+ if (gallivm_debug & GALLIVM_DEBUG_IR) { -+ /* Print the LLVM IR to stderr */ -+ lp_debug_dump_value(func); -+ debug_printf("\n"); -+ } -+} -diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build -index 35ad5247b4c..a67f71ef35a 100644 ---- a/src/gallium/auxiliary/meson.build -+++ b/src/gallium/auxiliary/meson.build -@@ -347,6 +347,7 @@ if draw_with_llvm - 'gallivm/lp_bld_gather.h', - 'gallivm/lp_bld.h', - 'gallivm/lp_bld_init.c', -+ 'gallivm/lp_bld_init_common.c', - 'gallivm/lp_bld_init.h', - 'gallivm/lp_bld_intr.c', - 'gallivm/lp_bld_intr.h', --- -2.46.0 - diff --git a/debian/patches/0007-gallivm-make-lp_bld_coro.h-c-include-safe.patch b/debian/patches/0007-gallivm-make-lp_bld_coro.h-c-include-safe.patch deleted file mode 100644 index 92e85365a..000000000 --- a/debian/patches/0007-gallivm-make-lp_bld_coro.h-c-include-safe.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 5a89f0224d8dc7ce2be56dfe5ae65a49d34d0df2 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 24 Jun 2024 13:38:32 +1000 -Subject: [PATCH 07/26] gallivm: make lp_bld_coro.h c++ include safe. - -Reviewed-By: Mike Blumenkrantz -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_coro.h | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.h b/src/gallium/auxiliary/gallivm/lp_bld_coro.h -index 2fbaecc3152..5421d0926ca 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_coro.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.h -@@ -31,6 +31,10 @@ - #include "gallivm/lp_bld.h" - #include "gallivm/lp_bld_intr.h" - -+#ifdef __cplusplus -+extern "C" { -+#endif -+ - struct gallivm_state; - LLVMValueRef lp_build_coro_id(struct gallivm_state *gallivm); - -@@ -84,4 +88,8 @@ static inline void lp_build_coro_add_presplit(LLVMValueRef coro) - #endif - } - -+#ifdef __cplusplus -+} -+#endif -+ - #endif --- -2.46.0 - diff --git a/debian/patches/0008-gallivm-export-target-init-code-for-orc-jit-to-reuse.patch b/debian/patches/0008-gallivm-export-target-init-code-for-orc-jit-to-reuse.patch deleted file mode 100644 index fd0690a92..000000000 --- a/debian/patches/0008-gallivm-export-target-init-code-for-orc-jit-to-reuse.patch +++ /dev/null @@ -1,52 +0,0 @@ -From a455b83147d6fbd1a69f44fbb673281e92d49ca9 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 24 Jun 2024 13:38:55 +1000 -Subject: [PATCH 08/26] gallivm: export target init code for orc-jit to reuse - -It doesn't need the wrapper since it already has a singleton - -Reviewed-By: Mike Blumenkrantz -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 4 ++-- - src/gallium/auxiliary/gallivm/lp_bld_misc.h | 2 ++ - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index fa9b4b75fdb..fc8b374a98f 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -108,7 +108,7 @@ static LLVMEnsureMultithreaded lLVMEnsureMultithreaded; - - static once_flag init_native_targets_once_flag = ONCE_FLAG_INIT; - --static void init_native_targets() -+void lp_bld_init_native_targets() - { - // If we have a native target, initialize it to ensure it is linked in and - // usable by the JIT. -@@ -150,7 +150,7 @@ lp_set_target_options(void) - * LLVM targets should be initialized before the driver or gallium frontend tries - * to access the registry. - */ -- call_once(&init_native_targets_once_flag, init_native_targets); -+ call_once(&init_native_targets_once_flag, lp_bld_init_native_targets); - } - - extern "C" -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -index fa0ce90162e..3506a15d882 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -@@ -64,6 +64,8 @@ gallivm_dispose_target_library_info(LLVMTargetLibraryInfoRef library_info); - extern void - lp_set_target_options(void); - -+extern void -+lp_bld_init_native_targets(); - - extern int - lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, --- -2.46.0 - diff --git a/debian/patches/0009-gallivm-split-out-generating-LLVM-Mattrs.patch b/debian/patches/0009-gallivm-split-out-generating-LLVM-Mattrs.patch deleted file mode 100644 index c275af844..000000000 --- a/debian/patches/0009-gallivm-split-out-generating-LLVM-Mattrs.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 16a8eb1edf5158760081bc84537fabc606deac5a Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Mon, 24 Jun 2024 13:18:46 +1000 -Subject: [PATCH 09/26] gallivm: split out generating LLVM Mattrs - -This will be reused in the orc jit - -Reviewed-By: Mike Blumenkrantz -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 141 ++++++++++-------- - src/gallium/auxiliary/gallivm/lp_bld_misc.h | 7 + - 2 files changed, 84 insertions(+), 64 deletions(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index fc8b374a98f..f3c10652ed6 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -320,69 +320,9 @@ public: - - }; - --/** -- * Same as LLVMCreateJITCompilerForModule, but: -- * - allows using MCJIT and enabling AVX feature where available. -- * - set target options -- * -- * See also: -- * - llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp -- * - llvm/tools/lli/lli.cpp -- * - http://markmail.org/message/ttkuhvgj4cxxy2on#query:+page:1+mid:aju2dggerju3ivd3+state:results -- */ --extern "C" --LLVMBool --lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, -- lp_generated_code **OutCode, -- struct lp_cached_code *cache_out, -- LLVMModuleRef M, -- LLVMMCJITMemoryManagerRef CMM, -- unsigned OptLevel, -- char **OutError) -+void -+lp_build_fill_mattrs(std::vector &MAttrs) - { -- using namespace llvm; -- -- std::string Error; -- EngineBuilder builder(std::unique_ptr(unwrap(M))); -- -- /** -- * LLVM 3.1+ haven't more "extern unsigned llvm::StackAlignmentOverride" and -- * friends for configuring code generation options, like stack alignment. -- */ -- TargetOptions options; --#if DETECT_ARCH_X86 && LLVM_VERSION_MAJOR < 13 -- options.StackAlignmentOverride = 4; --#endif -- -- builder.setEngineKind(EngineKind::JIT) -- .setErrorStr(&Error) -- .setTargetOptions(options) --#if LLVM_VERSION_MAJOR >= 18 -- .setOptLevel((CodeGenOptLevel)OptLevel); --#else -- .setOptLevel((CodeGenOpt::Level)OptLevel); --#endif -- --#if DETECT_OS_WINDOWS -- /* -- * MCJIT works on Windows, but currently only through ELF object format. -- * -- * XXX: We could use `LLVM_HOST_TRIPLE "-elf"` but LLVM_HOST_TRIPLE has -- * different strings for MinGW/MSVC, so better play it safe and be -- * explicit. -- */ --# if DETECT_ARCH_X86_64 -- LLVMSetTarget(M, "x86_64-pc-win32-elf"); --# elif DETECT_ARCH_X86 -- LLVMSetTarget(M, "i686-pc-win32-elf"); --# elif DETECT_ARCH_AARCH64 -- LLVMSetTarget(M, "aarch64-pc-win32-elf"); --# else --# error Unsupported architecture for MCJIT on Windows. --# endif --#endif -- -- llvm::SmallVector MAttrs; - - #if DETECT_ARCH_ARM - /* llvm-3.3+ implements sys::getHostCPUFeatures for Arm, -@@ -466,9 +406,11 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, - /* MSA requires a 64-bit FPU register file */ - MAttrs.push_back("+fp64"); - #endif -+} - -- builder.setMAttrs(MAttrs); -- -+void -+lp_build_dump_mattrs(std::vector &MAttrs) -+{ - if (gallivm_debug & (GALLIVM_DEBUG_IR | GALLIVM_DEBUG_ASM | GALLIVM_DEBUG_DUMP_BC)) { - int n = MAttrs.size(); - if (n > 0) { -@@ -478,6 +420,77 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, - debug_printf("\n"); - } - } -+} -+ -+/** -+ * Same as LLVMCreateJITCompilerForModule, but: -+ * - allows using MCJIT and enabling AVX feature where available. -+ * - set target options -+ * -+ * See also: -+ * - llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp -+ * - llvm/tools/lli/lli.cpp -+ * - http://markmail.org/message/ttkuhvgj4cxxy2on#query:+page:1+mid:aju2dggerju3ivd3+state:results -+ */ -+extern "C" -+LLVMBool -+lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, -+ lp_generated_code **OutCode, -+ struct lp_cached_code *cache_out, -+ LLVMModuleRef M, -+ LLVMMCJITMemoryManagerRef CMM, -+ unsigned OptLevel, -+ char **OutError) -+{ -+ using namespace llvm; -+ -+ std::string Error; -+ EngineBuilder builder(std::unique_ptr(unwrap(M))); -+ -+ /** -+ * LLVM 3.1+ haven't more "extern unsigned llvm::StackAlignmentOverride" and -+ * friends for configuring code generation options, like stack alignment. -+ */ -+ TargetOptions options; -+#if DETECT_ARCH_X86 && LLVM_VERSION_MAJOR < 13 -+ options.StackAlignmentOverride = 4; -+#endif -+ -+ builder.setEngineKind(EngineKind::JIT) -+ .setErrorStr(&Error) -+ .setTargetOptions(options) -+#if LLVM_VERSION_MAJOR >= 18 -+ .setOptLevel((CodeGenOptLevel)OptLevel); -+#else -+ .setOptLevel((CodeGenOpt::Level)OptLevel); -+#endif -+ -+#if DETECT_OS_WINDOWS -+ /* -+ * MCJIT works on Windows, but currently only through ELF object format. -+ * -+ * XXX: We could use `LLVM_HOST_TRIPLE "-elf"` but LLVM_HOST_TRIPLE has -+ * different strings for MinGW/MSVC, so better play it safe and be -+ * explicit. -+ */ -+# if DETECT_ARCH_X86_64 -+ LLVMSetTarget(M, "x86_64-pc-win32-elf"); -+# elif DETECT_ARCH_X86 -+ LLVMSetTarget(M, "i686-pc-win32-elf"); -+# elif DETECT_ARCH_AARCH64 -+ LLVMSetTarget(M, "aarch64-pc-win32-elf"); -+# else -+# error Unsupported architecture for MCJIT on Windows. -+# endif -+#endif -+ -+ std::vector MAttrs; -+ -+ lp_build_fill_mattrs(MAttrs); -+ -+ builder.setMAttrs(MAttrs); -+ -+ lp_build_dump_mattrs(MAttrs); - - StringRef MCPU = llvm::sys::getHostCPUName(); - /* -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -index 3506a15d882..302f2d445da 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -@@ -97,6 +97,13 @@ lp_free_objcache(void *objcache); - void - lp_set_module_stack_alignment_override(LLVMModuleRef M, unsigned align); - #ifdef __cplusplus -+ -+void -+lp_build_fill_mattrs(std::vector &MAttrs); -+ -+void -+lp_build_dump_mattrs(std::vector &MAttrs); -+ - } - #endif - --- -2.46.0 - diff --git a/debian/patches/0010-gallivm-create-a-pass-manager-wrapper.patch b/debian/patches/0010-gallivm-create-a-pass-manager-wrapper.patch deleted file mode 100644 index 9861c94e7..000000000 --- a/debian/patches/0010-gallivm-create-a-pass-manager-wrapper.patch +++ /dev/null @@ -1,611 +0,0 @@ -From 98d7ef301fa42cce4881324289fd78b5a13dd855 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Thu, 20 Jun 2024 15:05:10 +1000 -Subject: [PATCH 10/26] gallivm: create a pass manager wrapper. - -With the introduction of the orc jit and looking at the mess that -is integrating with LLVM pass mgmt, encapsulate the passmgr -interactions in an internal abstraction so it can be shared, -and the compiler code isn't so messy to read. - -Acked-by: Konstantin Seurer -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld.h | 13 +- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 164 +----------- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 8 +- - .../auxiliary/gallivm/lp_bld_passmgr.c | 234 ++++++++++++++++++ - .../auxiliary/gallivm/lp_bld_passmgr.h | 55 ++++ - src/gallium/auxiliary/meson.build | 2 + - 6 files changed, 302 insertions(+), 174 deletions(-) - create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_passmgr.c - create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_passmgr.h - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld.h b/src/gallium/auxiliary/gallivm/lp_bld.h -index fd2a4943f56..24e64fec2bf 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld.h -@@ -83,19 +83,12 @@ - #define LLVMInsertBasicBlock ILLEGAL_LLVM_FUNCTION - #define LLVMCreateBuilder ILLEGAL_LLVM_FUNCTION - --#if LLVM_VERSION_MAJOR >= 15 --#define GALLIVM_HAVE_CORO 0 --#define GALLIVM_USE_NEW_PASS 1 --#elif LLVM_VERSION_MAJOR >= 8 --#define GALLIVM_HAVE_CORO 1 --#define GALLIVM_USE_NEW_PASS 0 -+#if LLVM_VERSION_MAJOR >= 8 -+#define GALLIVM_COROUTINES 1 - #else --#define GALLIVM_HAVE_CORO 0 --#define GALLIVM_USE_NEW_PASS 0 -+#define GALLIVM_COROUTINES 0 - #endif - --#define GALLIVM_COROUTINES (GALLIVM_HAVE_CORO || GALLIVM_USE_NEW_PASS) -- - /* LLVM is transitioning to "opaque pointers", and as such deprecates - * LLVMBuildGEP, LLVMBuildCall, LLVMBuildLoad, replacing them with - * LLVMBuildGEP2, LLVMBuildCall2, LLVMBuildLoad2 respectivelly. -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index c255696f72e..6326d0485b8 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -43,18 +43,6 @@ - #include - #include - #include --#if GALLIVM_USE_NEW_PASS == 1 --#include --#elif GALLIVM_HAVE_CORO == 1 --#include --#if LLVM_VERSION_MAJOR >= 7 --#include --#endif --#if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) --#include --#endif --#include --#endif - - static bool gallivm_initialized = false; - -@@ -83,23 +71,6 @@ enum LLVM_CodeGenOpt_Level { - static bool - create_pass_manager(struct gallivm_state *gallivm) - { --#if GALLIVM_USE_NEW_PASS == 0 -- assert(!gallivm->passmgr); -- assert(gallivm->target); -- -- gallivm->passmgr = LLVMCreateFunctionPassManagerForModule(gallivm->module); -- if (!gallivm->passmgr) -- return false; -- --#if GALLIVM_HAVE_CORO == 1 -- gallivm->cgpassmgr = LLVMCreatePassManager(); --#endif -- /* -- * TODO: some per module pass manager with IPO passes might be helpful - -- * the generated texture functions may benefit from inlining if they are -- * simple, or constant propagation into them, etc. -- */ -- - { - char *td_str; - // New ones from the Module. -@@ -108,58 +79,7 @@ create_pass_manager(struct gallivm_state *gallivm) - free(td_str); - } - --#if GALLIVM_HAVE_CORO == 1 --#if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) -- LLVMAddArgumentPromotionPass(gallivm->cgpassmgr); -- LLVMAddFunctionAttrsPass(gallivm->cgpassmgr); --#endif -- LLVMAddCoroEarlyPass(gallivm->cgpassmgr); -- LLVMAddCoroSplitPass(gallivm->cgpassmgr); -- LLVMAddCoroElidePass(gallivm->cgpassmgr); --#endif -- -- if ((gallivm_perf & GALLIVM_PERF_NO_OPT) == 0) { -- /* -- * TODO: Evaluate passes some more - keeping in mind -- * both quality of generated code and compile times. -- */ -- /* -- * NOTE: if you change this, don't forget to change the output -- * with GALLIVM_DEBUG_DUMP_BC in gallivm_compile_module. -- */ -- LLVMAddScalarReplAggregatesPass(gallivm->passmgr); -- LLVMAddEarlyCSEPass(gallivm->passmgr); -- LLVMAddCFGSimplificationPass(gallivm->passmgr); -- /* -- * FIXME: LICM is potentially quite useful. However, for some -- * rather crazy shaders the compile time can reach _hours_ per shader, -- * due to licm implying lcssa (since llvm 3.5), which can take forever. -- * Even for sane shaders, the cost of licm is rather high (and not just -- * due to lcssa, licm itself too), though mostly only in cases when it -- * can actually move things, so having to disable it is a pity. -- * LLVMAddLICMPass(gallivm->passmgr); -- */ -- LLVMAddReassociatePass(gallivm->passmgr); -- LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr); --#if LLVM_VERSION_MAJOR <= 11 -- LLVMAddConstantPropagationPass(gallivm->passmgr); --#else -- LLVMAddInstructionSimplifyPass(gallivm->passmgr); --#endif -- LLVMAddInstructionCombiningPass(gallivm->passmgr); -- LLVMAddGVNPass(gallivm->passmgr); -- } -- else { -- /* We need at least this pass to prevent the backends to fail in -- * unexpected ways. -- */ -- LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr); -- } --#if GALLIVM_HAVE_CORO == 1 -- LLVMAddCoroCleanupPass(gallivm->passmgr); --#endif --#endif -- return true; -+ return lp_passmgr_create(gallivm->module, &gallivm->passmgr); - } - - /** -@@ -169,17 +89,7 @@ create_pass_manager(struct gallivm_state *gallivm) - void - gallivm_free_ir(struct gallivm_state *gallivm) - { --#if GALLIVM_USE_NEW_PASS == 0 -- if (gallivm->passmgr) { -- LLVMDisposePassManager(gallivm->passmgr); -- } -- --#if GALLIVM_HAVE_CORO == 1 -- if (gallivm->cgpassmgr) { -- LLVMDisposePassManager(gallivm->cgpassmgr); -- } --#endif --#endif -+ lp_passmgr_dispose(gallivm->passmgr); - - if (gallivm->engine) { - /* This will already destroy any associated module */ -@@ -207,12 +117,7 @@ gallivm_free_ir(struct gallivm_state *gallivm) - gallivm->target = NULL; - gallivm->module = NULL; - gallivm->module_name = NULL; --#if GALLIVM_USE_NEW_PASS == 0 --#if GALLIVM_HAVE_CORO == 1 -- gallivm->cgpassmgr = NULL; --#endif - gallivm->passmgr = NULL; --#endif - gallivm->context = NULL; - gallivm->builder = NULL; - gallivm->cache = NULL; -@@ -456,8 +361,6 @@ gallivm_destroy(struct gallivm_state *gallivm) - void - gallivm_compile_module(struct gallivm_state *gallivm) - { -- int64_t time_begin = 0; -- - assert(!gallivm->compiled); - - if (gallivm->builder) { -@@ -492,65 +395,10 @@ gallivm_compile_module(struct gallivm_state *gallivm) - "[-mattr=<-mattr option(s)>]"); - } - -- if (gallivm_debug & GALLIVM_DEBUG_PERF) -- time_begin = os_time_get(); -- --#if GALLIVM_USE_NEW_PASS == 1 -- char passes[1024]; -- passes[0] = 0; -- -- /* -- * there should be some way to combine these two pass runs but I'm not seeing it, -- * at the time of writing. -- */ -- strcpy(passes, "default"); -- -- LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions(); -- LLVMRunPasses(gallivm->module, passes, LLVMGetExecutionEngineTargetMachine(gallivm->engine), opts); -- -- if (!(gallivm_perf & GALLIVM_PERF_NO_OPT)) --#if LLVM_VERSION_MAJOR >= 18 -- strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); --#else -- strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); --#endif -- else -- strcpy(passes, "mem2reg"); -- -- LLVMRunPasses(gallivm->module, passes, LLVMGetExecutionEngineTargetMachine(gallivm->engine), opts); -- LLVMDisposePassBuilderOptions(opts); --#else --#if GALLIVM_HAVE_CORO == 1 -- LLVMRunPassManager(gallivm->cgpassmgr, gallivm->module); --#endif -- /* Run optimization passes */ -- LLVMInitializeFunctionPassManager(gallivm->passmgr); -- LLVMValueRef func; -- func = LLVMGetFirstFunction(gallivm->module); -- while (func) { -- if (0) { -- debug_printf("optimizing func %s...\n", LLVMGetValueName(func)); -- } -- -- /* Disable frame pointer omission on debug/profile builds */ -- /* XXX: And workaround http://llvm.org/PR21435 */ --#if MESA_DEBUG || defined(PROFILE) || DETECT_ARCH_X86 || DETECT_ARCH_X86_64 -- LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim", "true"); -- LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim-non-leaf", "true"); --#endif -- -- LLVMRunFunctionPassManager(gallivm->passmgr, func); -- func = LLVMGetNextFunction(func); -- } -- LLVMFinalizeFunctionPassManager(gallivm->passmgr); --#endif -- if (gallivm_debug & GALLIVM_DEBUG_PERF) { -- int64_t time_end = os_time_get(); -- int time_msec = (int)((time_end - time_begin) / 1000); -- assert(gallivm->module_name); -- debug_printf("optimizing module %s took %d msec\n", -- gallivm->module_name, time_msec); -- } -+ lp_passmgr_run(gallivm->passmgr, -+ gallivm->module, -+ LLVMGetExecutionEngineTargetMachine(gallivm->engine), -+ gallivm->module_name); - - /* Setting the module's DataLayout to an empty string will cause the - * ExecutionEngine to copy to the DataLayout string from its target machine -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index d0a68eea475..4fb99ad8184 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -34,6 +34,7 @@ - #include "util/u_pointer.h" // for func_pointer - #include "util/u_cpu_detect.h" - #include "lp_bld.h" -+#include "lp_bld_passmgr.h" - #include - - #ifdef __cplusplus -@@ -47,12 +48,7 @@ struct gallivm_state - LLVMModuleRef module; - LLVMExecutionEngineRef engine; - LLVMTargetDataRef target; --#if GALLIVM_USE_NEW_PASS == 0 -- LLVMPassManagerRef passmgr; --#if GALLIVM_HAVE_CORO == 1 -- LLVMPassManagerRef cgpassmgr; --#endif --#endif -+ struct lp_passmgr *passmgr; - LLVMContextRef context; - LLVMBuilderRef builder; - LLVMMCJITMemoryManagerRef memorymgr; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_passmgr.c b/src/gallium/auxiliary/gallivm/lp_bld_passmgr.c -new file mode 100644 -index 00000000000..0fd61895d73 ---- /dev/null -+++ b/src/gallium/auxiliary/gallivm/lp_bld_passmgr.c -@@ -0,0 +1,234 @@ -+/************************************************************************** -+ * -+ * Copyright 2009 VMware, Inc. -+ * All Rights Reserved. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sub license, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial portions -+ * of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR -+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+ * -+ **************************************************************************/ -+ -+#include "util/u_debug.h" -+#include "util/os_time.h" -+#include "lp_bld_debug.h" -+#include "lp_bld_passmgr.h" -+#include "lp_bld_init.h" -+ -+#if LLVM_VERSION_MAJOR >= 15 -+#define HAVE_CORO 0 -+#define USE_NEW_PASS 1 -+#elif LLVM_VERSION_MAJOR >= 8 -+#define HAVE_CORO 1 -+#define USE_NEW_PASS 0 -+#else -+#define HAVE_CORO 0 -+#define USE_NEW_PASS 0 -+#endif -+ -+#if USE_NEW_PASS == 1 -+#include -+#elif HAVE_CORO == 1 -+#include -+#if LLVM_VERSION_MAJOR >= 7 -+#include -+#endif -+#if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) -+#include -+#endif -+#include -+#endif -+ -+#if USE_NEW_PASS == 0 -+struct lp_passmgr { -+ LLVMPassManagerRef passmgr; -+#if HAVE_CORO == 1 -+ LLVMPassManagerRef cgpassmgr; -+#endif -+}; -+#else -+struct lp_passmgr; -+#endif -+ -+bool -+lp_passmgr_create(LLVMModuleRef module, struct lp_passmgr **mgr_p) -+{ -+ void *mgr = NULL; -+#if USE_NEW_PASS == 0 -+ mgr = CALLOC_STRUCT(lp_passmgr); -+ if (!mgr) -+ return false; -+ -+ mgr->passmgr = LLVMCreateFunctionPassManagerForModule(module); -+ if (!mgr->passmgr) { -+ free(mgr); -+ return false; -+ } -+ -+#if HAVE_CORO == 1 -+ mgr->cgpassmgr = LLVMCreatePassManager(); -+#endif -+ /* -+ * TODO: some per module pass manager with IPO passes might be helpful - -+ * the generated texture functions may benefit from inlining if they are -+ * simple, or constant propagation into them, etc. -+ */ -+ -+#if HAVE_CORO == 1 -+#if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) -+ LLVMAddArgumentPromotionPass(mgr->cgpassmgr); -+ LLVMAddFunctionAttrsPass(mgr->cgpassmgr); -+#endif -+ LLVMAddCoroEarlyPass(mgr->cgpassmgr); -+ LLVMAddCoroSplitPass(mgr->cgpassmgr); -+ LLVMAddCoroElidePass(mgr->cgpassmgr); -+#endif -+ -+ if ((gallivm_perf & GALLIVM_PERF_NO_OPT) == 0) { -+ /* -+ * TODO: Evaluate passes some more - keeping in mind -+ * both quality of generated code and compile times. -+ */ -+ /* -+ * NOTE: if you change this, don't forget to change the output -+ * with GALLIVM_DEBUG_DUMP_BC in gallivm_compile_module. -+ */ -+ LLVMAddScalarReplAggregatesPass(mgr->passmgr); -+ LLVMAddEarlyCSEPass(mgr->passmgr); -+ LLVMAddCFGSimplificationPass(mgr->passmgr); -+ /* -+ * FIXME: LICM is potentially quite useful. However, for some -+ * rather crazy shaders the compile time can reach _hours_ per shader, -+ * due to licm implying lcssa (since llvm 3.5), which can take forever. -+ * Even for sane shaders, the cost of licm is rather high (and not just -+ * due to lcssa, licm itself too), though mostly only in cases when it -+ * can actually move things, so having to disable it is a pity. -+ * LLVMAddLICMPass(mgr->passmgr); -+ */ -+ LLVMAddReassociatePass(mgr->passmgr); -+ LLVMAddPromoteMemoryToRegisterPass(mgr->passmgr); -+#if LLVM_VERSION_MAJOR <= 11 -+ LLVMAddConstantPropagationPass(mgr->passmgr); -+#else -+ LLVMAddInstructionSimplifyPass(mgr->passmgr); -+#endif -+ LLVMAddInstructionCombiningPass(mgr->passmgr); -+ LLVMAddGVNPass(mgr->passmgr); -+ } -+ else { -+ /* We need at least this pass to prevent the backends to fail in -+ * unexpected ways. -+ */ -+ LLVMAddPromoteMemoryToRegisterPass(mgr->passmgr); -+ } -+#if HAVE_CORO == 1 -+ LLVMAddCoroCleanupPass(mgr->passmgr); -+#endif -+#endif -+ *mgr_p = mgr; -+ return true; -+} -+ -+void -+lp_passmgr_run(struct lp_passmgr *mgr, -+ LLVMModuleRef module, -+ LLVMTargetMachineRef tm, -+ const char *module_name) -+{ -+ int64_t time_begin; -+ -+ if (gallivm_debug & GALLIVM_DEBUG_PERF) -+ time_begin = os_time_get(); -+ -+#if USE_NEW_PASS == 1 -+ char passes[1024]; -+ passes[0] = 0; -+ -+ /* -+ * there should be some way to combine these two pass runs but I'm not seeing it, -+ * at the time of writing. -+ */ -+ strcpy(passes, "default"); -+ -+ LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions(); -+ LLVMRunPasses(module, passes, tm, opts); -+ -+ if (!(gallivm_perf & GALLIVM_PERF_NO_OPT)) -+#if LLVM_VERSION_MAJOR >= 18 -+ strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); -+#else -+ strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); -+#endif -+ else -+ strcpy(passes, "mem2reg"); -+ -+ LLVMRunPasses(module, passes, tm, opts); -+ LLVMDisposePassBuilderOptions(opts); -+#else -+#if HAVE_CORO == 1 -+ LLVMRunPassManager(mgr->cgpassmgr, module); -+#endif -+ /* Run optimization passes */ -+ LLVMInitializeFunctionPassManager(mgr->passmgr); -+ LLVMValueRef func; -+ func = LLVMGetFirstFunction(module); -+ while (func) { -+ if (0) { -+ debug_printf("optimizing func %s...\n", LLVMGetValueName(func)); -+ } -+ -+ /* Disable frame pointer omission on debug/profile builds */ -+ /* XXX: And workaround http://llvm.org/PR21435 */ -+#if MESA_DEBUG || defined(PROFILE) || DETECT_ARCH_X86 || DETECT_ARCH_X86_64 -+ LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim", "true"); -+ LLVMAddTargetDependentFunctionAttr(func, "no-frame-pointer-elim-non-leaf", "true"); -+#endif -+ -+ LLVMRunFunctionPassManager(mgr->passmgr, func); -+ func = LLVMGetNextFunction(func); -+ } -+ LLVMFinalizeFunctionPassManager(mgr->passmgr); -+#endif -+ if (gallivm_debug & GALLIVM_DEBUG_PERF) { -+ int64_t time_end = os_time_get(); -+ int time_msec = (int)((time_end - time_begin) / 1000); -+ assert(module_name); -+ debug_printf("optimizing module %s took %d msec\n", -+ module_name, time_msec); -+ } -+} -+ -+void -+lp_passmgr_dispose(struct lp_passmgr *mgr) -+{ -+#if USE_NEW_PASS == 0 -+ if (mgr->passmgr) { -+ LLVMDisposePassManager(mgr->passmgr); -+ mgr->passmgr = NULL; -+ } -+ -+#if HAVE_CORO == 1 -+ if (mgr->cgpassmgr) { -+ LLVMDisposePassManager(mgr->cgpassmgr); -+ mgr->cgpassmgr = NULL; -+ } -+#endif -+ FREE(mgr); -+#endif -+} -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_passmgr.h b/src/gallium/auxiliary/gallivm/lp_bld_passmgr.h -new file mode 100644 -index 00000000000..4ebf6149117 ---- /dev/null -+++ b/src/gallium/auxiliary/gallivm/lp_bld_passmgr.h -@@ -0,0 +1,55 @@ -+/************************************************************************** -+ * -+ * Copyright 2009 VMware, Inc. -+ * All Rights Reserved. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sub license, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial portions -+ * of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR -+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+ * -+ **************************************************************************/ -+ -+#ifndef LP_BLD_PASSMGR_H -+#define LP_BLD_PASSMGR_H -+ -+#include "lp_bld.h" -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+struct lp_passmgr; -+ -+/* -+ * mgr can be returned as NULL for modern pass mgr handling -+ * so use a bool to denote success/fail. -+ */ -+bool lp_passmgr_create(LLVMModuleRef module, struct lp_passmgr **mgr); -+void lp_passmgr_run(struct lp_passmgr *mgr, -+ LLVMModuleRef module, -+ LLVMTargetMachineRef tm, -+ const char *module_name); -+void lp_passmgr_dispose(struct lp_passmgr *mgr); -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif -diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build -index a67f71ef35a..0f23a7889db 100644 ---- a/src/gallium/auxiliary/meson.build -+++ b/src/gallium/auxiliary/meson.build -@@ -367,6 +367,8 @@ if draw_with_llvm - 'gallivm/lp_bld_nir_soa.c', - 'gallivm/lp_bld_pack.c', - 'gallivm/lp_bld_pack.h', -+ 'gallivm/lp_bld_passmgr.h', -+ 'gallivm/lp_bld_passmgr.c', - 'gallivm/lp_bld_printf.c', - 'gallivm/lp_bld_printf.h', - 'gallivm/lp_bld_quad.c', --- -2.46.0 - diff --git a/debian/patches/0011-llvmpipe-add-gallivm_add_global_mapping.patch b/debian/patches/0011-llvmpipe-add-gallivm_add_global_mapping.patch deleted file mode 100644 index 118945d47..000000000 --- a/debian/patches/0011-llvmpipe-add-gallivm_add_global_mapping.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 5cf6144b22aec8469b8bfa01175768b7baa6d721 Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Wed, 19 Jun 2024 16:22:13 +0800 -Subject: [PATCH 11/26] llvmpipe: add gallivm_add_global_mapping - -Reviewed-by: Dave Airlie -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_coro.c | 4 ++-- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 9 +++++++-- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 8 ++++++++ - 3 files changed, 17 insertions(+), 4 deletions(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.c b/src/gallium/auxiliary/gallivm/lp_bld_coro.c -index 75aaa7d2b84..c2d6cc11cc6 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_coro.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.c -@@ -165,8 +165,8 @@ void lp_build_coro_add_malloc_hooks(struct gallivm_state *gallivm) - - assert(gallivm->coro_malloc_hook); - assert(gallivm->coro_free_hook); -- LLVMAddGlobalMapping(gallivm->engine, gallivm->coro_malloc_hook, coro_malloc); -- LLVMAddGlobalMapping(gallivm->engine, gallivm->coro_free_hook, coro_free); -+ gallivm_add_global_mapping(gallivm, gallivm->coro_malloc_hook, coro_malloc); -+ gallivm_add_global_mapping(gallivm, gallivm->coro_free_hook, coro_free); - } - - void lp_build_coro_declare_malloc_hooks(struct gallivm_state *gallivm) -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 6326d0485b8..69de1ea8efa 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -353,6 +353,11 @@ gallivm_destroy(struct gallivm_state *gallivm) - FREE(gallivm); - } - -+void -+gallivm_add_global_mapping(struct gallivm_state *gallivm, LLVMValueRef sym, void* addr) -+{ -+ LLVMAddGlobalMapping(gallivm->engine, sym, addr); -+} - - /** - * Compile a module. -@@ -422,10 +427,10 @@ gallivm_compile_module(struct gallivm_state *gallivm) - ++gallivm->compiled; - - lp_init_printf_hook(gallivm); -- LLVMAddGlobalMapping(gallivm->engine, gallivm->debug_printf_hook, debug_printf); -+ gallivm_add_global_mapping(gallivm, gallivm->debug_printf_hook, debug_printf); - - lp_init_clock_hook(gallivm); -- LLVMAddGlobalMapping(gallivm->engine, gallivm->get_time_hook, os_time_get_nano); -+ gallivm_add_global_mapping(gallivm, gallivm->get_time_hook, os_time_get_nano); - - lp_build_coro_add_malloc_hooks(gallivm); - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index 4fb99ad8184..d1549ee71b8 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -90,6 +90,14 @@ gallivm_verify_function(struct gallivm_state *gallivm, - LLVMValueRef func); - - void -+gallivm_add_global_mapping(struct gallivm_state *gallivm, LLVMValueRef sym, void* addr); -+ -+/** -+ * for ORCJIT, after this function gets called, all access and modification to -+ * module and any structure associated to it should be avoided, -+ * as module has been moved into ORCJIT and may be recycled -+ */ -+void - gallivm_compile_module(struct gallivm_state *gallivm); - - func_pointer --- -2.46.0 - diff --git a/debian/patches/0012-llvmpipe-make-unnamed-global-have-internal-linkage.patch b/debian/patches/0012-llvmpipe-make-unnamed-global-have-internal-linkage.patch deleted file mode 100644 index dfbefc84c..000000000 --- a/debian/patches/0012-llvmpipe-make-unnamed-global-have-internal-linkage.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b50d25b435ad3045dd1ae8efb5ede338acce2829 Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Wed, 19 Jun 2024 16:22:45 +0800 -Subject: [PATCH 12/26] llvmpipe: make unnamed global have internal linkage - -Reviewed-by: Dave Airlie -Part-of: ---- - src/gallium/drivers/llvmpipe/lp_state_fs.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 0e1e6ebcaba..89b1b6816c0 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3306,6 +3306,7 @@ generate_fragment(struct llvmpipe_context *lp, - LLVMValueRef glob_sample_pos = - LLVMAddGlobal(gallivm->module, - LLVMArrayType(flt_type, key->coverage_samples * 2), ""); -+ LLVMSetLinkage(glob_sample_pos, LLVMInternalLinkage); - LLVMValueRef sample_pos_array; - - if (key->multisample && key->coverage_samples == 4) { --- -2.46.0 - diff --git a/debian/patches/0013-util-detect-RISC-V-architecture.patch b/debian/patches/0013-util-detect-RISC-V-architecture.patch deleted file mode 100644 index 8e9f1257b..000000000 --- a/debian/patches/0013-util-detect-RISC-V-architecture.patch +++ /dev/null @@ -1,51 +0,0 @@ -From dcc49942d672154bb70d1c7a05a281066bb71f57 Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Tue, 25 Jun 2024 13:44:40 +0800 -Subject: [PATCH 13/26] util: detect RISC-V architecture - ---- - src/util/detect_arch.h | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - -diff --git a/src/util/detect_arch.h b/src/util/detect_arch.h -index 83e4784465b..35385a02b49 100644 ---- a/src/util/detect_arch.h -+++ b/src/util/detect_arch.h -@@ -101,6 +101,17 @@ - #define DETECT_ARCH_HPPA 1 - #endif - -+#if defined(__riscv) -+#define DETECT_ARCH_RISCV 1 -+#if __riscv_xlen == 64 -+#define DETECT_ARCH_RISCV64 1 -+#elif __riscv_xlen == 32 -+#define DETECT_ARCH_RISCV32 1 -+#else -+#error "detect_arch: unknown target riscv xlen" -+#endif -+#endif -+ - #ifndef DETECT_ARCH_X86 - #define DETECT_ARCH_X86 0 - #endif -@@ -145,4 +156,16 @@ - #define DETECT_ARCH_HPPA 0 - #endif - -+#ifndef DETECT_ARCH_RISCV -+#define DETECT_ARCH_RISCV 0 -+#endif -+ -+#ifndef DETECT_ARCH_RISCV32 -+#define DETECT_ARCH_RISCV32 0 -+#endif -+ -+#ifndef DETECT_ARCH_RISCV64 -+#define DETECT_ARCH_RISCV64 0 -+#endif -+ - #endif /* UTIL_DETECT_ARCH_H_ */ --- -2.46.0 - diff --git a/debian/patches/0014-gallivm-add-riscv-support-to-the-mattrs-setting-code.patch b/debian/patches/0014-gallivm-add-riscv-support-to-the-mattrs-setting-code.patch deleted file mode 100644 index 87c46af0c..000000000 --- a/debian/patches/0014-gallivm-add-riscv-support-to-the-mattrs-setting-code.patch +++ /dev/null @@ -1,31 +0,0 @@ -From ca992e86e7ac182013d1f906b4aa0259a7d8e466 Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Tue, 25 Jun 2024 13:46:29 +0800 -Subject: [PATCH 14/26] gallivm: add riscv support to the mattrs setting code - ---- - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index f3c10652ed6..4a169c84b9e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -406,6 +406,14 @@ lp_build_fill_mattrs(std::vector &MAttrs) - /* MSA requires a 64-bit FPU register file */ - MAttrs.push_back("+fp64"); - #endif -+ -+#if DETECT_ARCH_RISCV64 == 1 -+ /* Before riscv is more matured and util_get_cpu_caps() is implemented, -+ * assume this for now since most of linux capable riscv machine are -+ * riscv64gc -+ */ -+ MAttrs = {"+m","+c","+a","+d","+f"}; -+#endif - } - - void --- -2.46.0 - diff --git a/debian/patches/0015-llvmpipe-add-function-name-to-gallivm_jit_function.patch b/debian/patches/0015-llvmpipe-add-function-name-to-gallivm_jit_function.patch deleted file mode 100644 index 4d5094660..000000000 --- a/debian/patches/0015-llvmpipe-add-function-name-to-gallivm_jit_function.patch +++ /dev/null @@ -1,544 +0,0 @@ -From 1b46e200ca1c40f94b94c0abeccf197b6924cfea Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Tue, 25 Jun 2024 13:47:28 +0800 -Subject: [PATCH 15/26] llvmpipe: add function name to gallivm_jit_function - ---- - src/gallium/auxiliary/draw/draw_llvm.c | 24 +++++++++++++++---- - src/gallium/auxiliary/draw/draw_llvm.h | 4 ++++ - src/gallium/auxiliary/gallivm/lp_bld_init.c | 2 +- - src/gallium/auxiliary/gallivm/lp_bld_init.h | 2 +- - src/gallium/drivers/llvmpipe/lp_state_cs.c | 7 +++++- - src/gallium/drivers/llvmpipe/lp_state_cs.h | 1 + - src/gallium/drivers/llvmpipe/lp_state_fs.c | 17 ++++++++++--- - src/gallium/drivers/llvmpipe/lp_state_fs.h | 2 ++ - .../llvmpipe/lp_state_fs_linear_llvm.c | 2 ++ - src/gallium/drivers/llvmpipe/lp_state_setup.c | 4 +++- - src/gallium/drivers/llvmpipe/lp_state_setup.h | 1 + - src/gallium/drivers/llvmpipe/lp_test_arit.c | 2 +- - src/gallium/drivers/llvmpipe/lp_test_blend.c | 2 +- - src/gallium/drivers/llvmpipe/lp_test_conv.c | 2 +- - src/gallium/drivers/llvmpipe/lp_test_format.c | 16 +++++++------ - src/gallium/drivers/llvmpipe/lp_test_printf.c | 2 +- - .../drivers/llvmpipe/lp_texture_handle.c | 11 +++++---- - 17 files changed, 74 insertions(+), 27 deletions(-) - -diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c -index 03bcfb1dc90..12c246aadc9 100644 ---- a/src/gallium/auxiliary/draw/draw_llvm.c -+++ b/src/gallium/auxiliary/draw/draw_llvm.c -@@ -525,7 +525,7 @@ draw_llvm_create_variant(struct draw_llvm *llvm, - gallivm_compile_module(variant->gallivm); - - variant->jit_func = (draw_jit_vert_func) -- gallivm_jit_function(variant->gallivm, variant->function); -+ gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); - - if (needs_caching) - llvm->draw->disk_cache_insert_shader(llvm->draw->disk_cache_cookie, -@@ -1628,6 +1628,8 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) - - variant_func = LLVMAddFunction(gallivm->module, func_name, func_type); - variant->function = variant_func; -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); - - LLVMSetFunctionCallConv(variant_func, LLVMCCallConv); - for (i = 0; i < num_arg_types; ++i) -@@ -2245,6 +2247,8 @@ draw_llvm_destroy_variant(struct draw_llvm_variant *variant) - variant->shader->variants_cached--; - list_del(&variant->list_item_global.list); - llvm->nr_variants--; -+ if(variant->function_name) -+ FREE(variant->function_name); - FREE(variant); - } - -@@ -2354,6 +2358,8 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, - variant_func = LLVMAddFunction(gallivm->module, func_name, func_type); - - variant->function = variant_func; -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); - - LLVMSetFunctionCallConv(variant_func, LLVMCCallConv); - -@@ -2532,7 +2538,7 @@ draw_gs_llvm_create_variant(struct draw_llvm *llvm, - gallivm_compile_module(variant->gallivm); - - variant->jit_func = (draw_gs_jit_func) -- gallivm_jit_function(variant->gallivm, variant->function); -+ gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); - - if (needs_caching) - llvm->draw->disk_cache_insert_shader(llvm->draw->disk_cache_cookie, -@@ -2565,6 +2571,8 @@ draw_gs_llvm_destroy_variant(struct draw_gs_llvm_variant *variant) - variant->shader->variants_cached--; - list_del(&variant->list_item_global.list); - llvm->nr_gs_variants--; -+ if(variant->function_name) -+ FREE(variant->function_name); - FREE(variant); - } - -@@ -2938,6 +2946,8 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, - variant_coro = LLVMAddFunction(gallivm->module, func_name_coro, coro_func_type); - - variant->function = variant_func; -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); - LLVMSetFunctionCallConv(variant_func, LLVMCCallConv); - - LLVMSetFunctionCallConv(variant_coro, LLVMCCallConv); -@@ -3188,7 +3198,7 @@ draw_tcs_llvm_create_variant(struct draw_llvm *llvm, - gallivm_compile_module(variant->gallivm); - - variant->jit_func = (draw_tcs_jit_func) -- gallivm_jit_function(variant->gallivm, variant->function); -+ gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); - - if (needs_caching) - llvm->draw->disk_cache_insert_shader(llvm->draw->disk_cache_cookie, -@@ -3221,6 +3231,8 @@ draw_tcs_llvm_destroy_variant(struct draw_tcs_llvm_variant *variant) - variant->shader->variants_cached--; - list_del(&variant->list_item_global.list); - llvm->nr_tcs_variants--; -+ if(variant->function_name) -+ FREE(variant->function_name); - FREE(variant); - } - -@@ -3503,6 +3515,8 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, - variant_func = LLVMAddFunction(gallivm->module, func_name, func_type); - - variant->function = variant_func; -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); - LLVMSetFunctionCallConv(variant_func, LLVMCCallConv); - - for (i = 0; i < ARRAY_SIZE(arg_types); ++i) -@@ -3710,7 +3724,7 @@ draw_tes_llvm_create_variant(struct draw_llvm *llvm, - gallivm_compile_module(variant->gallivm); - - variant->jit_func = (draw_tes_jit_func) -- gallivm_jit_function(variant->gallivm, variant->function); -+ gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); - - if (needs_caching) - llvm->draw->disk_cache_insert_shader(llvm->draw->disk_cache_cookie, -@@ -3743,6 +3757,8 @@ draw_tes_llvm_destroy_variant(struct draw_tes_llvm_variant *variant) - variant->shader->variants_cached--; - list_del(&variant->list_item_global.list); - llvm->nr_tes_variants--; -+ if(variant->function_name) -+ FREE(variant->function_name); - FREE(variant); - } - -diff --git a/src/gallium/auxiliary/draw/draw_llvm.h b/src/gallium/auxiliary/draw/draw_llvm.h -index c95ef4e0c2f..7be14520bcc 100644 ---- a/src/gallium/auxiliary/draw/draw_llvm.h -+++ b/src/gallium/auxiliary/draw/draw_llvm.h -@@ -398,6 +398,7 @@ struct draw_llvm_variant - LLVMTypeRef vertex_header_ptr_type; - - LLVMValueRef function; -+ char *function_name; - draw_jit_vert_func jit_func; - - struct llvm_vertex_shader *shader; -@@ -431,6 +432,7 @@ struct draw_gs_llvm_variant - LLVMValueRef io_ptr; - LLVMValueRef num_prims; - LLVMValueRef function; -+ char *function_name; - draw_gs_jit_func jit_func; - - struct llvm_geometry_shader *shader; -@@ -457,6 +459,7 @@ struct draw_tcs_llvm_variant - /* LLVMValueRef io_ptr; */ - LLVMValueRef num_prims; - LLVMValueRef function; -+ char *function_name; - draw_tcs_jit_func jit_func; - - struct llvm_tess_ctrl_shader *shader; -@@ -487,6 +490,7 @@ struct draw_tes_llvm_variant - LLVMValueRef io_ptr; - LLVMValueRef num_prims; - LLVMValueRef function; -+ char *function_name; - draw_tes_jit_func jit_func; - - struct llvm_tess_eval_shader *shader; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 69de1ea8efa..c7d55cce7d1 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -470,7 +470,7 @@ gallivm_compile_module(struct gallivm_state *gallivm) - - func_pointer - gallivm_jit_function(struct gallivm_state *gallivm, -- LLVMValueRef func) -+ LLVMValueRef func, const char *func_name) - { - void *code; - func_pointer jit_func; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index d1549ee71b8..651d667d2bb 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -102,7 +102,7 @@ gallivm_compile_module(struct gallivm_state *gallivm); - - func_pointer - gallivm_jit_function(struct gallivm_state *gallivm, -- LLVMValueRef func); -+ LLVMValueRef func, const char *func_name); - - unsigned gallivm_get_perf_flags(void); - -diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c -index d9e2a1b7788..d073228d173 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_cs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c -@@ -397,6 +397,9 @@ generate_compute(struct llvmpipe_context *lp, - lp_build_coro_add_presplit(coro); - - variant->function = function; -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); -+ - - for (i = 0; i < CS_ARG_MAX - !is_mesh; ++i) { - if (LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) { -@@ -1013,6 +1016,8 @@ llvmpipe_remove_cs_shader_variant(struct llvmpipe_context *lp, - lp->nr_cs_variants--; - lp->nr_cs_instrs -= variant->nr_instrs; - -+ if(variant->function_name) -+ FREE(variant->function_name); - FREE(variant); - } - -@@ -1274,7 +1279,7 @@ generate_variant(struct llvmpipe_context *lp, - variant->nr_instrs += lp_build_count_ir_module(variant->gallivm->module); - - variant->jit_function = (lp_jit_cs_func) -- gallivm_jit_function(variant->gallivm, variant->function); -+ gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); - - if (needs_caching) { - lp_disk_cache_insert_shader(screen, &cached, ir_sha1_cache_key); -diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.h b/src/gallium/drivers/llvmpipe/lp_state_cs.h -index 11d2e2cd825..1c7791d3937 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_cs.h -+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.h -@@ -91,6 +91,7 @@ struct lp_compute_shader_variant - LLVMTypeRef jit_vertex_header_ptr_type; - LLVMTypeRef jit_prim_type; - LLVMValueRef function; -+ char *function_name; - lp_jit_cs_func jit_function; - - /* Total number of LLVM instructions generated */ -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 89b1b6816c0..18256ff5a44 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3207,6 +3207,8 @@ generate_fragment(struct llvmpipe_context *lp, - LLVMSetFunctionCallConv(function, LLVMCCallConv); - - variant->function[partial_mask] = function; -+ variant->function_name[partial_mask] = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name[partial_mask], func_name); - - /* XXX: need to propagate noalias down into color param now we are - * passing a pointer-to-pointer? -@@ -3921,13 +3923,15 @@ generate_variant(struct llvmpipe_context *lp, - if (variant->function[RAST_EDGE_TEST]) { - variant->jit_function[RAST_EDGE_TEST] = (lp_jit_frag_func) - gallivm_jit_function(variant->gallivm, -- variant->function[RAST_EDGE_TEST]); -+ variant->function[RAST_EDGE_TEST], -+ variant->function_name[RAST_EDGE_TEST]); - } - - if (variant->function[RAST_WHOLE]) { - variant->jit_function[RAST_WHOLE] = (lp_jit_frag_func) - gallivm_jit_function(variant->gallivm, -- variant->function[RAST_WHOLE]); -+ variant->function[RAST_WHOLE], -+ variant->function_name[RAST_WHOLE]); - } else if (!variant->jit_function[RAST_WHOLE]) { - variant->jit_function[RAST_WHOLE] = (lp_jit_frag_func) - variant->jit_function[RAST_EDGE_TEST]; -@@ -3936,7 +3940,8 @@ generate_variant(struct llvmpipe_context *lp, - if (linear_pipeline) { - if (variant->linear_function) { - variant->jit_linear_llvm = (lp_jit_linear_llvm_func) -- gallivm_jit_function(variant->gallivm, variant->linear_function); -+ gallivm_jit_function(variant->gallivm, variant->linear_function, -+ variant->linear_function_name); - } - - /* -@@ -4112,6 +4117,12 @@ llvmpipe_destroy_shader_variant(struct llvmpipe_context *lp, - { - gallivm_destroy(variant->gallivm); - lp_fs_reference(lp, &variant->shader, NULL); -+ if (variant->function_name[RAST_EDGE_TEST]) -+ FREE(variant->function_name[RAST_EDGE_TEST]); -+ if (variant->function_name[RAST_WHOLE]) -+ FREE(variant->function_name[RAST_WHOLE]); -+ if (variant->linear_function_name) -+ FREE(variant->linear_function_name); - FREE(variant); - } - -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.h b/src/gallium/drivers/llvmpipe/lp_state_fs.h -index 195cdd5960b..2764d6c750f 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.h -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.h -@@ -168,6 +168,7 @@ struct lp_fragment_shader_variant - LLVMTypeRef jit_linear_textures_type; - - LLVMValueRef function[2]; // [RAST_WHOLE], [RAST_EDGE_TEST] -+ char *function_name[2]; - - lp_jit_frag_func jit_function[2]; // [RAST_WHOLE], [RAST_EDGE_TEST] - -@@ -177,6 +178,7 @@ struct lp_fragment_shader_variant - /* Functions within the linear path: - */ - LLVMValueRef linear_function; -+ char *linear_function_name; - lp_jit_linear_llvm_func jit_linear_llvm; - - /* Bitmask to say what cbufs are unswizzled */ -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c b/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -index c64f5cf2c34..70db126994d 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -@@ -289,6 +289,8 @@ llvmpipe_fs_variant_linear_llvm(struct llvmpipe_context *lp, - LLVMSetFunctionCallConv(function, LLVMCCallConv); - - variant->linear_function = function; -+ variant->linear_function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->linear_function_name, func_name); - - /* XXX: need to propagate noalias down into color param now we are - * passing a pointer-to-pointer? -diff --git a/src/gallium/drivers/llvmpipe/lp_state_setup.c b/src/gallium/drivers/llvmpipe/lp_state_setup.c -index d181a79557c..29d7935660f 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_setup.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_setup.c -@@ -688,6 +688,8 @@ generate_setup_variant(struct lp_setup_variant_key *key, - arg_types, ARRAY_SIZE(arg_types), 0); - - variant->function = LLVMAddFunction(gallivm->module, func_name, func_type); -+ variant->function_name = MALLOC(strlen(func_name)+1); -+ strcpy(variant->function_name, func_name); - if (!variant->function) - goto fail; - -@@ -732,7 +734,7 @@ generate_setup_variant(struct lp_setup_variant_key *key, - gallivm_compile_module(gallivm); - - variant->jit_function = (lp_jit_setup_triangle) -- gallivm_jit_function(gallivm, variant->function); -+ gallivm_jit_function(gallivm, variant->function, variant->function_name); - if (!variant->jit_function) - goto fail; - -diff --git a/src/gallium/drivers/llvmpipe/lp_state_setup.h b/src/gallium/drivers/llvmpipe/lp_state_setup.h -index ef208937396..5882ce187ec 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_setup.h -+++ b/src/gallium/drivers/llvmpipe/lp_state_setup.h -@@ -66,6 +66,7 @@ struct lp_setup_variant { - * assembly. - */ - LLVMValueRef function; -+ char *function_name; - - /* The actual generated setup function: - */ -diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c -index 7c5a2fb6ad9..032baa45485 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_arit.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c -@@ -440,7 +440,7 @@ test_unary(unsigned verbose, FILE *fp, const struct unary_test_t *test, unsigned - - gallivm_compile_module(gallivm); - -- test_func_jit = (unary_func_t) gallivm_jit_function(gallivm, test_func); -+ test_func_jit = (unary_func_t) gallivm_jit_function(gallivm, test_func, test_name); - - gallivm_free_ir(gallivm); - -diff --git a/src/gallium/drivers/llvmpipe/lp_test_blend.c b/src/gallium/drivers/llvmpipe/lp_test_blend.c -index d1bcdd11dc1..65f7625647a 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_blend.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_blend.c -@@ -458,7 +458,7 @@ test_one(unsigned verbose, - - gallivm_compile_module(gallivm); - -- blend_test_ptr = (blend_test_ptr_t)gallivm_jit_function(gallivm, func); -+ blend_test_ptr = (blend_test_ptr_t)gallivm_jit_function(gallivm, func, "test"); - - gallivm_free_ir(gallivm); - -diff --git a/src/gallium/drivers/llvmpipe/lp_test_conv.c b/src/gallium/drivers/llvmpipe/lp_test_conv.c -index 9bb7e0e9d77..ba0f96e6721 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_conv.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_conv.c -@@ -229,7 +229,7 @@ test_one(unsigned verbose, - - gallivm_compile_module(gallivm); - -- conv_test_ptr = (conv_test_ptr_t)gallivm_jit_function(gallivm, func); -+ conv_test_ptr = (conv_test_ptr_t)gallivm_jit_function(gallivm, func, "test"); - - gallivm_free_ir(gallivm); - -diff --git a/src/gallium/drivers/llvmpipe/lp_test_format.c b/src/gallium/drivers/llvmpipe/lp_test_format.c -index 250a74a935e..da17b95affc 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_format.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_format.c -@@ -79,9 +79,9 @@ static LLVMValueRef - add_fetch_rgba_test(struct gallivm_state *gallivm, unsigned verbose, - const struct util_format_description *desc, - struct lp_type type, -- unsigned use_cache) -+ unsigned use_cache, -+ char *name) - { -- char name[256]; - LLVMContextRef context = gallivm->context; - LLVMModuleRef module = gallivm->module; - LLVMBuilderRef builder = gallivm->builder; -@@ -96,7 +96,7 @@ add_fetch_rgba_test(struct gallivm_state *gallivm, unsigned verbose, - LLVMValueRef rgba; - LLVMValueRef cache = NULL; - -- snprintf(name, sizeof name, "fetch_%s_%s", desc->short_name, -+ snprintf(name, 64 * sizeof(char), "fetch_%s_%s", desc->short_name, - type.floating ? "float" : "unorm8"); - - args[0] = LLVMPointerType(lp_build_vec_type(gallivm, type), 0); -@@ -142,6 +142,7 @@ test_format_float(unsigned verbose, FILE *fp, - lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef fetch = NULL; -+ char fetch_name[64]; - fetch_ptr_t fetch_ptr; - alignas(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES]; - alignas(16) float unpacked[4]; -@@ -153,11 +154,11 @@ test_format_float(unsigned verbose, FILE *fp, - gallivm = gallivm_create("test_module_float", &context, NULL); - - fetch = add_fetch_rgba_test(gallivm, verbose, desc, -- lp_float32_vec4_type(), use_cache); -+ lp_float32_vec4_type(), use_cache, fetch_name); - - gallivm_compile_module(gallivm); - -- fetch_ptr = (fetch_ptr_t) gallivm_jit_function(gallivm, fetch); -+ fetch_ptr = (fetch_ptr_t) gallivm_jit_function(gallivm, fetch, fetch_name); - - gallivm_free_ir(gallivm); - -@@ -243,6 +244,7 @@ test_format_unorm8(unsigned verbose, FILE *fp, - lp_context_ref context; - struct gallivm_state *gallivm; - LLVMValueRef fetch = NULL; -+ char fetch_name[64]; - fetch_ptr_t fetch_ptr; - alignas(16) uint8_t packed[UTIL_FORMAT_MAX_PACKED_BYTES]; - uint8_t unpacked[4]; -@@ -254,11 +256,11 @@ test_format_unorm8(unsigned verbose, FILE *fp, - gallivm = gallivm_create("test_module_unorm8", &context, NULL); - - fetch = add_fetch_rgba_test(gallivm, verbose, desc, -- lp_unorm8_vec4_type(), use_cache); -+ lp_unorm8_vec4_type(), use_cache, fetch_name); - - gallivm_compile_module(gallivm); - -- fetch_ptr = (fetch_ptr_t) gallivm_jit_function(gallivm, fetch); -+ fetch_ptr = (fetch_ptr_t) gallivm_jit_function(gallivm, fetch, fetch_name); - - gallivm_free_ir(gallivm); - -diff --git a/src/gallium/drivers/llvmpipe/lp_test_printf.c b/src/gallium/drivers/llvmpipe/lp_test_printf.c -index 77b1f591d95..9e4c628e6c7 100644 ---- a/src/gallium/drivers/llvmpipe/lp_test_printf.c -+++ b/src/gallium/drivers/llvmpipe/lp_test_printf.c -@@ -102,7 +102,7 @@ test_printf(unsigned verbose, FILE *fp, - - gallivm_compile_module(gallivm); - -- test_printf_func = (test_printf_t) gallivm_jit_function(gallivm, test); -+ test_printf_func = (test_printf_t) gallivm_jit_function(gallivm, test, "test_printf"); - - gallivm_free_ir(gallivm); - -diff --git a/src/gallium/drivers/llvmpipe/lp_texture_handle.c b/src/gallium/drivers/llvmpipe/lp_texture_handle.c -index fac2a2be94e..b0c15997c24 100644 ---- a/src/gallium/drivers/llvmpipe/lp_texture_handle.c -+++ b/src/gallium/drivers/llvmpipe/lp_texture_handle.c -@@ -226,13 +226,14 @@ get_llvm_context(struct llvmpipe_context *ctx) - - static void * - compile_function(struct llvmpipe_context *ctx, struct gallivm_state *gallivm, LLVMValueRef function, -+ const char *func_name, - bool needs_caching, - uint8_t cache_key[SHA1_DIGEST_LENGTH]) - { - gallivm_verify_function(gallivm, function); - gallivm_compile_module(gallivm); - -- void *function_ptr = func_to_pointer(gallivm_jit_function(gallivm, function)); -+ void *function_ptr = func_to_pointer(gallivm_jit_function(gallivm, function, func_name)); - - if (needs_caching) - lp_disk_cache_insert_shader(llvmpipe_screen(ctx->pipe.screen), gallivm->cache, cache_key); -@@ -360,7 +361,7 @@ compile_image_function(struct llvmpipe_context *ctx, struct lp_static_texture_st - - free(image_soa); - -- return compile_function(ctx, gallivm, function, needs_caching, cache_key); -+ return compile_function(ctx, gallivm, function, "image", needs_caching, cache_key); - } - - static void * -@@ -508,7 +509,7 @@ compile_sample_function(struct llvmpipe_context *ctx, struct lp_static_texture_s - - free(sampler_soa); - -- return compile_function(ctx, gallivm, function, needs_caching, cache_key); -+ return compile_function(ctx, gallivm, function, "sample", needs_caching, cache_key); - } - - static uint64_t -@@ -660,7 +661,7 @@ compile_jit_sample_function(struct llvmpipe_context *ctx, uint32_t sample_key) - LLVMDisposeBuilder(gallivm->builder); - gallivm->builder = old_builder; - -- return compile_function(ctx, gallivm, function, needs_caching, cache_key); -+ return compile_function(ctx, gallivm, function, "sample", needs_caching, cache_key); - } - - static void * -@@ -742,7 +743,7 @@ compile_size_function(struct llvmpipe_context *ctx, struct lp_static_texture_sta - - free(sampler_soa); - -- return compile_function(ctx, gallivm, function, needs_caching, cache_key); -+ return compile_function(ctx, gallivm, function, "size", needs_caching, cache_key); - } - - static void --- -2.46.0 - diff --git a/debian/patches/0016-llvmpipe-tests-add-a-new-test-for-multiple-symbols-f.patch b/debian/patches/0016-llvmpipe-tests-add-a-new-test-for-multiple-symbols-f.patch deleted file mode 100644 index b9ffae2d8..000000000 --- a/debian/patches/0016-llvmpipe-tests-add-a-new-test-for-multiple-symbols-f.patch +++ /dev/null @@ -1,189 +0,0 @@ -From 64a68a96d9e01d90d3ad99b27fdc96fe2ecdca9e Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Tue, 25 Jun 2024 13:48:12 +0800 -Subject: [PATCH 16/26] llvmpipe/tests: add a new test for multiple symbols for - orc jit testing - ---- - .../llvmpipe/lp_test_lookup_multiple.c | 155 ++++++++++++++++++ - src/gallium/drivers/llvmpipe/meson.build | 2 +- - 2 files changed, 156 insertions(+), 1 deletion(-) - create mode 100644 src/gallium/drivers/llvmpipe/lp_test_lookup_multiple.c - -diff --git a/src/gallium/drivers/llvmpipe/lp_test_lookup_multiple.c b/src/gallium/drivers/llvmpipe/lp_test_lookup_multiple.c -new file mode 100644 -index 00000000000..02158598281 ---- /dev/null -+++ b/src/gallium/drivers/llvmpipe/lp_test_lookup_multiple.c -@@ -0,0 +1,155 @@ -+/************************************************************************** -+ * -+ * Copyright 2010 VMware, Inc. -+ * All Rights Reserved. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a -+ * copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sub license, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial portions -+ * of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR -+ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+ * -+ **************************************************************************/ -+ -+ -+#include -+#include -+ -+#include "util/u_pointer.h" -+#include "gallivm/lp_bld.h" -+#include "gallivm/lp_bld_init.h" -+#include "gallivm/lp_bld_assert.h" -+#include "gallivm/lp_bld_printf.h" -+ -+#include "lp_test.h" -+ -+ -+struct printf_test_case { -+ int foo; -+}; -+ -+void -+write_tsv_header(FILE *fp) -+{ -+ fprintf(fp, -+ "result\t" -+ "format\n"); -+ -+ fflush(fp); -+} -+ -+ -+ -+typedef void (*test_printf_t)(int i); -+ -+ -+static LLVMValueRef -+add_printf_test(struct gallivm_state *gallivm, int n, char *func_name) -+{ -+ LLVMModuleRef module = gallivm->module; -+ LLVMTypeRef args[1] = { LLVMIntTypeInContext(gallivm->context, 32) }; -+ snprintf(func_name, 64 * sizeof(char), "test_lookup_multiple_%d", n); -+ LLVMValueRef func = LLVMAddFunction(module, func_name, LLVMFunctionType(LLVMVoidTypeInContext(gallivm->context), args, 1, 0)); -+ LLVMBuilderRef builder = gallivm->builder; -+ LLVMBasicBlockRef block = LLVMAppendBasicBlockInContext(gallivm->context, func, "entry"); -+ -+ LLVMSetFunctionCallConv(func, LLVMCCallConv); -+ -+ LLVMPositionBuilderAtEnd(builder, block); -+ lp_build_printf(gallivm, "hello, world from "); -+ lp_build_printf(gallivm, func_name); -+ lp_build_printf(gallivm, "print 5 6: %d %d\n", LLVMConstInt(LLVMInt32TypeInContext(gallivm->context), 5, 0), -+ LLVMConstInt(LLVMInt32TypeInContext(gallivm->context), 6, 0)); -+ -+ /* Also test lp_build_assert(). This should not fail. */ -+ lp_build_assert(gallivm, LLVMConstInt(LLVMInt32TypeInContext(gallivm->context), 1, 0), "assert(1)"); -+ -+ LLVMBuildRetVoid(builder); -+ -+ gallivm_verify_function(gallivm, func); -+ -+ return func; -+} -+ -+ -+static bool -+test_lookup_multiple(unsigned verbose, FILE *fp, -+ const struct printf_test_case *testcase) -+{ -+ struct gallivm_state *gallivm; -+ const int N = 10; -+ LLVMValueRef *func = -+ (LLVMValueRef *) malloc(N * sizeof(LLVMValueRef)); -+ char func_name[N][64]; -+ test_printf_t *test_lookup_multiple_func = -+ (test_printf_t *)malloc(N * sizeof(test_printf_t)); -+ bool success = true; -+ int i; -+ -+ lp_context_ref context; -+ lp_context_create(&context); -+ -+ gallivm = gallivm_create("test_module", &context, NULL); -+ -+ for(i = 0; i < N; i++){ -+ func[i] = add_printf_test(gallivm, i, func_name[i]); -+ } -+ -+ gallivm_compile_module(gallivm); -+ -+ for(i = 0; i < N; i++){ -+ test_lookup_multiple_func[i] = (test_printf_t) gallivm_jit_function(gallivm, func[i], func_name[i]); -+ } -+ -+ gallivm_free_ir(gallivm); -+ -+ for(i = 0; i < N; i++){ -+ test_lookup_multiple_func[i](0); -+ } -+ FREE(func); -+ FREE(test_lookup_multiple_func); -+ gallivm_destroy(gallivm); -+ lp_context_destroy(&context); -+ return success; -+} -+ -+ -+bool -+test_all(unsigned verbose, FILE *fp) -+{ -+ bool success = true; -+ -+ test_lookup_multiple(verbose, fp, NULL); -+ -+ return success; -+} -+ -+ -+bool -+test_some(unsigned verbose, FILE *fp, -+ unsigned long n) -+{ -+ return test_all(verbose, fp); -+} -+ -+ -+bool -+test_single(unsigned verbose, FILE *fp) -+{ -+ printf("no test_single()"); -+ return true; -+} -diff --git a/src/gallium/drivers/llvmpipe/meson.build b/src/gallium/drivers/llvmpipe/meson.build -index 33e80cc38fa..6b851db34f7 100644 ---- a/src/gallium/drivers/llvmpipe/meson.build -+++ b/src/gallium/drivers/llvmpipe/meson.build -@@ -132,7 +132,7 @@ driver_swrast = declare_dependency( - - if with_tests and with_gallium_softpipe and draw_with_llvm - foreach t : ['lp_test_format', 'lp_test_arit', 'lp_test_blend', -- 'lp_test_conv', 'lp_test_printf'] -+ 'lp_test_conv', 'lp_test_printf', 'lp_test_lookup_multiple'] - test( - t, - executable( --- -2.46.0 - diff --git a/debian/patches/0017-llvmpipe-add-an-implementation-with-llvm-orcjit.patch b/debian/patches/0017-llvmpipe-add-an-implementation-with-llvm-orcjit.patch deleted file mode 100644 index a1b5bb95b..000000000 --- a/debian/patches/0017-llvmpipe-add-an-implementation-with-llvm-orcjit.patch +++ /dev/null @@ -1,3285 +0,0 @@ -From f41fdd85fb2f9a9c9a924f5d5cb895c30bcc72c1 Mon Sep 17 00:00:00 2001 -From: Yukari Chiba -Date: Tue, 25 Jun 2024 13:50:51 +0800 -Subject: [PATCH 17/26] llvmpipe: add an implementation with llvm orcjit - -Signed-off-by: Icenowy Zheng ---- - meson.build | 4 +- - meson.build.orig | 2437 +++++++++++++++++ - meson_options.txt | 7 + - src/gallium/auxiliary/gallivm/lp_bld.h | 20 + - src/gallium/auxiliary/gallivm/lp_bld_coro.c | 2 + - src/gallium/auxiliary/gallivm/lp_bld_init.h | 18 +- - .../auxiliary/gallivm/lp_bld_init_orc.cpp | 586 ++++ - src/gallium/auxiliary/meson.build | 6 +- - src/gallium/drivers/llvmpipe/lp_state_cs.c | 7 + - src/gallium/drivers/llvmpipe/lp_state_fs.c | 7 + - 10 files changed, 3089 insertions(+), 5 deletions(-) - create mode 100644 meson.build.orig - create mode 100644 src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp - -diff --git a/meson.build b/meson.build -index b4d5e2bc0dc..1e8a9081f27 100644 ---- a/meson.build -+++ b/meson.build -@@ -1749,13 +1749,14 @@ if with_clc - llvm_optional_modules += ['all-targets', 'windowsdriver', 'frontendhlsl', 'frontenddriver'] - endif - draw_with_llvm = get_option('draw-use-llvm') -+llvm_with_orcjit = get_option('llvm-orcjit') - if draw_with_llvm - llvm_modules += 'native' - # lto is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet - llvm_optional_modules += ['lto'] - endif - --if with_amd_vk or with_gallium_radeonsi or with_clc -+if with_amd_vk or with_gallium_radeonsi or with_clc or llvm_with_orcjit - _llvm_version = '>= 15.0.0' - elif with_gallium_opencl - _llvm_version = '>= 11.0.0' -@@ -1835,6 +1836,7 @@ else - endif - pre_args += '-DLLVM_AVAILABLE=' + (with_llvm ? '1' : '0') - pre_args += '-DDRAW_LLVM_AVAILABLE=' + (with_llvm and draw_with_llvm ? '1' : '0') -+pre_args += '-DGALLIVM_USE_ORCJIT=' + (with_llvm and llvm_with_orcjit ? '1' : '0') - - if with_clover_spirv or with_clc - chosen_llvm_version_array = dep_llvm.version().split('.') -diff --git a/meson.build.orig b/meson.build.orig -new file mode 100644 -index 00000000000..1f676a4f3fc ---- /dev/null -+++ b/meson.build.orig -@@ -0,0 +1,2437 @@ -+# Copyright © 2017-2020 Intel Corporation -+ -+# Permission is hereby granted, free of charge, to any person obtaining a copy -+# of this software and associated documentation files (the "Software"), to deal -+# in the Software without restriction, including without limitation the rights -+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -+# copies of the Software, and to permit persons to whom the Software is -+# furnished to do so, subject to the following conditions: -+ -+# The above copyright notice and this permission notice shall be included in -+# all copies or substantial portions of the Software. -+ -+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+# SOFTWARE. -+ -+project( -+ 'mesa', -+ ['c', 'cpp'], -+ version : files('VERSION'), -+ license : 'MIT', -+ meson_version : '>= 1.1.0', -+ default_options : [ -+ 'buildtype=debugoptimized', -+ 'b_ndebug=if-release', -+ 'c_std=c11', -+ 'cpp_std=c++17', -+ 'rust_std=2021', -+ 'build.rust_std=2021', -+ ], -+) -+ -+cc = meson.get_compiler('c') -+cpp = meson.get_compiler('cpp') -+ -+sizeof_pointer = cc.sizeof('void*').to_string() -+ -+null_dep = dependency('', required : false) -+ -+if get_option('layout') != 'mirror' -+ error('`mirror` is the only build directory layout supported') -+endif -+ -+with_mesa_debug = get_option('buildtype') == 'debug' -+ -+# This means the final value of b_ndebug==true -+with_mesa_ndebug = get_option('b_ndebug') == 'true' or (get_option('buildtype') == 'release' and get_option('b_ndebug') == 'if-release') -+ -+# Arguments for the preprocessor, put these in a separate array from the C and -+# C++ (cpp in meson terminology) arguments since they need to be added to the -+# default arguments for both C and C++. -+pre_args = [ -+ '-D__STDC_CONSTANT_MACROS', -+ '-D__STDC_FORMAT_MACROS', -+ '-D__STDC_LIMIT_MACROS', -+ '-DPACKAGE_VERSION="@0@"'.format(meson.project_version()), -+ '-DPACKAGE_BUGREPORT="https://gitlab.freedesktop.org/mesa/mesa/-/issues"', -+] -+# Arguments for c or cpp compiler, can be compiler options -+c_cpp_args = [] -+ -+c_args = [] -+cpp_args = [] -+ -+with_moltenvk_dir = get_option('moltenvk-dir') -+with_vulkan_icd_dir = get_option('vulkan-icd-dir') -+with_tests = get_option('build-tests') -+with_glcpp_tests = get_option('enable-glcpp-tests') -+with_aco_tests = get_option('build-aco-tests') -+with_glx_read_only_text = get_option('glx-read-only-text') -+with_glx_direct = get_option('glx-direct') -+with_osmesa = get_option('osmesa') -+with_vulkan_overlay_layer = get_option('vulkan-layers').contains('overlay') -+with_vulkan_device_select_layer = get_option('vulkan-layers').contains('device-select') -+with_tools = get_option('tools') -+if with_tools.contains('all') -+ with_tools = [ -+ 'drm-shim', -+ 'dlclose-skip', -+ 'etnaviv', -+ 'freedreno', -+ 'glsl', -+ 'intel', -+ 'intel-ui', -+ 'lima', -+ 'nir', -+ 'nouveau', -+ 'asahi', -+ 'imagination', -+ ] -+endif -+ -+with_any_vulkan_layers = get_option('vulkan-layers').length() != 0 -+with_intel_tools = with_tools.contains('intel') or with_tools.contains('intel-ui') -+with_imgui = with_intel_tools or with_vulkan_overlay_layer -+ -+dri_drivers_path = get_option('dri-drivers-path') -+if dri_drivers_path == '' -+ dri_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'dri') -+endif -+dri_search_path = get_option('dri-search-path') -+if dri_search_path == '' -+ dri_search_path = dri_drivers_path -+endif -+ -+gbm_backends_path = get_option('gbm-backends-path') -+if gbm_backends_path == '' -+ gbm_backends_path = join_paths(get_option('prefix'), get_option('libdir'), 'gbm') -+endif -+ -+# Default shared glapi disabled for windows, enabled elsewhere. -+with_shared_glapi = get_option('shared-glapi') \ -+ .disable_auto_if(host_machine.system() == 'windows') \ -+ .allowed() -+ -+with_opengl = get_option('opengl') -+ -+with_gles1 = get_option('gles1') \ -+ .require(with_shared_glapi, error_message : 'OpengGL ES 1.x requires shared-glapi') \ -+ .allowed() -+ -+with_gles2 = get_option('gles2') \ -+ .require(with_shared_glapi, error_message : 'OpengGL ES 2.x requires shared-glapi') \ -+ .allowed() -+ -+pre_args += '-DHAVE_OPENGL=@0@'.format(with_opengl ? '1' : '0') -+pre_args += '-DHAVE_OPENGL_ES_1=@0@'.format(with_gles1 ? '1' : '0') -+pre_args += '-DHAVE_OPENGL_ES_2=@0@'.format(with_gles2 ? '1' : '0') -+ -+with_any_opengl = with_opengl or with_gles1 or with_gles2 -+# Only build shared_glapi if at least one OpenGL API is enabled -+with_shared_glapi = with_shared_glapi and with_any_opengl -+ -+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system()) -+ -+gallium_drivers = get_option('gallium-drivers') -+if gallium_drivers.contains('auto') -+ if system_has_kms_drm -+ # TODO: Sparc -+ if ['x86', 'x86_64'].contains(host_machine.cpu_family()) -+ gallium_drivers = [ -+ 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'swrast', -+ 'iris', 'crocus', 'i915', 'zink', 'etnaviv' -+ ] -+ elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) -+ gallium_drivers = [ -+ 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', 'svga', -+ 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', 'iris', -+ 'zink', 'r300', 'r600', 'radeonsi', 'svga', 'asahi' -+ ] -+ elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) -+ gallium_drivers = [ -+ 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'swrast', 'iris', -+ 'zink', 'etnaviv' -+ ] -+ elif ['loongarch64'].contains(host_machine.cpu_family()) -+ gallium_drivers = [ -+ 'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'etnaviv', 'swrast', -+ 'iris', 'zink' -+ ] -+ else -+ error('Unknown architecture @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format( -+ host_machine.cpu_family())) -+ endif -+ elif ['windows'].contains(host_machine.system()) -+ gallium_drivers = ['swrast', 'zink', 'd3d12'] -+ elif ['darwin', 'cygwin', 'haiku'].contains(host_machine.system()) -+ gallium_drivers = ['swrast'] -+ else -+ error('Unknown OS @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format( -+ host_machine.system())) -+ endif -+elif gallium_drivers.contains('all') -+ # Build-test everything except for i915, which depends on libdrm-intel which -+ # is not available on non-Intel distros. -+ gallium_drivers = [ -+ 'r300', 'r600', 'radeonsi', 'crocus', 'v3d', 'vc4', 'freedreno', 'etnaviv', -+ 'nouveau', 'svga', 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', 'iris', -+ 'zink', 'd3d12', 'asahi' -+ ] -+endif -+ -+with_gallium_radeonsi = gallium_drivers.contains('radeonsi') -+with_gallium_r300 = gallium_drivers.contains('r300') -+with_gallium_r600 = gallium_drivers.contains('r600') -+with_gallium_nouveau = gallium_drivers.contains('nouveau') -+with_gallium_freedreno = gallium_drivers.contains('freedreno') -+with_gallium_softpipe = gallium_drivers.contains('swrast') -+with_gallium_vc4 = gallium_drivers.contains('vc4') -+with_gallium_v3d = gallium_drivers.contains('v3d') -+with_gallium_panfrost = gallium_drivers.contains('panfrost') -+with_gallium_etnaviv = gallium_drivers.contains('etnaviv') -+with_gallium_tegra = gallium_drivers.contains('tegra') -+with_gallium_crocus = gallium_drivers.contains('crocus') -+with_gallium_iris = gallium_drivers.contains('iris') -+with_gallium_i915 = gallium_drivers.contains('i915') -+with_gallium_svga = gallium_drivers.contains('svga') -+with_gallium_virgl = gallium_drivers.contains('virgl') -+with_gallium_lima = gallium_drivers.contains('lima') -+with_gallium_zink = gallium_drivers.contains('zink') -+with_gallium_d3d12 = gallium_drivers.contains('d3d12') -+with_gallium_asahi = gallium_drivers.contains('asahi') -+foreach gallium_driver : gallium_drivers -+ pre_args += '-DHAVE_@0@'.format(gallium_driver.to_upper()) -+endforeach -+ -+with_gallium = gallium_drivers.length() != 0 -+with_gallium_kmsro = system_has_kms_drm and [ -+ with_gallium_asahi, -+ with_gallium_etnaviv, -+ with_gallium_freedreno, -+ with_gallium_lima, -+ with_gallium_panfrost, -+ with_gallium_v3d, -+ with_gallium_vc4, -+].contains(true) -+ -+_vulkan_drivers = get_option('vulkan-drivers') -+if _vulkan_drivers.contains('auto') -+ if system_has_kms_drm -+ if host_machine.cpu_family().startswith('x86') -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'intel_hasvk', 'nouveau', 'swrast', 'virtio' -+ ] -+ elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) -+ _vulkan_drivers = [ -+ 'amd', 'broadcom', 'freedreno', 'intel', 'nouveau', 'panfrost', -+ 'swrast', 'virtio' -+ ] -+ elif ['mips', 'mips64', 'ppc', 'ppc64', 'riscv32', 'riscv64'].contains(host_machine.cpu_family()) -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'nouveau', 'swrast', 'virtio' -+ ] -+ elif ['loongarch64'].contains(host_machine.cpu_family()) -+ _vulkan_drivers = [ -+ 'amd', 'intel', 'nouveau', 'swrast', 'virtio' -+ ] -+ else -+ error('Unknown architecture @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format( -+ host_machine.cpu_family())) -+ endif -+ elif ['darwin', 'windows', 'cygwin', 'haiku'].contains(host_machine.system()) -+ # No vulkan driver supports windows or macOS currently -+ _vulkan_drivers = [] -+ else -+ error('Unknown OS @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format( -+ host_machine.system())) -+ endif -+elif _vulkan_drivers.contains('all') -+ # Build every vulkan driver regardless of architecture. -+ _vulkan_drivers = ['amd', 'intel', 'intel_hasvk', 'swrast', -+ 'freedreno', 'panfrost', 'virtio', 'broadcom', -+ 'imagination-experimental', 'microsoft-experimental', -+ 'nouveau'] -+endif -+ -+with_intel_vk = _vulkan_drivers.contains('intel') -+with_intel_hasvk = _vulkan_drivers.contains('intel_hasvk') -+with_amd_vk = _vulkan_drivers.contains('amd') -+with_freedreno_vk = _vulkan_drivers.contains('freedreno') -+with_panfrost_vk = _vulkan_drivers.contains('panfrost') -+with_swrast_vk = _vulkan_drivers.contains('swrast') -+with_virtio_vk = _vulkan_drivers.contains('virtio') -+with_broadcom_vk = _vulkan_drivers.contains('broadcom') -+with_imagination_vk = _vulkan_drivers.contains('imagination-experimental') -+with_imagination_srv = get_option('imagination-srv') -+with_microsoft_vk = _vulkan_drivers.contains('microsoft-experimental') -+with_nouveau_vk = _vulkan_drivers.contains('nouveau') -+with_any_vk = _vulkan_drivers.length() != 0 -+ -+if with_any_vk and host_machine.system() == 'windows' and meson.version().version_compare('< 1.3') -+ error('Vulkan drivers on Windows require meson 1.3 or newer') -+endif -+ -+freedreno_kmds = get_option('freedreno-kmds') -+if freedreno_kmds.length() != 0 and freedreno_kmds != [ 'msm' ] and with_freedreno_vk -+ if freedreno_kmds.contains('msm') -+ warning('Turnip with the DRM KMD will require libdrm to always be present at runtime which may not always be the case on platforms such as Android.') -+ elif with_gallium_kmsro -+ warning('As a side-effect, Turnip is forced to link with libdrm when built alongside Gallium DRM drivers which platforms such as Android may not have available at runtime.') -+ elif _vulkan_drivers != [ 'freedreno' ] -+ warning('Turnip is forced to link with libdrm when built alongside other Vulkan drivers which platforms such as Android may not have available at runtime.') -+ else -+ # If DRM support isn't needed, we can get rid of it since linking -+ # to libdrm can be a potential compatibility hazard. -+ system_has_kms_drm = false -+ endif -+endif -+ -+with_dri = false -+if with_gallium and system_has_kms_drm -+ _glx = get_option('glx') -+ _egl = get_option('egl') -+ if _glx == 'dri' or _egl.enabled() or (_glx == 'disabled' and _egl.allowed()) -+ with_dri = true -+ endif -+endif -+ -+with_any_broadcom = [ -+ with_gallium_vc4, -+ with_gallium_v3d, -+ with_broadcom_vk, -+].contains(true) -+ -+if get_option('intel-clc') != 'system' -+ # Require intel-clc with Anv & Iris (for internal shaders) -+ with_intel_clc = get_option('intel-clc') == 'enabled' or \ -+ with_intel_vk or with_gallium_iris -+else -+ with_intel_clc = false -+endif -+ -+with_intel_vk_rt = get_option('intel-rt') \ -+ .disable_auto_if(not with_intel_vk) \ -+ .disable_if(host_machine.cpu_family() != 'x86_64', error_message : 'Intel Ray Tracing is only supported on x86_64') \ -+ .allowed() -+ -+with_any_intel = [ -+ with_gallium_crocus, -+ with_gallium_i915, -+ with_gallium_iris, -+ with_intel_clc, -+ with_intel_hasvk, -+ with_intel_tools, -+ with_intel_vk, -+].contains(true) -+with_any_nouveau = with_gallium_nouveau or with_nouveau_vk -+ -+# needed in the loader -+if with_nouveau_vk -+ pre_args += '-DHAVE_NVK' -+endif -+ -+if with_swrast_vk and not with_gallium_softpipe -+ error('swrast vulkan requires gallium swrast') -+endif -+if with_gallium_tegra and not with_gallium_nouveau -+ error('tegra driver requires nouveau driver') -+endif -+if with_aco_tests and not with_amd_vk -+ error('ACO tests require Radv') -+endif -+ -+with_microsoft_clc = get_option('microsoft-clc').enabled() -+with_spirv_to_dxil = get_option('spirv-to-dxil') -+ -+if host_machine.system() == 'darwin' -+ with_dri_platform = 'apple' -+ pre_args += '-DBUILDING_MESA' -+elif ['windows', 'cygwin'].contains(host_machine.system()) -+ with_dri_platform = 'windows' -+elif system_has_kms_drm -+ with_dri_platform = 'drm' -+else -+ # FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should -+ # assert here that one of those cases has been met. -+ # FIXME: illumos ends up here as well -+ with_dri_platform = 'none' -+endif -+ -+with_vulkan_beta = get_option('vulkan-beta') -+if host_machine.system() == 'darwin' -+ #macOS seems to need beta extensions to build for now: -+ with_vulkan_beta = true -+endif -+if with_vulkan_beta -+ pre_args += '-DVK_ENABLE_BETA_EXTENSIONS' -+endif -+ -+_codecs = get_option('video-codecs') -+patent_codecs = ['vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc'] -+free_codecs = ['av1dec', 'av1enc', 'vp9dec'] -+all_codecs = patent_codecs + free_codecs -+ -+if _codecs.contains('all') -+ _codecs = all_codecs -+elif _codecs.contains('all_free') -+ selected_codecs = _codecs -+ _codecs = free_codecs -+ foreach c : patent_codecs -+ if selected_codecs.contains(c) -+ _codecs += c -+ endif -+ endforeach -+endif -+foreach c : all_codecs -+ pre_args += '-DVIDEO_CODEC_@0@=@1@'.format(c.to_upper(), _codecs.contains(c).to_int()) -+endforeach -+ -+_platforms = get_option('platforms') -+if _platforms.contains('auto') -+ if system_has_kms_drm -+ _platforms = ['x11', 'wayland'] -+ elif ['darwin', 'cygwin'].contains(host_machine.system()) -+ _platforms = ['x11'] -+ elif ['haiku'].contains(host_machine.system()) -+ _platforms = ['haiku'] -+ elif host_machine.system() == 'windows' -+ _platforms = ['windows'] -+ else -+ error('Unknown OS @0@. Please pass -Dplatforms to set platforms. Patches gladly accepted to fix this.'.format( -+ host_machine.system())) -+ endif -+endif -+ -+with_platform_android = _platforms.contains('android') -+with_platform_x11 = _platforms.contains('x11') -+with_platform_wayland = _platforms.contains('wayland') -+with_platform_haiku = _platforms.contains('haiku') -+with_platform_windows = _platforms.contains('windows') -+ -+with_glx = get_option('glx') -+if with_glx == 'auto' -+ if not with_opengl -+ with_glx = 'disabled' -+ elif with_platform_android -+ with_glx = 'disabled' -+ elif with_dri -+ with_glx = 'dri' -+ elif with_platform_haiku -+ with_glx = 'disabled' -+ elif host_machine.system() == 'windows' -+ with_glx = 'disabled' -+ elif with_gallium -+ # Even when building just gallium drivers the user probably wants dri -+ with_glx = 'dri' -+ elif with_platform_x11 and with_any_opengl and not with_any_vk -+ # The automatic behavior should not be to turn on xlib based glx when -+ # building only vulkan drivers -+ with_glx = 'xlib' -+ else -+ with_glx = 'disabled' -+ endif -+endif -+if with_glx == 'dri' -+ if with_gallium -+ with_dri = true -+ endif -+endif -+ -+if not with_opengl and with_glx != 'disabled' -+ error('Building GLX without OpenGL is not supported.') \ -+endif -+ -+if not (with_dri or with_gallium or with_glx != 'disabled') -+ with_gles1 = false -+ with_gles2 = false -+ with_opengl = false -+ with_any_opengl = false -+ with_shared_glapi = false -+endif -+ -+with_gbm = get_option('gbm') \ -+ .require(system_has_kms_drm, error_message : 'GBM only supports DRM/KMS platforms') \ -+ .disable_auto_if(not with_dri) \ -+ .allowed() -+ -+with_xlib_lease = get_option('xlib-lease') \ -+ .require(with_platform_x11 and (system_has_kms_drm or with_dri_platform == 'apple'), error_message : 'xlib-lease requires X11 and KMS/DRM support') \ -+ .allowed() -+ -+with_egl = get_option('egl') \ -+ .require(with_platform_windows or with_platform_haiku or with_dri or with_platform_android, error_message : 'EGL requires DRI, Haiku, Windows or Android') \ -+ .require(with_shared_glapi, error_message : 'EGL requires shared-glapi') \ -+ .require(with_glx != 'xlib', error_message :'EGL requires DRI, but GLX is being built with xlib support') \ -+ .disable_auto_if(with_platform_haiku) \ -+ .allowed() -+ -+if with_egl -+ _platforms += 'surfaceless' -+ if with_gbm and not with_platform_android -+ _platforms += 'drm' -+ endif -+ -+ egl_native_platform = get_option('egl-native-platform') -+ if egl_native_platform.contains('auto') -+ egl_native_platform = _platforms[0] -+ endif -+endif -+ -+if with_egl and not _platforms.contains(egl_native_platform) -+ error('-Degl-native-platform does not specify an enabled platform') -+endif -+ -+if 'x11' in _platforms -+ _platforms += 'xcb' -+endif -+ -+foreach platform : _platforms -+ pre_args += '-DHAVE_@0@_PLATFORM'.format(platform.to_upper()) -+endforeach -+ -+if with_platform_android and get_option('platform-sdk-version') >= 29 -+ # By default the NDK compiler, at least, emits emutls references instead of -+ # ELF TLS, even when building targeting newer API levels. Make it actually do -+ # ELF TLS instead. -+ c_cpp_args += '-fno-emulated-tls' -+endif -+ -+# -mtls-dialect=gnu2 speeds up non-initial-exec TLS significantly but requires -+# full toolchain (including libc) support. -+have_mtls_dialect = false -+foreach c_arg : get_option('c_args') -+ if c_arg.startswith('-mtls-dialect=') -+ have_mtls_dialect = true -+ break -+ endif -+endforeach -+if not have_mtls_dialect -+ # need .run to check libc support. meson aborts when calling .run when -+ # cross-compiling, but because this is just an optimization we can skip it -+ if meson.is_cross_build() and not meson.can_run_host_binaries() -+ warning('cannot auto-detect -mtls-dialect when cross-compiling, using compiler default') -+ else -+ # -fpic to force dynamic tls, otherwise TLS relaxation defeats check -+ gnu2_test = cc.run('int __thread x; int main() { return x; }', -+ args: ['-mtls-dialect=gnu2', '-fpic'], -+ name: '-mtls-dialect=gnu2') -+ if gnu2_test.returncode() == 0 and ( -+ # check for lld 13 bug: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5665 -+ host_machine.cpu_family() != 'x86_64' or -+ # get_linker_id misses LDFLAGS=-fuse-ld=lld: https://github.com/mesonbuild/meson/issues/6377 -+ #cc.get_linker_id() != 'ld.lld' or -+ cc.links('''int __thread x; int y; int main() { __asm__( -+ "leaq x@TLSDESC(%rip), %rax\n" -+ "movq y@GOTPCREL(%rip), %rdx\n" -+ "call *x@TLSCALL(%rax)\n"); }''', name: 'split TLSDESC') -+ ) -+ c_cpp_args += '-mtls-dialect=gnu2' -+ endif -+ endif -+endif -+ -+if with_glx != 'disabled' -+ if not (with_platform_x11 and with_any_opengl) -+ error('Cannot build GLX support without X11 platform support and at least one OpenGL API') -+ elif with_glx == 'xlib' -+ if not with_gallium -+ error('xlib based GLX requires at least one gallium driver') -+ elif not with_gallium_softpipe -+ error('xlib based GLX requires softpipe or llvmpipe.') -+ elif with_dri -+ error('xlib conflicts with any dri driver') -+ endif -+ elif with_glx == 'dri' -+ if not with_shared_glapi -+ error('dri based GLX requires shared-glapi') -+ endif -+ endif -+endif -+ -+_glvnd = get_option('glvnd') \ -+ .require(not with_platform_windows, -+ error_message: 'glvnd cannot be used on Windows') \ -+ .require(with_glx != 'xlib', -+ error_message: 'Cannot build glvnd support for GLX that is not DRI based.') \ -+ .require(with_glx != 'disabled' or with_egl, -+ error_message: 'glvnd requires DRI based GLX and/or EGL') \ -+ .require(get_option('egl-lib-suffix') == '', -+ error_message: '''EGL lib suffix can't be used with libglvnd''') -+dep_glvnd = dependency('libglvnd', version : '>= 1.3.2', required : _glvnd) -+with_glvnd = dep_glvnd.found() -+if with_glvnd -+ pre_args += '-DUSE_LIBGLVND=1' -+endif -+glvnd_vendor_name = get_option('glvnd-vendor-name') -+ -+if with_vulkan_icd_dir == '' -+ with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d') -+endif -+ -+# GNU/Hurd includes egl_dri2, without drm. -+with_dri2 = (with_dri or with_any_vk) and (with_dri_platform == 'drm' or with_dri_platform == 'apple' or -+ host_machine.system() == 'gnu') -+with_dri3 = get_option('dri3').disable_auto_if(not (system_has_kms_drm and with_dri2)).allowed() -+ -+if with_any_vk and (with_platform_x11 and not with_dri3) -+ error('Vulkan drivers require dri3 for X11 support') -+endif -+if with_dri -+ if with_glx == 'disabled' and not with_egl and not with_gbm -+ error('building dri drivers require at least one windowing system') -+ endif -+endif -+ -+if with_gallium_kmsro and (with_platform_x11 and not with_dri3) -+ error('kmsro requires dri3 for X11 support') -+endif -+ -+dep_dxheaders = null_dep -+if with_gallium_d3d12 or with_microsoft_clc or with_microsoft_vk -+ dep_dxheaders = dependency('directx-headers', required : false) -+ if not dep_dxheaders.found() -+ dep_dxheaders = dependency('DirectX-Headers', -+ version : '>= 1.613.0', -+ fallback : ['DirectX-Headers', 'dep_dxheaders'], -+ required : with_gallium_d3d12 or with_microsoft_vk -+ ) -+ endif -+endif -+ -+_with_gallium_d3d12_video = get_option('gallium-d3d12-video') -+with_gallium_d3d12_video = false -+if with_gallium_d3d12 and not _with_gallium_d3d12_video.disabled() -+ with_gallium_d3d12_video = true -+ pre_args += '-DHAVE_GALLIUM_D3D12_VIDEO' -+endif -+ -+_vdpau_drivers = [ -+ with_gallium_d3d12_video, -+ with_gallium_nouveau, -+ with_gallium_r600, -+ with_gallium_radeonsi, -+ with_gallium_virgl, -+] -+ -+vdpau = get_option('gallium-vdpau') \ -+ .require(system_has_kms_drm, error_message : 'VDPAU state tracker can only be build on unix-like OSes.') \ -+ .require(with_platform_x11, error_message : 'VDPAU state tracker requires X11 support.') \ -+ .require(_vdpau_drivers.contains(true), error_message : 'VDPAU state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau, d3d12 (with option gallium-d3d12-video, virgl).') -+ -+dep_vdpau = dependency('vdpau', version : '>= 1.5', required : vdpau) -+if dep_vdpau.found() -+ dep_vdpau = dep_vdpau.partial_dependency(compile_args : true) -+ pre_args += '-DHAVE_ST_VDPAU' -+endif -+with_gallium_vdpau = dep_vdpau.found() -+ -+vdpau_drivers_path = get_option('vdpau-libs-path') -+if vdpau_drivers_path == '' -+ vdpau_drivers_path = join_paths(get_option('libdir'), 'vdpau') -+endif -+ -+prog_glslang = find_program('glslangValidator', native : true, required : with_vulkan_overlay_layer or with_aco_tests or with_amd_vk or with_intel_vk) -+if prog_glslang.found() -+ if run_command(prog_glslang, [ '--quiet', '--version' ], check : false).returncode() == 0 -+ glslang_quiet = ['--quiet'] -+ else -+ glslang_quiet = [] -+ endif -+endif -+ -+dep_xv = null_dep -+_omx = get_option('gallium-omx') -+if not system_has_kms_drm -+ if ['auto', 'disabled'].contains(_omx) -+ _omx = 'disabled' -+ else -+ error('OMX state tracker can only be built on unix-like OSes.') -+ endif -+elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau) -+ if ['auto', 'disabled'].contains(_omx) -+ _omx = 'disabled' -+ else -+ error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.') -+ endif -+endif -+with_gallium_omx = _omx -+dep_omx = null_dep -+dep_omx_other = [] -+if ['auto', 'bellagio'].contains(_omx) -+ dep_omx = dependency( -+ 'libomxil-bellagio', required : _omx == 'bellagio' -+ ) -+ if dep_omx.found() -+ with_gallium_omx = 'bellagio' -+ endif -+endif -+if ['auto', 'tizonia'].contains(_omx) -+ if with_dri and with_egl -+ dep_omx = dependency( -+ 'libtizonia', version : '>= 0.10.0', -+ required : _omx == 'tizonia', -+ ) -+ dep_omx_other = [ -+ dependency('libtizplatform', required : _omx == 'tizonia'), -+ dependency('tizilheaders', required : _omx == 'tizonia'), -+ ] -+ if dep_omx.found() and dep_omx_other[0].found() and dep_omx_other[1].found() -+ with_gallium_omx = 'tizonia' -+ endif -+ elif _omx == 'tizonia' -+ error('OMX-Tizonia state tracker requires dri and egl') -+ endif -+endif -+if _omx == 'auto' -+ with_gallium_omx = 'disabled' -+else -+ with_gallium_omx = _omx -+endif -+ -+pre_args += [ -+ '-DENABLE_ST_OMX_BELLAGIO=' + (with_gallium_omx == 'bellagio' ? '1' : '0'), -+ '-DENABLE_ST_OMX_TIZONIA=' + (with_gallium_omx == 'tizonia' ? '1' : '0'), -+] -+ -+ -+omx_drivers_path = get_option('omx-libs-path') -+ -+if with_gallium_omx != 'disabled' -+ # Figure out where to put the omx driver. -+ # FIXME: this could all be vastly simplified by adding a 'defined_variable' -+ # argument to meson's get_variable method. -+ if omx_drivers_path == '' -+ _omx_libdir = dep_omx.get_variable(pkgconfig : 'libdir') -+ _omx_drivers_dir = dep_omx.get_variable(pkgconfig : 'pluginsdir') -+ if _omx_libdir == get_option('libdir') -+ omx_drivers_path = _omx_drivers_dir -+ else -+ _omx_base_dir = [] -+ # This will fail on windows. Does OMX run on windows? -+ _omx_libdir = _omx_libdir.split('/') -+ _omx_drivers_dir = _omx_drivers_dir.split('/') -+ foreach o : _omx_drivers_dir -+ if not _omx_libdir.contains(o) -+ _omx_base_dir += o -+ endif -+ endforeach -+ omx_drivers_path = join_paths(get_option('libdir'), _omx_base_dir) -+ endif -+ endif -+endif -+ -+_va_drivers = [ -+ with_gallium_d3d12_video, -+ with_gallium_nouveau, -+ with_gallium_r600, -+ with_gallium_radeonsi, -+ with_gallium_virgl, -+] -+ -+_va = get_option('gallium-va') \ -+ .require(_va_drivers.contains(true), -+ error_message : 'VA state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau, d3d12 (with option gallium-d3d12-video), virgl.') -+_dep_va_name = host_machine.system() == 'windows' ? 'libva-win32' : 'libva' -+dep_va = dependency(_dep_va_name, version : '>= 1.8.0', required : _va) -+if dep_va.found() -+ dep_va_headers = dep_va.partial_dependency(compile_args : true) -+ if cc.has_header_symbol('va/va.h', 'VASurfaceAttribDRMFormatModifiers', -+ dependencies: dep_va_headers) -+ pre_args += '-DHAVE_VA_SURFACE_ATTRIB_DRM_FORMAT_MODIFIERS' -+ endif -+endif -+with_gallium_va = dep_va.found() -+ -+va_drivers_path = get_option('va-libs-path') -+if va_drivers_path == '' -+ va_drivers_path = join_paths(get_option('libdir'), 'dri') -+endif -+ -+with_gallium_xa = get_option('gallium-xa') \ -+ .require(system_has_kms_drm, error_message : 'XA state tracker can only be built on unix-like OSes.') \ -+ .require(with_gallium_nouveau or with_gallium_freedreno or with_gallium_i915 or with_gallium_svga, -+ error_message : 'XA state tracker requires at least one of the following gallium drivers: nouveau, freedreno, i915, svga.') \ -+ .allowed() -+ -+d3d_drivers_path = get_option('d3d-drivers-path') -+if d3d_drivers_path == '' -+ d3d_drivers_path = join_paths(get_option('prefix'), get_option('libdir'), 'd3d') -+endif -+ -+with_gallium_st_nine = get_option('gallium-nine') -+if with_gallium_st_nine -+ if not with_gallium_softpipe -+ error('The nine state tracker requires gallium softpipe/llvmpipe.') -+ elif not [ -+ with_gallium_crocus, -+ with_gallium_freedreno, -+ with_gallium_i915, -+ with_gallium_iris, -+ with_gallium_nouveau, -+ with_gallium_panfrost, -+ with_gallium_r300, -+ with_gallium_r600, -+ with_gallium_radeonsi, -+ with_gallium_svga, -+ with_gallium_zink, -+ ].contains(true) -+ error('The nine state tracker requires at least one non-swrast gallium driver.') -+ endif -+ if not with_dri3 -+ error('Using nine with wine requires dri3') -+ endif -+endif -+with_gallium_st_d3d10umd = get_option('gallium-d3d10umd') -+if with_gallium_st_d3d10umd -+ if not with_gallium_softpipe -+ error('The d3d10umd state tracker requires gallium softpipe/llvmpipe.') -+ endif -+endif -+_power8 = get_option('power8') -+if _power8.allowed() -+ if host_machine.cpu_family() == 'ppc64' and host_machine.endian() == 'little' -+ if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8') -+ error('Altivec is not supported with gcc version < 4.8.') -+ endif -+ if cc.compiles(''' -+ #include -+ int main() { -+ vector unsigned char r; -+ vector unsigned int v = vec_splat_u32 (1); -+ r = __builtin_vec_vgbbd ((vector unsigned char) v); -+ return 0; -+ }''', -+ args : '-mpower8-vector', -+ name : 'POWER8 intrinsics') -+ pre_args += ['-D_ARCH_PWR8'] -+ c_cpp_args += '-mpower8-vector' -+ elif _power8.enabled() -+ error('POWER8 intrinsic support required but not found.') -+ endif -+ endif -+endif -+ -+if get_option('vmware-mks-stats') -+ if not with_gallium_svga -+ error('vmware-mks-stats requires gallium VMware/svga driver.') -+ endif -+ pre_args += '-DVMX86_STATS=1' -+endif -+ -+_opencl = get_option('gallium-opencl') -+_rtti = get_option('cpp_rtti') -+if _opencl != 'disabled' -+ if not with_gallium -+ error('OpenCL Clover implementation requires at least one gallium driver.') -+ endif -+ if not _rtti -+ error('The Clover OpenCL state tracker requires rtti') -+ endif -+ -+ with_gallium_opencl = true -+ with_opencl_icd = _opencl == 'icd' -+else -+ with_gallium_opencl = false -+ with_opencl_icd = false -+endif -+ -+with_gallium_rusticl = get_option('gallium-rusticl') -+if with_gallium_rusticl -+ if not with_gallium -+ error('rusticl requires at least one gallium driver.') -+ endif -+ -+ if meson.version().version_compare('< 1.3.1') -+ error('rusticl requires meson 1.3.1 or newer') -+ endif -+ -+ add_languages('rust', required: true) -+ rustc = meson.get_compiler('rust') -+endif -+ -+with_clover_spirv = with_gallium_opencl and get_option('opencl-spirv') -+with_clc = with_microsoft_clc or with_intel_clc or with_gallium_asahi or with_gallium_rusticl or with_clover_spirv -+ -+dep_clc = null_dep -+if with_gallium_opencl or with_clc -+ dep_clc = dependency('libclc') -+endif -+ -+gl_pkgconfig_c_flags = [] -+with_glx_indirect_rendering = false -+if with_platform_x11 -+ if with_glx == 'xlib' -+ pre_args += '-DUSE_XSHM' -+ else -+ with_glx_indirect_rendering = true -+ pre_args += '-DGLX_INDIRECT_RENDERING' -+ if with_glx_direct -+ pre_args += '-DGLX_DIRECT_RENDERING' -+ endif -+ if with_dri_platform == 'drm' -+ pre_args += '-DGLX_USE_DRM' -+ elif with_dri_platform == 'apple' -+ pre_args += '-DGLX_USE_APPLEGL' -+ # Check to see if more than just the default 'swrast' is required -+ if (not with_gallium_softpipe) or 1 < gallium_drivers.length() -+ # Switch the MacOS code from "forwarding to the OpenGL.framework" mode -+ # and into actual Gallium Driver mode -+ pre_args += '-DGLX_USE_APPLE' -+ endif -+ elif with_dri_platform == 'windows' -+ pre_args += '-DGLX_USE_WINDOWSGL' -+ endif -+ endif -+endif -+ -+with_glapi_export_proto_entry_points = false -+if with_shared_glapi and not with_glx_indirect_rendering -+ # Imply !defined(GLX_INDIRECT_RENDERING) -+ with_glapi_export_proto_entry_points = true -+endif -+pre_args += '-DGLAPI_EXPORT_PROTO_ENTRY_POINTS=@0@'.format(with_glapi_export_proto_entry_points ? '1' : '0') -+ -+with_android_stub = get_option('android-stub') -+if with_android_stub and not with_platform_android -+ error('`-D android-stub=true` makes no sense without `-D platforms=android`') -+endif -+ -+with_libbacktrace = get_option('android-libbacktrace') \ -+ .require(with_platform_android, error_message : '`-D android-libbacktrace=enabled` makes no sense without `-D platforms=android`') \ -+ .disable_auto_if(not with_platform_android) \ -+ .allowed() -+ -+if with_libbacktrace -+ cpp_args += '-DWITH_LIBBACKTRACE' -+endif -+ -+if with_platform_android -+ dep_android_mapper4 = null_dep -+ if not with_android_stub -+ dep_android = [ -+ dependency('cutils'), -+ dependency('hardware'), -+ dependency('sync'), -+ ] -+ if with_libbacktrace -+ dep_android += dependency('backtrace') -+ endif -+ if get_option('platform-sdk-version') >= 26 -+ dep_android += dependency('nativewindow') -+ endif -+ if get_option('platform-sdk-version') >= 30 -+ dep_android_mapper4 = dependency('android.hardware.graphics.mapper', version : '>= 4.0', required : false) -+ endif -+ endif -+ pre_args += '-DANDROID_API_LEVEL=' + get_option('platform-sdk-version').to_string() -+ if get_option('android-strict') -+ pre_args += '-DANDROID_STRICT' -+ endif -+endif -+ -+# On Android, seccomp kills the process on kernels without -+# CONFIG_KCMP/CONFIG_CHECKPOINT_RESTORE if it attemps to use KCMP. -+# Since we can't detect that, err on the side of caution and disable -+# KCMP by default on Android. -+if get_option('allow-kcmp') \ -+ .disable_auto_if(with_platform_android) \ -+ .allowed() -+ pre_args += '-DALLOW_KCMP' -+endif -+ -+prog_python = import('python').find_installation('python3') -+has_mako = run_command( -+ prog_python, '-c', -+ ''' -+try: -+ from packaging.version import Version -+except: -+ from distutils.version import StrictVersion as Version -+import mako -+assert Version(mako.__version__) >= Version("0.8.0") -+ ''', check: false) -+if has_mako.returncode() != 0 -+ error('Python (3.x) mako module >= 0.8.0 required to build mesa.') -+endif -+ -+if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.4.6') -+ error('When using GCC, version 4.4.6 or later is required.') -+endif -+ -+# Support systems without ETIME (e.g. FreeBSD) -+if cc.get_define('ETIME', prefix : '#include ') == '' -+ pre_args += '-DETIME=ETIMEDOUT' -+endif -+ -+# Define MESA_DEBUG to 1 for debug builds only (debugoptimized is not included on this one); -+# otherwise define MESA_DEBUG to 0 -+pre_args += '-DMESA_DEBUG=' + (with_mesa_debug ? '1' : '0') -+ -+with_split_debug = get_option('split-debug') \ -+ .disable_if(not cc.has_argument('-gsplit-dwarf'), -+ error_message : 'split-debug requires compiler -gsplit-dwarf support') \ -+ .disable_if(not cc.has_link_argument('-Wl,--gdb-index'), -+ error_message : 'split-debug requires the linker argument -Wl,--gdb-index') -+ -+if with_split_debug.allowed() and get_option('debug') -+ add_project_arguments('-gsplit-dwarf', language : ['c', 'cpp']) -+ add_project_link_arguments('-Wl,--gdb-index', language : ['c', 'cpp']) -+endif -+ -+with_shader_cache = get_option('shader-cache') \ -+ .require(host_machine.system() != 'windows', error_message : 'Shader Cache does not currently work on Windows') \ -+ .allowed() -+ -+if with_shader_cache -+ pre_args += '-DENABLE_SHADER_CACHE' -+ if not get_option('shader-cache-default') -+ pre_args += '-DSHADER_CACHE_DISABLE_BY_DEFAULT' -+ endif -+ -+ shader_cache_max_size = get_option('shader-cache-max-size') -+ if shader_cache_max_size != '' -+ pre_args += '-DMESA_SHADER_CACHE_MAX_SIZE="@0@"'.format(shader_cache_max_size) -+ endif -+endif -+ -+# Check for GCC style builtins -+foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs', -+ 'ffsll', 'popcount', 'popcountll', 'unreachable', 'types_compatible_p'] -+ if cc.has_function(b) -+ pre_args += '-DHAVE___BUILTIN_@0@'.format(b.to_upper()) -+ endif -+endforeach -+ -+# check for GCC __attribute__ -+_attributes = [ -+ 'const', 'flatten', 'malloc', 'pure', 'unused', 'warn_unused_result', -+ 'weak', 'format', 'packed', 'returns_nonnull', 'alias', 'noreturn', -+] -+foreach a : cc.get_supported_function_attributes(_attributes) -+ pre_args += '-DHAVE_FUNC_ATTRIBUTE_@0@'.format(a.to_upper()) -+endforeach -+if cc.has_function_attribute('visibility:hidden') -+ pre_args += '-DHAVE_FUNC_ATTRIBUTE_VISIBILITY' -+endif -+if cc.compiles('__uint128_t foo(void) { return 0; }', -+ name : '__uint128_t') -+ pre_args += '-DHAVE_UINT128' -+endif -+ -+if cc.has_function('reallocarray') -+ pre_args += '-DHAVE_REALLOCARRAY' -+endif -+if cc.has_function('fmemopen') -+ pre_args += '-DHAVE_FMEMOPEN' -+endif -+ -+# TODO: this is very incomplete -+if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system()) -+ pre_args += '-D_GNU_SOURCE' -+elif host_machine.system() == 'sunos' -+ pre_args += '-D__EXTENSIONS__' -+elif host_machine.system() == 'windows' -+ pre_args += [ -+ '-D_WINDOWS', '-D_WIN32_WINNT=0x0A00', '-DWINVER=0x0A00', -+ '-DPIPE_SUBSYSTEM_WINDOWS_USER', -+ '-D_USE_MATH_DEFINES', # XXX: scons didn't use this for mingw -+ ] -+ if cc.get_argument_syntax() == 'msvc' -+ pre_args += [ -+ '-DVC_EXTRALEAN', -+ '-D_CRT_SECURE_NO_WARNINGS', -+ '-D_CRT_SECURE_NO_DEPRECATE', -+ '-D_SCL_SECURE_NO_WARNINGS', -+ '-D_SCL_SECURE_NO_DEPRECATE', -+ '-D_ALLOW_KEYWORD_MACROS', -+ '-D_HAS_EXCEPTIONS=0', # Tell C++ STL to not use exceptions -+ '-DNOMINMAX', -+ ] -+ else -+ # When the target is not mingw/ucrt -+ # NOTE: clang's stddef.h are conflict with mingw/ucrt's stddef.h -+ # So do not include headers that defined in clang for detecting -+ # _UCRT -+ if cc.compiles(''' -+ #include -+ #if defined(__MINGW32__) && defined(_UCRT) -+ #error -+ #endif -+ int main(void) { return 0; }''') -+ pre_args += ['-D__MSVCRT_VERSION__=0x0700'] -+ endif -+ endif -+elif host_machine.system() == 'openbsd' -+ pre_args += '-D_ISOC11_SOURCE' -+endif -+ -+# Check for generic C arguments -+c_msvc_compat_args = [] -+no_override_init_args = [] -+cpp_msvc_compat_args = [] -+ld_args_gc_sections = [] -+if cc.get_argument_syntax() == 'msvc' -+ _trial = [ -+ '/wd4018', # signed/unsigned mismatch -+ '/wd4056', # overflow in floating-point constant arithmetic -+ '/wd4244', # conversion from 'type1' to 'type2', possible loss of data -+ '/wd4267', # 'var' : conversion from 'size_t' to 'type', possible loss of data -+ '/wd4305', # truncation from 'type1' to 'type2' -+ '/wd4351', # new behavior: elements of array 'array' will be default initialized -+ '/wd4756', # overflow in constant arithmetic -+ '/wd4800', # forcing value to bool 'true' or 'false' (performance warning) -+ '/wd4996', # disabled deprecated POSIX name warnings -+ '/wd4291', # no matching operator delete found -+ '/wd4146', # unary minus operator applied to unsigned type, result still unsigned -+ '/wd4200', # nonstandard extension used: zero-sized array in struct/union -+ '/wd4624', # destructor was implicitly defined as deleted [from LLVM] -+ '/wd4309', # 'initializing': truncation of constant value -+ '/wd4838', # conversion from 'int' to 'const char' requires a narrowing conversion -+ '/wd5105', # macro expansion producing 'defined' has undefined behavior (winbase.h, need Windows SDK upgrade) -+ '/we4020', # Error when passing the wrong number of parameters -+ '/we4024', # Error when passing different type of parameter -+ '/we4189', # 'identifier' : local variable is initialized but not referenced -+ '/Zc:__cplusplus', #Set __cplusplus macro to match the /std:c++ on the command line -+ ] -+ c_args += cc.get_supported_arguments(_trial) -+ cpp_args += cpp.get_supported_arguments(_trial) -+else -+ _trial_c = [ -+ '-Werror=implicit-function-declaration', -+ '-Werror=missing-prototypes', -+ '-Werror=return-type', -+ '-Werror=empty-body', -+ '-Werror=incompatible-pointer-types', -+ '-Werror=int-conversion', -+ '-Wimplicit-fallthrough', -+ '-Wmisleading-indentation', -+ '-Wno-missing-field-initializers', -+ '-Wno-format-truncation', -+ '-Wno-nonnull-compare', -+ '-fno-math-errno', -+ '-fno-trapping-math', -+ '-Qunused-arguments', -+ '-fno-common', -+ '-Wno-unknown-pragmas', -+ # Clang -+ '-Wno-microsoft-enum-value', -+ '-Wno-unused-function', -+ ] -+ _trial_cpp = [ -+ '-Werror=return-type', -+ '-Werror=empty-body', -+ '-Wmisleading-indentation', -+ '-Wno-non-virtual-dtor', -+ '-Wno-missing-field-initializers', -+ '-Wno-format-truncation', -+ '-fno-math-errno', -+ '-fno-trapping-math', -+ '-Qunused-arguments', -+ # Some classes use custom new operator which zeroes memory, however -+ # gcc does aggressive dead-store elimination which threats all writes -+ # to the memory before the constructor as "dead stores". -+ # For now we disable this optimization. -+ '-flifetime-dse=1', -+ '-Wno-unknown-pragmas', -+ # Clang -+ '-Wno-microsoft-enum-value', -+ ] -+ -+ # MinGW chokes on format specifiers and I can't get it all working -+ if not (cc.get_argument_syntax() == 'gcc' and host_machine.system() == 'windows') -+ _trial_c += ['-Werror=format', '-Wformat-security'] -+ _trial_cpp += ['-Werror=format', '-Wformat-security'] -+ endif -+ -+ # FreeBSD annotated but Mesa isn't ready -+ if not (cc.get_id() == 'clang' and host_machine.system() == 'freebsd') -+ _trial_c += ['-Werror=thread-safety'] -+ endif -+ -+ # If the compiler supports it, put function and data symbols in their -+ # own sections and GC the sections after linking. This lets drivers -+ # drop shared code unused by that specific driver (particularly -+ # relevant for Vulkan drivers). -+ if cc.links('static char unused() { return 5; } int main() { return 0; }', -+ args : '-Wl,--gc-sections', name : 'gc-sections') -+ ld_args_gc_sections += '-Wl,--gc-sections' -+ _trial_c += ['-ffunction-sections', '-fdata-sections'] -+ _trial_cpp += ['-ffunction-sections', '-fdata-sections'] -+ endif -+ -+ # Variables that are only used for assertions are considered unused when assertions -+ # are disabled. Don't treat this as an error, since we build with -Werror even if -+ # assertions are disabled. -+ if with_mesa_ndebug -+ _trial_c += ['-Wno-unused-variable', '-Wno-unused-but-set-variable', '/wd4189'] -+ _trial_cpp += ['-Wno-unused-variable', '-Wno-unused-but-set-variable', '/wd4189'] -+ endif -+ -+ c_args += cc.get_supported_arguments(_trial_c) -+ cpp_args += cpp.get_supported_arguments(_trial_cpp) -+ -+ no_override_init_args += cc.get_supported_arguments( -+ ['-Wno-override-init', '-Wno-initializer-overrides'] -+ ) -+ -+ # Check for C and C++ arguments for MSVC compatibility. These are only used -+ # in parts of the mesa code base that need to compile with MSVC, mainly -+ # common code -+ _trial_msvc = ['-Werror=pointer-arith', '-Werror=vla', '-Werror=gnu-empty-initializer'] -+ c_msvc_compat_args += cc.get_supported_arguments(_trial_msvc) -+ cpp_msvc_compat_args += cpp.get_supported_arguments(_trial_msvc) -+endif -+ -+# set linker arguments -+if host_machine.system() == 'windows' -+ if cc.get_argument_syntax() == 'msvc' -+ add_project_link_arguments( -+ '/fixed:no', -+ '/dynamicbase', -+ '/nxcompat', -+ language : ['c', 'cpp'], -+ ) -+ if get_option('buildtype') != 'debug' -+ add_project_link_arguments( -+ '/incremental:no', -+ language : ['c', 'cpp'], -+ ) -+ endif -+ else -+ add_project_link_arguments( -+ cc.get_supported_link_arguments( -+ '-Wl,--nxcompat', -+ '-Wl,--dynamicbase', -+ '-static-libgcc', -+ '-static-libstdc++', -+ ), -+ language : ['c'], -+ ) -+ add_project_link_arguments( -+ cpp.get_supported_link_arguments( -+ '-Wl,--nxcompat', -+ '-Wl,--dynamicbase', -+ '-static-libgcc', -+ '-static-libstdc++', -+ ), -+ language : ['cpp'], -+ ) -+ endif -+endif -+ -+sse2_arg = [] -+sse2_args = [] -+sse41_args = [] -+with_sse41 = false -+if host_machine.cpu_family().startswith('x86') -+ pre_args += '-DUSE_SSE41' -+ with_sse41 = true -+ -+ if cc.get_id() != 'msvc' -+ sse41_args = ['-msse4.1'] -+ -+ if host_machine.cpu_family() == 'x86' -+ # x86_64 have sse2 by default, so sse2 args only for x86 -+ sse2_arg = ['-msse2', '-mfpmath=sse'] -+ sse2_args = [sse2_arg, '-mstackrealign'] -+ if get_option('sse2') -+ # These settings make generated GCC code match MSVC and follow -+ # GCC advice on https://gcc.gnu.org/wiki/FloatingPointMath#x86note -+ # -+ # NOTE: We need to ensure stack is realigned given that we -+ # produce shared objects, and have no control over the stack -+ # alignment policy of the application. Therefore we need -+ # -mstackrealign or -mincoming-stack-boundary=2. -+ # -+ # XXX: We could have SSE without -mstackrealign if we always used -+ # __attribute__((force_align_arg_pointer)), but that's not -+ # always the case. -+ c_cpp_args += sse2_args -+ # sse2_args are adopted into c_cpp_args to avoid duplicated sse2 command line args -+ sse2_arg = [] -+ sse2_args = [] -+ else -+ # GCC on x86 (not x86_64) with -msse* assumes a 16 byte aligned stack, but -+ # that's not guaranteed -+ sse41_args += '-mstackrealign' -+ endif -+ endif -+ endif -+endif -+ -+# Detect __builtin_ia32_clflushopt support -+if cc.has_function('__builtin_ia32_clflushopt', args : '-mclflushopt') -+ pre_args += '-DHAVE___BUILTIN_IA32_CLFLUSHOPT' -+ clflushopt_args = ['-mclflushopt'] -+ with_clflushopt = true -+else -+ clflushopt_args = [] -+ with_clflushopt = false -+endif -+ -+# Check for GCC style atomics -+dep_atomic = null_dep -+ -+if cc.compiles('''#include -+ int main() { -+ struct { -+ uint64_t *v; -+ } x; -+ return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & -+ (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); -+ -+ }''', -+ name : 'GCC atomic builtins') -+ pre_args += '-DUSE_GCC_ATOMIC_BUILTINS' -+ -+ # Not all atomic calls can be turned into lock-free instructions, in which -+ # GCC will make calls into the libatomic library. Check whether we need to -+ # link with -latomic. -+ # -+ # This can happen for 64-bit atomic operations on 32-bit architectures such -+ # as ARM. -+ if not cc.links('''#include -+ int main() { -+ struct { -+ uint64_t *v; -+ } x; -+ return (int)__atomic_load_n(x.v, __ATOMIC_ACQUIRE) & -+ (int)__atomic_add_fetch(x.v, (uint64_t)1, __ATOMIC_ACQ_REL); -+ }''', -+ name : 'GCC atomic builtins required -latomic') -+ dep_atomic = cc.find_library('atomic') -+ endif -+endif -+if not cc.links('''#include -+ uint64_t v; -+ int main() { -+ return __sync_add_and_fetch(&v, (uint64_t)1); -+ }''', -+ dependencies : dep_atomic, -+ name : 'GCC 64bit atomics') -+ pre_args += '-DMISSING_64BIT_ATOMICS' -+endif -+ -+dep_ws2_32 = cc.find_library('ws2_32', required : with_platform_windows) -+ -+# TODO: shared/static? Is this even worth doing? -+ -+with_asm_arch = '' -+if host_machine.cpu_family() == 'x86' -+ if system_has_kms_drm or host_machine.system() == 'gnu' -+ with_asm_arch = 'x86' -+ pre_args += ['-DUSE_X86_ASM'] -+ -+ if with_glx_read_only_text -+ pre_args += ['-DGLX_X86_READONLY_TEXT'] -+ endif -+ endif -+elif host_machine.cpu_family() == 'x86_64' -+ if system_has_kms_drm -+ with_asm_arch = 'x86_64' -+ pre_args += ['-DUSE_X86_64_ASM'] -+ endif -+elif host_machine.cpu_family() == 'arm' -+ if system_has_kms_drm -+ with_asm_arch = 'arm' -+ pre_args += ['-DUSE_ARM_ASM'] -+ endif -+elif host_machine.cpu_family() == 'aarch64' -+ if system_has_kms_drm -+ with_asm_arch = 'aarch64' -+ pre_args += ['-DUSE_AARCH64_ASM'] -+ endif -+elif host_machine.cpu_family() == 'sparc64' -+ if system_has_kms_drm -+ with_asm_arch = 'sparc' -+ pre_args += ['-DUSE_SPARC_ASM'] -+ endif -+elif host_machine.cpu_family() == 'ppc64' and host_machine.endian() == 'little' -+ if system_has_kms_drm -+ with_asm_arch = 'ppc64le' -+ pre_args += ['-DUSE_PPC64LE_ASM'] -+ endif -+elif host_machine.cpu_family() == 'mips64' and host_machine.endian() == 'little' -+ if system_has_kms_drm -+ with_asm_arch = 'mips64el' -+ pre_args += ['-DUSE_MIPS64EL_ASM'] -+ endif -+elif host_machine.cpu_family() == 'loongarch64' -+ if system_has_kms_drm -+ with_asm_arch = 'loongarch64' -+ pre_args += ['-DUSE_LOONGARCH64_ASM'] -+ endif -+endif -+ -+# Check for standard headers and functions -+if (cc.has_header_symbol('sys/sysmacros.h', 'major') and -+ cc.has_header_symbol('sys/sysmacros.h', 'minor') and -+ cc.has_header_symbol('sys/sysmacros.h', 'makedev')) -+ pre_args += '-DMAJOR_IN_SYSMACROS' -+endif -+if (cc.has_header_symbol('sys/mkdev.h', 'major') and -+ cc.has_header_symbol('sys/mkdev.h', 'minor') and -+ cc.has_header_symbol('sys/mkdev.h', 'makedev')) -+ pre_args += '-DMAJOR_IN_MKDEV' -+endif -+ -+if cc.check_header('sched.h') -+ pre_args += '-DHAS_SCHED_H' -+ if cc.has_function('sched_getaffinity') -+ pre_args += '-DHAS_SCHED_GETAFFINITY' -+ endif -+endif -+ -+if not ['linux'].contains(host_machine.system()) -+ # Deprecated on Linux and requires on FreeBSD and OpenBSD -+ if cc.check_header('sys/sysctl.h', prefix : '#include ') -+ pre_args += '-DHAVE_SYS_SYSCTL_H' -+ endif -+endif -+ -+foreach h : ['xlocale.h', 'linux/futex.h', 'endian.h', 'dlfcn.h', 'sys/shm.h', -+ 'cet.h', 'pthread_np.h', 'renderdoc_app.h', 'sys/inotify.h', 'linux/udmabuf.h'] -+ if cc.check_header(h) -+ pre_args += '-DHAVE_@0@'.format(h.to_upper().underscorify()) -+ endif -+endforeach -+ -+functions_to_detect = { -+ 'strtof': '', -+ 'mkostemp': '', -+ 'memfd_create': '', -+ 'random_r': '', -+ 'flock': '', -+ 'strtok_r': '', -+ 'getrandom': '', -+ 'qsort_s': '', -+ 'posix_fallocate': '', -+ 'secure_getenv': '', -+} -+ -+foreach f, prefix: functions_to_detect -+ if cc.has_function(f, prefix: prefix) -+ pre_args += '-DHAVE_@0@'.format(f.to_upper()) -+ endif -+endforeach -+ -+if cpp.links(''' -+ #define _GNU_SOURCE -+ #include -+ -+ static int dcomp(const void *l, const void *r, void *t) { return 0; } -+ -+ int main(int ac, char **av) { -+ int arr[] = { 1 }; -+ void *t = NULL; -+ qsort_r((void*)&arr[0], 1, 1, dcomp, t); -+ return (0); -+ }''', -+ args : pre_args, -+ name : 'GNU qsort_r') -+ pre_args += '-DHAVE_GNU_QSORT_R' -+elif cpp.links(''' -+ #include -+ -+ static int dcomp(void *t, const void *l, const void *r) { return 0; } -+ -+ int main(int ac, char **av) { -+ int arr[] = { 1 }; -+ void *t = NULL; -+ qsort_r((void*)&arr[0], 1, 1, t, dcomp); -+ return (0); -+ }''', -+ args : pre_args, -+ name : 'BSD qsort_r') -+ pre_args += '-DHAVE_BSD_QSORT_R' -+endif -+ -+if cc.has_header_symbol('time.h', 'struct timespec') -+ pre_args += '-DHAVE_STRUCT_TIMESPEC' -+endif -+ -+with_c11_threads = false -+if cc.has_function('thrd_create', prefix: '#include ') -+ if with_platform_android -+ # Current only Android's c11 are verified -+ pre_args += '-DHAVE_THRD_CREATE' -+ with_c11_threads = true -+ endif -+endif -+ -+if cc.has_header_symbol('errno.h', 'program_invocation_name', -+ args : '-D_GNU_SOURCE') -+ pre_args += '-DHAVE_PROGRAM_INVOCATION_NAME' -+elif with_tools.contains('intel') -+ error('Intel tools require the program_invocation_name variable') -+endif -+ -+if cc.has_header_symbol('math.h', 'issignaling', -+ args : '-D_GNU_SOURCE') -+ pre_args += '-DHAVE_ISSIGNALING' -+endif -+ -+# MinGW provides a __builtin_posix_memalign function, but not a posix_memalign. -+# This means that this check will succeed, but then compilation will later -+# fail. MSVC doesn't have this function at all, so only check for it on -+# non-windows platforms. -+if host_machine.system() != 'windows' -+ if cc.has_function('posix_memalign') -+ pre_args += '-DHAVE_POSIX_MEMALIGN' -+ endif -+endif -+ -+if cc.has_member('struct dirent', 'd_type', prefix: '''#include -+ #include ''') -+ pre_args += '-DHAVE_DIRENT_D_TYPE' -+endif -+ -+# strtod locale support -+if cc.links(''' -+ #define _GNU_SOURCE -+ #include -+ #include -+ #ifdef HAVE_XLOCALE_H -+ #include -+ #endif -+ int main() { -+ locale_t loc = newlocale(LC_CTYPE_MASK, "C", NULL); -+ const char *s = "1.0"; -+ char *end; -+ double d = strtod_l(s, &end, loc); -+ float f = strtof_l(s, &end, loc); -+ freelocale(loc); -+ return 0; -+ }''', -+ args : pre_args, -+ name : 'strtod has locale support') -+ pre_args += '-DHAVE_STRTOD_L' -+endif -+ -+# Check for some linker flags -+ld_args_bsymbolic = [] -+if cc.links('int main() { return 0; }', args : '-Wl,-Bsymbolic', name : 'Bsymbolic') -+ ld_args_bsymbolic += '-Wl,-Bsymbolic' -+endif -+with_ld_version_script = false -+if cc.links('int main() { return 0; }', -+ args : '-Wl,--version-script=@0@'.format( -+ join_paths(meson.current_source_dir(), 'build-support/conftest.map')), -+ name : 'version-script') -+ with_ld_version_script = true -+endif -+with_ld_dynamic_list = false -+if cc.links('int main() { return 0; }', -+ args : '-Wl,--dynamic-list=@0@'.format( -+ join_paths(meson.current_source_dir(), 'build-support/conftest.dyn')), -+ name : 'dynamic-list') -+ with_ld_dynamic_list = true -+endif -+ -+ld_args_build_id = cc.get_supported_link_arguments('-Wl,--build-id=sha1') -+ -+# check for dl support -+dep_dl = null_dep -+if host_machine.system() != 'windows' -+ if not cc.has_function('dlopen') -+ dep_dl = cc.find_library('dl', required : true) -+ endif -+ if cc.has_function('dladdr', dependencies : dep_dl) -+ # This is really only required for util/disk_cache.h -+ pre_args += '-DHAVE_DLADDR' -+ endif -+endif -+ -+if cc.has_function('dl_iterate_phdr') -+ pre_args += '-DHAVE_DL_ITERATE_PHDR' -+elif with_intel_vk or with_intel_hasvk -+ error('Intel "Anvil" Vulkan driver requires the dl_iterate_phdr function') -+endif -+ -+if with_any_intel and ['x86', 'x86_64'].contains(host_machine.cpu_family()) -+ pre_args += '-DSUPPORT_INTEL_INTEGRATED_GPUS' -+endif -+ -+if with_gallium_i915 and host_machine.cpu_family().startswith('x86') == false -+ error('Intel "i915" Gallium driver requires x86 or x86_64 CPU family') -+endif -+ -+# Determine whether or not the rt library is needed for time functions -+if host_machine.system() == 'windows' or cc.has_function('clock_gettime') -+ dep_clock = null_dep -+else -+ dep_clock = cc.find_library('rt') -+endif -+ -+# IMPORTANT: We can't upgrade Zlib beyond 1.2.5 because it would break Viewperf. -+dep_zlib = dependency('zlib', version : '>= 1.2.3', -+ allow_fallback: true, -+ required : get_option('zlib')) -+if dep_zlib.found() -+ pre_args += '-DHAVE_ZLIB' -+endif -+ -+dep_zstd = dependency('libzstd', required : get_option('zstd')) -+if dep_zstd.found() -+ pre_args += '-DHAVE_ZSTD' -+endif -+ -+with_compression = dep_zlib.found() or dep_zstd.found() -+if with_compression -+ pre_args += '-DHAVE_COMPRESSION' -+elif with_shader_cache -+ error('Shader Cache requires compression') -+endif -+ -+if host_machine.system() == 'windows' -+ # For MSVC and MinGW we aren't using pthreads, and dependency('threads') will add linkage -+ # to pthread for MinGW, so leave the dependency null_dep for Windows. For Windows linking to -+ # kernel32 is enough for c11/threads.h and it's already linked by meson by default -+ dep_thread = null_dep -+else -+ dep_thread = dependency('threads') -+endif -+if dep_thread.found() -+ pre_args += '-DHAVE_PTHREAD' -+ if host_machine.system() != 'netbsd' and cc.has_function( -+ 'pthread_setaffinity_np', -+ dependencies : dep_thread, -+ prefix : '#include ', -+ args : '-D_GNU_SOURCE') -+ pre_args += '-DHAVE_PTHREAD_SETAFFINITY' -+ endif -+endif -+ -+with_expat = get_option('expat') \ -+ .disable_auto_if(with_platform_android or with_platform_windows) -+ -+if host_machine.system() == 'darwin' -+ dep_expat = meson.get_compiler('c').find_library('expat', required : with_expat) -+else -+ dep_expat = dependency('expat', allow_fallback: true, -+ required : with_expat) -+endif -+ -+# TODO: with Meson 1.1.0 this can be replaced with with_expat.enable_if(with_intel_tools) -+if with_intel_tools and not dep_expat.found() -+ error('Intel tools require expat') -+endif -+ -+# We don't require expat on Android or Windows -+use_xmlconfig = get_option('xmlconfig') \ -+ .require(not (with_platform_android or with_platform_windows), -+ error_message : 'xmlconfig not available on Android or Windows') \ -+ .require(dep_expat.found(), -+ error_message : 'requires expat') \ -+ .allowed() -+ -+# Predefined macros for windows -+if host_machine.system() == 'windows' -+ pre_args += '-DWIN32_LEAN_AND_MEAN' # http://msdn2.microsoft.com/en-us/library/6dwk3a1z.aspx -+endif -+# this only exists on linux so either this is linux and it will be found, or -+# it's not linux and wont -+dep_m = cc.find_library('m', required : false) -+ -+if host_machine.system() == 'windows' -+ dep_regex = meson.get_compiler('c').find_library('regex', required : false) -+ if not dep_regex.found() -+ dep_regex = declare_dependency(compile_args : ['-DNO_REGEX']) -+ endif -+else -+ dep_regex = null_dep -+endif -+ -+if with_platform_haiku -+ dep_network = cc.find_library('network') -+endif -+ -+dep_futex = null_dep -+if host_machine.system() == 'windows' -+ if (get_option('min-windows-version') < 8) -+ pre_args += '-DWINDOWS_NO_FUTEX' -+ else -+ dep_futex = cc.find_library('synchronization', required : true) -+ endif -+endif -+ -+# Check for libdrm. Various drivers have different libdrm version requirements, -+# but we always want to use the same version for all libdrm modules. That means -+# even if driver foo requires 2.4.0 and driver bar requires 2.4.3, if foo and -+# bar are both on use 2.4.3 for both of them -+dep_libdrm_amdgpu = null_dep -+dep_libdrm_radeon = null_dep -+dep_libdrm_intel = null_dep -+ -+_drm_amdgpu_ver = '2.4.119' -+_drm_radeon_ver = '2.4.71' -+_drm_intel_ver = '2.4.75' -+_drm_ver = '2.4.109' -+ -+_libdrm_checks = [ -+ ['intel', with_gallium_i915], -+ ['amdgpu', (with_amd_vk and not with_platform_windows) or with_gallium_radeonsi], -+ ['radeon', (with_gallium_radeonsi or with_gallium_r300 or with_gallium_r600)], -+] -+ -+# Loop over the enables versions and get the highest libdrm requirement for all -+# active drivers. -+_drm_blame = '' -+foreach d : _libdrm_checks -+ ver = get_variable('_drm_@0@_ver'.format(d[0])) -+ if d[1] and ver.version_compare('>' + _drm_ver) -+ _drm_ver = ver -+ _drm_blame = d[0] -+ endif -+endforeach -+if _drm_blame != '' -+ message('libdrm @0@ needed because @1@ has the highest requirement'.format(_drm_ver, _drm_blame)) -+endif -+ -+# Then get each libdrm module -+foreach d : _libdrm_checks -+ if d[1] -+ set_variable( -+ 'dep_libdrm_' + d[0], -+ dependency('libdrm_' + d[0], version : '>=' + _drm_ver) -+ ) -+ endif -+endforeach -+ -+with_gallium_drisw_kms = false -+if system_has_kms_drm -+ dep_libdrm = dependency( -+ 'libdrm', version : '>=' + _drm_ver, -+ # GNU/Hurd includes egl_dri2, without drm. -+ required : (with_dri2 and host_machine.system() != 'gnu') or with_dri3 -+ ) -+else -+ # We should prevent libdrm from being available when the target doesn't have it to avoid transitive -+ # dependencies (such as vk-runtime) linking to it -+ dep_libdrm = null_dep -+endif -+if dep_libdrm.found() -+ pre_args += '-DHAVE_LIBDRM' -+ if with_dri_platform == 'drm' and with_dri -+ with_gallium_drisw_kms = true -+ endif -+endif -+ -+dep_libudev = dependency('libudev', required : false) -+if dep_libudev.found() -+ pre_args += '-DHAVE_LIBUDEV' -+endif -+ -+llvm_modules = ['bitwriter', 'engine', 'mcdisassembler', 'mcjit', 'core', 'executionengine', 'scalaropts', 'transformutils', 'instcombine'] -+llvm_optional_modules = ['coroutines'] -+if with_amd_vk or with_gallium_radeonsi or with_gallium_r600 -+ llvm_modules += ['amdgpu', 'bitreader', 'ipo'] -+ if with_gallium_r600 -+ llvm_modules += 'asmparser' -+ endif -+endif -+if with_gallium_opencl -+ llvm_modules += [ -+ 'linker', 'coverage', 'instrumentation', 'ipo', 'irreader', -+ 'lto', 'option', 'objcarcopts', 'profiledata' -+ ] -+ # all-targets is needed to support static linking LLVM build with multiple targets -+ # windowsdriver is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet -+ llvm_optional_modules += ['all-targets', 'frontendopenmp', 'windowsdriver'] -+endif -+if with_clc -+ llvm_modules += ['coverage', 'target', 'linker', 'irreader', 'option', 'libdriver', 'lto'] -+ # all-targets is needed to support static linking LLVM build with multiple targets. -+ # windowsdriver is needded with LLVM>=15 and frontendhlsl is needed with LLVM>=16, -+ # but we don't know what LLVM version we are using yet -+ llvm_optional_modules += ['all-targets', 'windowsdriver', 'frontendhlsl', 'frontenddriver'] -+endif -+draw_with_llvm = get_option('draw-use-llvm') -+if draw_with_llvm -+ llvm_modules += 'native' -+ # lto is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet -+ llvm_optional_modules += ['lto'] -+endif -+ -+if with_amd_vk or with_gallium_radeonsi or with_clc -+ _llvm_version = '>= 15.0.0' -+elif with_gallium_opencl -+ _llvm_version = '>= 11.0.0' -+else -+ _llvm_version = '>= 5.0.0' -+endif -+ -+_shared_llvm = get_option('shared-llvm') \ -+ .disable_auto_if(host_machine.system() == 'windows') \ -+ .allowed() -+ -+_llvm = get_option('llvm') -+dep_llvm = null_dep -+with_llvm = false -+if _llvm.allowed() -+ dep_llvm = dependency( -+ 'llvm', -+ method : host_machine.system() == 'windows' ? 'auto' : 'config-tool', -+ version : _llvm_version, -+ modules : llvm_modules, -+ optional_modules : llvm_optional_modules, -+ required : ( -+ with_amd_vk or with_gallium_radeonsi or with_gallium_opencl or with_clc -+ or _llvm.enabled() -+ ), -+ static : not _shared_llvm, -+ fallback : ['llvm', 'dep_llvm'], -+ include_type : 'system', -+ ) -+ with_llvm = dep_llvm.found() -+endif -+if with_llvm -+ pre_args += '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version()) -+ pre_args += '-DLLVM_IS_SHARED=@0@'.format(_shared_llvm.to_int()) -+ -+ if with_swrast_vk and not draw_with_llvm -+ error('Lavapipe requires LLVM draw support.') -+ endif -+ -+ if host_machine.system() != 'windows' -+ # LLVM can be built without rtti, turning off rtti changes the ABI of C++ -+ # programs, so we need to build all C++ code in mesa without rtti as well to -+ # ensure that linking works. Note that Win32 compilers does handle mismatching RTTI -+ # without issues, so only apply this for other compilers. -+ if dep_llvm.type_name() == 'internal' -+ _llvm_rtti = subproject('llvm').get_variable('has_rtti', true) -+ else -+ # The CMake finder will return 'ON', the llvm-config will return 'YES' -+ _llvm_rtti = ['ON', 'YES'].contains(dep_llvm.get_variable(cmake : 'LLVM_ENABLE_RTTI', configtool: 'has-rtti')) -+ endif -+ if _rtti != _llvm_rtti -+ if _llvm_rtti -+ error('LLVM was built with RTTI, cannot build Mesa with RTTI disabled. Remove cpp_rtti disable switch or use LLVM built without LLVM_ENABLE_RTTI.') -+ else -+ error('LLVM was built without RTTI, so Mesa must also disable RTTI. Use an LLVM built with LLVM_ENABLE_RTTI or add cpp_rtti=false.') -+ endif -+ endif -+ endif -+ -+ if cc.get_argument_syntax() == 'msvc' -+ # Suppress "/DELAYLOAD:ole32.dll/shell32.dll ignored" warnings that LLVM adds -+ add_project_link_arguments( -+ '/ignore:4199', -+ language : ['c', 'cpp'], -+ ) -+ endif -+elif with_amd_vk and with_aco_tests -+ error('ACO tests require LLVM, but LLVM is disabled.') -+elif with_swrast_vk -+ error('The following drivers require LLVM: Lavapipe. One of these is enabled, but LLVM is disabled.') -+elif with_gallium_opencl -+ error('The OpenCL "Clover" state tracker requires LLVM, but LLVM is disabled.') -+elif with_clc -+ error('The CLC compiler requires LLVM, but LLVM is disabled.') -+else -+ draw_with_llvm = false -+endif -+pre_args += '-DLLVM_AVAILABLE=' + (with_llvm ? '1' : '0') -+pre_args += '-DDRAW_LLVM_AVAILABLE=' + (with_llvm and draw_with_llvm ? '1' : '0') -+ -+if with_clover_spirv or with_clc -+ chosen_llvm_version_array = dep_llvm.version().split('.') -+ chosen_llvm_version_major = chosen_llvm_version_array[0].to_int() -+ chosen_llvm_version_minor = chosen_llvm_version_array[1].to_int() -+ -+ # Require an SPIRV-LLVM-Translator version compatible with the chosen LLVM -+ # one. -+ -+ # This first version check is still needed as maybe LLVM 8.0 was picked but -+ # we do not want to accept SPIRV-LLVM-Translator 8.0.0.1 as that version -+ # does not have the required API and those are only available starting from -+ # 8.0.1.3. -+ _llvmspirvlib_min_version = '>= 8.0.1.3' -+ if with_clc -+ _llvmspirvlib_min_version = '>= 15.0.0.0' -+ endif -+ -+ _llvmspirvlib_version = [ -+ _llvmspirvlib_min_version, -+ '>= @0@.@1@'.format(chosen_llvm_version_major, chosen_llvm_version_minor), -+ '< @0@.@1@'.format(chosen_llvm_version_major, chosen_llvm_version_minor + 1) ] -+ -+ dep_spirv_tools = dependency('SPIRV-Tools', required : true, version : '>= 2018.0') -+ # LLVMSPIRVLib is available at https://github.com/KhronosGroup/SPIRV-LLVM-Translator -+ dep_llvmspirvlib = dependency('LLVMSPIRVLib', required : true, version : _llvmspirvlib_version) -+else -+ dep_spirv_tools = null_dep -+ dep_llvmspirvlib = null_dep -+endif -+ -+dep_clang = null_dep -+if with_clc -+ llvm_libdir = dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir') -+ -+ dep_clang = cpp.find_library('clang-cpp', dirs : llvm_libdir, required : false) -+ -+ if not dep_clang.found() or not _shared_llvm -+ clang_modules = [ -+ 'clangBasic', 'clangAST', 'clangCodeGen', 'clangLex', -+ 'clangDriver', 'clangFrontend', 'clangFrontendTool', -+ 'clangHandleCXX', 'clangHandleLLVM', 'clangSerialization', -+ 'clangSema', 'clangParse', 'clangEdit', 'clangAnalysis' -+ ] -+ if dep_llvm.version().version_compare('>= 15.0') -+ clang_modules += 'clangSupport' -+ endif -+ if dep_llvm.version().version_compare('>= 16.0') -+ clang_modules += 'clangASTMatchers' -+ endif -+ if dep_llvm.version().version_compare('>= 18.0') -+ clang_modules += 'clangAPINotes' -+ endif -+ -+ dep_clang = [] -+ foreach m : clang_modules -+ dep_clang += cpp.find_library(m, dirs : llvm_libdir, required : true) -+ endforeach -+ endif -+endif -+ -+# Be explicit about only using this lib on Windows, to avoid picking -+# up random libs with the generic name 'libversion' -+dep_version = null_dep -+if host_machine.system() == 'windows' -+ dep_version = cpp.find_library('version') -+endif -+ -+dep_elf = dependency('libelf', required : false) -+if not with_platform_windows and not dep_elf.found() -+ dep_elf = cc.find_library('elf', required : false) -+endif -+if dep_elf.found() -+ pre_args += '-DUSE_LIBELF' -+elif with_gallium_radeonsi -+ error('Gallium driver radeonsi requires libelf') -+endif -+ -+dep_valgrind = dependency('valgrind', required : get_option('valgrind')) -+if dep_valgrind.found() -+ pre_args += '-DHAVE_VALGRIND' -+endif -+ -+# AddressSanitizer's leak reports need all the symbols to be present at exit to -+# decode well, which runs afoul of our dlopen()/dlclose()ing of the DRI drivers. -+# Set a flag so we can skip the dlclose for asan builds. -+if ['address', 'address,undefined'].contains(get_option('b_sanitize')) -+ asan_c_args = ['-DBUILT_WITH_ASAN=1'] -+else -+ asan_c_args = ['-DBUILT_WITH_ASAN=0'] -+endif -+ -+# ThreadSanitizer can't deal with futexes, and reports races for cases we don't care about -+# so add a define to work silence these issues. -+if get_option('b_sanitize') == 'thread' -+ pre_args += '-DTHREAD_SANITIZER=1' -+ # meson versions prior to 1.4 will warn "Consider using the built-in option for sanitizers ..." -+ # later on because it only checks whether the option starts with "-fsanitize", -+ # but there is no built-in option for adding a blacklist -+ tsan_blacklist = '-fsanitize-blacklist=@0@'.format(join_paths(meson.project_source_root(), 'build-support', 'tsan-blacklist.txt')) -+ if cc.has_argument(tsan_blacklist) -+ pre_args += tsan_blacklist -+ else -+ warning('Compiler does not support "-fsanitize-blacklist", expected race conditions will not be surpressed') -+ endif -+else -+ pre_args += '-DTHREAD_SANITIZER=0' -+endif -+ -+yacc_is_bison = true -+needs_flex_bison = with_any_opengl or with_freedreno_vk or with_intel_tools or with_gallium -+ -+if build_machine.system() == 'windows' -+ # Prefer the winflexbison versions, they're much easier to install and have -+ # better windows support. -+ -+ prog_flex = find_program('win_flex', required : false) -+ if prog_flex.found() -+ # windows compatibility (uses instead of and _isatty, -+ # _fileno functions) -+ prog_flex = [prog_flex, '--wincompat'] -+ else -+ prog_flex = [find_program('flex', 'lex', required : needs_flex_bison, disabler : true)] -+ endif -+ # Force flex to use const keyword in prototypes, as relies on __cplusplus or -+ # __STDC__ macro to determine whether it's safe to use const keyword -+ prog_flex += '-DYY_USE_CONST=' -+ -+ prog_flex_cpp = prog_flex -+ # Convince win_flex to use for C++ files -+ # Note that we are using a C99 version here rather than C11, -+ # because using a C11 version can cause the MSVC CRT headers to define -+ # static_assert to _Static_assert, which breaks other parts of the CRT -+ prog_flex_cpp += '-D__STDC_VERSION__=199901' -+ -+ prog_bison = find_program('win_bison', required : false) -+ if not prog_bison.found() -+ prog_bison = find_program('bison', 'yacc', required : needs_flex_bison, disabler : true) -+ endif -+else -+ prog_bison = find_program('bison', required : false) -+ -+ if not prog_bison.found() -+ prog_bison = find_program('byacc', required : needs_flex_bison, disabler : true) -+ yacc_is_bison = false -+ endif -+ -+ # Disable deprecated keyword warnings, since we have to use them for -+ # old-bison compat. See discussion in -+ # https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2161 -+ if find_program('bison', required : false, version : '> 2.3').found() -+ prog_bison = [prog_bison, '-Wno-deprecated'] -+ endif -+ -+ prog_flex = find_program('flex', required : needs_flex_bison, disabler : true) -+ prog_flex_cpp = prog_flex -+endif -+ -+dep_selinux = null_dep -+if get_option('selinux') -+ dep_selinux = dependency('libselinux') -+ pre_args += '-DMESA_SELINUX' -+endif -+ -+_libunwind = get_option('libunwind') \ -+ .require(not with_platform_android, error_message : 'Android requires the use of the backtrace library, not libunwind') -+if host_machine.system() == 'darwin' -+ dep_unwind = meson.get_compiler('c').find_library('System', required : _libunwind) -+else -+ dep_unwind = dependency('libunwind', required : _libunwind) -+endif -+if dep_unwind.found() -+ pre_args += '-DHAVE_LIBUNWIND' -+endif -+ -+if with_osmesa -+ if not with_gallium_softpipe -+ error('OSMesa gallium requires gallium softpipe or llvmpipe.') -+ endif -+ if host_machine.system() == 'windows' -+ osmesa_lib_name = 'osmesa' -+ else -+ osmesa_lib_name = 'OSMesa' -+ endif -+endif -+ -+# TODO: symbol mangling -+ -+if with_platform_wayland -+ dep_wl_scanner = dependency('wayland-scanner', native: true) -+ prog_wl_scanner = find_program(dep_wl_scanner.get_variable(pkgconfig : 'wayland_scanner')) -+ if dep_wl_scanner.version().version_compare('>= 1.15') -+ wl_scanner_arg = 'private-code' -+ else -+ wl_scanner_arg = 'code' -+ endif -+ dep_wl_protocols = dependency('wayland-protocols', version : '>= 1.34') -+ dep_wayland_client = dependency('wayland-client', version : '>=1.18') -+ dep_wayland_server = dependency('wayland-server', version : '>=1.18') -+ if with_egl -+ dep_wayland_egl = dependency('wayland-egl-backend', version : '>= 3') -+ dep_wayland_egl_headers = dep_wayland_egl.partial_dependency(compile_args : true) -+ endif -+ pre_args += '-DWL_HIDE_DEPRECATED' -+ if cc.has_function( -+ 'wl_display_dispatch_queue_timeout', -+ prefix : '#include ', -+ dependencies: dep_wayland_client) -+ pre_args += ['-DHAVE_WL_DISPATCH_QUEUE_TIMEOUT'] -+ endif -+ if cc.has_function( -+ 'wl_display_create_queue_with_name', -+ prefix : '#include ', -+ dependencies: dep_wayland_client) -+ pre_args += ['-DHAVE_WL_CREATE_QUEUE_WITH_NAME'] -+ endif -+endif -+ -+dep_x11 = null_dep -+dep_xext = null_dep -+dep_xfixes = null_dep -+dep_x11_xcb = null_dep -+dep_xcb = null_dep -+dep_xcb_keysyms = null_dep -+dep_xcb_glx = null_dep -+dep_xcb_dri2 = null_dep -+dep_xcb_dri3 = null_dep -+dep_dri2proto = null_dep -+dep_glproto = null_dep -+dep_xxf86vm = null_dep -+dep_xcb_dri3 = null_dep -+dep_xcb_present = null_dep -+dep_xcb_sync = null_dep -+dep_xcb_xfixes = null_dep -+dep_xshmfence = null_dep -+dep_xcb_xrandr = null_dep -+dep_xcb_shm = null_dep -+dep_xlib_xrandr = null_dep -+dep_openmp = null_dep -+ -+# Even if we find OpenMP, Gitlab CI fails to link with gcc/i386 and clang/anyarch. -+if host_machine.cpu_family() == 'x86_64' and cc.get_id() == 'gcc' -+ dep_openmp = dependency('openmp', required : false) -+ if dep_openmp.found() -+ pre_args += ['-DHAVE_OPENMP'] -+ endif -+endif -+ -+with_dri3_modifiers = false -+with_dri3_explicit_sync = false -+with_xcb_keysyms = false -+if with_platform_x11 -+ if with_glx == 'xlib' -+ dep_x11 = dependency('x11') -+ dep_xext = dependency('xext') -+ dep_xcb = dependency('xcb') -+ dep_xcb_xrandr = dependency('xcb-randr') -+ elif with_glx == 'dri' -+ dep_x11 = dependency('x11') -+ dep_xext = dependency('xext') -+ dep_xfixes = dependency('xfixes', version : '>= 2.0') -+ dep_xcb_glx = dependency('xcb-glx', version : '>= 1.8.1') -+ dep_xcb_shm = dependency('xcb-shm') -+ elif with_gallium_rusticl -+ # needed for GL sharing extension -+ dep_x11 = dependency('x11') -+ endif -+ if (with_any_vk or with_glx == 'dri' or with_egl or -+ (with_gallium_vdpau or with_gallium_va or -+ with_gallium_omx != 'disabled')) -+ dep_xcb = dependency('xcb') -+ dep_xcb_keysyms = dependency('xcb-keysyms', required : false) -+ with_xcb_keysyms = dep_xcb_keysyms.found() -+ if with_xcb_keysyms -+ pre_args += '-DXCB_KEYSYMS_AVAILABLE' -+ endif -+ dep_x11_xcb = dependency('x11-xcb') -+ dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8') -+ if with_dri_platform == 'drm' and not dep_libdrm.found() -+ error('libdrm required for gallium video statetrackers when using x11') -+ endif -+ endif -+ if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm') -+ dep_xcb_dri2 = dependency('xcb-dri2', version : '>= 1.8') -+ -+ if with_dri3 -+ dep_xcb_dri3 = dependency('xcb-dri3') -+ dep_xcb_present = dependency('xcb-present') -+ # until xcb-dri3 has been around long enough to make a hard-dependency: -+ if (dep_xcb_dri3.version().version_compare('>= 1.13') and -+ dep_xcb_present.version().version_compare('>= 1.13')) -+ with_dri3_modifiers = true -+ endif -+ if (dep_xcb_dri3.version().version_compare('>= 1.17') and -+ dep_xcb_present.version().version_compare('>= 1.17')) -+ with_dri3_explicit_sync = true -+ endif -+ dep_xcb_shm = dependency('xcb-shm') -+ dep_xcb_sync = dependency('xcb-sync') -+ dep_xshmfence = dependency('xshmfence', version : '>= 1.1') -+ endif -+ endif -+ if with_glx == 'dri' or with_glx == 'xlib' -+ dep_glproto = dependency('glproto', version : '>= 1.4.14') -+ endif -+ if with_glx == 'dri' -+ if with_dri_platform == 'drm' -+ dep_dri2proto = dependency('dri2proto', version : '>= 2.8') -+ if with_glx_direct -+ dep_xxf86vm = dependency('xxf86vm') -+ endif -+ endif -+ endif -+ if (with_egl or -+ with_dri3 or ( -+ with_gallium_vdpau or with_gallium_xa or -+ with_gallium_omx != 'disabled')) -+ dep_xcb_xfixes = dependency('xcb-xfixes') -+ endif -+ if with_xlib_lease or with_any_vk -+ dep_xcb_xrandr = dependency('xcb-randr') -+ endif -+ if with_xlib_lease -+ dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3') -+ endif -+endif -+ -+if with_dri -+ pre_args += '-DHAVE_DRI' -+endif -+if with_dri2 -+ pre_args += '-DHAVE_DRI2' -+endif -+if with_dri3 -+ pre_args += '-DHAVE_DRI3' -+endif -+if with_dri3_modifiers -+ pre_args += '-DHAVE_DRI3_MODIFIERS' -+endif -+if with_dri3_explicit_sync -+ pre_args += '-DHAVE_DRI3_EXPLICIT_SYNC' -+endif -+if with_gallium_drisw_kms -+ pre_args += '-DHAVE_DRISW_KMS' -+endif -+ -+if get_option('gallium-extra-hud') -+ pre_args += '-DHAVE_GALLIUM_EXTRA_HUD=1' -+endif -+ -+dep_lmsensors = cc.find_library('sensors', required : get_option('lmsensors')) -+if dep_lmsensors.found() -+ pre_args += '-DHAVE_LIBSENSORS=1' -+endif -+ -+_shader_replacement = get_option('custom-shader-replacement') -+if _shader_replacement == '' -+else -+ pre_args += '-DCUSTOM_SHADER_REPLACEMENT' -+endif -+ -+with_perfetto = get_option('perfetto') -+with_datasources = get_option('datasources') -+with_any_datasource = with_datasources.length() != 0 -+if with_perfetto -+ dep_perfetto = dependency('perfetto', fallback: ['perfetto', 'dep_perfetto']) -+ pre_args += '-DHAVE_PERFETTO' -+endif -+ -+with_teflon = get_option('teflon') -+if with_teflon and with_tests -+ dep_xtensor = dependency('xtensor') -+ dep_flatbuffers = dependency('flatbuffers') -+ prog_flatc = find_program('flatc') -+endif -+ -+with_gpuvis = get_option('gpuvis') -+if with_gpuvis -+ pre_args += '-DHAVE_GPUVIS' -+endif -+ -+add_project_arguments(pre_args, language : ['c', 'cpp']) -+add_project_arguments(c_cpp_args, language : ['c', 'cpp']) -+ -+add_project_arguments(c_args, language : ['c']) -+add_project_arguments(cpp_args, language : ['cpp']) -+ -+gl_priv_reqs = [] -+ -+if with_glx == 'xlib' -+ gl_priv_reqs += ['x11', 'xext', 'xcb'] -+elif with_glx == 'dri' -+ gl_priv_reqs += [ -+ 'x11', 'xext', 'xfixes', 'x11-xcb', 'xcb', -+ 'xcb-glx >= 1.8.1'] -+ if with_dri_platform == 'drm' -+ gl_priv_reqs += 'xcb-dri2 >= 1.8' -+ if with_glx_direct -+ gl_priv_reqs += 'xxf86vm' -+ endif -+ endif -+endif -+if dep_libdrm.found() -+ gl_priv_reqs += 'libdrm >= 2.4.75' -+endif -+ -+gl_priv_libs = [] -+if dep_thread.found() -+ gl_priv_libs += ['-lpthread', '-pthread'] -+endif -+if dep_m.found() -+ gl_priv_libs += '-lm' -+endif -+if dep_dl.found() -+ gl_priv_libs += '-ldl' -+endif -+ -+# FIXME: autotools lists this as incomplete -+gbm_priv_libs = [] -+if dep_dl.found() -+ gbm_priv_libs += '-ldl' -+endif -+ -+pkg = import('pkgconfig') -+ -+if host_machine.system() == 'windows' -+ prog_dumpbin = find_program('dumpbin', required : false) -+ with_symbols_check = prog_dumpbin.found() and with_tests -+ if with_symbols_check -+ symbols_check_args = ['--dumpbin', prog_dumpbin.full_path()] -+ endif -+else -+ prog_nm = find_program('nm') -+ with_symbols_check = with_tests -+ symbols_check_args = ['--nm', prog_nm.full_path()] -+endif -+ -+# This quirk needs to be applied to sources with functions defined in assembly -+# as GCC LTO drops them. See: https://bugs.freedesktop.org/show_bug.cgi?id=109391 -+gcc_lto_quirk = (cc.get_id() == 'gcc') ? ['-fno-lto'] : [] -+ -+devenv = environment() -+ -+dir_compiler_nir = join_paths(meson.current_source_dir(), 'src/compiler/nir/') -+dir_source_root = meson.project_source_root() -+ -+ -+subdir('include') -+subdir('bin') -+subdir('src') -+ -+meson.add_devenv(devenv) -+ -+summary( -+ { -+ 'prefix': get_option('prefix'), -+ 'libdir': get_option('libdir'), -+ 'includedir': get_option('includedir'), -+ }, -+ section: 'Directories' -+) -+ -+summary( -+ { -+ 'c_cpp_args': c_cpp_args, -+ }, -+ section: 'Common C and C++ arguments' -+) -+ -+summary( -+ { -+ 'OpenGL': with_opengl, -+ 'ES1': with_gles1, -+ 'ES2': with_gles2, -+ 'Shared glapi': with_shared_glapi, -+ 'GLVND': with_glvnd, -+ }, -+ section: 'OpenGL', bool_yn: true -+) -+ -+summary( -+ { -+ 'Platform': with_dri_platform, -+ 'Driver dir': dri_drivers_path, -+ }, -+ section: 'DRI', bool_yn: true, list_sep: ' ' -+) -+ -+summary( -+ { -+ 'Enabled': with_glx != 'disabled', -+ 'Provider': with_glx == 'disabled' ? 'None' : with_glx -+ }, -+ section: 'GLX', bool_yn: true, list_sep: ' ' -+) -+ -+egl_summary = {'Enabled': with_egl} -+if with_egl -+ egl_drivers = [] -+ if with_dri -+ egl_drivers += 'builtin:egl_dri2' -+ endif -+ if with_dri3 -+ egl_drivers += 'builtin:egl_dri3' -+ endif -+ if with_platform_windows -+ egl_drivers += 'builtin:wgl' -+ endif -+ egl_summary += {'Drivers': egl_drivers} -+ egl_summary += {'Platforms': _platforms} -+endif -+summary(egl_summary, section: 'EGL', bool_yn: true, list_sep: ' ') -+ -+gbm_summary = {'Enabled': with_gbm} -+if with_gbm -+ gbm_summary += {'Backends path': gbm_backends_path} -+endif -+summary(gbm_summary, section: 'GBM', bool_yn: true, list_sep: ' ') -+ -+vulkan_summary = {'Drivers': _vulkan_drivers.length() != 0 ? _vulkan_drivers : false } -+if with_any_vk -+ vulkan_summary += {'Platforms': _platforms} -+ vulkan_summary += {'ICD dir': with_vulkan_icd_dir} -+ if with_any_vulkan_layers -+ vulkan_summary += {'Layers': get_option('vulkan-layers')} -+ endif -+ vulkan_summary += {'Intel Ray tracing': with_intel_vk_rt} -+endif -+summary(vulkan_summary, section: 'Vulkan', bool_yn: true, list_sep: ' ') -+ -+video_summary = {'Codecs': _codecs.length() != 0 ? _codecs : false} -+video_apis = [] -+if with_gallium_vdpau -+ video_apis += 'vdpau' -+endif -+if with_gallium_va -+ video_apis += 'va' -+endif -+if with_any_vk -+ video_apis += 'vulkan' -+endif -+if with_gallium_xa -+ video_apis += 'xa' -+endif -+if with_gallium_omx != 'disabled' -+ video_apis += 'omx' -+endif -+video_summary += {'APIs': video_apis.length() != 0 ? video_apis : false} -+summary(video_summary, section: 'Video', bool_yn: true, list_sep: ' ') -+ -+llvm_summary = {'Enabled': with_llvm} -+if with_llvm -+ llvm_summary += {'Version': dep_llvm.version()} -+endif -+summary(llvm_summary, section: 'LLVM', bool_yn: true, list_sep: ' ') -+ -+gallium_summary = {'Enabled': with_gallium} -+if with_gallium -+ gallium_summary += {'Drivers': gallium_drivers} -+ gallium_summary += {'Platforms': _platforms} -+ -+ gallium_frontends = ['mesa'] -+ if with_gallium_xa -+ gallium_frontends += 'xa' -+ endif -+ if with_gallium_vdpau -+ gallium_frontends += 'vdpau' -+ endif -+ if with_gallium_omx != 'disabled' -+ gallium_frontends += 'omx' + with_gallium_omx -+ endif -+ if with_gallium_va -+ gallium_frontends += 'va' -+ endif -+ if with_gallium_st_nine -+ gallium_frontends += 'nine' -+ endif -+ if with_gallium_opencl -+ gallium_frontends += 'clover' -+ endif -+ if with_gallium_rusticl -+ gallium_frontends += 'rusticl' -+ endif -+ gallium_summary += {'Frontends': gallium_frontends} -+ gallium_summary += {'Off-screen rendering (OSMesa)': with_osmesa ? 'lib' + osmesa_lib_name : false} -+ gallium_summary += {'HUD lm-sensors': dep_lmsensors.found()} -+endif -+summary(gallium_summary, section: 'Gallium', bool_yn: true, list_sep: ' ') -+ -+perfetto_summary = {'Enabled': with_perfetto} -+if with_perfetto and with_any_datasource -+ perfetto_summary += {'Data source': with_datasources} -+endif -+summary(perfetto_summary, section: 'Perfetto', bool_yn: true, list_sep: ' ') -+ -+teflon_summary = {'Enabled': with_teflon} -+summary(teflon_summary, section: 'Teflon (TensorFlow Lite delegate)', bool_yn: true, list_sep: ' ') -diff --git a/meson_options.txt b/meson_options.txt -index 7c021c14cfe..9ad39cc5b97 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -423,6 +423,13 @@ option( - 'is included.' - ) - -+option ( -+ 'llvm-orcjit', -+ type : 'boolean', -+ value : false, -+ description: 'Build llvmpipe with LLVM ORCJIT support.' -+) -+ - option( - 'valgrind', - type : 'feature', -diff --git a/src/gallium/auxiliary/gallivm/lp_bld.h b/src/gallium/auxiliary/gallivm/lp_bld.h -index 24e64fec2bf..dbd3561065b 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld.h -@@ -50,6 +50,10 @@ - - #include - -+#if GALLIVM_USE_ORCJIT -+#include -+#endif -+ - #include - #include - #include -@@ -132,7 +136,11 @@ LLVMBuildCall2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, - #endif /* LLVM_VERSION_MAJOR < 8 */ - - typedef struct lp_context_ref { -+#if GALLIVM_USE_ORCJIT -+ LLVMOrcThreadSafeContextRef ref; -+#else - LLVMContextRef ref; -+#endif - bool owned; - } lp_context_ref; - -@@ -140,11 +148,19 @@ static inline void - lp_context_create(lp_context_ref *context) - { - assert(context != NULL); -+#if GALLIVM_USE_ORCJIT -+ context->ref = LLVMOrcCreateNewThreadSafeContext(); -+#else - context->ref = LLVMContextCreate(); -+#endif - context->owned = true; - #if LLVM_VERSION_MAJOR == 15 - if (context->ref) { -+#if GALLIVM_USE_ORCJIT -+ LLVMContextSetOpaquePointers(LLVMOrcThreadSafeContextGetContext(context->ref), false); -+#else - LLVMContextSetOpaquePointers(context->ref, false); -+#endif - } - #endif - } -@@ -154,7 +170,11 @@ lp_context_destroy(lp_context_ref *context) - { - assert(context != NULL); - if (context->owned) { -+#if GALLIVM_USE_ORCJIT -+ LLVMOrcDisposeThreadSafeContext(context->ref); -+#else - LLVMContextDispose(context->ref); -+#endif - context->ref = NULL; - } - } -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_coro.c b/src/gallium/auxiliary/gallivm/lp_bld_coro.c -index c2d6cc11cc6..4d5081e4142 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_coro.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_coro.c -@@ -161,7 +161,9 @@ coro_free(char *ptr) - - void lp_build_coro_add_malloc_hooks(struct gallivm_state *gallivm) - { -+#if !GALLIVM_USE_ORCJIT - assert(gallivm->engine); -+#endif - - assert(gallivm->coro_malloc_hook); - assert(gallivm->coro_free_hook); -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index 651d667d2bb..15549d10962 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -35,7 +35,12 @@ - #include "util/u_cpu_detect.h" - #include "lp_bld.h" - #include "lp_bld_passmgr.h" -+ -+#if GALLIVM_USE_ORCJIT -+#include -+#else - #include -+#endif - - #ifdef __cplusplus - extern "C" { -@@ -46,13 +51,20 @@ struct gallivm_state - { - char *module_name; - LLVMModuleRef module; -- LLVMExecutionEngineRef engine; - LLVMTargetDataRef target; -+#if GALLIVM_USE_ORCJIT -+ /* own this->module */ -+ LLVMOrcThreadSafeContextRef _ts_context; -+ /* each module is in its own jitdylib */ -+ LLVMOrcJITDylibRef _per_module_jd; -+#else -+ LLVMExecutionEngineRef engine; - struct lp_passmgr *passmgr; -- LLVMContextRef context; -- LLVMBuilderRef builder; - LLVMMCJITMemoryManagerRef memorymgr; - struct lp_generated_code *code; -+#endif -+ LLVMContextRef context; -+ LLVMBuilderRef builder; - struct lp_cached_code *cache; - unsigned compiled; - LLVMValueRef coro_malloc_hook; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -new file mode 100644 -index 00000000000..12c7aadb2b2 ---- /dev/null -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -@@ -0,0 +1,586 @@ -+#include "util/detect.h" -+#include "util/u_cpu_detect.h" -+#include "util/u_debug.h" -+#include "util/os_time.h" -+#include -+#include -+#include "lp_bld.h" -+#include "lp_bld_debug.h" -+#include "lp_bld_init.h" -+#include "lp_bld_coro.h" -+#include "lp_bld_misc.h" -+#include "lp_bld_printf.h" -+#include "lp_bld_passmgr.h" -+#include "lp_bld_type.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#if LLVM_VERSION_MAJOR < 17 -+#include -+#if LLVM_VERSION_MAJOR >= 7 -+#include -+#endif -+#endif -+#include -+ -+#include -+#include -+#include -+#include "llvm/ExecutionEngine/JITLink/JITLink.h" -+#include -+#include -+#include -+#if LLVM_VERSION_MAJOR >= 18 -+#include -+#else -+#include -+#endif -+#include -+#if LLVM_USE_INTEL_JITEVENTS -+#include -+#endif -+ -+/* conflict with ObjectLinkingLayer.h */ -+#include "util/u_memory.h" -+ -+#if DETECT_ARCH_RISCV64 == 1 || DETECT_ARCH_RISCV32 == 1 || (defined(_WIN32) && LLVM_VERSION_MAJOR >= 15) -+/* use ObjectLinkingLayer (JITLINK backend) */ -+#define USE_JITLINK -+#endif -+/* else use old RTDyldObjectLinkingLayer (RuntimeDyld backend) */ -+ -+namespace { -+ -+class LPJit; -+ -+class LLVMEnsureMultithreaded { -+public: -+ LLVMEnsureMultithreaded() -+ { -+ if (!LLVMIsMultithreaded()) { -+ LLVMStartMultithreaded(); -+ } -+ } -+}; -+ -+LLVMEnsureMultithreaded lLVMEnsureMultithreaded; -+ -+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::ThreadSafeContext, -+ LLVMOrcThreadSafeContextRef) -+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::IRTransformLayer, -+ LLVMOrcIRTransformLayerRef) -+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::JITDylib, LLVMOrcJITDylibRef) -+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(llvm::orc::JITTargetMachineBuilder, -+ LLVMOrcJITTargetMachineBuilderRef) -+LLVMTargetMachineRef wrap(const llvm::TargetMachine *P) { -+ return reinterpret_cast(const_cast(P)); -+} -+ -+llvm::ExitOnError ExitOnErr; -+ -+inline const char* get_module_name(LLVMModuleRef mod) { -+ using llvm::Module; -+ return llvm::unwrap(mod)->getModuleIdentifier().c_str(); -+} -+ -+once_flag init_lpjit_once_flag = ONCE_FLAG_INIT; -+ -+/* A JIT singleton built upon LLJIT */ -+class LPJit -+{ -+public: -+ static LPJit* get_instance() { -+ call_once(&init_lpjit_once_flag, init_lpjit); -+ return jit; -+ } -+ -+ gallivm_state *find_gallivm_state(LLVMModuleRef mod) { -+#if DEBUG -+ using llvm::Module; -+ auto I = gallivm_modules.find(llvm::unwrap(mod)->getModuleIdentifier()); -+ if (I == gallivm_modules.end()) { -+ debug_printf("No gallivm state found for module: %s", get_module_name(mod)); -+ return NULL; -+ } -+ return I->second; -+#endif -+ return NULL; -+ } -+ -+ static char *get_unique_name(const char* name) { -+ LPJit* jit = get_instance(); -+ size_t size = name == NULL? 16: strlen(name) + 16; -+ char *name_uniq = (char *)MALLOC(size); -+ if (!name_uniq) { -+ return NULL; -+ } -+ do { -+ snprintf(name_uniq, size, "%s_%u", name, jit->jit_dylib_count++); -+ } while(jit->lljit->getExecutionSession().getJITDylibByName(name_uniq)); -+ return name_uniq; -+ } -+ -+ static LLVMOrcJITDylibRef create_jit_dylib(const char * name) { -+ using llvm::orc::JITDylib; -+ LPJit* jit = get_instance(); -+ JITDylib& tmp = ExitOnErr(jit->lljit->createJITDylib(name)); -+ return wrap(&tmp); -+ } -+ -+ static void register_gallivm_state(gallivm_state *gallivm) { -+#if DEBUG -+ LPJit* jit = get_instance(); -+ jit->gallivm_modules[gallivm->module_name] = gallivm; -+#endif -+ } -+ -+ static void deregister_gallivm_state(gallivm_state *gallivm) { -+#if DEBUG -+ LPJit* jit = get_instance(); -+ (void)jit->gallivm_modules.erase(gallivm->module_name); -+#endif -+ } -+ -+ static void add_ir_module_to_jd( -+ LLVMOrcThreadSafeContextRef ts_context, -+ LLVMModuleRef mod, -+ LLVMOrcJITDylibRef jd) { -+ using llvm::Module; -+ using llvm::orc::ThreadSafeModule; -+ using llvm::orc::JITDylib; -+ ThreadSafeModule tsm( -+ std::unique_ptr(llvm::unwrap(mod)), *::unwrap(ts_context)); -+ ExitOnErr(get_instance()->lljit->addIRModule( -+ *::unwrap(jd), std::move(tsm) -+ )); -+ } -+ -+ static void add_mapping_to_jd( -+ LLVMValueRef sym, -+ void *addr, -+ LLVMOrcJITDylibRef jd) { -+#if LLVM_VERSION_MAJOR >= 17 -+ using llvm::orc::ExecutorAddr; -+ using llvm::orc::ExecutorSymbolDef; -+ using llvm::JITSymbolFlags; -+#else -+ using llvm::JITEvaluatedSymbol; -+#endif -+ using llvm::orc::ExecutionSession; -+ using llvm::orc::JITDylib; -+ using llvm::orc::SymbolMap; -+ JITDylib* JD = ::unwrap(jd); -+ auto& es = LPJit::get_instance()->lljit->getExecutionSession(); -+ auto name = es.intern(llvm::unwrap(sym)->getName()); -+ SymbolMap map(1); -+#if LLVM_VERSION_MAJOR >= 17 -+ map[name] = ExecutorSymbolDef(ExecutorAddr::fromPtr(addr), JITSymbolFlags::Exported); -+#else -+ map[name] = JITEvaluatedSymbol::fromPointer(addr); -+#endif -+ auto munit = llvm::orc::absoluteSymbols(map); -+ llvm::cantFail(JD->define(std::move(munit))); -+ } -+ -+ static void *lookup_in_jd( -+ const char *func_name, -+ LLVMOrcJITDylibRef jd) { -+ using llvm::orc::JITDylib; -+ using llvm::JITEvaluatedSymbol; -+ using llvm::orc::ExecutorAddr; -+ JITDylib* JD = ::unwrap(jd); -+ auto func = ExitOnErr(LPJit::get_instance()->lljit->lookup(*JD, func_name)); -+#if LLVM_VERSION_MAJOR >= 16 -+ return func.toPtr(); -+#else -+ return (void *)(func.getAddress()); -+#endif -+ } -+ -+ static void remove_jd(LLVMOrcJITDylibRef jd) { -+ using llvm::orc::ExecutionSession; -+ using llvm::orc::JITDylib; -+ auto& es = LPJit::get_instance()->lljit->getExecutionSession(); -+ ExitOnErr(es.removeJITDylib(* ::unwrap(jd))); -+ } -+ -+ LLVMTargetMachineRef tm; -+ -+private: -+ LPJit(); -+ ~LPJit() = default; -+ LPJit(const LPJit&) = delete; -+ LPJit& operator=(const LPJit&) = delete; -+ -+ static void init_native_targets(); -+ llvm::orc::JITTargetMachineBuilder create_jtdb(); -+ -+ static void init_lpjit() { -+ jit = new LPJit; -+ } -+ static LPJit* jit; -+ -+ std::unique_ptr lljit; -+ /* avoid name conflict */ -+ unsigned jit_dylib_count; -+ -+#if DEBUG -+ /* map from module name to gallivm_state */ -+ llvm::StringMap gallivm_modules; -+#endif -+}; -+ -+LPJit* LPJit::jit = NULL; -+ -+LLVMErrorRef module_transform(void *Ctx, LLVMModuleRef mod) { -+ struct lp_passmgr *mgr; -+ -+ lp_passmgr_create(mod, &mgr); -+ -+ lp_passmgr_run(mgr, mod, -+ LPJit::get_instance()->tm, -+ get_module_name(mod)); -+ -+ lp_passmgr_dispose(mgr); -+ return LLVMErrorSuccess; -+} -+ -+LLVMErrorRef module_transform_wrapper( -+ void *Ctx, LLVMOrcThreadSafeModuleRef *ModInOut, -+ LLVMOrcMaterializationResponsibilityRef MR) { -+ return LLVMOrcThreadSafeModuleWithModuleDo(*ModInOut, *module_transform, Ctx); -+} -+ -+LPJit::LPJit() :jit_dylib_count(0) { -+ using namespace llvm::orc; -+ -+ lp_init_env_options(); -+ -+ init_native_targets(); -+ JITTargetMachineBuilder JTMB = create_jtdb(); -+ tm = wrap(ExitOnErr(JTMB.createTargetMachine()).release()); -+ -+ /* Create an LLJIT instance with an ObjectLinkingLayer (JITLINK) -+ * or RuntimeDyld as the base layer. -+ * intel & perf listeners are not supported by ObjectLinkingLayer yet -+ */ -+ lljit = ExitOnErr( -+ LLJITBuilder() -+ .setJITTargetMachineBuilder(std::move(JTMB)) -+#ifdef USE_JITLINK -+ .setObjectLinkingLayerCreator( -+ [&](ExecutionSession &ES, const llvm::Triple &TT) { -+ return std::make_unique( -+ ES, ExitOnErr(llvm::jitlink::InProcessMemoryManager::Create())); -+ }) -+#else -+#if LLVM_USE_INTEL_JITEVENTS -+ .RegisterJITEventListener( -+ llvm::JITEventListener::createIntelJITEventListener()) -+#endif -+#endif -+ .create()); -+ -+ LLVMOrcIRTransformLayerRef TL = wrap(&lljit->getIRTransformLayer()); -+ LLVMOrcIRTransformLayerSetTransform(TL, *module_transform_wrapper, NULL); -+} -+ -+void LPJit::init_native_targets() { -+ -+ lp_bld_init_native_targets(); -+ -+ lp_build_init_native_width(); -+ -+ lp_bld_ppc_disable_denorms(); -+} -+ -+llvm::orc::JITTargetMachineBuilder LPJit::create_jtdb() { -+ using namespace llvm; -+ using orc::JITTargetMachineBuilder; -+ -+#if defined(_WIN32) && LLVM_VERSION_MAJOR < 15 -+ /* -+ * JITLink works on Windows, but only through ELF object format. -+ * -+ * XXX: We could use `LLVM_HOST_TRIPLE "-elf"` but LLVM_HOST_TRIPLE has -+ * different strings for MinGW/MSVC, so better play it safe and be -+ * explicit. -+ */ -+# ifdef _WIN64 -+ JITTargetMachineBuilder JTMB((Triple("x86_64-pc-win32-elf"))); -+# else -+ JITTargetMachineBuilder JTMB((Triple("i686-pc-win32-elf"))); -+# endif -+#else -+ /* -+ * llvm::sys::getProcessTriple() is bogus. It returns the host LLVM was -+ * compiled on. Be careful when doing cross compilation -+ */ -+ JITTargetMachineBuilder JTMB((Triple(sys::getProcessTriple()))); -+#endif -+ -+ TargetOptions options; -+ /** -+ * LLVM 3.1+ haven't more "extern unsigned llvm::StackAlignmentOverride" and -+ * friends for configuring code generation options, like stack alignment. -+ */ -+#if DETECT_ARCH_X86 == 1 && LLVM_VERSION_MAJOR < 13 -+ options.StackAlignmentOverride = 4; -+#endif -+ -+#if DETECT_ARCH_RISCV64 == 1 -+#if defined(__riscv_float_abi_soft) -+ options.MCOptions.ABIName = "lp64"; -+#elif defined(__riscv_float_abi_single) -+ options.MCOptions.ABIName = "lp64f"; -+#elif defined(__riscv_float_abi_double) -+ options.MCOptions.ABIName = "lp64d"; -+#else -+#error "GALLIVM: unknown target riscv float abi" -+#endif -+#endif -+ -+#if DETECT_ARCH_RISCV32 == 1 -+#if defined(__riscv_float_abi_soft) -+ options.MCOptions.ABIName = "ilp32"; -+#elif defined(__riscv_float_abi_single) -+ options.MCOptions.ABIName = "ilp32f"; -+#elif defined(__riscv_float_abi_double) -+ options.MCOptions.ABIName = "ilp32d"; -+#else -+#error "GALLIVM: unknown target riscv float abi" -+#endif -+#endif -+ -+ JTMB.setOptions(options); -+ -+ std::vector MAttrs; -+ -+ lp_build_fill_mattrs(MAttrs); -+ -+ JTMB.addFeatures(MAttrs); -+ -+ lp_build_dump_mattrs(MAttrs); -+ -+ std::string MCPU = llvm::sys::getHostCPUName().str(); -+ /* -+ * Note that the MAttrs set above will be sort of ignored (since we should -+ * not set any which would not be set by specifying the cpu anyway). -+ * It ought to be safe though since getHostCPUName() should include bits -+ * not only from the cpu but environment as well (for instance if it's safe -+ * to use avx instructions which need OS support). According to -+ * http://llvm.org/bugs/show_bug.cgi?id=19429 however if I understand this -+ * right it may be necessary to specify older cpu (or disable mattrs) though -+ * when not using MCJIT so no instructions are generated which the old JIT -+ * can't handle. Not entirely sure if we really need to do anything yet. -+ * -+ * Not sure if the above is also the case for ORCJIT, but we need set CPU -+ * manually since we don't use JITTargetMachineBuilder::detectHost() -+ */ -+ -+#if DETECT_ARCH_PPC_64 == 1 -+ /* -+ * Large programs, e.g. gnome-shell and firefox, may tax the addressability -+ * of the Medium code model once dynamically generated JIT-compiled shader -+ * programs are linked in and relocated. Yet the default code model as of -+ * LLVM 8 is Medium or even Small. -+ * The cost of changing from Medium to Large is negligible: -+ * - an additional 8-byte pointer stored immediately before the shader entrypoint; -+ * - change an add-immediate (addis) instruction to a load (ld). -+ */ -+ JTMB.setCodeModel(CodeModel::Large); -+ -+#if UTIL_ARCH_LITTLE_ENDIAN -+ /* -+ * Versions of LLVM prior to 4.0 lacked a table entry for "POWER8NVL", -+ * resulting in (big-endian) "generic" being returned on -+ * little-endian Power8NVL systems. The result was that code that -+ * attempted to load the least significant 32 bits of a 64-bit quantity -+ * from memory loaded the wrong half. This resulted in failures in some -+ * Piglit tests, e.g. -+ * .../arb_gpu_shader_fp64/execution/conversion/frag-conversion-explicit-double-uint -+ */ -+ if (MCPU == "generic") -+ MCPU = "pwr8"; -+#endif -+#endif -+ -+#if DETECT_ARCH_MIPS64 == 1 -+ /* -+ * ls3a4000 CPU and ls2k1000 SoC is a mips64r5 compatible with MSA SIMD -+ * instruction set implemented, while ls3a3000 is mips64r2 compatible -+ * only. getHostCPUName() return "generic" on all loongson -+ * mips CPU currently. So we override the MCPU to mips64r5 if MSA is -+ * implemented, feedback to mips64r2 for all other ordinary mips64 cpu. -+ */ -+ if (MCPU == "generic") -+ MCPU = util_get_cpu_caps()->has_msa ? "mips64r5" : "mips64r2"; -+#endif -+ -+#if DETECT_ARCH_RISCV64 == 1 -+ /** -+ * should be fixed with https://reviews.llvm.org/D121149 in llvm 15, -+ * set it anyway for llvm 14 -+ */ -+ if (MCPU == "generic") -+ MCPU = "generic-rv64"; -+ -+ JTMB.setCodeModel(CodeModel::Medium); -+ JTMB.setRelocationModel(Reloc::PIC_); -+#endif -+ -+#if DETECT_ARCH_RISCV32 == 1 -+ /** -+ * should be fixed with https://reviews.llvm.org/D121149 in llvm 15, -+ * set it anyway for llvm 14 -+ */ -+ if (MCPU == "generic") -+ MCPU = "generic-rv32"; -+ -+ JTMB.setCodeModel(CodeModel::Medium); -+ JTMB.setRelocationModel(Reloc::PIC_); -+#endif -+ -+ JTMB.setCPU(MCPU); -+ if (gallivm_debug & (GALLIVM_DEBUG_IR | GALLIVM_DEBUG_ASM | GALLIVM_DEBUG_DUMP_BC)) { -+ debug_printf("llc -mcpu option: %s\n", MCPU.c_str()); -+ } -+ -+ return JTMB; -+} -+ -+ -+} /* Anonymous namespace */ -+ -+bool -+lp_build_init(void) -+{ -+ (void)LPJit::get_instance(); -+ return true; -+} -+ -+bool -+init_gallivm_state(struct gallivm_state *gallivm, const char *name, -+ lp_context_ref *context, struct lp_cached_code *cache) -+{ -+ assert(!gallivm->context); -+ assert(!gallivm->_ts_context); -+ assert(!gallivm->module); -+ -+ if (!lp_build_init()) -+ return false; -+ -+ // cache is not implemented -+ gallivm->cache = cache; -+ if (gallivm->cache) -+ gallivm->cache->data_size = 0; -+ -+ gallivm->_ts_context = context->ref; -+ gallivm->context = LLVMOrcThreadSafeContextGetContext(context->ref); -+ -+ gallivm->module_name = LPJit::get_unique_name(name); -+ gallivm->module = LLVMModuleCreateWithNameInContext(gallivm->module_name, -+ gallivm->context); -+#if DETECT_ARCH_X86 == 1 -+ lp_set_module_stack_alignment_override(gallivm->module, 4); -+#endif -+ gallivm->builder = LLVMCreateBuilderInContext(gallivm->context); -+ gallivm->_per_module_jd = LPJit::create_jit_dylib(gallivm->module_name); -+ -+ gallivm->target = LLVMCreateTargetDataLayout(LPJit::get_instance()->tm); -+ -+ lp_build_coro_declare_malloc_hooks(gallivm); -+ return true; -+} -+ -+struct gallivm_state * -+gallivm_create(const char *name, lp_context_ref *context, -+ struct lp_cached_code *cache){ -+ struct gallivm_state *gallivm; -+ -+ gallivm = CALLOC_STRUCT(gallivm_state); -+ if (gallivm) { -+ if (!init_gallivm_state(gallivm, name, context, cache)) { -+ FREE(gallivm); -+ gallivm = NULL; -+ } -+ } -+ -+ assert(gallivm != NULL); -+ return gallivm; -+} -+ -+void -+gallivm_destroy(struct gallivm_state *gallivm) -+{ -+ LPJit::remove_jd(gallivm->_per_module_jd); -+ gallivm->_per_module_jd = nullptr; -+} -+ -+void -+gallivm_free_ir(struct gallivm_state *gallivm) -+{ -+ if (gallivm->module) -+ LLVMDisposeModule(gallivm->module); -+ FREE(gallivm->module_name); -+ -+ if (gallivm->target) { -+ LLVMDisposeTargetData(gallivm->target); -+ } -+ -+ if (gallivm->builder) -+ LLVMDisposeBuilder(gallivm->builder); -+ -+ gallivm->target = NULL; -+ gallivm->module=NULL; -+ gallivm->module_name=NULL; -+ gallivm->builder=NULL; -+ gallivm->context=NULL; -+ gallivm->_ts_context=NULL; -+ gallivm->cache=NULL; -+ LPJit::deregister_gallivm_state(gallivm); -+} -+ -+void -+gallivm_add_global_mapping(struct gallivm_state *gallivm, LLVMValueRef sym, void* addr) -+{ -+ LPJit::add_mapping_to_jd(sym, addr, gallivm->_per_module_jd); -+} -+ -+void -+gallivm_compile_module(struct gallivm_state *gallivm) -+{ -+ lp_init_printf_hook(gallivm); -+ gallivm_add_global_mapping(gallivm, gallivm->debug_printf_hook, -+ (void *)debug_printf); -+ -+ lp_init_clock_hook(gallivm); -+ gallivm_add_global_mapping(gallivm, gallivm->get_time_hook, -+ (void *)os_time_get_nano); -+ -+ lp_build_coro_add_malloc_hooks(gallivm); -+ -+ LPJit::add_ir_module_to_jd(gallivm->_ts_context, gallivm->module, -+ gallivm->_per_module_jd); -+ /* ownership of module is now transferred into orc jit, -+ * disallow modifying it -+ */ -+ LPJit::register_gallivm_state(gallivm); -+ gallivm->module = nullptr; -+ -+ /* defer compilation till first lookup by gallivm_jit_function */ -+} -+ -+func_pointer -+gallivm_jit_function(struct gallivm_state *gallivm, -+ LLVMValueRef func, const char *func_name) -+{ -+ return pointer_to_func( -+ LPJit::lookup_in_jd(func_name, gallivm->_per_module_jd)); -+} -diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build -index 0f23a7889db..7cf8c9591b5 100644 ---- a/src/gallium/auxiliary/meson.build -+++ b/src/gallium/auxiliary/meson.build -@@ -346,7 +346,6 @@ if draw_with_llvm - 'gallivm/lp_bld_gather.c', - 'gallivm/lp_bld_gather.h', - 'gallivm/lp_bld.h', -- 'gallivm/lp_bld_init.c', - 'gallivm/lp_bld_init_common.c', - 'gallivm/lp_bld_init.h', - 'gallivm/lp_bld_intr.c', -@@ -401,6 +400,11 @@ if draw_with_llvm - 'nir/nir_to_tgsi_info.c', - 'nir/nir_to_tgsi_info.h', - ) -+ if llvm_with_orcjit -+ files_libgallium += files('gallivm/lp_bld_init_orc.cpp',) -+ else -+ files_libgallium += files('gallivm/lp_bld_init.c',) -+ endif - endif - - files_libgalliumvl = files( -diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c -index d073228d173..f715db67b1c 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_cs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c -@@ -1274,9 +1274,16 @@ generate_variant(struct llvmpipe_context *lp, - - generate_compute(lp, shader, variant); - -+#if GALLIVM_USE_ORCJIT -+/* module has been moved into ORCJIT after gallivm_compile_module */ -+ variant->nr_instrs += lp_build_count_ir_module(variant->gallivm->module); -+ -+ gallivm_compile_module(variant->gallivm); -+#else - gallivm_compile_module(variant->gallivm); - - variant->nr_instrs += lp_build_count_ir_module(variant->gallivm->module); -+#endif - - variant->jit_function = (lp_jit_cs_func) - gallivm_jit_function(variant->gallivm, variant->function, variant->function_name); -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 18256ff5a44..7728b53366a 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3916,9 +3916,16 @@ generate_variant(struct llvmpipe_context *lp, - * Compile everything - */ - -+#if GALLIVM_USE_ORCJIT -+/* module has been moved into ORCJIT after gallivm_compile_module */ -+ variant->nr_instrs += lp_build_count_ir_module(variant->gallivm->module); -+ -+ gallivm_compile_module(variant->gallivm); -+#else - gallivm_compile_module(variant->gallivm); - - variant->nr_instrs += lp_build_count_ir_module(variant->gallivm->module); -+#endif - - if (variant->function[RAST_EDGE_TEST]) { - variant->jit_function[RAST_EDGE_TEST] = (lp_jit_frag_func) --- -2.46.0 - diff --git a/debian/patches/0018-llvmpipe-append-partial-mask-to-partial-fs_variant-f.patch b/debian/patches/0018-llvmpipe-append-partial-mask-to-partial-fs_variant-f.patch deleted file mode 100644 index a9f78691f..000000000 --- a/debian/patches/0018-llvmpipe-append-partial-mask-to-partial-fs_variant-f.patch +++ /dev/null @@ -1,32 +0,0 @@ -From fb125db23d206f91f15b3bbddc3f5a4dc1535109 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Fri, 1 Mar 2024 11:21:48 +0800 -Subject: [PATCH 18/26] llvmpipe: append partial mask to partial fs_variant - func name - -Signed-off-by: Icenowy Zheng ---- - src/gallium/drivers/llvmpipe/lp_state_fs.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index 7728b53366a..aab0d532de5 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3180,8 +3180,11 @@ generate_fragment(struct llvmpipe_context *lp, - blend_vec_type = lp_build_vec_type(gallivm, blend_type); - - char func_name[64]; -- snprintf(func_name, sizeof(func_name), "fs_variant_%s", -- partial_mask ? "partial" : "whole"); -+ if (partial_mask) -+ snprintf(func_name, sizeof(func_name), "fs_variant_partial%u", -+ partial_mask); -+ else -+ strcpy(func_name, "fs_variant_whole"); - - arg_types[0] = variant->jit_context_ptr_type; /* context */ - arg_types[1] = variant->jit_resources_ptr_type; /* context */ --- -2.46.0 - diff --git a/debian/patches/0019-llvmpipe-add-shader-cache-support-for-ORCJIT-impleme.patch b/debian/patches/0019-llvmpipe-add-shader-cache-support-for-ORCJIT-impleme.patch deleted file mode 100644 index faf4ad59a..000000000 --- a/debian/patches/0019-llvmpipe-add-shader-cache-support-for-ORCJIT-impleme.patch +++ /dev/null @@ -1,290 +0,0 @@ -From f84d93a230d428d0b5e5f6dbd1ae5086657a35d9 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Fri, 28 Jun 2024 12:43:29 +0800 -Subject: [PATCH 19/26] llvmpipe: add shader cache support for ORCJIT - implementation - -Signed-off-by: Icenowy Zheng ---- - src/gallium/auxiliary/draw/draw_llvm.c | 19 ++++- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 11 +++ - src/gallium/auxiliary/gallivm/lp_bld_init.h | 3 + - .../auxiliary/gallivm/lp_bld_init_orc.cpp | 76 ++++++++++++++++++- - src/gallium/drivers/llvmpipe/lp_state_cs.c | 4 +- - src/gallium/drivers/llvmpipe/lp_state_fs.c | 4 +- - .../llvmpipe/lp_state_fs_linear_llvm.c | 4 +- - 7 files changed, 111 insertions(+), 10 deletions(-) - -diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c -index 12c246aadc9..46eb9dfb9e8 100644 ---- a/src/gallium/auxiliary/draw/draw_llvm.c -+++ b/src/gallium/auxiliary/draw/draw_llvm.c -@@ -1636,8 +1636,10 @@ draw_llvm_generate(struct draw_llvm *llvm, struct draw_llvm_variant *variant) - if (LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) - lp_add_function_attr(variant_func, i + 1, LP_FUNC_ATTR_NOALIAS); - -- if (gallivm->cache && gallivm->cache->data_size) -+ if (gallivm->cache && gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, variant_func); - return; -+ } - - context_ptr = LLVMGetParam(variant_func, 0); - resources_ptr = LLVMGetParam(variant_func, 1); -@@ -2367,8 +2369,11 @@ draw_gs_llvm_generate(struct draw_llvm *llvm, - if (LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) - lp_add_function_attr(variant_func, i + 1, LP_FUNC_ATTR_NOALIAS); - -- if (gallivm->cache && gallivm->cache->data_size) -+ if (gallivm->cache && gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, variant_func); - return; -+ } -+ - context_ptr = LLVMGetParam(variant_func, 0); - resources_ptr = LLVMGetParam(variant_func, 1); - input_array = LLVMGetParam(variant_func, 2); -@@ -2961,8 +2966,11 @@ draw_tcs_llvm_generate(struct draw_llvm *llvm, - } - } - -- if (gallivm->cache && gallivm->cache->data_size) -+ if (gallivm->cache && gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, variant_func); - return; -+ } -+ - resources_ptr = LLVMGetParam(variant_func, 0); - input_array = LLVMGetParam(variant_func, 1); - output_array = LLVMGetParam(variant_func, 2); -@@ -3523,8 +3531,11 @@ draw_tes_llvm_generate(struct draw_llvm *llvm, - if (LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) - lp_add_function_attr(variant_func, i + 1, LP_FUNC_ATTR_NOALIAS); - -- if (gallivm->cache && gallivm->cache->data_size) -+ if (gallivm->cache && gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, variant_func); - return; -+ } -+ - resources_ptr = LLVMGetParam(variant_func, 0); - input_array = LLVMGetParam(variant_func, 1); - io_ptr = LLVMGetParam(variant_func, 2); -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index c7d55cce7d1..8a4c5b0b58e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -495,3 +495,14 @@ gallivm_jit_function(struct gallivm_state *gallivm, - - return jit_func; - } -+ -+void -+gallivm_stub_func(struct gallivm_state *gallivm, LLVMValueRef func) -+{ -+ /* -+ * MCJIT can accept an empty function, nothing is needed here. -+ * The only code is to silence unused var warning. -+ */ -+ (void) gallivm; -+ (void) func; -+} -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h -index 15549d10962..6894e9ecac7 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h -@@ -116,6 +116,9 @@ func_pointer - gallivm_jit_function(struct gallivm_state *gallivm, - LLVMValueRef func, const char *func_name); - -+void -+gallivm_stub_func(struct gallivm_state *gallivm, LLVMValueRef func); -+ - unsigned gallivm_get_perf_flags(void); - - void lp_init_clock_hook(struct gallivm_state *gallivm); -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -index 12c7aadb2b2..74593289ed1 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - #include "llvm/ExecutionEngine/JITLink/JITLink.h" - #include - #include -@@ -57,6 +59,41 @@ - - namespace { - -+class LPObjectCacheORC : public llvm::ObjectCache { -+private: -+ bool has_object; -+ std::string mid; -+ struct lp_cached_code *cache_out; -+public: -+ LPObjectCacheORC(struct lp_cached_code *cache) { -+ cache_out = cache; -+ has_object = false; -+ } -+ -+ ~LPObjectCacheORC() { -+ } -+ void notifyObjectCompiled(const llvm::Module *M, llvm::MemoryBufferRef Obj) override { -+ const std::string ModuleID = M->getModuleIdentifier(); -+ if (has_object) -+ fprintf(stderr, "CACHE ALREADY HAS MODULE OBJECT\n"); -+ if (mid == ModuleID) -+ fprintf(stderr, "CACHING ANOTHER MODULE\n"); -+ has_object = true; -+ mid = ModuleID; -+ cache_out->data_size = Obj.getBufferSize(); -+ cache_out->data = malloc(cache_out->data_size); -+ memcpy(cache_out->data, Obj.getBufferStart(), cache_out->data_size); -+ } -+ -+ std::unique_ptr getObject(const llvm::Module *M) override { -+ const std::string ModuleID = M->getModuleIdentifier(); -+ if (cache_out->data_size) -+ return llvm::MemoryBuffer::getMemBuffer(llvm::StringRef((const char *)cache_out->data, cache_out->data_size), "", false); -+ return NULL; -+ } -+ -+}; -+ - class LPJit; - - class LLVMEnsureMultithreaded { -@@ -210,6 +247,12 @@ public: - ExitOnErr(es.removeJITDylib(* ::unwrap(jd))); - } - -+ static void set_object_cache(llvm::ObjectCache *objcache) { -+ auto &ircl = LPJit::get_instance()->lljit->getIRCompileLayer(); -+ auto &irc = ircl.getCompiler(); -+ auto &sc = dynamic_cast(irc); -+ sc.setObjectCache(objcache); -+ } - LLVMTargetMachineRef tm; - - private: -@@ -476,10 +519,7 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name, - if (!lp_build_init()) - return false; - -- // cache is not implemented - gallivm->cache = cache; -- if (gallivm->cache) -- gallivm->cache->data_size = 0; - - gallivm->_ts_context = context->ref; - gallivm->context = LLVMOrcThreadSafeContextGetContext(context->ref); -@@ -537,6 +577,12 @@ gallivm_free_ir(struct gallivm_state *gallivm) - if (gallivm->builder) - LLVMDisposeBuilder(gallivm->builder); - -+ if (gallivm->cache) { -+ if (gallivm->cache->jit_obj_cache) -+ lp_free_objcache(gallivm->cache->jit_obj_cache); -+ free(gallivm->cache->data); -+ } -+ - gallivm->target = NULL; - gallivm->module=NULL; - gallivm->module_name=NULL; -@@ -545,6 +591,7 @@ gallivm_free_ir(struct gallivm_state *gallivm) - gallivm->_ts_context=NULL; - gallivm->cache=NULL; - LPJit::deregister_gallivm_state(gallivm); -+ LPJit::set_object_cache(NULL); - } - - void -@@ -574,6 +621,14 @@ gallivm_compile_module(struct gallivm_state *gallivm) - LPJit::register_gallivm_state(gallivm); - gallivm->module = nullptr; - -+ if (gallivm->cache) { -+ if (!gallivm->cache->jit_obj_cache) { -+ LPObjectCacheORC *objcache = new LPObjectCacheORC(gallivm->cache); -+ gallivm->cache->jit_obj_cache = (void *)objcache; -+ } -+ auto *objcache = (LPObjectCacheORC *)gallivm->cache->jit_obj_cache; -+ LPJit::set_object_cache(objcache); -+ } - /* defer compilation till first lookup by gallivm_jit_function */ - } - -@@ -584,3 +639,18 @@ gallivm_jit_function(struct gallivm_state *gallivm, - return pointer_to_func( - LPJit::lookup_in_jd(func_name, gallivm->_per_module_jd)); - } -+ -+void -+gallivm_stub_func(struct gallivm_state *gallivm, LLVMValueRef func) -+{ -+ /* -+ * ORCJIT cannot accept a function with absolutely no content at all. -+ * Generate a "void func() {}" stub here. -+ */ -+ LLVMBasicBlockRef block = LLVMAppendBasicBlockInContext(gallivm->context, -+ func, "entry"); -+ LLVMBuilderRef builder = gallivm->builder; -+ assert(builder); -+ LLVMPositionBuilderAtEnd(builder, block); -+ LLVMBuildRetVoid(builder); -+} -diff --git a/src/gallium/drivers/llvmpipe/lp_state_cs.c b/src/gallium/drivers/llvmpipe/lp_state_cs.c -index f715db67b1c..904a4e9330a 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_cs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_cs.c -@@ -409,8 +409,10 @@ generate_compute(struct llvmpipe_context *lp, - } - } - -- if (variant->gallivm->cache->data_size) -+ if (variant->gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, function); - return; -+ } - - context_ptr = LLVMGetParam(function, CS_ARG_CONTEXT); - resources_ptr = LLVMGetParam(function, CS_ARG_RESOURCES); -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c -index aab0d532de5..18088aa3568 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c -@@ -3220,8 +3220,10 @@ generate_fragment(struct llvmpipe_context *lp, - if (LLVMGetTypeKind(arg_types[i]) == LLVMPointerTypeKind) - lp_add_function_attr(function, i + 1, LP_FUNC_ATTR_NOALIAS); - -- if (variant->gallivm->cache->data_size) -+ if (variant->gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, function); - return; -+ } - - context_ptr = LLVMGetParam(function, 0); - resources_ptr = LLVMGetParam(function, 1); -diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c b/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -index 70db126994d..1776fdb8bf3 100644 ---- a/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -+++ b/src/gallium/drivers/llvmpipe/lp_state_fs_linear_llvm.c -@@ -301,8 +301,10 @@ llvmpipe_fs_variant_linear_llvm(struct llvmpipe_context *lp, - } - } - -- if (variant->gallivm->cache->data_size) -+ if (variant->gallivm->cache->data_size) { -+ gallivm_stub_func(gallivm, function); - return; -+ } - - LLVMValueRef context_ptr = LLVMGetParam(function, 0); - LLVMValueRef x = LLVMGetParam(function, 1); --- -2.46.0 - diff --git a/debian/patches/0020-util-detect-LoongArch-architecture.patch b/debian/patches/0020-util-detect-LoongArch-architecture.patch deleted file mode 100644 index 8febbcafe..000000000 --- a/debian/patches/0020-util-detect-LoongArch-architecture.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 8be48a46675472352101a7af0a4d17d01a98f8a9 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Sat, 6 Jul 2024 00:06:45 +0800 -Subject: [PATCH 20/26] util: detect LoongArch architecture - -Only 64-bit is considered now because 32-bit LoongArch Linux support -doesn't exist in upstream yet. - -Signed-off-by: Icenowy Zheng ---- - src/util/detect_arch.h | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/util/detect_arch.h b/src/util/detect_arch.h -index 35385a02b49..413575c2b72 100644 ---- a/src/util/detect_arch.h -+++ b/src/util/detect_arch.h -@@ -112,6 +112,14 @@ - #endif - #endif - -+#if defined(__loongarch__) -+#if __loongarch_grlen == 64 -+#define DETECT_ARCH_LOONGARCH64 1 -+#else -+#error "pipe: unknown target loongarch grlen" -+#endif -+#endif -+ - #ifndef DETECT_ARCH_X86 - #define DETECT_ARCH_X86 0 - #endif -@@ -168,4 +176,8 @@ - #define DETECT_ARCH_RISCV64 0 - #endif - -+#ifndef DETECT_ARCH_LOONGARCH64 -+#define DETECT_ARCH_LOONGARCH64 0 -+#endif -+ - #endif /* UTIL_DETECT_ARCH_H_ */ --- -2.46.0 - diff --git a/debian/patches/0021-gallivm-add-LoongArch-support-to-the-mattrs-setting-.patch b/debian/patches/0021-gallivm-add-LoongArch-support-to-the-mattrs-setting-.patch deleted file mode 100644 index 29d16d109..000000000 --- a/debian/patches/0021-gallivm-add-LoongArch-support-to-the-mattrs-setting-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d0088af36303f49430e44f765b47c8a7d78177d1 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Sat, 6 Jul 2024 00:10:39 +0800 -Subject: [PATCH 21/26] gallivm: add LoongArch support to the mattrs setting - code - -Currently the mattrs is set according to the softdev convention, with -LSX explicitly disabled because it's troublesome at least on LLVM 17. - -Signed-off-by: Icenowy Zheng ---- - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index 4a169c84b9e..612da9e6aee 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -414,6 +414,23 @@ lp_build_fill_mattrs(std::vector &MAttrs) - */ - MAttrs = {"+m","+c","+a","+d","+f"}; - #endif -+ -+#if DETECT_ARCH_LOONGARCH64 == 1 -+ /* -+ * TODO: Implement util_get_cpu_caps() -+ * -+ * No FPU-less LoongArch64 systems are ever shipped yet, and LP64D is -+ * the default ABI, so FPU is enabled here. -+ * -+ * The Software development convention defaults to have "128-bit -+ * vector", so LSX is enabled here, see -+ * https://github.com/loongson/la-softdev-convention/releases/download/v0.1/la-softdev-convention.pdf -+ * -+ * FIXME: lsx is disabled here now because it's broken on LLVM17, need to -+ * test on LLVM18 now. -+ */ -+ MAttrs = {"+f","+d","-lsx"}; -+#endif - } - - void --- -2.46.0 - diff --git a/debian/patches/0022-llvmpipe-add-LoongArch-support-in-ORCJIT.patch b/debian/patches/0022-llvmpipe-add-LoongArch-support-in-ORCJIT.patch deleted file mode 100644 index 0156477de..000000000 --- a/debian/patches/0022-llvmpipe-add-LoongArch-support-in-ORCJIT.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b7fa7cb7e728097ccb492685295e6358ec7d0bae Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Sat, 6 Jul 2024 00:12:18 +0800 -Subject: [PATCH 22/26] llvmpipe: add LoongArch support in ORCJIT - -LoongArch is an architecture too new to have MCJIT support. - -Add its support to ORCJIT code. - -Signed-off-by: Icenowy Zheng ---- - src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -index 74593289ed1..952db26fd0e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp -@@ -51,7 +51,7 @@ - /* conflict with ObjectLinkingLayer.h */ - #include "util/u_memory.h" - --#if DETECT_ARCH_RISCV64 == 1 || DETECT_ARCH_RISCV32 == 1 || (defined(_WIN32) && LLVM_VERSION_MAJOR >= 15) -+#if DETECT_ARCH_RISCV64 == 1 || DETECT_ARCH_RISCV32 == 1 || DETECT_ARCH_LOONGARCH64 == 1 || (defined(_WIN32) && LLVM_VERSION_MAJOR >= 15) - /* use ObjectLinkingLayer (JITLINK backend) */ - #define USE_JITLINK - #endif -@@ -399,6 +399,14 @@ llvm::orc::JITTargetMachineBuilder LPJit::create_jtdb() { - #else - #error "GALLIVM: unknown target riscv float abi" - #endif -+#endif -+ -+#if DETECT_ARCH_LOONGARCH64 == 1 -+#if defined(__loongarch_lp64) && defined(__loongarch_double_float) -+ options.MCOptions.ABIName = "lp64d"; -+#else -+#error "GALLIVM: unknown target loongarch float abi" -+#endif - #endif - - JTMB.setOptions(options); --- -2.46.0 - diff --git a/debian/patches/0023-vulkan-runtime-Rename-vk_meta_object_list-to-vk_obje.patch b/debian/patches/0023-vulkan-runtime-Rename-vk_meta_object_list-to-vk_obje.patch deleted file mode 100644 index 1ad0f8373..000000000 --- a/debian/patches/0023-vulkan-runtime-Rename-vk_meta_object_list-to-vk_obje.patch +++ /dev/null @@ -1,158 +0,0 @@ -From 6b660ed933727d598f230d4b59fe676afd0ac97f Mon Sep 17 00:00:00 2001 -From: Yonggang Luo -Date: Fri, 3 May 2024 17:14:02 +0800 -Subject: [PATCH 23/26] vulkan/runtime: Rename vk_meta_object_list to - vk_object_list - -Signed-off-by: Yonggang Luo ---- - src/vulkan/runtime/vk_command_buffer.c | 6 +++--- - src/vulkan/runtime/vk_command_buffer.h | 2 +- - src/vulkan/runtime/vk_meta.c | 16 ++++++++-------- - src/vulkan/runtime/vk_meta.h | 18 +++++++++--------- - 4 files changed, 21 insertions(+), 21 deletions(-) - -diff --git a/src/vulkan/runtime/vk_command_buffer.c b/src/vulkan/runtime/vk_command_buffer.c -index f678d9bc0a1..64df6211011 100644 ---- a/src/vulkan/runtime/vk_command_buffer.c -+++ b/src/vulkan/runtime/vk_command_buffer.c -@@ -44,7 +44,7 @@ vk_command_buffer_init(struct vk_command_pool *pool, - command_buffer->state = MESA_VK_COMMAND_BUFFER_STATE_INITIAL; - command_buffer->record_result = VK_SUCCESS; - vk_cmd_queue_init(&command_buffer->cmd_queue, &pool->alloc); -- vk_meta_object_list_init(&command_buffer->meta_objects); -+ vk_object_list_init(&command_buffer->meta_objects); - util_dynarray_init(&command_buffer->labels, NULL); - command_buffer->region_begin = true; - -@@ -61,7 +61,7 @@ vk_command_buffer_reset(struct vk_command_buffer *command_buffer) - command_buffer->record_result = VK_SUCCESS; - vk_command_buffer_reset_render_pass(command_buffer); - vk_cmd_queue_reset(&command_buffer->cmd_queue); -- vk_meta_object_list_reset(command_buffer->base.device, -+ vk_object_list_reset(command_buffer->base.device, - &command_buffer->meta_objects); - util_dynarray_clear(&command_buffer->labels); - command_buffer->region_begin = true; -@@ -98,7 +98,7 @@ vk_command_buffer_finish(struct vk_command_buffer *command_buffer) - vk_command_buffer_reset_render_pass(command_buffer); - vk_cmd_queue_finish(&command_buffer->cmd_queue); - util_dynarray_fini(&command_buffer->labels); -- vk_meta_object_list_finish(command_buffer->base.device, -+ vk_object_list_finish(command_buffer->base.device, - &command_buffer->meta_objects); - vk_object_base_finish(&command_buffer->base); - } -diff --git a/src/vulkan/runtime/vk_command_buffer.h b/src/vulkan/runtime/vk_command_buffer.h -index 5ff51bbf578..634ff1b69d6 100644 ---- a/src/vulkan/runtime/vk_command_buffer.h -+++ b/src/vulkan/runtime/vk_command_buffer.h -@@ -127,7 +127,7 @@ struct vk_command_buffer { - struct vk_cmd_queue cmd_queue; - - /** Object list for meta objects */ -- struct vk_meta_object_list meta_objects; -+ struct vk_object_list meta_objects; - - /** - * VK_EXT_debug_utils -diff --git a/src/vulkan/runtime/vk_meta.c b/src/vulkan/runtime/vk_meta.c -index cb7aee3ca3a..970a6bf8632 100644 ---- a/src/vulkan/runtime/vk_meta.c -+++ b/src/vulkan/runtime/vk_meta.c -@@ -528,14 +528,14 @@ vk_meta_create_compute_pipeline(struct vk_device *device, - } - - void --vk_meta_object_list_init(struct vk_meta_object_list *mol) -+vk_object_list_init(struct vk_object_list *mol) - { - util_dynarray_init(&mol->arr, NULL); - } - - void --vk_meta_object_list_reset(struct vk_device *device, -- struct vk_meta_object_list *mol) -+vk_object_list_reset(struct vk_device *device, -+ struct vk_object_list *mol) - { - util_dynarray_foreach(&mol->arr, struct vk_object_base *, obj) - destroy_object(device, *obj); -@@ -544,10 +544,10 @@ vk_meta_object_list_reset(struct vk_device *device, - } - - void --vk_meta_object_list_finish(struct vk_device *device, -- struct vk_meta_object_list *mol) -+vk_object_list_finish(struct vk_device *device, -+ struct vk_object_list *mol) - { -- vk_meta_object_list_reset(device, mol); -+ vk_object_list_reset(device, mol); - util_dynarray_fini(&mol->arr); - } - -@@ -565,7 +565,7 @@ vk_meta_create_buffer(struct vk_command_buffer *cmd, - if (unlikely(result != VK_SUCCESS)) - return result; - -- vk_meta_object_list_add_handle(&cmd->meta_objects, -+ vk_object_list_add_handle(&cmd->meta_objects, - VK_OBJECT_TYPE_BUFFER, - (uint64_t)*buffer_out); - return VK_SUCCESS; -@@ -585,7 +585,7 @@ vk_meta_create_image_view(struct vk_command_buffer *cmd, - if (unlikely(result != VK_SUCCESS)) - return result; - -- vk_meta_object_list_add_handle(&cmd->meta_objects, -+ vk_object_list_add_handle(&cmd->meta_objects, - VK_OBJECT_TYPE_IMAGE_VIEW, - (uint64_t)*image_view_out); - return VK_SUCCESS; -diff --git a/src/vulkan/runtime/vk_meta.h b/src/vulkan/runtime/vk_meta.h -index dd113b0ea13..0120b636e63 100644 ---- a/src/vulkan/runtime/vk_meta.h -+++ b/src/vulkan/runtime/vk_meta.h -@@ -181,29 +181,29 @@ vk_meta_create_sampler(struct vk_device *device, - const void *key_data, size_t key_size, - VkSampler *sampler_out); - --struct vk_meta_object_list { -+struct vk_object_list { - struct util_dynarray arr; - }; - --void vk_meta_object_list_init(struct vk_meta_object_list *mol); --void vk_meta_object_list_reset(struct vk_device *device, -- struct vk_meta_object_list *mol); --void vk_meta_object_list_finish(struct vk_device *device, -- struct vk_meta_object_list *mol); -+void vk_object_list_init(struct vk_object_list *mol); -+void vk_object_list_reset(struct vk_device *device, -+ struct vk_object_list *mol); -+void vk_object_list_finish(struct vk_device *device, -+ struct vk_object_list *mol); - - static inline void --vk_meta_object_list_add_obj(struct vk_meta_object_list *mol, -+vk_object_list_add_obj(struct vk_object_list *mol, - struct vk_object_base *obj) - { - util_dynarray_append(&mol->arr, struct vk_object_base *, obj); - } - - static inline void --vk_meta_object_list_add_handle(struct vk_meta_object_list *mol, -+vk_object_list_add_handle(struct vk_object_list *mol, - VkObjectType obj_type, - uint64_t handle) - { -- vk_meta_object_list_add_obj(mol, -+ vk_object_list_add_obj(mol, - vk_object_base_from_u64_handle(handle, obj_type)); - } - --- -2.46.0 - diff --git a/debian/patches/0024-vulkan-runtime-Split-vk_object_list-into-separate-fi.patch b/debian/patches/0024-vulkan-runtime-Split-vk_object_list-into-separate-fi.patch deleted file mode 100644 index 309f42275..000000000 --- a/debian/patches/0024-vulkan-runtime-Split-vk_object_list-into-separate-fi.patch +++ /dev/null @@ -1,306 +0,0 @@ -From 7f507b00cbdb5ae88196ea38994cced5685a8bdd Mon Sep 17 00:00:00 2001 -From: Gurchetan Singh -Date: Wed, 10 Jan 2024 15:09:02 -0800 -Subject: [PATCH 24/26] vulkan/runtime: Split vk_object_list into separate file - -Code movement: Move the object list + destroy_object -function to separate files. - -This allows vk_command_buffer.{h, c} to not depend on all -of vk_meta, which depends on vk_pipeline, which depends on -NIR. - -Signed-off-by: Yonggang Luo ---- - src/vulkan/runtime/meson.build | 1 + - src/vulkan/runtime/vk_command_buffer.h | 2 +- - src/vulkan/runtime/vk_meta.c | 58 +----------------------- - src/vulkan/runtime/vk_meta.h | 27 ----------- - src/vulkan/runtime/vk_object_list.c | 62 ++++++++++++++++++++++++++ - src/vulkan/runtime/vk_object_list.h | 45 +++++++++++++++++++ - 6 files changed, 111 insertions(+), 84 deletions(-) - create mode 100644 src/vulkan/runtime/vk_object_list.c - create mode 100644 src/vulkan/runtime/vk_object_list.h - -diff --git a/src/vulkan/runtime/meson.build b/src/vulkan/runtime/meson.build -index 762c29e97e7..428d25158ef 100644 ---- a/src/vulkan/runtime/meson.build -+++ b/src/vulkan/runtime/meson.build -@@ -45,6 +45,7 @@ vulkan_lite_runtime_files = files( - 'vk_graphics_state.c', - 'vk_image.c', - 'vk_log.c', -+ 'vk_object_list.c', - 'vk_object.c', - 'vk_physical_device.c', - 'vk_pipeline_layout.c', -diff --git a/src/vulkan/runtime/vk_command_buffer.h b/src/vulkan/runtime/vk_command_buffer.h -index 634ff1b69d6..848e5bd9ac2 100644 ---- a/src/vulkan/runtime/vk_command_buffer.h -+++ b/src/vulkan/runtime/vk_command_buffer.h -@@ -27,7 +27,7 @@ - #include "vk_cmd_queue.h" - #include "vk_graphics_state.h" - #include "vk_log.h" --#include "vk_meta.h" -+#include "vk_object_list.h" - #include "vk_object.h" - #include "util/list.h" - #include "util/u_dynarray.h" -diff --git a/src/vulkan/runtime/vk_meta.c b/src/vulkan/runtime/vk_meta.c -index 970a6bf8632..7c6f8d65d07 100644 ---- a/src/vulkan/runtime/vk_meta.c -+++ b/src/vulkan/runtime/vk_meta.c -@@ -74,36 +74,6 @@ cache_key_equal(const void *_a, const void *_b) - return memcmp(a->key_data, b->key_data, a->key_size) == 0; - } - --static void --destroy_object(struct vk_device *device, struct vk_object_base *obj) --{ -- const struct vk_device_dispatch_table *disp = &device->dispatch_table; -- VkDevice _device = vk_device_to_handle(device); -- -- switch (obj->type) { -- case VK_OBJECT_TYPE_BUFFER: -- disp->DestroyBuffer(_device, (VkBuffer)(uintptr_t)obj, NULL); -- break; -- case VK_OBJECT_TYPE_IMAGE_VIEW: -- disp->DestroyImageView(_device, (VkImageView)(uintptr_t)obj, NULL); -- break; -- case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: -- disp->DestroyDescriptorSetLayout(_device, (VkDescriptorSetLayout)(uintptr_t)obj, NULL); -- break; -- case VK_OBJECT_TYPE_PIPELINE_LAYOUT: -- disp->DestroyPipelineLayout(_device, (VkPipelineLayout)(uintptr_t)obj, NULL); -- break; -- case VK_OBJECT_TYPE_PIPELINE: -- disp->DestroyPipeline(_device, (VkPipeline)(uintptr_t)obj, NULL); -- break; -- case VK_OBJECT_TYPE_SAMPLER: -- disp->DestroySampler(_device, (VkSampler)(uintptr_t)obj, NULL); -- break; -- default: -- unreachable("Unsupported object type"); -- } --} -- - VkResult - vk_meta_device_init(struct vk_device *device, - struct vk_meta_device *meta) -@@ -126,7 +96,7 @@ vk_meta_device_finish(struct vk_device *device, - { - hash_table_foreach(meta->cache, entry) { - free((void *)entry->key); -- destroy_object(device, entry->data); -+ vk_destroy_object(device, entry->data); - } - _mesa_hash_table_destroy(meta->cache, NULL); - simple_mtx_destroy(&meta->cache_mtx); -@@ -190,7 +160,7 @@ vk_meta_cache_object(struct vk_device *device, - if (entry != NULL) { - /* We raced and found that object already in the cache */ - free(key); -- destroy_object(device, obj); -+ vk_destroy_object(device, obj); - return (uint64_t)(uintptr_t)entry->data; - } else { - /* Return the newly inserted object */ -@@ -527,30 +497,6 @@ vk_meta_create_compute_pipeline(struct vk_device *device, - return VK_SUCCESS; - } - --void --vk_object_list_init(struct vk_object_list *mol) --{ -- util_dynarray_init(&mol->arr, NULL); --} -- --void --vk_object_list_reset(struct vk_device *device, -- struct vk_object_list *mol) --{ -- util_dynarray_foreach(&mol->arr, struct vk_object_base *, obj) -- destroy_object(device, *obj); -- -- util_dynarray_clear(&mol->arr); --} -- --void --vk_object_list_finish(struct vk_device *device, -- struct vk_object_list *mol) --{ -- vk_object_list_reset(device, mol); -- util_dynarray_fini(&mol->arr); --} -- - VkResult - vk_meta_create_buffer(struct vk_command_buffer *cmd, - struct vk_meta_device *meta, -diff --git a/src/vulkan/runtime/vk_meta.h b/src/vulkan/runtime/vk_meta.h -index 0120b636e63..8910c3fb1b6 100644 ---- a/src/vulkan/runtime/vk_meta.h -+++ b/src/vulkan/runtime/vk_meta.h -@@ -27,7 +27,6 @@ - #include "vk_object.h" - - #include "util/simple_mtx.h" --#include "util/u_dynarray.h" - - #ifdef __cplusplus - extern "C" { -@@ -181,32 +180,6 @@ vk_meta_create_sampler(struct vk_device *device, - const void *key_data, size_t key_size, - VkSampler *sampler_out); - --struct vk_object_list { -- struct util_dynarray arr; --}; -- --void vk_object_list_init(struct vk_object_list *mol); --void vk_object_list_reset(struct vk_device *device, -- struct vk_object_list *mol); --void vk_object_list_finish(struct vk_device *device, -- struct vk_object_list *mol); -- --static inline void --vk_object_list_add_obj(struct vk_object_list *mol, -- struct vk_object_base *obj) --{ -- util_dynarray_append(&mol->arr, struct vk_object_base *, obj); --} -- --static inline void --vk_object_list_add_handle(struct vk_object_list *mol, -- VkObjectType obj_type, -- uint64_t handle) --{ -- vk_object_list_add_obj(mol, -- vk_object_base_from_u64_handle(handle, obj_type)); --} -- - VkResult vk_meta_create_buffer(struct vk_command_buffer *cmd, - struct vk_meta_device *meta, - const VkBufferCreateInfo *info, -diff --git a/src/vulkan/runtime/vk_object_list.c b/src/vulkan/runtime/vk_object_list.c -new file mode 100644 -index 00000000000..121aed23131 ---- /dev/null -+++ b/src/vulkan/runtime/vk_object_list.c -@@ -0,0 +1,62 @@ -+/* -+ * Copyright 2022 Collabora Ltd -+ * Copyright 2024 Google LLC -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#include "vk_object_list.h" -+#include "vk_device.h" -+ -+void -+vk_destroy_object(struct vk_device *device, struct vk_object_base *obj) -+{ -+ const struct vk_device_dispatch_table *disp = &device->dispatch_table; -+ VkDevice _device = vk_device_to_handle(device); -+ -+ switch (obj->type) { -+ case VK_OBJECT_TYPE_BUFFER: -+ disp->DestroyBuffer(_device, (VkBuffer)(uintptr_t)obj, NULL); -+ break; -+ case VK_OBJECT_TYPE_IMAGE_VIEW: -+ disp->DestroyImageView(_device, (VkImageView)(uintptr_t)obj, NULL); -+ break; -+ case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: -+ disp->DestroyDescriptorSetLayout(_device, (VkDescriptorSetLayout)(uintptr_t)obj, NULL); -+ break; -+ case VK_OBJECT_TYPE_PIPELINE_LAYOUT: -+ disp->DestroyPipelineLayout(_device, (VkPipelineLayout)(uintptr_t)obj, NULL); -+ break; -+ case VK_OBJECT_TYPE_PIPELINE: -+ disp->DestroyPipeline(_device, (VkPipeline)(uintptr_t)obj, NULL); -+ break; -+ case VK_OBJECT_TYPE_SAMPLER: -+ disp->DestroySampler(_device, (VkSampler)(uintptr_t)obj, NULL); -+ break; -+ default: -+ unreachable("Unsupported object type"); -+ } -+} -+ -+void -+vk_object_list_init(struct vk_object_list *mol) -+{ -+ util_dynarray_init(&mol->arr, NULL); -+} -+ -+void -+vk_object_list_reset(struct vk_device *device, -+ struct vk_object_list *mol) -+{ -+ util_dynarray_foreach(&mol->arr, struct vk_object_base *, obj) -+ vk_destroy_object(device, *obj); -+ -+ util_dynarray_clear(&mol->arr); -+} -+ -+void -+vk_object_list_finish(struct vk_device *device, -+ struct vk_object_list *mol) -+{ -+ vk_object_list_reset(device, mol); -+ util_dynarray_fini(&mol->arr); -+} -diff --git a/src/vulkan/runtime/vk_object_list.h b/src/vulkan/runtime/vk_object_list.h -new file mode 100644 -index 00000000000..d393233f8ff ---- /dev/null -+++ b/src/vulkan/runtime/vk_object_list.h -@@ -0,0 +1,45 @@ -+/* -+ * Copyright 2022 Collabora Ltd -+ * Copyright 2024 Google LLC -+ * SPDX-License-Identifier: MIT -+ */ -+ -+#ifndef VK_META_OBJECT_LIST_H -+#define VK_META_OBJECT_LIST_H -+ -+#include "vk_object.h" -+ -+#include "util/u_dynarray.h" -+ -+struct vk_device; -+ -+struct vk_object_list { -+ struct util_dynarray arr; -+}; -+ -+void vk_object_list_init(struct vk_object_list *mol); -+void vk_object_list_reset(struct vk_device *device, -+ struct vk_object_list *mol); -+void vk_object_list_finish(struct vk_device *device, -+ struct vk_object_list *mol); -+ -+static inline void -+vk_object_list_add_obj(struct vk_object_list *mol, -+ struct vk_object_base *obj) -+{ -+ util_dynarray_append(&mol->arr, struct vk_object_base *, obj); -+} -+ -+static inline void -+vk_object_list_add_handle(struct vk_object_list *mol, -+ VkObjectType obj_type, -+ uint64_t handle) -+{ -+ vk_object_list_add_obj(mol, -+ vk_object_base_from_u64_handle(handle, obj_type)); -+} -+ -+void vk_destroy_object(struct vk_device *device, -+ struct vk_object_base *obj); -+ -+#endif --- -2.46.0 - diff --git a/debian/patches/0025-zink-reject-Imagination-proprietary-driver-w-o-geome.patch b/debian/patches/0025-zink-reject-Imagination-proprietary-driver-w-o-geome.patch deleted file mode 100644 index 8e54273e9..000000000 --- a/debian/patches/0025-zink-reject-Imagination-proprietary-driver-w-o-geome.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 11eb324ba321fe04c9853aaa0aa309603170a54f Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng -Date: Sat, 20 Jul 2024 22:03:54 +0800 -Subject: [PATCH 25/26] zink: reject Imagination proprietary driver w/o - geometryShader - -On some low-end GPUs (e.g. BXE/BXM series), the Imagination proprietary -Vulkan driver do not implement geometryShader feature, which is required -by Zink currently to smoothen lines. In addition, these vulkan drivers -shipped are usually not robust enough to run Zink at all, and -frequently fail with crashes. - -Reject these drivers. - -Signed-off-by: Icenowy Zheng ---- - src/gallium/drivers/zink/zink_screen.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c -index 43ae9829d47..5b80f1657d7 100644 ---- a/src/gallium/drivers/zink/zink_screen.c -+++ b/src/gallium/drivers/zink/zink_screen.c -@@ -3424,6 +3424,12 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev - } - } - -+ if (screen->info.driver_props.driverID == VK_DRIVER_ID_IMAGINATION_PROPRIETARY && !screen->info.feats.features.geometryShader) { -+ if (!screen->driver_name_is_inferred) -+ mesa_loge("zink: Imagination proprietary driver w/o geometryShader is unsupported"); -+ goto fail; -+ } -+ - if (zink_debug & ZINK_DEBUG_MEM) { - simple_mtx_init(&screen->debug_mem_lock, mtx_plain); - screen->debug_mem_sizes = _mesa_hash_table_create(screen, _mesa_hash_string, _mesa_key_string_equal); --- -2.46.0 - diff --git a/debian/patches/0026-add-zx-s-driver-to-mesa-s-driver-map-list-and-export.patch b/debian/patches/0026-add-zx-s-driver-to-mesa-s-driver-map-list-and-export.patch deleted file mode 100644 index 3b1f33a44..000000000 --- a/debian/patches/0026-add-zx-s-driver-to-mesa-s-driver-map-list-and-export.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 61f6488f031e5501cdf0027f70698517fac41c89 Mon Sep 17 00:00:00 2001 -From: wolfsunyu -Date: Mon, 29 Oct 2018 10:02:07 +0800 -Subject: [PATCH 26/26] add zx's driver to mesa's driver map list and export a - function to print mesa's driver map list - -Change-Id: I7d2e99d7ccc7263b2294b9d64ea4d954698a3b35 ---- - include/pci_ids/zx_pci_ids.h | 2 ++ - src/loader/loader.c | 14 ++++++++++++++ - src/loader/pci_id_driver_map.h | 7 +++++++ - 3 files changed, 23 insertions(+) - create mode 100644 include/pci_ids/zx_pci_ids.h - -diff --git a/include/pci_ids/zx_pci_ids.h b/include/pci_ids/zx_pci_ids.h -new file mode 100644 -index 00000000000..ca02a64ad45 ---- /dev/null -+++ b/include/pci_ids/zx_pci_ids.h -@@ -0,0 +1,2 @@ -+CHIPSET(0x3A03, Exc) -+CHIPSET(0x3A04, Exc) -diff --git a/src/loader/loader.c b/src/loader/loader.c -index db242b8f8f4..bf3cc4d7d67 100644 ---- a/src/loader/loader.c -+++ b/src/loader/loader.c -@@ -73,6 +73,8 @@ - #define PATH_MAX 4096 - #endif - -+__attribute__((visibility("default"))) void zx_print_driver_map_list(void); -+ - static void default_logger(int level, const char *fmt, ...) - { - if (level <= _LOADER_WARNING) { -@@ -83,6 +85,18 @@ static void default_logger(int level, const char *fmt, ...) - } - } - -+void zx_print_driver_map_list(void) -+{ -+ int i=0; -+ -+ printf("os mesa driver map list:\n"); -+ while(driver_map[i].driver) -+ { -+ printf("vendor_id: %x, driver: %s\n", driver_map[i].vendor_id, driver_map[i].driver); -+ i++; -+ } -+} -+ - static loader_logger *log_ = default_logger; - - int -diff --git a/src/loader/pci_id_driver_map.h b/src/loader/pci_id_driver_map.h -index b6febe4f53a..3fc0457356e 100644 ---- a/src/loader/pci_id_driver_map.h -+++ b/src/loader/pci_id_driver_map.h -@@ -44,6 +44,12 @@ static const int vmwgfx_chip_ids[] = { - #undef CHIPSET - }; - -+static const int zx_chip_ids[] = { -+#define CHIPSET(chip, family) chip, -+#include "pci_ids/zx_pci_ids.h" -+#undef CHIPSET -+}; -+ - bool iris_predicate(int fd, const char *driver); - bool nouveau_zink_predicate(int fd, const char *driver); - -@@ -64,6 +70,7 @@ static const struct { - { 0x10de, "zink", NULL, -1, nouveau_zink_predicate }, - { 0x1af4, "virtio_gpu", virtio_gpu_chip_ids, ARRAY_SIZE(virtio_gpu_chip_ids) }, - { 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids) }, -+ { 0x1d17, "zx", zx_chip_ids, ARRAY_SIZE(zx_chip_ids), }, - }; - - #endif /* _PCI_ID_DRIVER_MAP_H_ */ --- -2.46.0 - diff --git a/debian/patches/path_max.diff b/debian/patches/path_max.diff index 9832c7388..aa4909bce 100644 --- a/debian/patches/path_max.diff +++ b/debian/patches/path_max.diff @@ -1,6 +1,6 @@ --- a/src/util/tests/cache_test.cpp +++ b/src/util/tests/cache_test.cpp -@@ -82,8 +82,8 @@ check_directories_created(void *mem_ctx, +@@ -84,8 +84,8 @@ check_directories_created(void *mem_ctx, { bool sub_dirs_created = false; diff --git a/debian/patches/series b/debian/patches/series index bbf8c8110..ce23eec26 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,29 +1,2 @@ path_max.diff src_glx_dri_common.h.diff - -0001-meson-set-default-drivers-for-ppc-ppc64.patch -0002-meson-set-default-Vulkan-drivers-for-ppc-ppc64.patch -0003-fix-meson.build-more-Gallium-Vulkan-drivers-for-on-a.patch -0004-gallivm-add-lp_context_ref-for-combine-usage-of-LLVM.patch -0005-gallivm-move-ppc-denorm-disable-to-inline.patch -0006-gallivm-split-some-code-out-from-init-module.patch -0007-gallivm-make-lp_bld_coro.h-c-include-safe.patch -0008-gallivm-export-target-init-code-for-orc-jit-to-reuse.patch -0009-gallivm-split-out-generating-LLVM-Mattrs.patch -0010-gallivm-create-a-pass-manager-wrapper.patch -0011-llvmpipe-add-gallivm_add_global_mapping.patch -0012-llvmpipe-make-unnamed-global-have-internal-linkage.patch -0013-util-detect-RISC-V-architecture.patch -0014-gallivm-add-riscv-support-to-the-mattrs-setting-code.patch -0015-llvmpipe-add-function-name-to-gallivm_jit_function.patch -0016-llvmpipe-tests-add-a-new-test-for-multiple-symbols-f.patch -0017-llvmpipe-add-an-implementation-with-llvm-orcjit.patch -0018-llvmpipe-append-partial-mask-to-partial-fs_variant-f.patch -0019-llvmpipe-add-shader-cache-support-for-ORCJIT-impleme.patch -0020-util-detect-LoongArch-architecture.patch -0021-gallivm-add-LoongArch-support-to-the-mattrs-setting-.patch -0022-llvmpipe-add-LoongArch-support-in-ORCJIT.patch -0023-vulkan-runtime-Rename-vk_meta_object_list-to-vk_obje.patch -0024-vulkan-runtime-Split-vk_object_list-into-separate-fi.patch -0025-zink-reject-Imagination-proprietary-driver-w-o-geome.patch -0026-add-zx-s-driver-to-mesa-s-driver-map-list-and-export.patch diff --git a/debian/patches/src_glx_dri_common.h.diff b/debian/patches/src_glx_dri_common.h.diff index 75249227a..f62a6e07e 100644 --- a/debian/patches/src_glx_dri_common.h.diff +++ b/debian/patches/src_glx_dri_common.h.diff @@ -1,8 +1,8 @@ --- a/src/glx/dri_common.h +++ b/src/glx/dri_common.h -@@ -57,6 +57,10 @@ extern struct glx_config *driConvertConf +@@ -56,6 +56,10 @@ extern struct glx_config *driConvertConf - extern void driDestroyConfigs(const __DRIconfig **configs); + extern void driDestroyConfigs(const struct dri_config **configs); +#ifndef __GLXDRIdrawable +typedef struct __GLXDRIdrawableRec __GLXDRIdrawable; diff --git a/debian/rules b/debian/rules index 6b93ded49..2e11802b2 100755 --- a/debian/rules +++ b/debian/rules @@ -13,38 +13,47 @@ DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU) # for finding the correct llvm-config when meson doesn't know about it yet -LLVM_VERSION = 17 +LLVM_VERSION = 19 export PATH:=/usr/lib/llvm-$(LLVM_VERSION)/bin/:$(PATH) export DEB_BUILD_MAINT_OPTIONS=optimize=-lto -#export MESON_PACKAGE_CACHE_DIR=/usr/share/cargo/registry/ -ifeq (,$(filter $(DEB_HOST_ARCH), armhf ppc64el sh3 sh4)) -buildflags = \ - $(shell DEB_CFLAGS_MAINT_APPEND=-Wall DEB_CXXFLAGS_MAINT_APPEND=-Wall dpkg-buildflags --export=configure) -else - ifneq (,$(filter $(DEB_HOST_ARCH), armhf)) +DEB_CFLAGS_MAINT_APPEND := -Wall +DEB_CXXFLAGS_MAINT_APPEND := -Wall +ifneq (,$(filter $(DEB_HOST_ARCH), armhf)) # Workaround for a variant of LP: #725126 - buildflags = \ - $(shell DEB_CFLAGS_MAINT_APPEND="-Wall -fno-optimize-sibling-calls" DEB_CXXFLAGS_MAINT_APPEND="-Wall -fno-optimize-sibling-calls" dpkg-buildflags --export=configure) - else - # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 - buildflags = \ - $(shell DEB_CFLAGS_MAINT_APPEND="-Wall -O1" DEB_CXXFLAGS_MAINT_APPEND="-Wall -O1" dpkg-buildflags --export=configure) - endif + DEB_CFLAGS_MAINT_APPEND += -fno-optimize-sibling-calls + DEB_CXXFLAGS_MAINT_APPEND += -fno-optimize-sibling-calls +else ifneq (,$(filter $(DEB_HOST_ARCH), loong64)) + # Workaround loong64 BFD linker crash related to TLSDESC + DEB_CFLAGS_MAINT_APPEND += -mtls-dialect=trad + DEB_CXXFLAGS_MAINT_APPEND += -mtls-dialect=trad +else ifneq (,$(filter $(DEB_HOST_ARCH), m68k)) + # This library has huge jump tables: Debian #1067207 + DEB_CFLAGS_MAINT_APPEND += -mlong-jump-table-offsets + DEB_CXXFLAGS_MAINT_APPEND += -mlong-jump-table-offsets +else ifneq (,$(filter $(DEB_HOST_ARCH), sh4)) + # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 + DEB_CFLAGS_MAINT_APPEND += -freorder-blocks-algorithm=simple + DEB_CXXFLAGS_MAINT_APPEND += -freorder-blocks-algorithm=simple endif +buildflags = $(shell \ + DEB_CFLAGS_MAINT_APPEND='$(DEB_CFLAGS_MAINT_APPEND)' \ + DEB_CXXFLAGS_MAINT_APPEND='$(DEB_CXXFLAGS_MAINT_APPEND)' \ + dpkg-buildflags --export=configure) EGL_PLATFORMS = x11 -GALLIUM_DRIVERS = swrast +GALLIUM_DRIVERS = softpipe VULKAN_DRIVERS = VULKAN_LAYERS = -confflags_DRI3 = -Ddri3=disabled confflags_OSMESA = -Dosmesa=true confflags_SSE2 = -Dsse2=true confflags_TEFLON = -Dteflon=false -LLVM_ARCHS = amd64 arm64 armel armhf i386 loong64 powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +LLVM_ARCHS = amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x sparc64 x32 +RUSTICL_ARCHS = amd64 arm64 armel armhf i386 loong64 mips64el powerpc ppc64 ppc64el riscv64 s390x x32 +NVK_ARCHS = amd64 arm64 armhf i386 ppc64 riscv64 x32 VALGRIND_ARCHS = amd64 arm64 armhf i386 mips64el powerpc ppc64 ppc64el s390x WINE_ARCHS = amd64 arm64 armel armhf i386 @@ -60,7 +69,6 @@ else GALLIUM_DRIVERS += nouveau r300 r600 virgl confflags_DIRECT_RENDERING = -Dglx-direct=true - confflags_DRI3 = -Ddri3=enabled confflags_GBM = -Dgbm=enabled confflags_GALLIUM += -Dgallium-extra-hud=true confflags_GALLIUM += -Dgallium-vdpau=enabled @@ -105,25 +113,29 @@ else # LLVM is required for building r300g, radeonsi and llvmpipe drivers. # It's also required for building OpenCL support. ifneq (,$(filter $(DEB_HOST_ARCH), $(LLVM_ARCHS))) - GALLIUM_DRIVERS += radeonsi zink + GALLIUM_DRIVERS += radeonsi zink llvmpipe - # Only enable amd on riscv64, swrast needs CPU JIT support which doesn't work properly yet - ifneq (,$(filter $(DEB_HOST_ARCH), riscv64)) - VULKAN_DRIVERS += amd - confflags_GALLIUM += -Ddraw-use-llvm=false - else - # drop virtio from armel, it doesn't build - ifneq (,$(filter $(DEB_HOST_ARCH), armel)) + # drop virtio from armel, it doesn't build + ifneq (,$(filter $(DEB_HOST_ARCH), armel)) VULKAN_DRIVERS += amd swrast - else + else VULKAN_DRIVERS += amd swrast virtio - endif endif VULKAN_LAYERS += device-select intel-nullhw overlay confflags_GALLIUM += -Dllvm=enabled confflags_GALLIUM += -Dgallium-opencl=icd + # Build rusticl for archs where rustc is available + ifneq (,$(filter $(DEB_HOST_ARCH), $(RUSTICL_ARCHS))) + confflags_GALLIUM += -Dgallium-rusticl=true + endif + + ifneq (,$(filter $(DEB_HOST_ARCH), $(NVK_ARCHS))) + export MESON_PACKAGE_CACHE_DIR=/usr/share/cargo/registry/ + VULKAN_DRIVERS += nouveau + endif + # nine makes sense only on archs that build wine ifneq (,$(filter $(DEB_HOST_ARCH), $(WINE_ARCHS))) confflags_GALLIUM += -Dgallium-nine=true @@ -141,11 +153,6 @@ else ifneq (,$(filter $(DEB_HOST_ARCH), arm64)) confflags_TEFLON = -Dteflon=true endif - - # Enable OrcJIT for loong64, riscv64 - ifneq (,$(filter $(DEB_HOST_ARCH), loong64 riscv64)) - confflags_ORCJIT += -Dllvm-orcjit=true - endif endif ifeq ($(DEB_HOST_ARCH), i386) @@ -169,26 +176,22 @@ confflags_GALLIUM += -Dgallium-drivers="[$(GALLIUM_DRIVERS_LIST)]" confflags += \ -Ddri-drivers-path=/usr/lib/$(DEB_HOST_MULTIARCH)/dri \ - -Ddri-search-path='/usr/lib/$(DEB_HOST_MULTIARCH)/dri:\$$$${ORIGIN}/dri:/usr/lib/dri' \ -Dplatforms="[$(EGL_PLATFORMS_LIST)]" \ -Dvulkan-drivers="[$(VULKAN_DRIVERS_LIST)]" \ -Dvulkan-layers="[$(VULKAN_LAYERS_LIST)]" \ - -Dglvnd=true \ + -Dglvnd=enabled \ -Dshared-glapi=enabled \ - -Dgallium-omx=disabled \ -Db_ndebug=true \ -Dbuild-tests=true \ -Dtools=drm-shim \ $(confflags_DIRECT_RENDERING) \ $(confflags_GBM) \ - $(confflags_DRI3) \ $(confflags_GALLIUM) \ $(confflags_GLES) \ $(confflags_OSMESA) \ $(confflags_SSE2) \ $(confflags_VALGRIND) \ - $(confflags_TEFLON) \ - $(confflags_ORCJIT) + $(confflags_TEFLON) rewrite_wrap_files: @@ -221,7 +224,6 @@ override_dh_clean: regen_control override_dh_auto_configure: rewrite_wrap_files dpkg-parsechangelog | awk '/^Version:/ {print $$2}' > VERSION $(buildflags) dh_auto_configure -- \ - --wrap-mode=default \ $(confflags) override_dh_auto_install: @@ -252,6 +254,10 @@ override_dh_install: rm debian/tmp/usr/lib/*/libglapi.so rm debian/tmp/usr/lib/*/libEGL_mesa.so rm debian/tmp/usr/lib/*/libGLX_mesa.so + ifneq (,$(filter $(DEB_HOST_ARCH), $(NVK_ARCHS))) + rm debian/tmp/usr/bin/mme_fermi_sim_hw_test + rm debian/tmp/usr/bin/mme_tu104_sim_hw_test + endif # use -f here though rm -f debian/tmp/usr/lib/*/libgrl.a @@ -274,6 +280,15 @@ override_dh_install: endif endif + ifneq (,$(filter $(DEB_HOST_ARCH), $(RUSTICL_ARCHS))) + install -m755 -d debian/mesa-opencl-icd/etc/OpenCL/vendors + mv debian/tmp/etc/OpenCL/vendors/rusticl.icd \ + debian/mesa-opencl-icd/etc/OpenCL/vendors + install -m755 -d debian/mesa-opencl-icd/usr/lib/${DEB_HOST_MULTIARCH}/ + mv debian/tmp/usr/lib/${DEB_HOST_MULTIARCH}/libRusticlOpenCL* \ + debian/mesa-opencl-icd/usr/lib/${DEB_HOST_MULTIARCH}/ + endif + dh_install -a # Install bug control and script: @@ -299,6 +314,8 @@ gentarball: regen_control: sed -e"s,@LLVM_VERSION@,$(LLVM_VERSION),g" \ -e"s,@LLVM_ARCHS@,$(LLVM_ARCHS),g" \ + -e"s,@RUSTICL_ARCHS@,$(RUSTICL_ARCHS),g" \ + -e"s,@NVK_ARCHS@,$(NVK_ARCHS),g" \ -e"s,@VALGRIND_ARCHS@,$(VALGRIND_ARCHS),g" \ -e"s,@WINE_ARCHS@,$(WINE_ARCHS),g" \ debian/control.in > debian/control diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 000000000..6a1aa299f --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,4 @@ +Bug-Database: https://gitlab.freedesktop.org/mesa/mesa/-/issues +Bug-Submit: https://gitlab.freedesktop.org/mesa/mesa/-/issues/new +Repository: https://gitlab.freedesktop.org/mesa/mesa.git +Repository-Browse: https://gitlab.freedesktop.org/mesa/mesa diff --git a/debian/watch b/debian/watch index 3f32f31dc..eef874d70 100644 --- a/debian/watch +++ b/debian/watch @@ -1,4 +1,3 @@ -#git=git://anongit.freedesktop.org/mesa/mesa version=3 opts="uversionmangle=s/-rc/~rc/,dversionmangle=s/\+repack//,pgpsigurlmangle=s/$/.sig/,pasv" \ https://mesa.freedesktop.org/archive/mesa-(.*)\.tar\.xz diff --git a/docs/_exts/depfile.py b/docs/_exts/depfile.py new file mode 100644 index 000000000..40838439c --- /dev/null +++ b/docs/_exts/depfile.py @@ -0,0 +1,34 @@ +# Copyright © 2021 Collabora Ltd +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sub license, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice (including the +# next paragraph) shall be included in all copies or substantial portions +# of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +# IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR +# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +def create_depfile(app, env): + if not app.config.depfile: + return + + with open(app.config.depfile, 'w') as f: + for doc in env.found_docs: + path = env.doc2path(doc) + f.write('{0}: {1}\n'.format(app.outdir, path)) + +def setup(app): + app.add_config_value('depfile', None, 'env') + app.connect('env-updated', create_depfile) diff --git a/docs/android.rst b/docs/android.rst index 0034706bb..cc5909ee9 100644 --- a/docs/android.rst +++ b/docs/android.rst @@ -11,6 +11,10 @@ needs a built Android tree to build against, and it has never been tested in CI. The Meson build system flow is frequently used by Chrome OS developers for building and testing Android drivers. +When building llvmpipe or lavapipe for Android the ndk-build workflow +is also used, but there are additional steps required to add the driver +to the Android OS image. + Building using the Android NDK ------------------------------ @@ -30,7 +34,7 @@ Then, create your Meson cross file to use it, something like this # Android doesn't come with a pkg-config, but we need one for Meson to be happy not # finding all the optional deps it looks for. Use system pkg-config pointing at a # directory we get to populate with any .pc files we want to add for Android - pkgconfig = ['env', 'PKG_CONFIG_LIBDIR=NDKDIR/pkgconfig', '/usr/bin/pkg-config'] + pkg-config = ['env', 'PKG_CONFIG_LIBDIR=NDKDIR/pkgconfig', '/usr/bin/pkg-config'] [host_machine] system = 'android' @@ -175,3 +179,248 @@ container and let it restart: .. code-block:: sh kill $(cat /run/containers/android-run_oci/container.pid ) + +Adding drivers to Android OS image +---------------------------------- + +When building your own Android OS images it's possible to add +drivers built out of tree directly into the OS image. For +running llvmpipe and lavapipe on Android this step is required +to ensure Android is able to load the drivers correctly. + +The following steps provide and example for building +the android cuttlefish image following the official Android +documentation from https://source.android.com/docs/setup + +When building llvmpipe or lavapipe for Android, it is required +to do this so that the permissions for accessing the library +are set correctly. + +Following the Android documentation, we can run the following +commands + +.. code-block:: sh + + repo init -b main -u https://android.googlesource.com/platform/manifest + repo sync -c -j8 + + source build/envsetup.sh + lunch aosp_cf_x86_64_phone-trunk_staging-userdebug + +Be aware that the sync command can take a long time to run as +it will download all of the source code. This will set up +the ``aosp_cf_x86_64_phone-trunk_staging-userdebug`` build target +for Android. Please note that the x86_64 cuttlefish target will require +you to build mesa for 32bit and 64bit. Next we need to copy the build +driver libraries into the source tree of Android and patch the binary names. +Note that as of ``9b7bb6cc9fa``, libgallium will include the build tag in the +name, so the name of that library will need to match the tag used in the build. + +.. code-block:: sh + + mkdir prebuilts/mesa + mkdir prebuilts/mesa/x86_64 + mkdir prebuilts/mesa/x86 + cp ${INSTALL_PREFIX_64}/lib/libEGL.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_64}/lib/libglapi.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_64}/lib/libgallium-24.3.0-devel.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_64}/lib/libGLESv1_CM.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_64}/lib/libGLESv2.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_64}/lib/libvulkan_lvp.so prebuilts/mesa/x86_64/ + cp ${INSTALL_PREFIX_32}/lib/libEGL.so prebuilts/mesa/x86 + cp ${INSTALL_PREFIX_32}/lib/libglapi.so prebuilts/mesa/x86 + cp ${INSTALL_PREFIX_32}/lib/libgallium-24.3.0-devel.so prebuilts/mesa/x86/ + cp ${INSTALL_PREFIX_32}/lib/libGLESv1_CM.so prebuilts/mesa/x86 + cp ${INSTALL_PREFIX_32}/lib/libGLESv2.so prebuilts/mesa/x86 + cp ${INSTALL_PREFIX_32}/lib/libvulkan_lvp.so prebuilts/mesa/x86 + + patchelf --set-soname libEGL_lp.so prebuilts/mesa/x86_64/libEGL.so + patchelf --set-soname libGLESv1_CM_lp.so prebuilts/mesa/x86_64/libGLESv1_CM.so + patchelf --set-soname libGLESv2_lp.so prebuilts/mesa/x86_64/libGLESv2.so + patchelf --set-soname vulkan.lvp.so prebuilts/mesa/x86_64/libvulkan_lvp.so + patchelf --set-soname libEGL_lp.so prebuilts/mesa/x86/libEGL.so + patchelf --set-soname libGLESv1_CM_lp.so prebuilts/mesa/x86/libGLESv1_CM.so + patchelf --set-soname libGLESv2_lp.so prebuilts/mesa/x86/libGLESv2.so + patchelf --set-soname vulkan.lvp.so prebuilts/mesa/x86/libvulkan_lvp.so + +We then need to create an ``prebuilts/mesa/Android.bp`` build file to include +the libraries in the build. + +.. code-block:: + + cc_prebuilt_library_shared { + name: "libglapi", + arch: { + x86_64: { + srcs: ["x86_64/libglapi.so"], + }, + x86: { + srcs: ["x86/libglapi.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "egl", + shared_libs: ["libc", "libdl", "liblog", "libm"], + vendor: true + } + + cc_prebuilt_library_shared { + name: "libgallium-24.3.0-devel", + arch: { + x86_64: { + srcs: ["x86_64/libgallium-24.3.0-devel.so"], + }, + x86: { + srcs: ["x86/libgallium-24.3.0-devel.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "egl", + shared_libs: ["libc", "libdl", "liblog", "libm"], + check_elf_files: false, + vendor: true + } + + cc_prebuilt_library_shared { + name: "libEGL_lp", + arch: { + x86_64: { + srcs: ["x86_64/libEGL.so"], + }, + x86: { + srcs: ["x86/libEGL.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "egl", + shared_libs: ["libc", "libdl", "liblog", "libm", "libcutils", "libdrm", "libhardware", "liblog", "libnativewindow", "libsync"], + check_elf_files: false, + vendor: true + } + + cc_prebuilt_library_shared { + name: "libGLESv1_CM_lp", + arch: { + x86_64: { + srcs: ["x86_64/libGLESv1_CM.so"], + }, + x86: { + srcs: ["x86/libGLESv1_CM.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "egl", + shared_libs: ["libc", "libdl", "liblog", "libm"], + check_elf_files: false, + vendor: true + } + + cc_prebuilt_library_shared { + name: "libGLESv2_lp", + arch: { + x86_64: { + srcs: ["x86_64/libGLESv2.so"], + }, + x86: { + srcs: ["x86_64/libGLESv2.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "egl", + shared_libs: ["libc", "libdl", "liblog", "libm"], + check_elf_files: false, + vendor: true + } + + cc_prebuilt_library_shared { + name: "vulkan.lvp", + arch: { + x86_64: { + srcs: ["x86_64/libvulkan_lvp.so"], + }, + x86: { + srcs: ["x86/libvulkan_lvp.so"], + }, + }, + strip: { + none: true, + }, + relative_install_path: "hw", + shared_libs: ["libc", "libdl", "liblog", "libm", "libcutils", "libdrm", "liblog", "libnativewindow", "libsync", "libz"], + vendor: true + } + + +Next we need to update the device configuration to include the libraries +in the build, as well as set the appropriate system properties. We can +create the file +``device/google/cuttlefish/shared/mesa/device_vendor.mk`` + + +.. code-block:: makefile + + PRODUCT_SOONG_NAMESPACES += prebuilts/mesa + PRODUCT_PACKAGES += libglapi \ + libGLESv1_CM_lp \ + libGLESv2_lp \ + libEGL_lp \ + libgallium-24.3.0-devel.so \ + vulkan.lvp + PRODUCT_VENDOR_PROPERTIES += \ + ro.hardware.egl=lp \ + ro.hardware.vulkan=lvp \ + mesa.libgl.always.software=true \ + mesa.android.no.kms.swrast=true \ + debug.hwui.renderer=opengl \ + ro.gfx.angle.supported=false \ + debug.sf.disable_hwc_vds=1 \ + ro.vendor.hwcomposer.mode=client + +Also the file ``device/google/cuttlefish/shared/mesa/BoardConfig.mk`` + +.. code-block:: makefile + + BOARD_VENDOR_SEPOLICY_DIRS += \ + device/google/cuttlefish/shared/mesa/sepolicy + +Next the file ``device/google/cuttlefish/shared/mesa/sepolicy/file_contexts`` + +.. code-block:: sh + + /vendor/lib(64)?/egl/libEGL_lp\.so u:object_r:same_process_hal_file:s0 + /vendor/lib(64)?/egl/libGLESv1_CM_lp\.so u:object_r:same_process_hal_file:s0 + /vendor/lib(64)?/egl/libGLESv2_lp\.so u:object_r:same_process_hal_file:s0 + /vendor/lib(64)?/egl/libglapi\.so u:object_r:same_process_hal_file:s0 + /vendor/lib(64)?/egl/libgallium\-24.3.0\-devel\.so u:object_r:same_process_hal_file:s0 + /vendor/lib(64)?/hw/vulkan\.lvp\.so u:object_r:same_process_hal_file:s0 + +After creating these files we need to modify the existing config files +to include these build files. First we modify +``device/google/cuttlefish/shared/phone/device_vendor.mk`` +to add the below code in the spot where other device_vendor +files are included. + +.. code-block:: sh + + $(call inherit-product, device/google/cuttlefish/shared/mesa/device_vendor.mk) + +Lastly we modify +``device/google/cuttlefish/vsoc_x86_64/BoardConfig.mk`` to include +the following line where the other BoardConfig files are included + +.. code-block:: sh + + -include device/google/cuttlefish/shared/mesa/BoardConfig.mk + +Then we are set to continue following the official instructions to +build the cuttlefish target and run it in the cuttlefish emulator. diff --git a/docs/ci/bare-metal.rst b/docs/ci/bare-metal.rst index b9d5f654f..772f5f4c9 100644 --- a/docs/ci/bare-metal.rst +++ b/docs/ci/bare-metal.rst @@ -53,7 +53,7 @@ of needing more storage on the runner. Telling the board about where its TFTP and NFS should come from is done using dnsmasq on the runner host. For example, this snippet in -the dnsmasq.conf.d in the google farm, with the gitlab-runner host we +the dnsmasq.conf.d in the Google farm, with the gitlab-runner host we call "servo":: dhcp-host=1c:69:7a:0d:a3:d3,10.42.0.10,set:servo @@ -123,7 +123,7 @@ With that set up, you should be able to power on/off a port with something like: Note that the "1.3.6..." SNMP OID changes between switches. The last digit above is the interface id (port number). You can probably find the right OID by -google, that was easier than figuring it out from finding the switch's MIB +Google, that was easier than figuring it out from finding the switch's MIB database. You can query the POE status from the switch serial using the ``show power inline`` command. diff --git a/docs/ci/index.rst b/docs/ci/index.rst index d173d74a3..484672b00 100644 --- a/docs/ci/index.rst +++ b/docs/ci/index.rst @@ -302,8 +302,8 @@ and cancel the rest to avoid wasting resources. See ``bin/ci/ci_run_n_monitor.py --help`` for all the options. The ``--target`` argument takes a regex that you can use to select the -jobs names you want to run, eg. ``--target 'zink.*'`` will run all the -zink jobs, leaving the other drivers' jobs free for others to use. +jobs names you want to run, e.g. ``--target 'zink.*'`` will run all the +Zink jobs, leaving the other drivers' jobs free for others to use. Note that in fork pipelines, GitLab only adds the jobs for the files that have changed **since the last push**, so you might not get the jobs you expect. diff --git a/docs/ci/local-traces.rst b/docs/ci/local-traces.rst index a834c8ac4..28af27d98 100644 --- a/docs/ci/local-traces.rst +++ b/docs/ci/local-traces.rst @@ -32,7 +32,7 @@ Simulating CI trace job Sometimes it's useful to be able to test traces on your local machine instead of the Mesa CI runner. To simulate the CI environment as closely as possible. -Download the YAML file from your driver's ``ci/`` directory and then change the path in the YAML file from local proxy or MinIO to the local directory (url-like format ``file://``) +Download the YAML file from your driver's ``ci/`` directory and then change the path in the YAML file from local proxy or MinIO to the local directory (URL-like format ``file://``) .. code-block:: sh diff --git a/docs/codingstyle.rst b/docs/codingstyle.rst index f595d887b..9fc5c6c2e 100644 --- a/docs/codingstyle.rst +++ b/docs/codingstyle.rst @@ -25,7 +25,7 @@ them by running:: git config blame.ignoreRevsFile .git-blame-ignore-revs Most code editors also support automatically formatting code as you -write it; check your editor or its pluggins to see how to enable this. +write it; check your editor or its plug-ins to see how to enable this. Vim *** @@ -83,7 +83,7 @@ Add this to your ``.emacs`` to automatically format any C & C++ file If ``/usr/share/clang/clang-format.el`` doesn't exist, look through the files in the package providing ``clang-format`` in your distro. If you -can't find anything (eg. on Debian/Ubuntu), refer to `this StackOverflow +can't find anything (e.g. on Debian/Ubuntu), refer to `this StackOverflow answer `__ to install clang-format through Emacs instead. diff --git a/docs/conf.py b/docs/conf.py index a5df3b8f1..a6f197a17 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -40,6 +40,7 @@ # ones. extensions = [ 'bootstrap', + 'depfile', 'formatting', 'hawkmoth', 'nir', @@ -138,6 +139,8 @@ r'https://gitlab.com/.*#.*', # needs JS eval r'https://gitlab.freedesktop.org/.*#.*', # needs JS eval r'https://github.com/.*#.*', # needs JS eval + r'https://www.intel.com/.*', # intel.com is blocking the linkcheck user-agent; maybe it can be customized to look like a browser? + r'https://cgit.freedesktop.org/.*', # cgit is no more ] linkcheck_exclude_documents = [r'relnotes/.*'] @@ -145,7 +148,6 @@ # Pages that forward the front-page to a wiki or some explore-page 'https://www.freedesktop.org': 'https://www.freedesktop.org/wiki/', 'https://x.org': 'https://x.org/wiki/', - 'https://perf.wiki.kernel.org/': 'https://perf.wiki.kernel.org/index.php/Main_Page', 'https://dri.freedesktop.org/': 'https://dri.freedesktop.org/wiki/', 'https://gitlab.freedesktop.org/': 'https://gitlab.freedesktop.org/explore/groups', 'https://www.sphinx-doc.org/': 'https://www.sphinx-doc.org/en/master/', @@ -219,13 +221,14 @@ # -- Options for hawkmoth ------------------------------------------------- hawkmoth_root = os.path.abspath(os.pardir) +mesa_root = os.path.join(os.path.dirname(__file__), os.pardir) hawkmoth_clang = [ - '-Idocs/header-stubs/', - '-Iinclude/', - '-Isrc/', - '-Isrc/gallium/include/', - '-Isrc/intel/', - '-Isrc/mesa/', + '-I{}/docs/header-stubs/'.format(mesa_root), + '-I{}/include/'.format(mesa_root), + '-I{}/src/'.format(mesa_root), + '-I{}/src/gallium/include/'.format(mesa_root), + '-I{}/src/intel/'.format(mesa_root), + '-I{}/src/mesa/'.format(mesa_root), '-DHAVE_STRUCT_TIMESPEC', '-DHAVE_PTHREAD', '-DHAVE_ENDIAN_H', diff --git a/docs/drivers/amd/hang-debugging.rst b/docs/drivers/amd/hang-debugging.rst new file mode 100644 index 000000000..a5a3c9fd6 --- /dev/null +++ b/docs/drivers/amd/hang-debugging.rst @@ -0,0 +1,80 @@ +:orphan: + +.. _radv-debug-hang: + +Debugging GPU hangs with RADV +============================= + +UMR (optional) +-------------- + +UMR is needed for dumping a lot of useful information. Clone, build and install +`UMR `__. Do not forget to run +``chmod +s $(which umr)`` so RADV can actually access UMR. + +UMR needs to access some kernel debug interfaces: + +.. code-block:: sh + + chmod 777 /sys/kernel/debug + chmod -R 777 /sys/kernel/debug/dri + +Secure boot has to be disabled as well. + +Generating and analyzing hang reports +------------------------------------- + +With UMR installed, you can now set ``RADV_DEBUG=hang`` which makes RADV insert +trace markers and synchronization and check for hangs. The hang report will be +saved to ``~/radv_dumps__