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 0800040C32 for ; Wed, 9 Mar 2022 06:56:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 268E168AFEC; Wed, 9 Mar 2022 08:56:35 +0200 (EET) Received: from AUS01-SY4-obe.outbound.protection.outlook.com (mail-sy4aus01olkn2162.outbound.protection.outlook.com [40.92.62.162]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42A0968A905 for ; Wed, 9 Mar 2022 08:56:28 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fOfK/p40O45JZdZqon/VHb2YgQGHKCVIeDWGQUxY4z3f7//D97rre3h4LlFesZ0BumdyyyK4iDJcn5OgTcKAw/BdwbLUy8wC1Z/fcMh5TO5TAmxJl+2+AStqnDoJ77YX1bSB9vhLNWq5ZJspksuoGRC5G6YsvYSvn/O7Syea1GJHgw2N99M1+2Pv8NLWx5h4OjjSFAO+/K24ptf39q74Fc9+uvC3uitE7ZwxlFMeMXheYoMIPNwen3/uwi0Uj6jGXGcDGP0/3V9GE0cciCSO6/MC0fBlUEqgxYN+dGP6lDbMwhX5utvz91iHAqc2BqGbr+6siNGrsow3yW7FpEN8YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tK3DtX/KuGO3lQUjB5fR3ut/PPAwN5cogYCFFi0Rn5c=; b=d5VZ/GPSbg/dC5g/ZWw0ecurMhfa+n/Fl1/7eHzsF2KZjtGfiHUrFJYRpRlbrAqjXV+3AGjEJnGf6Ns2XkkmK4AR39avBq9Mlx3Fa4yR9wJm3p/1ieaAQ/jONwGubfvFnZ9FoRvfAk+9aeOG0BITx83DWxFCIe/ypZrOLTsaCrew+z75b4rwUYt7ZLXEgmQlVDOx3FQW5LKpVnPt/FGdlEdvTnun8u6b5CDkJ1R4Sro005TJquAO3EUGitEu5CZRxzQgalBtBxN0ofzlP2OlCuuJpW68m+OAbPeVV7FYsFelr01+UiBLe7qxBMqloKMueqpbLZRBA9yIu/EqTGTMQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tK3DtX/KuGO3lQUjB5fR3ut/PPAwN5cogYCFFi0Rn5c=; b=ho7fXwmkQEED9TXK9GRE8HRAUenCybk3TasGRxGTbKUSVOt6x79TKKbMs28qFt3PgDMlV5wTaSX+pxb+lq5Qrrz/nCjroJsKhLf6XOBUM8NTu4+Ub6wwtrv+8vRVwlIoDhIaMatz4AHjD3qnUZkEQr5MK92sCwW9vs5IA2/nKdOX2tw1ZWKGgf2jMBYRfstDhv+DjKfRPql/zF8EnJpLCJPYT3hNmCNZVIAGJ9jgkd3O/FrVkr3arm8NmGYc0shwyuL9ECWVQud+gl5DXhXpr0MPWER7nXz7UySJBXGvTxgq80DxN3rFk/erd8JDIhRTpEfSzIIyuOOku4hnywTnaQ== Received: from ME3PR01MB5624.ausprd01.prod.outlook.com (2603:10c6:220:cd::12) by SY3PR01MB0635.ausprd01.prod.outlook.com (2603:10c6:0:8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Wed, 9 Mar 2022 06:56:23 +0000 Received: from ME3PR01MB5624.ausprd01.prod.outlook.com ([fe80::b852:909c:c2eb:b8cb]) by ME3PR01MB5624.ausprd01.prod.outlook.com ([fe80::b852:909c:c2eb:b8cb%4]) with mapi id 15.20.5038.027; Wed, 9 Mar 2022 06:56:22 +0000 Message-ID: Date: Wed, 9 Mar 2022 14:56:19 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 From: Wang Chuan To: ffmpeg-devel@ffmpeg.org Content-Language: en-US X-TMN: [PVwO9xrshAeOj+643ZP+qCCr/DMJLzOW] X-ClientProxiedBy: SG2PR01CA0171.apcprd01.prod.exchangelabs.com (2603:1096:4:28::27) To ME3PR01MB5624.ausprd01.prod.outlook.com (2603:10c6:220:cd::12) X-Microsoft-Original-Message-ID: <312511c9-5419-517a-d8a3-66348286ab48@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4afc559f-983f-48d8-24b5-08da0199ebdb X-MS-TrafficTypeDiagnostic: SY3PR01MB0635:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: slSI2PMVW8orRsXxcBFreXoSBYMAn8e+DHAHqyUrcDvjxmn3r5s7xgMxQGAgTkZOQUu2Ah/B6Pu0Bg5VV+GVTI6NqsuDzM6bS1c5QTaM9H277dfo4yuMO5HwlgyYV7W17vhAJGXuQfvh79LsbdD+jxRLZdlJgve98wP8cZnWqRfwf6xZJo+o+0gD4TfD3Qex8B/Th7E6wUR0OSNo9SXJ7rZxVObtfosRfJrjAtSt0KN48K8dNOvNbJnwQr7zqQNryDdZVAfU78rEEM3yBAgb0/LP0gDzU3rGPY6gYFVOYnm7GKJ6ckRelNS2aPB4P3UHKANR+kYOTXpCFSaU9d6q+b4NNjUnzBqJW/Eu2ObVOeJEDda8lfPa7Bf+7NmXd3eporMk37RGijeo6E/LQq5nqnNvn8vFKEh0AzL62Luo4IxK4GsjIPTaMdfSrxq6Gkbk2hBrqMNLiiFSnI/6c8oAkK58SEZH9LK6EsF8Xo/qv1Q/dbUS0Xh7pH+W0ky4a09zZRSU+y3aGy3EyFltqIzNBmsnMCL4S9Ve+o77ZGKkH/KxggV64x/Z51rPZ9ek8sjaLAhAAVYgVlOvGHacCJYYqg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZXB5c1hST1hoNjZnMWVBclg5WVVMNWFvbGdRY0g1R3dBM0t5eEpiRlFveXlw?= =?utf-8?B?b1F1OEY2aTBNcVkwbUh6bG9lalFJTmpaQjlCMit0NTVFNlY3MmI2Z04rMmNB?= =?utf-8?B?S2o0K2ZhaWREMnBhNnVFdGNtZStqSWtlamVQUFJ5UFljc2QyM2FCL0xIUHV2?= =?utf-8?B?cEgzOFUxalVlNllueDJObmk2ODVpMEFzOTB3NXNDMEZTc1NhQ3dqb01JVkla?= =?utf-8?B?QkVnWnR3TzlPVStQRXg2ZFpRL0c3S0t1UUVJVWFtcG9mTWhwQWZIelBCcmZF?= =?utf-8?B?YXJQV3ZxbWh3V092d05VM0tVR2lXVCtWRGNjV1BUU3dndVVmeUtydFZWbDBN?= =?utf-8?B?aEtZZVZQdDhsVzRyM1hWNjZWK1FzZUpUZ0M4NVExVVhKTldHVHNGN29pSHpr?= =?utf-8?B?QWRucDh4ekNKemRxeDNYa1llcXpBc0dneEdTRmVtZG5yejIvZDdCV0VlT0I5?= =?utf-8?B?ZVZ4b3FYV1o1Q21wV2xWWEhKakdoMnlsTnBzNCtleHp2NUYrcElZcGRqMjlt?= =?utf-8?B?YTJZRXQ5WUJ0VHlWNm1KdWJzMC9sN3lvYUhOMGt2d1lySmxnRFRtcGc0bUdt?= =?utf-8?B?ZE9sNU0xZWJOcmpFcEczdHJ4ZUdGV2FWck9HSVQzaXNFYnQwak4xRkNyKzAy?= =?utf-8?B?d25GN3ZFVWxWU0gzblJYZ080a0ZvdmhLRVJxWU5JT21DeHpva01rWHVCZkhi?= =?utf-8?B?cGNPWUFqU0tpY21Eb0lGdDIrdXVMYk1uai8rWlFCMXA0bVdUT0hVY3pZanhn?= =?utf-8?B?WmtJWGtMaDFram8rSUQzektPVXF5NklKZlVDNS9iaHhSQWxEZDlCU2tiMnhq?= =?utf-8?B?RTJHNXAzUUV1ODVHbXdDQ1FYbFFjU3RzSXRiU1UrK2J4RndieDA2S0s5MFRr?= =?utf-8?B?clgyZGlzWGhkTlpKNTByK0xPSlQ2OVZIR1Rld05WdGEwamxwV3o5WkRYU1Jw?= =?utf-8?B?T1ZVemt0V2JyWmI5TTJISXRmZVZYNnN5VjZNRUIreXkvNTVVeTJjY05qZ09K?= =?utf-8?B?MFBkdXo2bHFTRkxvSEZZN1pISWNzcURVRUg4ZyswWW4xeDdoWllITFZyYy9k?= =?utf-8?B?QWdsMDlwSTZCT0JvSG5xK0tsdHp5cUkvMlNhWWlwKzNDaysyR1UwZ0VWQTBj?= =?utf-8?B?ckhCeEdQcFMxdlV0NU5iU3d0Q3ZEU0lPR3V2S1N3N1ZLamQ0WC9Ba2lHNHg2?= =?utf-8?B?Sjdtd1pkRzV2SlF4KzhycW51ZXVZTU1wS3dTUmF4R0VBTERXZmpHMXNLbGEy?= =?utf-8?B?Vi8yaVYzdU5DOVhvVzNSSGdlQytJaG5iTkk4ZGdqM2UzbElMZz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4afc559f-983f-48d8-24b5-08da0199ebdb X-MS-Exchange-CrossTenant-AuthSource: ME3PR01MB5624.ausprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2022 06:56:22.9508 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY3PR01MB0635 Subject: [FFmpeg-devel] [PATCH] d3d11va: let user can create SRV from output 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: Starting from Windows 8, users can create SRV from video resource and bind it to shaders directly. This can avoid unnecessary memcpy (ID3D11DeviceContext::CopyResource, etc), so create texture with [D3D11_BIND_SHADER_RESOURCE] as decoder's output if possible. Signed-off-by: Wang Chuan --- libavcodec/dxva2.c | 2 +- libavutil/hwcontext_d3d11va.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libavcodec/dxva2.c b/libavcodec/dxva2.c index 568d686f39..15b25d793c 100644 --- a/libavcodec/dxva2.c +++ b/libavcodec/dxva2.c @@ -645,7 +645,7 @@ int ff_dxva2_common_frame_params(AVCodecContext *avctx, if (frames_ctx->format == AV_PIX_FMT_D3D11) { AVD3D11VAFramesContext *frames_hwctx = frames_ctx->hwctx; - frames_hwctx->BindFlags |= D3D11_BIND_DECODER; + frames_hwctx->BindFlags |= (D3D11_BIND_DECODER | D3D11_BIND_SHADER_RESOURCE); } #endif diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c index 8ab96bad25..97ffd745bd 100644 --- a/libavutil/hwcontext_d3d11va.c +++ b/libavutil/hwcontext_d3d11va.c @@ -203,6 +203,11 @@ static AVBufferRef *d3d11va_alloc_single(AVHWFramesContext *ctx) }; hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &tex); + if (FAILED(hr) && (texDesc.BindFlags & D3D11_BIND_SHADER_RESOURCE)) { + av_log(ctx, AV_LOG_ERROR, "Could not create the texture with [D3D11_BIND_SHADER_RESOURCE] flag"); + texDesc.BindFlags &= ~D3D11_BIND_SHADER_RESOURCE; + hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &tex); + } if (FAILED(hr)) { av_log(ctx, AV_LOG_ERROR, "Could not create the texture (%lx)\n", (long)hr); return NULL; @@ -278,6 +283,11 @@ static int d3d11va_frames_init(AVHWFramesContext *ctx) } } else if (!(texDesc.BindFlags & D3D11_BIND_RENDER_TARGET) && texDesc.ArraySize > 0) { hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &hwctx->texture); + if (FAILED(hr) && (texDesc.BindFlags & D3D11_BIND_SHADER_RESOURCE)) { + av_log(ctx, AV_LOG_ERROR, "Could not create the texture with [D3D11_BIND_SHADER_RESOURCE] flag"); + texDesc.BindFlags &= ~D3D11_BIND_SHADER_RESOURCE; + hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &hwctx->texture); + } if (FAILED(hr)) { av_log(ctx, AV_LOG_ERROR, "Could not create the texture (%lx)\n", (long)hr); return AVERROR_UNKNOWN; -- 2.35.1 _______________________________________________ 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".