glob() returns results in an arbitrary order, making the getDriNode()
unpredictable.
The lower-numbered render node has a high chance of being the one used by the
compositor, which avoids possible issues when using DMA-BUFs from another GPU,
so let's default to that.
def getCardFromRender(args, dev):
try:
def getCardFromRender(args, dev):
try:
- return "/dev/dri/" + os.path.basename(glob.glob("/sys/class/drm/{}/device/drm/card*".format(dev))[0])
+ return "/dev/dri/" + os.path.basename(sorted(glob.glob("/sys/class/drm/{}/device/drm/card*".format(dev)))[0])
except IndexError:
return ""
except IndexError:
return ""
return node, getCardFromRender(args, renderDev)
return "", ""
return node, getCardFromRender(args, renderDev)
return "", ""
- for node in glob.glob("/dev/dri/renderD*"):
+ for node in sorted(glob.glob("/dev/dri/renderD*")):
renderDev = os.path.basename(node)
if getKernelDriver(args, renderDev) not in unsupported:
return node, getCardFromRender(args, renderDev)
renderDev = os.path.basename(node)
if getKernelDriver(args, renderDev) not in unsupported:
return node, getCardFromRender(args, renderDev)