Skip to content

Its a set of Custom Adreno GPU driver performance improvements,maintainability,safety guards,logs,optimizations#13

Open
Graywizard888 wants to merge 12 commits into
SunnyVishnu3:exoplayer-2from
Graywizard888:exoplayer-2
Open

Its a set of Custom Adreno GPU driver performance improvements,maintainability,safety guards,logs,optimizations#13
Graywizard888 wants to merge 12 commits into
SunnyVishnu3:exoplayer-2from
Graywizard888:exoplayer-2

Conversation

@Graywizard888
Copy link
Copy Markdown

CHEAK THE SOURCE CODE BEFORE MERGING INTO YOUR MAINSTREAM IT MAY HAVE CONFLICTS WITH YOUR SOURCE CODE

Updated CMake configuration to support newer standards and optimize build settings for the adrenotools_bridge project.
This update enhances the Vulkan driver bridge by adding robust logging, improving environment variable handling, and refining the driver loading mechanism. It also introduces new functions for managing driver hooks and configurations.
Added new properties to GpuDriver for installation date, file size, and minimum Vulkan API version.
Refactor GpuDriverManager to streamline driver installation and caching mechanisms.
Added preferences for verbose logging and crash handling.
Refactor GPU driver preference screen by updating imports, enhancing GPU model detection, and improving driver installation logic.
This object maps Android device build identifiers to their corresponding Qualcomm Adreno GPU model numbers, aiding in GPU driver recommendations.
…sh recovery, live swapping, and Mesa/ICD injection.

This code manages custom Vulkan GPU driver loading on Android, primarily targeting Qualcomm Adreno devices, with crash-loop protection and live driver swapping capabilities.
…, Vulkan state, installed drivers, env vars, and filtered logcat — as a plain-text share intent.

Builds a structured human-readable dump covering device/hardware identity, Vulkan hardware version, native bridge availability, Freedreno env vars, installed custom drivers, RAM state, and recent logcat filtered to GPU-related tags — then exposes it via a standard ACTION_SEND chooser requiring zero special permissions, since apps can read their own process logs without READ_LOGS
… string building entirely when verbose logging is off, while warnings/errors always fire.

v/d/i use Kotlin inline + lambda syntax so the message string is never constructed unless the verboseLogging preference is enabled — zero JNI overhead or string templating cost in the hot path. w/e are unconditional plain functions since warnings and errors always need to surface regardless of the logging preference, with optional Throwable chaining support.
… variables and configurations via the native adrenotools library.

acts as a wrapper around libadrenotools_bridge.so, exposing synchronized external methods to set driver base paths, initialize configurations, and manipulate environment variables (like TU_DEBUG). This allows the app to programmatically control low-level driver behavior—such as enabling performance HUDs or specific debug flags—that the Vulkan driver typically reads from the system environment during its initialization phase.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant