From patchwork Mon Oct 30 08:17:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 44436 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dd83:b0:15d:8365:d4b8 with SMTP id kw3csp1274007pzb; Mon, 30 Oct 2023 01:17:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEx5D/s8Sdn5bZf+bWNLkihFGjP7N43pNgs3eFH0GC/yaTFJO90mlf5VohwCxX1NRb2a2ag X-Received: by 2002:a05:6402:1b0e:b0:53f:e49e:4be with SMTP id by14-20020a0564021b0e00b0053fe49e04bemr5673197edb.42.1698653853048; Mon, 30 Oct 2023 01:17:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698653853; cv=none; d=google.com; s=arc-20160816; b=07SZZ91hXtgyNg7aqbTfH927uEJbqOoq8x9a317TCSdmV2amXHtVPQ2qXGgSxHxv+O 3YAjXdIGC9IruLZw8gmsSdvGfhPuARO1ENYQkeqo1docMXlk0QVpzdZKSt3Y/qaK4Lhf dfSw0TCk+PIbOyBXXUADWpzP9ggbFSzg+vDfl123lZP7R/4+G9q9bLbepqT8zZ1QZbst RfVbb8usMvUvfCd8Ljh4pDygrt0BX8xr1SdA8xEMNVvOhwW2rfR8T8HpcFD0+WrZLj3L 8YRZAvEQTfqyBGKjz8oq4ra6BI/BqA6wElcyprBPXP0oJVuLTx/IJtqo77+jlvCAV4d2 0uOw== 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:date:to:from:message-id :dkim-signature:delivered-to; bh=+GFcFloDtpzhFN9RSOh46HrmgewpIAXQ2jR2qogKHww=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=0xdefD0d/hl53D9+fLI+Q7ok26E6QctBin0Sljm1ZetaXa0FS6LgVegfKjznopRQTs ul64o2fhfOCYjQr2EmiNhJvCbiyyTUgPspG83h9Yr+ouRAVOT0ae2ITBoj57CQtcWYAU e4781UMz4vCZK+7PhEKwBxDFFelOn9c1h4krOuecE40KyBJU/CUcFf2d4V2gp0/xsQSI tDgMCk90RyYUFDYJThpf8G+1HWsA5G1M81twmJeEDDORzgzaoilmQSye3XdGY6hk5C0U 2m5f+HLRKyIBGqZS2EBa+bBrP/x144pYt5rIlAW6BUAcXJ/AP+bZw1AGaZhWxOs1a7kj I8BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=z3bLY69I; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d29-20020a50f69d000000b00534657e140fsi3141977edn.587.2023.10.30.01.17.32; Mon, 30 Oct 2023 01:17:33 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=z3bLY69I; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 23B2268CC17; Mon, 30 Oct 2023 10:17:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 950A268CB96 for ; Mon, 30 Oct 2023 10:17:21 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1698653826; bh=LZVgRit/IxWWkZ781kwg3CaTWVqe6fWycpyiOB+nda4=; h=From:To:Cc:Subject:Date; b=z3bLY69I/7jrZ9jbmFEurX66IypuAnih1gqrev9Eu+Gs19dcN5uGibQQ3eGmJqYs2 1Ye5cdNeuVzNlyHtWBqHVKf9V4uz9A6shaahBhibmHvqTfjLCP4npILxfusPc9gCqx Z0ueIS0e11RvmmaqHfsFbvVXSg6YM7TMw15jqr54= Received: from ZHILIZHAO-MB1.tencent.com ([113.108.77.55]) by newxmesmtplogicsvrsza12-0.qq.com (NewEsmtp) with SMTP id 4449321B; Mon, 30 Oct 2023 16:17:04 +0800 X-QQ-mid: xmsmtpt1698653824tuwhjr0ar Message-ID: X-QQ-XMAILINFO: NvH2zBBgt3uTOjeXrXe+vyGya2/tdSRYCPk2T4XRHr78wbcIQE6W+DlyPkP9o3 lrs58Yc414E8oFDSZw69jt6DUxPLmBF4ab8vnYOKtEe6DOj6snbC5rfIcQnpb9hluPB6jAMF7YDx af5TJb24uEYKpz1ssPa8VvL1CQv5bjMbSKfOKSbs+oIGbzrXUMPUyLzisKJcCtq/2LNxB7etyLib oHo4OyVGuZtL3gbI/Lha3gV9jNI1HOiQgFYfZwhdxyv5ADqxCTwfFv4QqlVyi40RDI0nM64Qm99P T4uBtKTUvvvHgdxeBvAhn0snBMLnA3nInz71FzdFHREHcdHrCqK+zd/1Gmuv/ZkEuiL89h5dSn8Z V8dHQJi96v/hRzmR0GMC0JurvpmvxsvF+Xa+IyxhfweZsihpG2AvUVWAylxcBwxc0kf6imEAECxj fy1uILKFzwi+LRv+J3/6GMwI2RhR19O8nvOaeH/6rl34XmytQk761NLivsHhvRWvQQzpP1YGWP04 D0+Cdr/54E1Z0zb79Z+Esc3Cgu2/h451MztRDfp0XfybUv687cHOkqmLSHh8YnpDSp0ODn/qVkrM xGr6s6ZVyudyyMjvdPt5WR2hYH5d5kLE/9GSAGfIeWWVCg1VF7Cp3PocnN+jJjd9OJmAN0XyOXJZ M3arwiOabFCKGbh+xtgO1TFGqzIvi4XAvIzeLGci830mavfmUWvhYId13YBSvCUmwhCQ0SQN2pE2 JXlHa8e4pCHMIDJpgxVA9nK9HW1QJNmEyhgOaynZ6FEHLJ63APv6m5dTq96vrCmGH/PAVlQ+eOi7 06LTxYxRR1JW1U8wbR1jPFAbfXgcRhUN3X/l/6CzfIs7nMc3FJoGv8tDjK5FB6uu7QMsy6TgrJnz YW6xRaI8kRLYer9sWK0EXsYuHwMSeLr8V7+pS8LKmhNY++6vv0SJr3H81jmGbHKuAPzxMXaPxw0Y 3ELE9rJS/f2JYCbMdnbRn/X1jQ7YLAdTo/dzBSU18= X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 30 Oct 2023 16:17:03 +0800 X-OQ-MSGID: <20231030081703.16821-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avutil/hwcontext_vulkan: fix run on macOS 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: RHPmvdQHGTMz From: Zhao Zhili VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME is required on macOS, and VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR flag should be set. --- libavutil/hwcontext_vulkan.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 8481427b42..9fbf61ee70 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -405,7 +405,6 @@ typedef struct VulkanOptExtension { } VulkanOptExtension; static const VulkanOptExtension optional_instance_exts[] = { - /* Pointless, here avoid zero-sized structs */ { VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, }; @@ -784,6 +783,14 @@ static int create_instance(AVHWDeviceContext *ctx, AVDictionary *opts) inst_props.pNext = &validation_features; } + for (int i = 0; i < inst_props.enabledExtensionCount; i++) { + if (!strcmp(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, + inst_props.ppEnabledExtensionNames[i])) { + inst_props.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; + break; + } + } + /* Try to create the instance */ ret = vk->CreateInstance(&inst_props, hwctx->alloc, &hwctx->inst);