Attempts to set the correct ro.hardware.vulkan value based on the
loaded drm driver name
+def getKernelDriver(args, dev):
+ return tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
+
def getDriNode(args):
for node in glob.glob("/dev/dri/renderD*"):
dev = os.path.basename(node)
def getDriNode(args):
for node in glob.glob("/dev/dri/renderD*"):
dev = os.path.basename(node)
- driver = tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
- if driver not in unsupported:
+ if getKernelDriver(args, dev) not in unsupported:
+
+def getVulkanDriver(args, dev):
+ mapping = {
+ "i915": "intel",
+ "amdgpu": "radeon",
+ "radeon": "radeon",
+ "panfrost": "panfrost",
+ "msm": "freedreno",
+ "vc4": "broadcom",
+ }
+ kernel_driver = getKernelDriver(args, dev)
+ if kernel_driver in mapping:
+ return mapping[kernel_driver]
+ return ""
props.append("sys.use_memfd=true")
egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
props.append("sys.use_memfd=true")
egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
+ dri = tools.helpers.gpu.getDriNode(args)
gralloc = find_hal("gralloc")
if gralloc == "":
gralloc = find_hal("gralloc")
if gralloc == "":
- if tools.helpers.gpu.getDriNode(args):
gralloc = "gbm"
egl = "mesa"
else:
gralloc = "gbm"
egl = "mesa"
else:
props.append("ro.vendor.extension_library=" + ext_library)
vulkan = find_hal("vulkan")
props.append("ro.vendor.extension_library=" + ext_library)
vulkan = find_hal("vulkan")
+ if not vulkan and dri:
+ vulkan = tools.helpers.gpu.getVulkanDriver(args, os.path.basename(dri))
+ if vulkan:
props.append("ro.hardware.vulkan=" + vulkan)
treble = tools.helpers.props.host_get(args, "ro.treble.enabled")
props.append("ro.hardware.vulkan=" + vulkan)
treble = tools.helpers.props.host_get(args, "ro.treble.enabled")