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.5.0
Mesa: 27.0.0-devel @ 56541164eef5ef1e6c52bd96196a221383603438
Recipe: c437d89116
Previous release: DD-Turnip-v0.4.0
Turnip (Mesa freedreno Vulkan) for DroidDeck, built from the latest Mesa main with the patch set below. DD-Turnip-v0.5.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.4.0
b1a8996cb3 → 56541164ee: 184 upstream commits (compare).
Turnip, Vulkan runtime and gralloc (10)
- vulkan: implement a new workaround for Metro Exodus (
6780bd4f91) - vulkan: add the existing Metro Exodus workaround to the new infra (
13a47f00e3) - vulkan: add an infrastructure to implement app workarounds in a layer (
358c9e045a) - freedreno : Take only in fence as a hint for explicit sync (
1f9c4d529f) - tu: Drop CCU depth invalidation on occlusion query end (
ce116a018e) - ci/deqp: Update VK CTS to 1.4.7.0 (
67d8fb7fa5) - vulkan/wsi/x11: drop x11_requires_mailbox_image_count helper (
5954a3a36f) - vulkan/wsi/x11: drop x11_needs_wait_for_fences helper (
4b182a41c7) - vulkan/wsi/x11: use resolved present mode to calculate image count (
c6ea5ab5d2) - vulkan: update spec to 1.4.367 (
70227af063)
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
- gfxstream: fix 32-bit pointer casts in VirtGpu ioctls (
56541164ee) - gfxstream: advertise VK_KHR_swapchain_mutable_format (
0b8493c0c7) - ci: be more resilient against sustained attacks from LLMs against our infrastructure (
2202748a57) - ci: bump fedora from 44 to 45 (
6c4d70f284) - intel/decoder: support expat 2.9+ (
32f5c93440) - v3d/cle: support expat 2.9+ (
3e1a0055e0) - util/xmlconfig: support expat 2.9+ (
08c4b82de3) - vulkan: implement a new workaround for Metro Exodus (
6780bd4f91) - vulkan: add the existing Metro Exodus workaround to the new infra (
13a47f00e3) - vulkan: add an infrastructure to implement app workarounds in a layer (
358c9e045a) - mailmap: Added my email (
b3870144d9) - nir: Clear temp->data in lower_io_vars_to_temporaries() (
5a82a05e2c) - panvk: rewrite lower_layer_writes (
66dfcbd030) - nir/lower_multiview: Check variable modes before deleting (
8806870666) - anv/drirc: use anv_force_exact_glsl_fma for Project Wingman (
81d869ccd5) - anv: add anv_force_exact_glsl_fma drirc option (
08ea012539) - ac/nir: Clamp cube array layer to avoid 8*layer+face precision loss (
169e7b76c0) - anv/dric: set anv_assume_full_subgroups for Last Of Us 2 (
0b6d3f401e) - anv: change assume_full_subgroups drirc detection (
c4caa71c30) - docs: advertise v3d for GL_OES_texture_cube_map_array (
1b60c2e3bd) - panfrost/ci: Add g610-gl-old job for testing bifrost compiler (
77d5b5ce01) - panfrost/ci: Retire g925-vk-old job ([
16660a6a5d](https://gitlab.freedesktop.org/mesa/mesa/-/commit/16660a6a5d01470...
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...