From patchwork Sat Feb 4 23:17:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 40283 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp2234442pzk; Sat, 4 Feb 2023 15:17:28 -0800 (PST) X-Google-Smtp-Source: AK7set9RgAEcB2Dy8P6293GzAS58X3/FdhZlF8XzyBsXyqHQiZlx9ElBHCGDLjv3VQdiTXC4RH51 X-Received: by 2002:a05:6402:4446:b0:49d:fff2:d4b9 with SMTP id o6-20020a056402444600b0049dfff2d4b9mr15323349edb.23.1675552648632; Sat, 04 Feb 2023 15:17:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675552648; cv=none; d=google.com; s=arc-20160816; b=PoUnUpVVOXRow/Mvf2pgRAflS+/e2aONgs/RACdCkxyzg7pdcRVMlHHCelsUXakL+i 1zRm1ioEWHiOtp+w3PU/YrPZr7dS/M+asoVGkM/MPPGNe8cRAZVNJamoFlRVY8sQI951 gH7lQEBIP7RgSOvEDLYNIftV/jTAVJmKArUaiu41gyNOgfGXjNkRRsms2Ienyo7I2/pB xej2ssn8DwCu/H6z+nC052O5FPw4QPl8QdGkYla/USO0ViIsEocLipR0RlwuT2/c6ck/ cQs+tJThtS+d60bg+QZuAaaJtBpq5HUI4n4poxRL02mx0nOqdu9PZk2Ii2VRTPNJDTdq WSIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=t1bWm431R0U7n0JYmN3e7AnL+lFDzbxk+b/WvQK22CY=; b=pmce39uMUdLzabVxq5RHlL3E3kJx6itLO+UTIiMEeN4SYCpkQJ28J2v6TM/+SAfQ2Z s+c/Ah7A/bB+iHpzp9mGlnwRPajFej+qdlA++dtItF+SY+lcN/Lhbc94X05mGWa5nYwM rUUElpzxNhVVy0khr+W6RABre8V3dgUw8yNqvOYTv6Ym5e2H1hGx0ZnndjfjsyXK+IH1 jPiCQK2cNLVzwwrxwd3pnVxnqqiRlT8VJPp2c3aYyAqURrIPcoTFLpFwHszRACp5r5Fh QuGvX3O2N8XX2T09sG14ce0T+9Ob8t06Qg7cjF/xV9GcZ+K2pk+ejWv1S3MUnk3ZpMNc WM6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=Fz5+JzzG; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j4-20020aa7c0c4000000b004a0ae493192si6669672edp.505.2023.02.04.15.17.26; Sat, 04 Feb 2023 15:17:28 -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=@rcombs.me header.s=google header.b=Fz5+JzzG; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 234E768BE64; Sun, 5 Feb 2023 01:17:22 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A5D5B68BA04 for ; Sun, 5 Feb 2023 01:17:15 +0200 (EET) Received: by mail-il1-f179.google.com with SMTP id l7so3509705ilf.0 for ; Sat, 04 Feb 2023 15:17:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=i/+4M564Oc/kY2MTAUuxDQD8J1d2wDTooTT2d4V6ILs=; b=Fz5+JzzGEsqZ8ng0ODMR3e1otUF+eYbmqoUTiHOtuZ+JmtlUfV+r/0TJiLFNoCVV4y qrOEWXbC5TFTQKITcR3FNRCvKPbRm34ZQOq8I1YgUpmqOIoBcx2h3CaiyY50Rg5D7JoO bzrwd3nT+OqPM6EJvZOvamlTgEQtpRgah9uXxOtardpa4K3Yql8lrQkoUtmnhRN9wM4A 3gvbWz4nLrMWdr/Rw4vy41jkR/bahVfrfSEPwLbZqaEIn+voDwfwrYDkPkh/6sFFrp6t EJB/W2ZYojBAH5CU2B5sCEVgLtJQd4V0MlGwkyIvKyktQpMZ8brB/mkBuaskR3ZcDU2b tHLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=i/+4M564Oc/kY2MTAUuxDQD8J1d2wDTooTT2d4V6ILs=; b=QUcB+jWLshB8gNPXIB2QwHW4KUzXYiC9nylbw8xd6EoRfVtq9wGuIFig2uvgS81zTM 5eDSs70H0VC7OvvvygRVNF01sCY3LNIHYs6XFZ+a67fPvFoLEYR3P10ndwZJ901il+6Q OSw3/3TusA2+iHn5GvWlN3geHQCjSI2ybrx8qsgl5iTMie/0oTcAFXdHusC/534kI+aJ A9Vs5j8LYMcyMBFxLHxrodh/X0JY3up0OKcwwYUcN0EeEJdSqK62u5iUlwp2NZ6RsHwd BtYEgAhnGLcX63VeTV8NLzWQxCEEmz+1yANqh5Kj3JxxsjvtV3R9XpOcG4YY+lDxlxbj VNaw== X-Gm-Message-State: AO0yUKV7LZLVvbA3GiXVAv2+oZ8DIETWQkxakcKRLWmTjN9MZh2TcmpJ NEa0oxu8NlPdjooEBWdd2GqPsmDEj6qeQegGHg== X-Received: by 2002:a05:6e02:1b0c:b0:311:ad48:ff1a with SMTP id i12-20020a056e021b0c00b00311ad48ff1amr8448375ilv.2.1675552633739; Sat, 04 Feb 2023 15:17:13 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:ac6c:b24e:29cb:25de]) by smtp.gmail.com with ESMTPSA id bo14-20020a056638438e00b0039e8c12414asm2115705jab.164.2023.02.04.15.17.13 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 04 Feb 2023 15:17:13 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Sat, 4 Feb 2023 17:17:01 -0600 Message-Id: <20230204231703.9050-1-rcombs@rcombs.me> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] lavu/hwcontext_vulkan: check for encode/decode queue extensions 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GbF0PcSPxNZV These are currently beta features, and aren't always present. --- libavutil/hwcontext_vulkan.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 2a9b5f4aac..589a7a7d9a 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -954,8 +954,16 @@ static int setup_queue_families(AVHWDeviceContext *ctx, VkDeviceCreateInfo *cd) ((qf[i].queueFlags) & VK_QUEUE_GRAPHICS_BIT) ? " graphics" : "", ((qf[i].queueFlags) & VK_QUEUE_COMPUTE_BIT) ? " compute" : "", ((qf[i].queueFlags) & VK_QUEUE_TRANSFER_BIT) ? " transfer" : "", +#ifdef VK_KHR_video_encode_queue ((qf[i].queueFlags) & VK_QUEUE_VIDEO_ENCODE_BIT_KHR) ? " encode" : "", +#else + "", +#endif +#ifdef VK_KHR_video_decode_queue ((qf[i].queueFlags) & VK_QUEUE_VIDEO_DECODE_BIT_KHR) ? " decode" : "", +#else + "", +#endif ((qf[i].queueFlags) & VK_QUEUE_SPARSE_BINDING_BIT) ? " sparse" : "", ((qf[i].queueFlags) & VK_QUEUE_PROTECTED_BIT) ? " protected" : "", qf[i].queueCount); @@ -969,8 +977,16 @@ static int setup_queue_families(AVHWDeviceContext *ctx, VkDeviceCreateInfo *cd) graph_index = pick_queue_family(qf, num, VK_QUEUE_GRAPHICS_BIT); comp_index = pick_queue_family(qf, num, VK_QUEUE_COMPUTE_BIT); tx_index = pick_queue_family(qf, num, VK_QUEUE_TRANSFER_BIT); +#ifdef VK_KHR_video_encode_queue enc_index = pick_queue_family(qf, num, VK_QUEUE_VIDEO_ENCODE_BIT_KHR); +#else + enc_index = -1; +#endif +#ifdef VK_KHR_video_decode_queue dec_index = pick_queue_family(qf, num, VK_QUEUE_VIDEO_DECODE_BIT_KHR); +#else + dec_index = -1; +#endif /* Signalling the transfer capabilities on a queue family is optional */ if (tx_index < 0) {