Repository navigation
Releases
DD-Turnip v0.4.0
Mesa: 27.0.0-devel @ b1a8996cb336f8398b06583c399fae821523152d
Recipe: c437d89116
Previous release: DD-Turnip-v0.3.5
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.4.0.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.5
fd8ef2befa → b1a8996cb3: 83 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (5)
- tu/kgsl: Force 8-channel macrotile mode on A635 (
31f1ceddff) - meson: refactor out with_platform_display (
95e4f13066) - freedreno: Fix the A722 CCU count (
8c589b897b) - tu: use VK_USE_PLATFORM_ANDROID_KHR when applicable (
bf187f7617) - freedreno/a3xx: deal with VS which does not write position. (
3d167c0824)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A845 / A850 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a8xx_cat4_rpt.py |
✓ | ✓ | No category-4 repeat on A845 / A850, whose repeated SFU results otherwise turn DXVK and Unity 2D output grayscale (by misakayuuki) |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/a8xx_resolve_cr_cntl.py |
✓ | ✓ | A8XX preamble sets RB_RESOLVE_CR_CNTL to 1 as the proprietary driver does (Vauzi-17/710) |
scripts/a8xx_sp_hysteresis.py |
✓ | ✓ | A8XX preamble sets the VS and PS shader-processor hysteresis the proprietary driver uses (Vauzi-17/710) |
scripts/a8xx_lrz_color_mask.py |
✓ | ✓ | A8XX blend state emits GRAS_LRZ_COLOR_COMP_MASK from the per-MRT write masks (Vauzi-17/710) |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
scripts/process_heap_usage.py |
✓ | ✓ | Memory budget reports the process-wide heap usage, so a D3D12 game reading it through DXVK's DXGI sees vkd3d-proton's allocations |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
lrz/0001-tu-a8xx-lrz-reset-cntl-after-flush.patch |
✓ | ✓ | Reset the LRZ controls after the end-of-pass LRZ flush on A8XX, as freedreno does, so a large fast-cleared LRZ buffer no longer hangs the GPU |
nir/0001-nir-lower-explicit-io-keep-32bit-offset-wrap.patch |
✓ | ✓ | Keep the 32-bit wrap of SSBO byte offsets when NIR pre-shifts array strides, so vkd3d-proton's UE5 Nanite hardware-raster cluster stores are no longer dropped (by K11MCH1) |
fdl/0001-fdl-a8xx-buffer-num-elements.patch |
✓ | ✓ | A8XX buffer descriptors use the 32-bit NUM_ELEMENTS field, so SSBOs of 1 GiB or more keep their size (by airidosas252) |
tu/0001-tu-flush-before-suspended-render-pass-chain.patch |
✓ | ✓ | Emit the pending cache flushes where a suspended dynamic render pass chain starts, so indirect draws in vkd3d-proton render passes split across command buffers no longer read their arguments before the compute pass writes them (UE5 Nanite and virtual shadow maps, by K11MCH1) |
All upstream Mesa commits in this release
- brw: Pass brw_compile_params down to variant compilation (
b1a8996cb3) - jay: Fail if scratch size after RA is too large (
bd6c797a78) - jay: Propagate shader compilation errors (
afd171b3af) - jay: restrict accumulator modifiers before Gfx12.5 (
0d9fa477fc) - jay: restrict accumulator combinations before Gfx12.5 (
ed2380c4df) - jay: restrict accumulator source positions before Gfx12.5 (
acb4c6e490) - jay: limit accumulator allocation before Gfx12.5 (
19de429b4e) - jay: Lower ALU to scalar before filling out prog_data (
338d256ce5) - jay: Use Xe2 immediate offset bits for spills and fills (
a059b9c6b9) - jay: Encode the mlen and ex_mlen portions of descriptors post-RA (
e26048e267) - jay: Add a variant of jay_shrink_sources for ISA sources only (
9554393bed) - jay: move lowering call out of nested if statement (
95da818109) - gen: Add helper for encoding bindless ex_desc immediates (
88f6a3e395) - jay: fix uniform stores in divergent frag shaders (
1505a4cb51) - util: Add more ways to delete from dynarray (
77a21c6c47) - asahi: Use util_dynarray_grow_zero(..) (
242e12cde6) - agx: Use util_dynarray_grow_zero(..) (
187234e6ee) - jay: Use util_dynarray_grow_zero(..) (
9de592ce73) - panfrost: Use util_dynarray_grow_zero(..) (
31445bc5bf) - pan/compiler: Use util_dynarray_grow_zero(..) (
4b78730ae4) - util/dynarray: Add util_dynarray_grow_zero(..) (
e2c53b3e70) - va: Unmap coded buffer on encode failure (
f4871b8173) - radeonsi/mm: Disable unsupported EFC conversions on VCN5 with old FW (
37a0d07995) - radv/video: Use EFC range bug cap (
33624ee088) - ac/video: Add EFC range bug cap (
75aee05557) - panfrost: don't use helpers for memory barriers (
bf4721021e) - tu/kgsl: Force 8-channel macrotile mode on A635 (
31f1ceddff)
...
DD-Turnip v0.3.5
Mesa: 27.0.0-devel @ fd8ef2befafd01190e33f12dbfd109b924c8ebc3
Recipe: df71d39bda
Previous release: DD-Turnip-v0.3.4
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.5.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.4
e2ab6687d5 → fd8ef2befa: 412 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (46)
- kk,wsi/metal: Fix stencil and swapchain image usage (
bd583379bc) - vulkan/video: Remove vk_video_parse_h265_slice_header (
c7730535cc) - freedreno/ci: drop a530 flakes that no longer reproduce (
9e87a244c0) - freedreno/ci: drop the a530 builtin_functions.precision flakes (
24ba64c445) - freedreno/ci: drop the stale a530 atomic_counter flakes (
2a93c60bbf) - freedreno: Match FD735 regardless of the speed bin fuse (
9c82a78f18) - wsi: Disable present timing if MESA_VK_WSI_PRESENT_MODE is used. (
b1cdebb7a4) - vulkan: update spec to 1.4.366 (
300b5fd7b4) - vulkan/util: handle number split in CamelCase_to_SHOUT_CASE (
e193d2ff95) - vulkan/util: collect tags from the registry (
569b370fbe) - tu: Add QCTDD08049535_numnonposvar_alignment for a7xx gen1/gen2 (
2fae1d0db8) - tu/ci: Update trace checksums for non-visible changes. (
34d9ed80fc) - ir3: Allow (neg) copy propagation into some more bit ops on 6xx+. (
1e4254967a) - ir3: Add support for copy-propagating BNOT into src mods. (
8eda1cc036) - ir3: Give is_same_type_mov() an option to allow src mods or not. (
1e24fd20a9) - ir3: Reject BNOT as a src flag on cat4 instructions. (
222377b38b) - ir3: Correct the IR3_REG_BNOT flags support. (
1eb4fe36e7) - ir3: Add support for (not) as a source modifier name. (
10839580a9) - vulkan/wsi/wayland: Support wl-dmabuf v6 (
66b64b1b04) - vulkan/wsi/wayland: Keep the whole
dmabuf_feedbackaround (61d058cd17) - wayland: use new stable name for dmabuf extension (
a0543624c0) - vulkan/bvh/ploc: Simplify push_node (
be27fe9b46) - vulkan: Always compute sourface_area/2 (
fda56c9dc2) - vram-report-limit: Make the layer implicit (
cca0dc543e) - tu: Have GL behavior for primitive generated query (
c99d3b50f7) - freedreno/decode : Add new test for crashdec with devcore dump with mempool (
837ab0e307) - freedreno/crashdec: Use CP_MEM_POOL_SIZE as a layout hint (
e00d0427c8) - freedreno/crashdec: Detect the mempool layout (
5be22f37e4) - freedreno/crashdec: Pass the mempool dump size down (
598f119b8f) - freedreno/crashdec: Bound the mempool queue walk (
f498517c72) - freedreno/crashdec: Split out walk_queue() (
a52a42bfa6) - freedreno/crashdec: Put the mempool layouts in a table (
0dea41cf03) - freedreno/crashdec: Move mempool types to file scope (
8b5e7e425a) - freedreno/crashdec: Add bound checks for cffdec (
dc085ea932) - freedreno/crashdec: Start a new section per cluster bank (
20cfa4817b) - freedreno/crashdec: Add a6xx cluster/shader/debugbus ids (
d8a7cbcfc2) - freedreno/crashdec: Walk nested IBs for the snapshot (
10256f70e3) - freedreno/crashdec: Clamp IB size to what was captured (
a226b30da9) - freedreno/crashdec: Harden parse_ibs() (
d39c5aa992) - freedreno/crashdec: Raise the snapshot BO size limit (
70d079b4c9) - freedreno/crashdec: Don't assert on too many IBs (
73ed52f0a7) - freedreno/crashdec: Add reg_buf_push() (
c49996a75e) - freedreno/crashdec: Fill in the snapshot comm field (
5529e5011e) - freedreno/crashdec: Fix time parsing (
b78f8149d0) - freedreno: Record the batch's write when a query ends (
e7371b0711) - mesa: don't read past the name when matching a resource without its [0] (
02f1337523)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A845 / A850 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a8xx_cat4_rpt.py |
✓ | ✓ | No category-4 repeat on A845 / A850, whose repeated SFU results otherwise turn DXVK and Unity 2D output grayscale (by misakayuuki) |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/a8xx_resolve_cr_cntl.py |
✓ | ✓ | A8XX preamble sets RB_RESOLVE_CR_CNTL to 1 as the proprietary driver does (Vauzi-17/710) |
scripts/a8xx_sp_hysteresis.py |
✓ | ✓ | A8XX preamble sets the VS and PS shader-processor hysteresis the proprietary driver uses (Vauzi-17/710) |
scripts/a8xx_lrz_color_mask.py ... |
DD-Turnip v0.3.4
Mesa: 27.0.0-devel @ e2ab6687d5ad700cc2b856af684aa014f9dae943
Recipe: de8bba431f
Previous release: DD-Turnip-v0.3.3
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.4.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.3
c90ff43329 → e2ab6687d5: 274 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (43)
- fix(wsi): Fix SIGSEGV in wsi_common_x11.c due to missing NULL checks (
3b4bc36e15) - ir3: assemble the block copy between global memory and local (
ed2b00fa28) - ir3: decode the block copy between global memory and local (
42177b5f4f) - ir3: implement global atomics on a5xx (
8d2fe6ed62) - ir3: implement global load/store for a5xx (
fe46ccc999) - ir3: move the ldg/stg offset handling to a header (
ae42351705) - ir3: print the half prefix on local and private load/store (
b8141939d2) - ir3: reserve image dimensions for read-write images on a5xx (
05950e40bf) - freedreno/a5xx: swap components when storing to an image (
ca442f8209) - freedreno/a5xx: let half arithmetic overflow to infinity (
724b21ef16) - freedreno/a5xx: decompose strips and fans in the D3D order for the first-vertex convention (
07f52057ca) - freedreno/a5xx: keep hardware-binned bins below 1024 rows (
e5c0aa8e52) - ir3: keep a5xx shaders below the descriptor window in the constant file (
07fd8b3603) - ir3: do not let full-register writes reset half-register delays before a6xx (
7656cf464d) - vulkan/runtime/meson: avoid duplicate header gen deps list (
08af49de6a) - freedreno/ci: lower the a702 job timeouts (
73c57838da) - ci/lava: uprev lava-job-submitter (
57fea5146f) - vk/meta: Fix aspect validation for single-plane YCbCr formats (
6712a065f3) - vulkan/android: map DRM_FORMAT_YUYV/UYVY to VK packed YUV422 formats (
cfaffd87de) - tu: Restore old predicated binning workaround for a630_sqe.fw (
8aa6218125) - ir3/ra: fix DOUBLE_ONLY register limit unit (
29db4909d4) - tu: Report unsigned and mixed 4x8 dot acceleration with dp4acc (
e14789a70e) - tu: Mark signed 4x8 integer dot products as accelerated (
f0bc8697b5) - freedreno/ci: reenable dEQP UBO tests (
d1337cf9f7) - util: restore the launch affinity in threads that shed a pinned one (
a8ed94aea5) - tu: Set prefer_gmem for Sweet Surrender VR (
fe3e563ceb) - tu: Prefer GMEM on Beat Saber (
7e29b87af3) - tu: Add back float16 3D path for multisampled copies (
64245a20b7) - freedreno: Fixup incorrectly copied A6XX_TPL1_DBG_ECO_CNTL for A650 (
0e8f40efb0) - tu/kgsl: Fix BDA capture/replay failures due to deferred VA frees (
a1e9f88842) - tu: Apply tu_enable_ssbo_emulation workaround to all UE5 games (
a799b0baca) - vulkan: Add vk_image_format_info_2_stencil_usage(..) (
3e4d14a181) - tu: upload draw_id_offset through driver_params UBO (
69f1f21f02) - tu: split VS driver params constants setup and emission (
9a7372e8f7) - tu: rename skip_vfd to indirect in struct tu_vs_params (
fd5a6795e3) - ir3: lower draw_id to use draw_id_offset (
1ae1558b89) - tu: Split large indirect count draws on A8xx (
7638039f12) - tu: Split large indirect draws on A8xx (
14656cee8c) - freedreno/devices: Add the Adreno 829 msm chip id (
d1526c1885) - tu/a6xx: Invalidate shared consts before disabling them (
cadc7e42fb) - tu: modify hull shader programming (
af60682ce5) - tu: Drop reference taken with get_vis_stream_patchpoint_cs() (
4f6314dc9c) - tu/a6xx: Set correct value for GRAS_MODE_CNTL (
761d5c8a54)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A845 / A850 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a8xx_cat4_rpt.py |
✓ | ✓ | No category-4 repeat on A845 / A850, whose repeated SFU results otherwise turn DXVK and Unity 2D output grayscale (by misakayuuki) |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/a8xx_resolve_cr_cntl.py |
✓ | ✓ | A8XX preamble sets RB_RESOLVE_CR_CNTL to 1 as the proprietary driver does (Vauzi-17/710) |
scripts/a8xx_sp_hysteresis.py |
✓ | ✓ | A8XX preamble sets the VS and PS shader-processor hysteresis the proprietary driver uses (Vauzi-17/710) |
scripts/a8xx_lrz_color_mask.py |
✓ | ✓ | A8XX blend state emits GRAS_LRZ_COLOR_COMP_MASK from the per-MRT write masks (Vauzi-17/710) |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustment... |
DD-Turnip v0.3.3
Mesa: 27.0.0-devel @ c90ff433291a5c3ff5cea9913bbebeef9cd4e885
Recipe: 6c3f859253
Previous release: DD-Turnip-v0.3.2
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.3.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.2
ba3dacb983 → c90ff43329: 86 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (5)
- vulkan: don't let the queue submit thread inherit a pinned affinity (
afe1e0d502) - vulkan/wsi: don't let x11 swapchain threads inherit a pinned affinity (
0204fb3d9f) - wsi/x11: add optional dedicated connection for Present events (
c5b7cb79d2) - vulkan/wsi: fix a bunch of incorrect error code checks (
e102ea9fc0) - wsi/x11: ignore IdleNotify for a reused pixmap XID (
cce5fbbd3a)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
scripts/process_heap_usage.py |
✓ | ✓ | Memory budget reports the process-wide heap usage, so a D3D12 game reading it through DXVK's DXGI sees vkd3d-proton's allocations |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
lrz/0001-tu-a8xx-lrz-reset-cntl-after-flush.patch |
✓ | ✓ | Reset the LRZ controls after the end-of-pass LRZ flush on A8XX, as freedreno does, so a large fast-cleared LRZ buffer no longer hangs the GPU |
All upstream Mesa commits in this release
- radv: pre-compute last VGT and PS inputs as much as possible (
c90ff43329) - hasvk: fixup environment variable name in log output (
48ac151e84) - anv: switch ANV_QUEUE_OVERRIDE to a drirc option (
c9670ad59d) - r300: add npot override for kwin (
0b4cdcec16) - zink: don't let the shader cache queues inherit a pinned affinity (
a55023c081) - vulkan: don't let the queue submit thread inherit a pinned affinity (
afe1e0d502) - vulkan/wsi: don't let x11 swapchain threads inherit a pinned affinity (
0204fb3d9f) - util: add util_set_current_thread_full_affinity (
45abb7cedb) - nir: Fix split cooperative matrix get-coordinate row offset (
0340298396) - anv: use brw for RE Engine titles with emulated divergent barriers (
3783de3331) - gen: Fix typo in validation for special restrictions (
9947669423) - jay: use skip helpers more aggressively (
af17d141f6) - jay: do not reserve a SEND flag if we don't need it (
f58a8190e5) - jay/schedule: do not serialize helper reads (
f61b63d0c9) - gallivm: truncate integer constants to the type width (
86cf0ade18) - Revert "intel/compiler: Skip intel_nir_lower_vec2_surface_sampler when the handle is already a single 64-bit" (
119fafa07a) - Revert "intel/compiler: Skip intel_nir_lower_vec2_surface_sampler when the texture handle is already a single 64-bit" (
8dff597791) - iris: Optimize 64bit addressing mode efficiency (
1eb1f62e2e) - iris: Lower non-coherent framebuffer reads before binding-table setup (
a899ffc34f) - iris: Add human readable start address comments to memzones (
31f39b40dd) - iris: Optimize memzones of scratch buffers bos in efficient 64bit addresing mode (
686c97a948) - iris: Skip init and usage of border_color_pool in efficient 64bit addresing mode (
6a10d128e4) - jay/partition: print to stderr (
701ced3087) - Revert "ci-tron: bypass caching proxy for docker images" (
a8cdf15384) - gfxstream: make kumquat gpu socket path configurable via env var (
1995244946) - v3d: Use the TFU to detile SAND layouts on V3D 7.1+ (
e2f05fca6d) - broadcom/cle: Add Texture Data Formats for V3D 7.1+ (
3fcf2e66f3) - intel/compiler: update the return type for trace_ray on Gfx35+ (
700f74e6e1) - intel/compiler: enable ray query return values (
ad2d231846) - intel/compiler: rework ray query status tracking (
852c5a0c02) - intel/compiler: always run query optimization passes on supporting HW (
b430c3dceb) - brw,jay: Use 128 GRFs when INTEL_DEBUG=no-vrt (
5783d30801) - util/queue: Fix dead-lock between queue_finish and queue_kill_threads (
74920caaa0) - util/queue: remove locked argument from util_queue_add_job_l...
DD-Turnip v0.3.2
Mesa: 27.0.0-devel @ ba3dacb9832bd073198d22c402f4e0d75ec3a09a
Recipe: 6c3f859253
Previous release: DD-Turnip-v0.3.1
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.2.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.1
44fd0fde81 → ba3dacb983: 64 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (2)
- tu: fix texel buffer emulation bounds check (
b35f166971) - freedreno: Ensure that the generated pack headers are stable between builds. (
c09c414563)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
scripts/process_heap_usage.py |
✓ | ✓ | Memory budget reports the process-wide heap usage, so a D3D12 game reading it through DXVK's DXGI sees vkd3d-proton's allocations |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
lrz/0001-tu-a8xx-lrz-reset-cntl-after-flush.patch |
✓ | ✓ | Reset the LRZ controls after the end-of-pass LRZ flush on A8XX, as freedreno does, so a large fast-cleared LRZ buffer no longer hangs the GPU |
All upstream Mesa commits in this release
- panvk: track heap budget across instances (
ba3dacb983) - radv: only emit primitive restart for indexed draws on GFX11+ (
7f13762f3f) - radv: emit one more user SGPR for indirect mesh draws before the barrier (
14337da451) - radv: fix emitting RSRC2 for vertex prologs (
76ae134838) - radv: reset all tracked registers after executing a secondary (
20958bb875) - ac/sqtt: exclude VMEMEXEC/ALUEXEC tokens by default (
53270be47d) - radv: stop requiring the draw_id user SGPR for VS prologs (
a2dafeeca8) - radv: re-order the VS input user SGPRs (
98fb4863a7) - radv: move needs_draw_id out of radv_shader_info::vs (
94dfe58bcb) - tu: fix texel buffer emulation bounds check (
b35f166971) - radv: allow shader caching with shader abort (
ef1c7363f9) - radv: use symbols to load shader abort address/size (
b9a813607c) - radv: disable VK_KHR_shader_abort with llvm or elf binaries (
175f7b4564) - radv: add aco_symbol support (
4959375b43) - aco: implement load_abort_buffer_address/size (
c6edf4020e) - brw: fix oob source access (
d05cf0de0a) - radv: inline radv_get_shader (
3dfa480038) - radv: inline user SGPR location lookups (
033911f689) - radv: inline per-draw helpers (
9618f90a3e) - radv: allow multisampling with 2D CUBE_COMPATIBLE images with MSRTSS (
e78ccfa699) - nir/opt_algebraic_test: Fix unit test codegen output stability. (
844e5f58a1) - isaspec: Fix encoder output stability. (
0cd0d3e3a7) - freedreno: Ensure that the generated pack headers are stable between builds. (
c09c414563) - iris: Disable TBIMR for GFX 35+ (
e2d83eff1c) - anv: Disable tbimr for verx10 > 30 (
0fc727af82) - iris: Populate array of surface states in E64 mode for TCS passthrough (
f8937efff2) - brw: Fix 16-bit type handling in constant combining (
2dddd1b640) - brw: CSEL cannot have immediate src1 (
955686a57f) - brw: CSEL cannot mix type sizes even for immediates (
96d7a37a7b) - v3dv: advertise VK_KHR_maintenance6 (
fb891a59a9) - v3dv: add CmdBindDescriptorSets2KHR and v3dv_CmdPushConstants2KHR entrypoints (
0a39e9e96d) - v3dv: implement VkBindMemoryStatusKHR (
b082565614) - v3dv: allow VK_NULL_HANDLE in CmdBindIndexBuffer2KHR (
0839cba0b9) - v3dv: allocate null_bo when maintenance6 is enabled (
390e82a998) - spirv: Split GLSL packing ops handling (
f5a49f8a6b) - spirv: Split Modf/Frexp ops handling (
3947b9d6ce) - spirv: Add helper for mediump_16bit (
42be9b150a) - spirv: Add helper to collect sources and downconvert for mediump_16bit (
7b8b4a709c) - spirv: Match tensor layout offset metadata to its signed GLSL type ([
45c403e0cc](https://gitlab.freedesktop.org/mesa/mesa/-/commit/45c403e0cc8087201669474...
DD-Turnip v0.3.1
Mesa: 27.0.0-devel @ 44fd0fde8187b5bb1e919625f1ba24cb36c18cbc
Recipe: 6c3f859253
Previous release: DD-Turnip-v0.3.0
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.1.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.3.0
c823a83e8f → 44fd0fde81: 43 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (2)
- vulkan/meta: fixup typo (
56175d9536) - vulkan/meta: correct image-resolve for 3D image (
2c0adfd4a1)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
scripts/process_heap_usage.py |
✓ | ✓ | Memory budget reports the process-wide heap usage, so a D3D12 game reading it through DXVK's DXGI sees vkd3d-proton's allocations |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
lrz/0001-tu-a8xx-lrz-reset-cntl-after-flush.patch |
✓ | ✓ | Reset the LRZ controls after the end-of-pass LRZ flush on A8XX, as freedreno does, so a large fast-cleared LRZ buffer no longer hangs the GPU |
All upstream Mesa commits in this release
- gfxstream: expose VK_KHR_device_group (
44fd0fde81) - gfxstream: expose VK_KHR_device_group_creation (
b0434953b5) - gfxstream: expose VK_KHR_dynamic_rendering_local_read (
90ac499254) - gfxstream: expose VK_KHR_depth_stencil_resolve (
06594d7870) - gfxstream: expose VK_KHR_push_descriptor (
4c31764446) - gfxstream: expose VK_KHR_timeline_semaphore (
97134c4272) - gfxstream/guest: create the process wide singletons under a lock (
c2dcbcb9f1) - nak: fix insert order when annotate is off (
77781ae80d) - nak: use correct src_type for OpBSSy bar_in (
61f3a1d01f) - radv/video: Allow DRM format modifiers for video images on GFX6-8 (
a4b7918eb8) - ac/uvd: Set uv pitch from surface instead of half y pitch (
12d080a5ad) - glx: destroy the contexts left on a display before its screens (
0913fce718) - vulkan/meta: fixup typo (
56175d9536) - radeonsi: keep the trace buffer when it can't grow (
ee20e2cfc0) - radeonsi: don't start a capture while reading one back (
d40f6accd6) - radeonsi: capture whole frames again with frame and file triggers (
6362bb45d6) - mesa/st: follow render-to-texture images to reallocated resources (
0a342eed5c) - zink: reload msrtss transients after transfer writes to the image (
44695b9eb0) - zink: create msrtss transients with only the attached level (
eb2b460dc2) - mesa: don't mix implicit and explicit multisample attachments (
afd77abbef) - mesa: allow reading from EXT_multisampled_render_to_texture renderbuffers (
c399bf6afa) - mesa: give RenderbufferStorageMultisampleEXT the INVALID_VALUE sample limit (
426820b1a4) - mesa: allow multiview attachments of any texture level (
783600e43a) - mesa: raise the OVR_multiview draw errors for xfb and extra stages (
6d22bab1e4) - mesa: raise INVALID_ENUM for msrtt textargets that are not 2d or a face (
b55174274b) - mesa: raise INVALID_VALUE for bad msrtt texture sample counts (
06ec33366a) - mediafoundation: Fix CODECAPI_AVEncSliceControlMode IsSupported to match the GetParameterRange (
b2dc5a49e4) - v3d: implement the dual_color_blend_by_location driconf workaround (
f8f26e737f) - radv/ci: bump the timeout for radv-vangogh-vkd3d-asan to 15 minutes (
9641b464e3) - zink/ci: update flakes for all RADV jobs (
d426c44be7) - util/u_queue: fail util_queue_init when mtx_init or cnd_init fails (
7d6e908882) - etnaviv: Use SUPER_TILED for render target supertiling (
a1653ac371) - panvk: properly ignore depth-stencil aspectMask (
25e1e23977) - vulkan/meta: correct image-resolve for 3D image (
2c0adfd4a1) - pan/bi: handle tls-stores in helper analysis (
45ea3ed8ce) - radv: enable host_image_copy by default on GFX10 (
f28352d117) - radv: enable host_image_copy for GFX9 (
23990a4cc8) - iris: Conditionally skip viewport emission of depth fast clear ([
7aa9657e72](https...
DD-Turnip v0.3.0
Mesa: 27.0.0-devel @ c823a83e8f373a5c36c2b9ed1d7dc98a4f3360ee
Recipe: 6c3f859253
Previous release: DD-Turnip-v0.2.0
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.3.0.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.2.0
bffd91947e → c823a83e8f: 758 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (21)
- ir3: Fix potential out-of-range load_const_ir3 base offset (
2755d64a64) - nir: delete uadd_carry/usub_borrow (
b539ccee0a) - vk/meta: Handle color to depth equivalents in convert_texel (
55120fc4c0) - ir3: Only call nir_opt_shrink_vectors once (
8f491f606a) - tu: Fix bindless descriptor invalidate sequence (
c88b6ebd38) - tu: Don't bail after the first instr when gathering push const range (
5cf8c6b2fe) - ci: uprev vkd3d (
79fa6f5ca5) - vulkan/android: add R16/R16G16 to AHB format equivalence table (
98536399c0) - ir3/lower_copies: add validation (
48e987b0bc) - ir3: add ir3_instr_prev/next helpers (
6ecb087d52) - vulkan/image: store maximumRequestedAlignment (
dc71d0786d) - freedreno: add 2 slice Adreno 840 chip id (
07ea97900e) - vulkan/graphics_state: Don't get IAL state when not needed (
4503d6ea4a) - vk/nir_lower_descriptor_heaps: Handle VK_QCOM_image_processing (
a0ff50acf0) - vk/nir_lower_descriptor_heaps: Refactor texture handling (
e88fe1736b) - vk/nir_lower_descriptor_heaps: Remove useless sampler check (
28cc306b19) - freedreno/tools: Add a5xx support to computerator. (
98ff6e8312) - tu: Handle ray queries to non-uniform ASs (
42d7c33154) - tu: Slightly better with_crb() (
2588040aaa) - freedreno: Slightly better with_crb() (
ea8c2ea0ed) - tu: Replace C-style casts with explicit C++ casts (
e7959c6009)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
scripts/process_heap_usage.py |
✓ | ✓ | Memory budget reports the process-wide heap usage, so a D3D12 game reading it through DXVK's DXGI sees vkd3d-proton's allocations |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
lrz/0001-tu-a8xx-lrz-reset-cntl-after-flush.patch |
✓ | ✓ | Reset the LRZ controls after the end-of-pass LRZ flush on A8XX, as freedreno does, so a large fast-cleared LRZ buffer no longer hangs the GPU |
All upstream Mesa commits in this release
- brw: Use devinfo in size_read() for DPAS (
c823a83e8f) - zink: make MoltenVK headers and support optional on macOS (
4c12390be3) - amd/ci: update CI results for gfx8-9 (
9a1e58dabb) - radv: mask zbase in HTILE for HTILE expansion based on dynamic ZRANGE_PRECISION (
a8e570e406) - radv: add a fast return path to radv_get_htile_mask for Z/S HTILE without VRS (
2fc52d9161) - radv: add new helper radv_clear_htile_rmw_to_uncompressed (
689e03d3b1) - util: Fix NSEC_PER_SEC macro-redefined warning on macOS (
d1e369d8a6) - kk: Fix miptail computation due to behaviour difference in OS versions (
335d5698dc) - nak: fix extra . when printing membar (
14a19dd6c1) - nak: fix WAR/WAW print (
0b57a255b8) - nak: fix print of EdgeClampRight (
62c34f5c22) - intel/compiler: Fix cooperative matrix conversion signedness (
af2f67b2b3) - anv: remove inline_dwords_count from dgc descriptors (
0de555a7cf) - anv: enable DGC in efficient 64bit mode (
2137959bb5) - anv: bump inline dwords usage in efficient 64bit (
7a62202968) - anv: ensure internal shaders are compiled in the same mode as app shaders (
ed2847cbd0) - docs/zink: list the requirements the profiles now have (
5f999a6ff9) - zink: update the vulkan profiles from the code and add GLES and CL ones (
75e2bbad1f) - zink: drop EDS3 for hardware line stipple without a dynamic enable (
abce359e66) - zink: only enable VK_EXT_headless_surface with VK_KHR_surface ([
f96afc375e](https:...
DD-Turnip v0.2.0
Mesa: 26.3.0-devel @ bffd91947efc1932da99aca69fc540d6d4201b0c
Recipe: 3983c9c3bb
Previous release: DD-Turnip-v0.1.1
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.2.0.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.1.1
ab10c10849 → bffd91947e: 495 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (51)
- vk/meta: Support copying into depth attachments (
72b1756fc1) - tu: Lower input attachments using information from texture instruction (
693fed1cca) - nir/lower_input_attachments: Pass through input attachment information (
d6ce4b6228) - nir, vulkan: Use input attachment intrinsics (
88970558a9) - tu: Remove texture_index assert (
ecf6a0e7de) - vk/nir_convert_ycbcr: Move down assert (
6b4f7c353a) - vulkan/lower_descriptor_heaps: Handle input attachment load intrinsics (
7b7a6c15e2) - freedreno/a5xx: enable the centre 1/w interpolator (
d9799d64d3) - freedreno/a5xx: emit the fragment sample-mask output (
ff8702fb62) - freedreno/a5xx: program the per-sample shading mode (
61ee30aa14) - ir3: force per-sample execution on a5xx with a SampleID input (
69f8c3fd62) - ir3: read the a5xx sample position as f16 (
9c4a1db246) - ir3: keep the msaa key for shaders that interpolate at gl_SampleID (
ac3b600afa) - vulkan: delete anti-lag layer (
b99595dedb) - vulkan/runtime: add vk_frame_pacer utility framework (
6854f77017) - util: move ringbuffer.h from anti-lag to util (
fff60d85d9) - vk/android: replace %#b with %#x (
d381c361ae) - tu/kgsl: Handle errors around profiling buffer/ioctls (
a51a418991) - tu/kgsl: Fix profile obj leak and check suballoc result (
dc671cbf0f) - tu/kgsl: Handle FD-only waits in wait_any (
2e30bbd3b7) - tu/kgsl: Correctly merge timestamps and sync files (
1da50a1b94) - tu/kgsl: Handle syncobj errors in queue_submit (
7e0a2b88e7) - tu/kgsl: Propagate syncobj export failures (
11b1a235ac) - tu/kgsl: Correctly interpret
pollresult in wait_any (9dea49d133) - tu/kgsl: Select the earliest timestamp for wait-any (
59c291f640) - tu/kgsl: Prevent OOB array access in kgsl_syncobj_foreach_state (
9a6269f65f) - tu/kgsl: Always round up the wait timeout (
6cb65e6132) - tu/kgsl: Prevent indefinite wait times for 0 timeout waits (
e984ef294e) - tu/kgsl: Distinguish timestamp and sync wait errors (
b7ad24ada3) - tu/kgsl: Prevent overflow in kgsl_queue_wait_fence (
b889ab52c6) - tu: Switch to using input attachment coord intrinsics (
5622c8717a) - freedreno: Enable A753 and A735 (
19c877f9b7) - tu: Set SP_CHICKEN_BITS_2 bit 30 on A750 for HL: Alyx (
f7ca1f5515) - Revert "ci: temporarily disable dragonboard-410c" (
2d9af4f98f) - tu: Fix inverted variable-descriptor check in can_speculate_descriptor_load (
1887da10a6) - freedreno: Drop magic_regs (
17ca6174dc) - freedreno: Move RB_DBG_ECO_CNTL to raw_magic_regs (
396a186e03) - freedreno: Implement QCTDD04536579 (
5cea3f8fb3) - freedreno: Move RB_RBP_CNTL to raw_magic_regs (
21d260a3f5) - ci: temporarily disable dragonboard-410c (
feeadb5f55) - freedreno/registers: Sync xml changes back from kernel (
81fae85847) - ci: bump FIRMARE_TAG, pulling in updated a630 firmware (
d49ac159e5) - tu: workaround an issue in a630_sqe.fw (
110600ac46) - freedreno/registers: define format of the PC_AUTO_VERTEX_STRIDE register (
fa073b37d1) - freedreno/common: flag a workaround for CP_DRAW_AUTO issue in a630_sqe (
3669c35ab4) - freedreno/decode: Speed up partial decode (
36ce8a2e92) - freedreno/decode: A bit of lastvals cleanup (
c1e2a7c522) - vulkan/runtime: drop vk_emit_device_memory_report() (
9046ec144b) - anv, panvk, pvr, radv, tu, v3dv, vn: use new device memory report function (
78f9b71dd7) - vulkan/debug_utils: add a common vk_device_memory_report_emit() (
f2368a4df1) - Uprev Piglit to c25575c9bfc82d48d6895af98eea5d9ed01f23f8 (
04c38f23ba)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A... |
DD-Turnip v0.1.1
Mesa: 26.3.0-devel @ ab10c10849604a8b2a225635c06ebfc7355ff0d6
Recipe: 27bf2ac1b3
Previous release: DD-Turnip-v0.1.0
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.1.1.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa upstream changes since DD-Turnip-v0.1.0
4da08cb8ad → ab10c10849: 106 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (14)
- freedreno/ci: Document recent a306 flakes (
f716a8454b) - tu: Log drirc options on
TU_DEBUG=startup(dbdd5b38e2) - tu: implement VK_QCOM_rotated_copy_commands (
5d9cde042b) - ir3: Unify disk shader cache serialization/deserialization (
9ac80d5c43) - ir3: Store mergedregs as a u8 bool (
4c8954f3b0) - ir3: Move ir3_disk_cache.c to cpp (
5c380af973) - ir3: Add casts before moving ir3_disk_cache to cpp (
68a394e480) - tu: Add some error handling for perfcntr allocations (
6bc91057a1) - tu: Add some error handling in
kgsl_bo_init_dmabuf()(c4aa23ef9c) - tu: Add some error handling in
bo_init_new_ion_legacy()(90b7cff158) - tu: Add missing
munmap()inkgsl_bo_user_map()(d498e0830b) - tu: Add some error handling for failed
tu_bo_map()(ebef46c780) - tu: Don't save errno before vm_bind_fence_lock unlock (
e7688917ce) - tu: Set
suballoc->botoNULLafter finish in error path (cfc8789c44)
Patches applied
| Patch | Android | Linux | Change |
|---|---|---|---|
scripts/gralloc_ubwc_detect.py |
✓ | Detect UBWC gralloc buffers without the legacy gmsm header newer Qualcomm gralloc no longer writes | |
scripts/fix_a8xx_dev_info.py |
✓ | ✓ | Per-GPU disable_gmem property with a sysmem fallback for parts with broken GMEM |
scripts/apply_a8xx_gpus.py |
✓ | ✓ | A810 / A829 / A840v2 KGSL chip IDs, A810 / A829 disable_gmem, plus the A825 entry |
scripts/apply_a7xx_gen1_quirks.py |
✓ | ✓ | Disable early preamble and scalar predicates on A720 / A725 / A730 |
scripts/apply_a7xx_gen2_ubwc_hint.py |
✓ | ✓ | Enable the TP UBWC flag hint on FD740 / X1-85 to fix UI corruption |
scripts/add_aimapper_gralloc.py |
✓ | IMapper5 stable-C gralloc backend loaded as an SP-HAL (by Leb-Sun) | |
scripts/add_ubwc_swapchain_usage.py |
✓ | Request UBWC-compressed swapchain buffers through the AHB usage answer (by Leb-Sun) | |
scripts/autotune_bandwidth.py |
✓ | ✓ | GMEM autotuner bandwidth multiplier 11 -> 10 |
scripts/perf_pwr_max.py |
✓ | ✓ | KGSL PWR_MAX constraint at queue creation, refreshed every 1000 submissions |
scripts/android_ndk_compat.py |
✓ | Android stub and warning adjustments for the NDK clang cross build | |
scripts/linux_kgsl_wsi.py |
✓ | KGSL dma-buf feedback device numbers and calibrated timestamp / present timing gating | |
kgsl/0001-kgsl-syncobj-merge-ts-fd.patch |
✓ | ✓ | Merge a timestamp syncobj with a sync-file without dereferencing the fd side's missing queue (The412Banner/Banners-Turnip) |
linux/0001-tu-mesh-shader-emulation.patch |
✓ | VK_EXT_mesh_shader emulated with compute | |
linux/0002-ir3-half-wave-subgroups.patch |
✓ | Required subgroup size of half a wave on A8XX | |
linux/0003-ir3-a8xx-cube-direction-sanitize.patch |
✓ | Sanitize cube map sampling directions on A8XX | |
linux/0004-tu-a8xx-bindless-invalidate.patch |
✓ | Invalidate bindless descriptors through the A8XX registers | |
linux/0005-tu-kgsl-a8xx-ib-virtual-alias.patch |
✓ | Fetch A8XX command streams through a KGSL virtual BO alias | |
kgsl/0002-kgsl-zero-timeout-poll.patch |
✓ | ✓ | Answer zero-timeout KGSL waits from the retired timestamp instead of blocking until the GPU finishes (The412Banner/Banners-Turnip) |
All upstream Mesa commits in this release
- radv: Fix signed shift overflow (
ab10c10849) - r300: Fix signed shift overflow (
d0583bce96) - nvk: Fix signed shift overflow (
293436ef85) - etnaviv: Fix signed shift overflow (
8f0cb00fa2) - radeonsi: Fix signed shift overflow (
83b9561fa1) - ac: Fix signed shift overflow (
7ae0c8cfc3) - util: Fix signed shift overflow (
9449469e85) - iris: Upload 3D sysvals before populating binding tables (
9c237ce46a) - iris: Rewrite intrinsic_load_output to u64 surface/sampler address in 64bit addressing mode (
98c92635b0) - intel/brw: Add efficient 64bit addresing mode support to lower_fs_load_output (
d282b16f6a) - iris: Add support for IRIS_SURFACE_GROUP_RENDER_TARGET_READ in iris_populate_64bit_binding_table() (
822429cf92) - iris: Add scratch buffer handling for efficient 64bit addressing mode (
3a07241dd3) - iris: Refactor pin_scratch_space() (
e16cc8e038) - iris/64bits: Add support to nir_intrinsic_load_num_workgroups (
9cc8318921) - iris/64bits: Add support for compute shaders (
2971460987) - iris/64bits: Add compute support to iris_load_eff_64bit_surfaces_base_address/sampler_base_address (
b6a321fec2) - iris: Split iris_upload_compute_walker() into 2 functions (
3fd39de7e2) - iris: Split iris_compute_emit_engine_async_threads_limits() into 2 functions (
02c2713af2) - intel/compiler: Skip intel_nir_lower_vec2_surface_sampler when the texture handle is already a single 64-bit (
2ec06e5f22) - iris: Rewrite texture access to u64 surface/sampler address in 64bit addressing mode (
9da1bb0348) - iris: Rewrite image access to u64 surface address in 64bit addressing mode (
0ba988baad) - iris/64bits: Add sampler binding tables address to shader thread payload (
65a971aea6) - intel/common: Add intel_sampler_state_size() (
f4de92b3ef) - iris/64bits: Add support to populate IRIS_SURFACE_GROUP_TEXTURE_* surfaces to binding table (
b82923cc7f) - iris/64bits: Add support to populate IRIS_SURFACE_GROUP_IMAGE surfaces to bind...
DD-Turnip v0.1.0
Mesa: 26.3.0-devel @ 4da08cb8adfbdc103bc517b45040a19957b7404d
Recipe: f3c679efa6
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.1.0.zip holds both drivers:
| Path | Driver |
|---|---|
android/ |
Android, bionic, Adrenotools meta.json |
linux/ |
Linux ARM64, glibc, Wayland/X11 WSI |
manifest.json |
Both drivers with their path, libc and SHA-256 |
Performance tuning: KGSL PWR_MAX is requested at queue creation and every 1000 submissions.
Mesa changes in this build
First release. Turnip, Vulkan runtime and gralloc changes merged into Mesa main in the 30 days up to the build commit (223 commits):
- xfiles: update expectations based on 2026-9-28 nightly (
aa35464ee5) - freedreno/qrisc: handle Adreno X1-45 and 722 (
0866ae7085) - freedreno/qrisc: make BV and LPAC optional for a7xx+ (
cdbec07870) - freedreno/qrisc: implement A702 support (
35afc6a90c) - freedreno/qrisc: fix hang on a650 / a660 firmware (
9fb6203bc1) - tu: Make CmdClearAttachments record TU_ACCESS_BLIT_WRITE_GMEM access (
a995eaeda4) - ir3: remove ir3_delayslots_with_repeat helper (
ecab65868a) - tu: Allow LRZ writes in narrow "stencil tagging" case (
ea3bfc00a4) - tu: Track sticky lrz_write_disabled in render pass state (
1f8c5d43b6) - tu: Move tu_render_pass_state_merge before draw cs merging (
1864c9bbcb) - tu: Force AMD vendor_id for MGS4 (
190d227a72) - tu: Unify shader cache serialization/deserialization (
481a0c40f7) - anti-lag: convert GPU timestamps to ns in double precision (
db56a7deb3) - vulkan/wsi: keep GOOGLE display timing records that do not fit (
7a31db9f87) - vulkan/wsi: keep present timing records that do not fit the output array (
f96869b1fd) - vulkan/android: support null color efr dynamic rendering - Part III (
31940c3e01) - vulkan/android: support null color efr dynamic rendering - Part II (
82583b3432) - vulkan/android: support null color efr dynamic rendering - Part I (
ac742714a0) - vulkan/android: support null color efr with legacy render pass (
2a3991c20a) - vulkan/android: make efr resolve format mapping explicit (
63563c4514) - vulkan/android: add a generic helper to retrieve AHB external format (
68bda96814) - anv/video: Fix to set OBU extension header info for AV1 encoding (
701ae151e2) - freedreno/ci: a306: reenable fixed tests (
9315107fc9) - freedreno/drm: limit BO dumping on failed submits (
35088b9d11) - freedreno/ci: a306: mark flaky test (
784b32f7ea) - ir3: fix QCTDD13523866 workaround (
a08a0b93ac) - ir3: add foreach_main_block helper (
1b8ec66f00) - freedreno: Add chip-id support for Adreno X2-85 (
d09fa965f9) - ir3: don't use MGEN.B for nir_op_bfm on a3xx (
b739817b7e) - freedreno/common: Fix a702 chip-id (
3e15a53a28) - freedreno/common: Add support to dump quirk summary (
0d08b96ea9) - freedreno/common: Check for dup magic regs (
9b8447b4ae) - freedreno/ir3: Convert fs_must_have_non_zero_constlen_quirk to quirk (
f7c20160d9) - freedreno/ir3: Convert mov_half_shared_quirk to quirk (
e37c15dfd0) - freedreno/ir3: Convert stsc_duplication_quirk to quirk (
b5133d9cee) - freedreno: Convert cmdbuf_start_a725_quirk to quirk (
2802d3366f) - freedreno/ir3: Convert alias_predication_quirk to quirk (
5e618e1806) - freedreno/ir3: Convert alias_mova_quirk to quirk (
f1ec46beaa) - freedreno/ir3: Implement QCTDD10204462 quirk (
e582d67bc4) - freedreno/ir3: Implement QCTDD10789828 quirk (
656669d2b0) - freedreno/ir3: Implement QCTDD13523866 quirk (
c503b0a130) - freedreno: Convert r8g8_faulty_fast_clear_quirk to quirk (
e01ac5bb75) - freedreno/ir3: Convert cs_lock_unlock_quirk to quirk (
dfdf299008) - freedreno: Add device quirks section (
a3c6dff67a) - mesa: Lower polygon stipple for drivers that don't support it. (
e14e842493) - vulkan/wsi: add missing usage2 flags (
9b2a68080e) - vl/bitstream: Don't use internal buffer for size only use (
8850a4475e) - vulkan/video: Don't update OBU size with NULL data_ptr (
e0d72795d5) - tu: Enable VK_KHR_multiview and Vulkan 1.3 on all a6xx devices (
82b868960e) - tu: Implement software multiview via CPU draw duplication (
f5bf54ac83) - tu: Move down tu6_emit_empty_vs_params (
81765de8f0) - ir3: Support load_view_index as a VS driver param (
b44e99a957) - tu: resolve wide formats with a shader on A702 (
5106d00dd3) - ir3/sched: don't try to schedule kill after bary.f in different block (
2f8dc9eaba) - ir3/sched: add TODO about scheduling kill before bary.f (
c419d1c64a) - ir3/cp: Search existing consts to reuse them with different src mods. ([
516c078b1d](https://gitlab.f...