You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

85 lines
3.0 KiB

#!/bin/bash
# High-Performance Android Emulator Launch Script
# Optimized for Linux systems with NVIDIA graphics cards
# Author: Matthew Raymer
echo "🚀 Launching Android Emulator with GPU Acceleration..."
# Check if emulator command exists
if ! command -v emulator &> /dev/null; then
echo "❌ Error: Android emulator not found!"
echo "Please install Android Studio and add emulator to PATH"
echo "export PATH=\$PATH:\$ANDROID_HOME/emulator"
exit 1
fi
# Check if AVD exists
if ! emulator -list-avds | grep -q "TimeSafari_Emulator"; then
echo "❌ Error: TimeSafari_Emulator AVD not found!"
echo "Available AVDs:"
emulator -list-avds
echo ""
echo "Please create TimeSafari_Emulator AVD or modify this script"
exit 1
fi
# Check if NVIDIA drivers are available
if ! ls /usr/share/vulkan/icd.d/nvidia_icd.json &> /dev/null; then
echo "⚠️ Warning: NVIDIA Vulkan ICD not found"
echo "GPU acceleration may not work optimally"
echo "Consider installing NVIDIA drivers with Vulkan support"
fi
echo "✅ Environment checks passed"
echo "🎮 Starting emulator with GPU acceleration..."
# Launch emulator with GPU acceleration, network fixes, and performance tuning
QT_QPA_PLATFORM=xcb \
__NV_PRIME_RENDER_OFFLOAD=1 \
__GLX_VENDOR_LIBRARY_NAME=nvidia \
__VK_LAYER_NV_optimus=NVIDIA_only \
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json \
DRI_PRIME=1 \
emulator -avd TimeSafari_Emulator \
-gpu host \
-feature Vulkan \
-accel on \
-cores 6 \
-memory 4096 \
-no-boot-anim \
-no-snapshot-load \
-dns-server 8.8.8.8,1.1.1.1 \
-feature -Bluetooth
echo "🎯 Emulator launched with GPU acceleration!"
echo ""
echo "📋 Performance Features Enabled:"
echo " - Hardware GPU acceleration"
echo " - Vulkan graphics API support"
echo " - NVIDIA GPU offloading"
echo " - 6 CPU cores allocated"
echo " - 4GB RAM allocated"
echo " - Fast startup (no boot animation)"
echo " - Clean state (no snapshot loading)"
echo " - Fixed DNS servers (8.8.8.8, 1.1.1.1)"
echo " - Bluetooth disabled (prevents hangs)"
echo ""
echo "🔧 Troubleshooting:"
echo " - If emulator is slow, check NVIDIA drivers"
echo " - For Intel/AMD graphics, remove NVIDIA-specific variables"
echo " - Monitor GPU usage with: nvidia-smi"
echo ""
echo "🔍 GPU Binding Issues:"
echo " If OpenGL still binds to Intel iGPU instead of NVIDIA:"
echo " 1. Check emulator banner for 'OpenGL Vendor=Google (NVIDIA)'"
echo " 2. Try alternative GPU modes:"
echo " - Pure OpenGL: Remove -feature Vulkan flag"
echo " - ANGLE path: Use -gpu angle_indirect"
echo " - Mesa fallback: Use -gpu mesa"
echo " 3. Verify dGPU usage: nvidia-smi dmon -s u"
echo ""
echo "📋 Performance Verification:"
echo " - Monitor GPU utilization: watch -n1 'nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader | grep qemu'"
echo " - Check ADB connection: adb kill-server && adb start-server"
echo " - Clean snapshots: Delete ~/.android/avd/TimeSafari_Emulator.avd/snapshots/"