fix rendering
This commit is contained in:
96
gpu_config.sh
Executable file
96
gpu_config.sh
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/system/bin/sh
|
||||
|
||||
# args: driver
|
||||
setup_vulkan() {
|
||||
echo "setup vulkan for driver: $1"
|
||||
case "$1" in
|
||||
i915)
|
||||
setprop ro.hardware.vulkan intel
|
||||
;;
|
||||
amdgpu)
|
||||
setprop ro.hardware.vulkan radv
|
||||
;;
|
||||
virtio_gpu)
|
||||
# google venus
|
||||
;;
|
||||
*)
|
||||
echo "not supported driver: $1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
setup_render_node() {
|
||||
node=`getprop ro.kernel.redroid.gpu.node`
|
||||
if [ ! -z "$node" ]; then
|
||||
echo "force render node: $node"
|
||||
|
||||
setprop gralloc.gbm.device $node
|
||||
|
||||
# setup vulkan
|
||||
cd /sys/kernel/debug/dri
|
||||
driver="`cat ${node: -3}/name | cut -d' ' -f1`"
|
||||
setup_vulkan $driver
|
||||
return 0
|
||||
fi
|
||||
|
||||
cd /sys/kernel/debug/dri
|
||||
for d in * ; do
|
||||
if [ "$d" -ge "128" ]; then
|
||||
driver="`cat $d/name | cut -d' ' -f1`"
|
||||
echo "DRI node exists, driver: $driver"
|
||||
setup_vulkan $driver
|
||||
case $driver in
|
||||
i915|amdgpu|virtio_gpu)
|
||||
node="/dev/dri/renderD$d"
|
||||
echo "use render node: $node"
|
||||
setprop gralloc.gbm.device $node
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
echo "NO qualified render node found"
|
||||
return 1
|
||||
}
|
||||
|
||||
gpu_setup_host() {
|
||||
echo "use GPU host mode"
|
||||
|
||||
setprop qemu.gles.vendor mesa
|
||||
setprop ro.hardware.egl mesa
|
||||
setprop ro.hardware.gralloc gbm
|
||||
}
|
||||
|
||||
gpu_setup_guest() {
|
||||
echo "use GPU guest mode"
|
||||
|
||||
setprop qemu.gles.vendor angle
|
||||
setprop ro.hardware.egl angle
|
||||
setprop ro.hardware.vulkan pastel
|
||||
}
|
||||
|
||||
gpu_setup() {
|
||||
## redroid.gpu.mode=(auto, host, guest)
|
||||
## redroid.gpu.node= (/dev/dri/renderDxxx)
|
||||
|
||||
mode=`getprop ro.kernel.redroid.gpu.mode auto`
|
||||
if [ "$mode" = "host" ]; then
|
||||
setup_render_node
|
||||
gpu_setup_host
|
||||
elif [ "$mode" = "guest" ]; then
|
||||
gpu_setup_guest
|
||||
elif [ "$mode" = "auto" ]; then
|
||||
echo "use GPU auto mode"
|
||||
if setup_render_node; then
|
||||
gpu_setup_host
|
||||
else
|
||||
gpu_setup_guest
|
||||
fi
|
||||
else
|
||||
echo "unknown mode: $mode"
|
||||
fi
|
||||
}
|
||||
|
||||
gpu_setup
|
||||
|
||||
19
redroid.mk
19
redroid.mk
@@ -31,13 +31,15 @@ PRODUCT_HOST_PACKAGES += \
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
hwcomposer.redroid \
|
||||
gralloc.gbm \
|
||||
gralloc.gbm \
|
||||
gralloc.redroid \
|
||||
libEGL_swiftshader \
|
||||
libGLESv1_CM_swiftshader \
|
||||
libGLESv2_swiftshader \
|
||||
libGLES_mesa \
|
||||
ipconfigstore \
|
||||
libEGL_angle \
|
||||
libGLESv1_CM_angle \
|
||||
libGLESv2_angle \
|
||||
libGLES_mesa \
|
||||
vulkan.radv \
|
||||
vulkan.pastel \
|
||||
ipconfigstore \
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.kernel.qemu=1 \
|
||||
@@ -90,8 +92,9 @@ PRODUCT_COPY_FILES += \
|
||||
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
|
||||
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
|
||||
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
|
||||
frameworks/native/data/etc/android.hardware.ethernet.xml:/system/etc/permissions/android.hardware.ethernet.xml \
|
||||
vendor/redroid/gpu_config.sh:$(TARGET_COPY_OUT_VENDOR)/bin/gpu_config.sh \
|
||||
frameworks/native/data/etc/android.hardware.ethernet.xml:/system/etc/permissions/android.hardware.ethernet.xml \
|
||||
$(LOCAL_PATH)/init.redroid.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.redroid.rc \
|
||||
$(LOCAL_PATH)/gpu_config.sh:$(TARGET_COPY_OUT_VENDOR)/bin/gpu_config.sh \
|
||||
|
||||
# Extend heap size we use for dalvik/art runtime
|
||||
$(call inherit-product, frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk)
|
||||
|
||||
@@ -21,10 +21,7 @@ $(call inherit-product, $(LOCAL_PATH)/redroid.mk)
|
||||
PRODUCT_NAME := redroid_arm64
|
||||
PRODUCT_DEVICE := redroid_arm64
|
||||
PRODUCT_BRAND := ReDroid
|
||||
PRODUCT_MODEL := ReDroid
|
||||
PRODUCT_MODEL := redroid12_arm64
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/init.redroid.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.redroid.rc \
|
||||
DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
|
||||
|
||||
|
||||
@@ -16,14 +16,12 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base.mk)
|
||||
|
||||
$(call inherit-product, $(LOCAL_PATH)/redroid.mk)
|
||||
$(call inherit-product, $(LOCAL_PATH)/redroid_x86_64/device.mk)
|
||||
|
||||
PRODUCT_NAME := redroid_x86_64
|
||||
PRODUCT_DEVICE := redroid_x86_64
|
||||
PRODUCT_BRAND := ReDroid
|
||||
PRODUCT_MODEL := ReDroid
|
||||
PRODUCT_MODEL := redroid12_x86_64
|
||||
|
||||
PRODUCT_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
|
||||
|
||||
PRODUCT_COPY_FILES += \
|
||||
$(LOCAL_PATH)/init.redroid.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.redroid.rc \
|
||||
DEVICE_PACKAGE_OVERLAYS := $(LOCAL_PATH)/overlay
|
||||
|
||||
|
||||
3
redroid_x86_64/device.mk
Normal file
3
redroid_x86_64/device.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
PRODUCT_PACKAGES += \
|
||||
vulkan.intel \
|
||||
|
||||
Reference in New Issue
Block a user