From patchwork Tue Aug 31 07:24:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenbin Chen X-Patchwork-Id: 29894 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp4685739iov; Tue, 31 Aug 2021 00:27:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwoHcivRNocFyvVPb3atdIncNY3v0IkSqLr6yoApOPfkHf1n+Gd4VzdzJRuSD70NFWF2q8P X-Received: by 2002:a17:906:af9a:: with SMTP id mj26mr28735753ejb.96.1630394877021; Tue, 31 Aug 2021 00:27:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630394877; cv=none; d=google.com; s=arc-20160816; b=Sm17Y07RwTd+7zE7Y992qY7B2ogUjkN2XCGFYO+Oum+iJBvj1GS54eXgpobWPXeDp3 QrpVFlFGVVoclYIWM5A6fkh0h0/cB/jaOsMc4RZQHR36CyDtmVX8/zpywlt+OTiq8+gP 2KGM8Gq6LtnZW/R+OBsEpzeOqhk0vQ2ioiogJcCRbES4FxS3sSsuRiXQPLiwTKbTFuOP GSgLfU3Ws7QA1F1bEQ6W4Pyw94tEvYZ3frcHD1msFGpvBeXq5qpJcjx0SeGY6DjAgwVk DAOpmY2Ep0Xz3SMVBJbV1Lk+EJfmBEr99OyZwpwXm3RCQTviJrcpsuYZnIt8DPIrwBnO 0rlg== 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:references:in-reply-to :message-id:date:to:from:delivered-to; bh=IKDFRUS7vANt+ba5x26qWqGDK7i07WdTao5oR/WEBak=; b=PV8WkyG3QCggFY+NUkZn5l36p5rRGOHj5ep3xtnmceH4zUCJ/j7TfYTKJBXlH95Fdj KJREwA0YomDFKqWzcYlYvcvfORB+JTZO0khm196Fp9XogegFqrbkdcctnS0lUUNM0XRv tLYDL3PmLBMvFX94OoYb99693WVifQ8+nURU8WARBWhj531+RyBNJkkJ3IdhS7yylieh oEHg9ty6fwgSMAL5/EvOch1JUp5pSphJ3wlDjbG4ykGHd1E6uD+F+yE0z/qBktDFxmwP qWLfHZBgu2t/lUQuSBkNoL/XUA4v2LT3NN0IjvGjEasT/s14NFLdf5LmCuQErDdgfD52 SZTQ== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr37si2376699ejc.264.2021.08.31.00.27.56; Tue, 31 Aug 2021 00:27:57 -0700 (PDT) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 615FA68A42A; Tue, 31 Aug 2021 10:27:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AD1BB68A336 for ; Tue, 31 Aug 2021 10:27:29 +0300 (EEST) X-IronPort-AV: E=McAfee;i="6200,9189,10092"; a="279429271" X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="279429271" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Aug 2021 00:27:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="540905217" Received: from chenwenbin-z390-aorus-ultra.sh.intel.com ([10.239.35.5]) by fmsmga002.fm.intel.com with ESMTP; 31 Aug 2021 00:27:25 -0700 From: Wenbin Chen To: ffmpeg-devel@ffmpeg.org Date: Tue, 31 Aug 2021 15:24:26 +0800 Message-Id: <20210831072430.303090-6-wenbin.chen@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210831072430.303090-1-wenbin.chen@intel.com> References: <20210831072430.303090-1-wenbin.chen@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [V2 06/10] libavutil/hwcontext_vulkan: Add one_memory flag to make vulkan compatible with vaapi device. 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: Wenbin Chen Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sVVdcV5QKfz0 Vaapi can import external surface, but all the planes of the external frames should be in the same drm object. A new flag is introduced and vulkan can choose to allocate planes in one memory according this flag. This flag will be enabled when the vulkan device is derived from vaapi device, so that this change will not affect current vulkan behaviour. Signed-off-by: Wenbin Chen --- libavutil/hwcontext_vulkan.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 9a29267aed..6417f59d4a 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -211,6 +211,9 @@ typedef struct VulkanDevicePriv { /* Settings */ int use_linear_images; + /* map all planes to one memory */ + int use_one_memory; + /* Nvidia */ int dev_is_nvidia; } VulkanDevicePriv; @@ -1321,6 +1324,11 @@ static int vulkan_device_create_internal(AVHWDeviceContext *ctx, if (opt_d) p->use_linear_images = strtol(opt_d->value, NULL, 10); + opt_d = av_dict_get(opts, "one_memory", NULL, 0); + if (opt_d) + p->use_one_memory = strtol(opt_d->value, NULL, 10); + + hwctx->enabled_dev_extensions = dev_info.ppEnabledExtensionNames; hwctx->nb_enabled_dev_extensions = dev_info.enabledExtensionCount; @@ -1443,8 +1451,10 @@ static int vulkan_device_derive(AVHWDeviceContext *ctx, return AVERROR_EXTERNAL; } - if (strstr(vendor, "Intel")) + if (strstr(vendor, "Intel")) { + av_dict_set_int(&opts, "one_memory", 1, 0); dev_select.vendor_id = 0x8086; + } if (strstr(vendor, "AMD")) dev_select.vendor_id = 0x1002;