From patchwork Tue Nov 28 05:38:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 44839 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bca6:b0:181:818d:5e7f with SMTP id fx38csp3953504pzb; Mon, 27 Nov 2023 21:38:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IHofxbktdY9uPUqfQtk4vwwR6VTsYIX1G5Xmdcut1VfrFeKavDp/0BhRyJUsnMs1oxE166M X-Received: by 2002:aa7:cd79:0:b0:54a:eeae:a67 with SMTP id ca25-20020aa7cd79000000b0054aeeae0a67mr9814244edb.27.1701149922435; Mon, 27 Nov 2023 21:38:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701149922; cv=none; d=google.com; s=arc-20160816; b=vc9gF29b8xdijsAG4R/RBAEGOdZa1g/66/PP9BoZxLYBWsfLXE723e7X4ixUlkl6Gq CCsnpesi0dqDN5sY8ga0fhVadhu+IIzP+xmCnuLxQXDVEH8rv9eiYHE8K9+NlQKATM9M cTVfe0Z85IIZYXU49rQwnfSbXeMtg1cshGqxGesahd/ycPGS8Ar0Lf7xp2lAwDczZFYP E9sfsLU6OH7dwGOCddlWHKRjajPwOzY3Cg32GgMLBF/IN4kmN2W+aJNVwkoh4qZcNEGs SldxUmgXDc53lbFOVWMysOLW0AjWfsBnrEUROIgdeY4cNj13DKT98tOGns7ChPBWo+L+ qMfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=kGhbO1vQPCtWCvKyN0Y318kFglDdeSfErZru+4dwdqY=; fh=1kpmTRI1sW42eNCnNMby7VLIISQBX6KJuVYxOEG0t2A=; b=0D7MYgI+MuObdNxNdrrv0zRYO4Pk+xumZAkaQL2zzu7yg/7MW60XuwqSs9JVSyoPB1 NP/z+Bnhv98Wkf80Fhbu4KkAbL2ehN3ho53snQJvwdJaV7Ran0W8bVCX/v9U0DKe4z5Z FDpfgADUsjUcHRF4VmkloQHm3ha0yP7EkbzAl8sJdja/z14r0Hlv6Iu5U9JNBB5s2zev K7JtcNUbOU9hLdVvhQszsjq1yVl3nvqPZBr9vW4dkZ5IhMcI8u4D283LwWgoTFrCI7w+ B2uHrjRqyvWSbmFyu8+ZGaT0UHywzZOod+E2+2h6VI7PLH9g2dnf8G9x846QJFkyqgbn o/2g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=CbBC4RsB; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c20-20020a50d654000000b0054b652d9856si1889725edj.122.2023.11.27.21.38.41; Mon, 27 Nov 2023 21:38:42 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=CbBC4RsB; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E44F268CD13; Tue, 28 Nov 2023 07:38:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 136AE68C6D3 for ; Tue, 28 Nov 2023 07:38:30 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1701149916; x=1732685916; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=yRbkgcOsdjrqyzp3MeThYKvhkF89JotflSBsPn+tnlw=; b=CbBC4RsB7+wh8ZpU0jqELUxMMfr5G5UN1WmLOJL4SYMusiVPLPRN8Sb5 psxkq8+7mRLwSljQT+KAwLjpdwVK1WqkTFN/VBNY2cnAWeoywzxJqQ+/e 7PDPmQ4E7/Dj4hBymd962L2RYS8JjmjldSGYcsZPXqQ/YNbf693iwSWz1 LG4VvC3/LVQJWbdhbTEuLlUl4c3ok1O6Ll4LAXT3c5dghTaP/sJOMCWJa 6fRbYFx0nJJ3tfPJaJq7p851C+/EOEUNkWP80ISzv8AOPsL/0vym3dQM7 1lstcc77J6XwP+dqephLeOC4EZCuriRSdzC8cQAotzMC48hgrnRuq80bi A==; X-IronPort-AV: E=McAfee;i="6600,9927,10907"; a="391728815" X-IronPort-AV: E=Sophos;i="6.04,233,1695711600"; d="scan'208";a="391728815" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2023 21:38:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10907"; a="797484454" X-IronPort-AV: E=Sophos;i="6.04,233,1695711600"; d="scan'208";a="797484454" Received: from xhh-dg264.sh.intel.com ([10.238.2.76]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2023 21:38:26 -0800 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Tue, 28 Nov 2023 13:38:09 +0800 Message-Id: <20231128053810.2441045-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] lavu/hwcontext_vaapi: ignore nonexistent device in default DRM device selection X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Haihao Xiang Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: lWrMVpw3tHUe From: Haihao Xiang It is possible that renderD128 doesn't exist but renderD129 is available in a system (see [1]). This change can make sure the default DRM device selection works even if renderD128 doesn't exist. [1] https://github.com/intel/intel-device-plugins-for-kubernetes/blob/main/cmd/gpu_plugin/README.md#issues-with-media-workloads-on-multi-gpu-setups Signed-off-by: Haihao Xiang --- libavutil/hwcontext_vaapi.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c index 12bc95119a..29fc8bd648 100644 --- a/libavutil/hwcontext_vaapi.c +++ b/libavutil/hwcontext_vaapi.c @@ -1733,8 +1733,19 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device, "/dev/dri/renderD%d", 128 + n); priv->drm_fd = open(path, O_RDWR); if (priv->drm_fd < 0) { - av_log(ctx, AV_LOG_VERBOSE, "Cannot open " - "DRM render node for device %d.\n", n); + if (errno == ENOENT) { + if (n != max_devices - 1) { + av_log(ctx, AV_LOG_VERBOSE, + "No render device %s, try next device for " + "DRM render node.\n", path); + continue; + } + + av_log(ctx, AV_LOG_VERBOSE, "No available render device " + "for DRM render node.\n"); + } else + av_log(ctx, AV_LOG_VERBOSE, "Cannot open " + "DRM render node for device %d.\n", n); break; } #if CONFIG_LIBDRM