From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9FCB04088B for ; Fri, 27 Oct 2023 17:14:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 35EB768CBA7; Fri, 27 Oct 2023 20:14:08 +0300 (EEST) Received: from mail-lf1-f44.google.com (mail-lf1-f44.google.com [209.85.167.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 93E7568C6BF for ; Fri, 27 Oct 2023 20:13:59 +0300 (EEST) Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-50797cf5b69so3207366e87.2 for ; Fri, 27 Oct 2023 10:13:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20230601.gappssmtp.com; s=20230601; t=1698426839; x=1699031639; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=rQKggbYufelIXpZf+xmRjkS/eU2G87XgSY0Bebc2HiY=; b=W9ToGwP5tNayEuBZpvLeWP/AdIsBL4fs3CasURXnozfdhpQJ56osknTSzGnZOpBwIQ Q2p3tXcALXSHaJvCVOD2RxkkghiN3ttv62tT4aHSPhjxiPv4yMOio685O4/4kJioolVi Xw9sOVT+XjJcslPLDNV+Dt4t6Ez2XRvhIrEz8d4iDYRrZpYX6LOrcVfLO6rc3w8lQ4z7 nI8EWv5CrHA+pPqcssicmIYoTGTds8ovjUG5SdAHUFANCeXXjtBTj8NQtYRyJ9mvnhBJ 11+A2NrCQ5LH2sBpzILmlpaKEvSW4Rrh5V5t26RMLoayEZJGHMg8XGYygjnAgsEbVlik yEVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698426839; x=1699031639; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rQKggbYufelIXpZf+xmRjkS/eU2G87XgSY0Bebc2HiY=; b=eBbJHlzoeXHilivdlWsHxgTpMvxDTJaZ4vnMFU3wBGR19NnK/1otMUSAUQ1d9MsLAE whdyqZfkz7bvHkUiXo+T549LDC54rtETIlCi2N1irUaFZXKTaUiWjlqqBcVrCRJ992tb 8raUhkjKLd/00ZxY5O9SkQYrAy8UE8Si6NqIvmsbRENLIwxnxPaHJw7mkA/76hbNXNpG z0BvGE+IILqszRiI6rgbH3Q5mKXWel7fDri4l/MIXsFyB/ewx//0iYLc68CMakUhuyPn Wcc85ZzOgod4FmoCz1FYQqOs9C5N6vbKvvSvDbUVNbG4ME4dbG69UEz9q+QhwPV9ZJF4 bxYg== X-Gm-Message-State: AOJu0YybgoTfXCLWCYLxR7zaYNsyKL8/3wSjTYV0oMN+50C92o76pyxN IDnjppHv4qRc9zgK62OYHCDvm4idm6a5OmJBkWk= X-Google-Smtp-Source: AGHT+IGBtzhUoX9R9uMdftrAKwWKMO7IjOnGS9QN/xCXjrA3glY2SuFkJ48WcfG3ZvFezJ0vZjnYwA== X-Received: by 2002:a05:6512:3e0f:b0:507:b8c5:6542 with SMTP id i15-20020a0565123e0f00b00507b8c56542mr3072649lfv.65.1698426838467; Fri, 27 Oct 2023 10:13:58 -0700 (PDT) Received: from [192.168.0.15] (cpc92320-cmbg19-2-0-cust383.5-4.cable.virginm.net. [82.13.65.128]) by smtp.gmail.com with ESMTPSA id a1-20020a05600c348100b00402ff8d6086sm2060110wmq.18.2023.10.27.10.13.58 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Oct 2023 10:13:58 -0700 (PDT) Message-ID: <9c794765-6337-43b5-afc2-fe8762253917@jkqxz.net> Date: Fri, 27 Oct 2023 18:14:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20231027100038.108316-2-nowrep@gmail.com> From: Mark Thompson In-Reply-To: <20231027100038.108316-2-nowrep@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v3] lavu/hwcontext_vaapi: Use vaMapBuffer2 for mapping image buffers 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 27/10/2023 11:00, David Rosca wrote: > This allows some optimizations in driver, such as not having to read > back the data if write-only mapping is requested. > --- > v3: Fix another warning > > libavutil/hwcontext_vaapi.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c > index 558fed94c6..86b0852c12 100644 > --- a/libavutil/hwcontext_vaapi.c > +++ b/libavutil/hwcontext_vaapi.c > @@ -799,6 +799,9 @@ static int vaapi_map_frame(AVHWFramesContext *hwfc, > VAStatus vas; > void *address = NULL; > int err, i; > +#if VA_CHECK_VERSION(1, 21, 0) > + uint32_t vaflags = 0; > +#endif > > surface_id = (VASurfaceID)(uintptr_t)src->data[3]; > av_log(hwfc, AV_LOG_DEBUG, "Map surface %#x.\n", surface_id); > @@ -882,7 +885,15 @@ static int vaapi_map_frame(AVHWFramesContext *hwfc, > } > } > > +#if VA_CHECK_VERSION(1, 21, 0) > + if (flags & AV_HWFRAME_MAP_READ || !(flags & AV_HWFRAME_MAP_OVERWRITE)) > + vaflags |= VA_MAPBUFFER_FLAG_READ; I don't understand where the !overwrite has come from in this condition? If the user requested write-only but not overwrite then they're expecting to write some pixels within the image (such as adding an overlay), but don't want to read anything. > + if (flags & AV_HWFRAME_MAP_WRITE) > + vaflags |= VA_MAPBUFFER_FLAG_WRITE; > + vas = vaMapBuffer2(hwctx->display, map->image.buf, &address, vaflags); > +#else > vas = vaMapBuffer(hwctx->display, map->image.buf, &address); > +#endif > if (vas != VA_STATUS_SUCCESS) { > av_log(hwfc, AV_LOG_ERROR, "Failed to map image from surface " > "%#x: %d (%s).\n", surface_id, vas, vaErrorStr(vas)); Please add a note that there is a compatibility layer in libva so that MapBuffer2 calls MapBuffer if the driver doesn't expose it directly, so this does work with older drivers. (The patch looked wrong before I realised that.) Thanks, - Mark _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".