mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-12 19:41:10 +00:00
Select automatic Zink descriptors for Qualcomm Steam browser
(cherry picked from commit cbe67da812e75ab3bcc1a684d258559971591038)
This commit is contained in:
1 parent
5764373060
commit
a82a954c88
2 files changed
+10
No files matched your search
@@ -10,6 +10,8 @@ if [ "$#" -ge 2 ] && [[ "$1" =~ ^(0[xX])?[0-9a-fA-F]+$ ]] &&
|
||||
export SDL_FRAMEBUFFER_ACCELERATION=0
|
||||
# Valve's helper disables Kopper; Zink needs it to reach the managed X11 WSI layer.
|
||||
unset LIBGL_KOPPER_DISABLE
|
||||
# Forced lazy descriptors corrupt CEF render targets on Qualcomm v891.7.
|
||||
export ZINK_DESCRIPTORS=auto
|
||||
fi
|
||||
exec -- "$@"
|
||||
fi
|
||||
|
||||
@@ -38,6 +38,14 @@ Verification on RedMagic 11 Pro/Adreno 840 with the imported v891.7 driver:
|
||||
|
||||
Evidence is retained under ignored `build/research/qualcomm/adreno840`. The earlier Adreno 740 corruption requires retesting with this patch; this result does not validate every Adreno model, driver version or game.
|
||||
|
||||
### Browser descriptor selection
|
||||
|
||||
Opening a game's details and gear menu exposed another Adreno 840/v891.7 failure after startup was fixed: controls were displaced and the menu's backdrop covered only part of the window. Chromium's offscreen screenshot was correct, but the X11 pixmap and displayed frame were corrupt. Apitrace captured both correct and corrupt frames. Disabling GL threading, partial swaps, pipeline optimization or renderpass tracking did not fix it.
|
||||
|
||||
The controlled descriptor-mode test reproduced corruption with `ZINK_DESCRIPTORS=lazy` and rendered the same page and menu correctly with `ZINK_DESCRIPTORS=auto` alone (session `2026-10-24-57-steam`). The Qualcomm webhelper branch in `droiddeck-steam-taskset` now selects `auto`. Zink chooses descriptor buffers when its capability checks permit them and otherwise retains its supported fallback. This applies to system and imported Qualcomm sessions without a GPU-model list. It does not establish that drivers which fall back to lazy descriptors are fixed.
|
||||
|
||||
The packaged APK was installed and checked without agent environment overrides or tracing preloads in session `2026-10-24-59-steam`. The game page, gear menu and Properties page rendered correctly. The browser's actual process environment contained `ZINK_DESCRIPTORS=auto`; its maps contained the imported v891.7 HAL and private Zink. Chromium reported GPU compositing and rasterization enabled on Adreno 840. Evidence is under `build/research/qualcomm/adreno840`, including `descriptors-auto*`, `nogeneral*` (a failing control), and `packaged-*`. Adreno 740 requires retesting; the underlying lazy-descriptor failure has not been reduced to a standalone Mesa test.
|
||||
|
||||
`runtime.json` pins the downloaded bridge and WSI archives, the locally built private Gamescope binary and corresponding source archive, and every private Mesa runtime file. `fetch_runtime.py` checks these pins before Gradle stages them. Missing local build outputs fail the build. Qualcomm's proprietary device libraries are loaded from the phone and are not included in these archives. The bridge archive includes its licenses, source snapshot and patches.
|
||||
|
||||
The same lock pins a vendor-neutral X11 WSI layer and upstream Gamescope shader source. `build_shaders.py` applies `constant-yuv-samplers.patch` and builds six replacement SPIR-V modules with the configured NDK's `glslc`. It builds a small ARM64 glibc Vulkan layer using the NDK compiler without Android runtime linkage. The layer matches the six original Gamescope module fingerprints before substituting a shader; ordinary applications use the WSI/compatibility layers instead. Source archives, patches and licenses are packaged with the runtime. The patch can also be applied during a full Gamescope source build.
|
||||
|
||||
Reference in new issue
Block a user