's'
This commit is contained in:
@@ -90,11 +90,19 @@ def analyze_for_build(container_runtime: str) -> CompatReport:
|
||||
def resolve_gpu_mode(requested: str, dri_devices: List[str]) -> Tuple[str, List[str]]:
|
||||
"""
|
||||
Map user --gpu-mode to an effective redroid mode and docker --device arguments.
|
||||
auto -> host if DRI nodes exist, else guest.
|
||||
|
||||
auto -> guest by default (many servers have /dev/dri but host-EGL still breaks boot/adbd).
|
||||
Set REDROID_USE_HOST_GPU=1 (or true/yes/on) with --gpu-mode auto to pass DRI + use host when nodes exist.
|
||||
"""
|
||||
req = (requested or "auto").strip().lower()
|
||||
if req == "auto":
|
||||
effective = "host" if dri_devices else "guest"
|
||||
want_host = os.environ.get("REDROID_USE_HOST_GPU", "").strip().lower() in (
|
||||
"1",
|
||||
"true",
|
||||
"yes",
|
||||
"on",
|
||||
)
|
||||
effective = "host" if (want_host and dri_devices) else "guest"
|
||||
elif req == "host":
|
||||
effective = "host" if dri_devices else "guest"
|
||||
elif req == "guest":
|
||||
@@ -126,7 +134,11 @@ def analyze_for_run(
|
||||
report.warnings.extend(build.warnings)
|
||||
report.notes.extend(build.notes)
|
||||
if dri:
|
||||
report.notes.append("DRI present: {} — GPU passthrough can be used.".format(", ".join(dri)))
|
||||
report.notes.append(
|
||||
"DRI present: {} — for host GPU use --gpu-mode host or REDROID_USE_HOST_GPU=1 with --gpu-mode auto.".format(
|
||||
", ".join(dri)
|
||||
)
|
||||
)
|
||||
elif platform.system() == "Linux":
|
||||
report.warnings.append(
|
||||
"No /dev/dri render nodes: software GLES (guest) often black-screens or flickers on headless servers."
|
||||
@@ -140,7 +152,11 @@ def analyze_for_run(
|
||||
"--gpu-mode host requested but no DRI devices found; falling back to guest."
|
||||
)
|
||||
if req == "auto" and not skip_check:
|
||||
report.notes.append("Resolved --gpu-mode auto -> {}".format(effective))
|
||||
report.notes.append(
|
||||
"Resolved --gpu-mode auto -> {} (set REDROID_USE_HOST_GPU=1 to prefer host when DRI exists).".format(
|
||||
effective
|
||||
)
|
||||
)
|
||||
if effective == "host" and not skip_check:
|
||||
report.notes.append(
|
||||
"GPU host mode: if ADB cannot connect (connection refused), Android may not have finished boot "
|
||||
@@ -164,7 +180,7 @@ if __name__ == "__main__":
|
||||
|
||||
ap = argparse.ArgumentParser(description="Host/runtime compatibility probe (same logic as run_redroid.py)")
|
||||
ap.add_argument("-c", "--container", default="docker", help="docker or podman")
|
||||
ap.add_argument("--gpu-mode", default="auto", help="guest, host, or auto")
|
||||
ap.add_argument("--gpu-mode", default="guest", help="guest, host, or auto")
|
||||
ns = ap.parse_args()
|
||||
rep, gpu_eff, dev_args = analyze_for_run(ns.container, ns.gpu_mode, skip_check=False)
|
||||
emit_compat_report(rep)
|
||||
|
||||
Reference in New Issue
Block a user