From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id E32374C148 for ; Sun, 6 Jul 2025 16:47:30 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 26C876910DB; Sun, 6 Jul 2025 19:47:27 +0300 (EEST) Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazolkn19010015.outbound.protection.outlook.com [52.103.43.15]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 51970690184 for ; Sun, 6 Jul 2025 19:47:19 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eI9SwDjOnADNBYv+f880NYU+xTMTA0YMSOY3UNsq9tbh7xoSkisgpNBZJSXMEuPOETMsFlxVboG+Qdqi1GZLM2riKfRTrbqBKnBQjYo9Oekkh1UHnrOKyoWpr0F6K6igUMg0RyTZJ9yFlQqgGZCLIWX9OjyjQKIUDmkgQfV4fcovVFdYsXYZhlONh2VZDsTHI9AbGFuR9owWrEhC8mOfWgyFhFStAd7KeEmYwYq8FIZ9dFwHpOApPWIq8jR6yM78sQShSWSI0lAtX5Uywx3l9jqb3RATuhWdddb+3QIre60Fu1pKcKfpOroRrbTo4v8ePmLXPSvy4N47Nz+xQ+cgDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0CyhHskLjFvscLtmdGYXcLPkJUk0ttiqEaFhza3OEZE=; b=P0SMistH4vQV/N0b90y68sVsgFFfUulQsr0fEwR788kgHKHUv+wiuEY75NbHWRQMgC4qc+wANiogTTqx6QMao7m+SFN4OL2g+CAY1jmLvEF4W+9IeAFIEtxDsmppcyoDvrkwPJITHMpB19U1evpah4WKm5IKvwVP7vKVnZhKoSc84bG/Sp9IBrHaWuplFCNsL68ka7qpfLW2ehPmh4AAfC4PxAEYgSpGy9juvBiFPc6oq1oD9IBoNgeeJgXDDuydtOq9YZhHTOajJEwustDNHAnQfWfMwOUubegZmNbNG9Rtt8oVIe4LPLgWUIOewh2q1cIJBeOlkb1shXTSqFBUTQ== 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=0CyhHskLjFvscLtmdGYXcLPkJUk0ttiqEaFhza3OEZE=; b=bXmeMTpEyT5kE8eyBUYK/qB72FFou6TTMRJQBYTUBU2MEerfIq/JE+vBKYnNw4XM/bOb6vfl/9HESKoOwMmPwa8zAvbJO7blYp4VEP2lnYObOPF2BpqkxaR7UvTK97wb8QoX5qx9K1a9rwjiJ5cbhvd8wnk2HDs35hWsp713gtJp55jQdJp+z3QF9gfesO9mivNeJIZ+mb3ffA7QpnvOT5yExJI5WsSiqyD5k0AMKIvDguSvKVqMNUeVgXQkyZhFmzMMl3pahuuT3xP5Q+RjtsPnC9sFku3tcNpWQzIrEwI98EPCvFW34Tr52yWtUUrpmA/OIN4O7gcd2ktB8G432g== Received: from TY7PR01MB14640.jpnprd01.prod.outlook.com (2603:1096:405:23f::6) by OSZPR01MB8081.jpnprd01.prod.outlook.com (2603:1096:604:1b0::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8901.26; Sun, 6 Jul 2025 16:47:14 +0000 Received: from TY7PR01MB14640.jpnprd01.prod.outlook.com ([fe80::10d5:9246:2ba0:3769]) by TY7PR01MB14640.jpnprd01.prod.outlook.com ([fe80::10d5:9246:2ba0:3769%6]) with mapi id 15.20.8901.021; Sun, 6 Jul 2025 16:47:14 +0000 From: Wu Jianhua To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2] avutil/hwcontext_d3d12va: added resource Flags support to command line Thread-Index: AQHb5qRKoDtTb0xctUCn+0d9T9pQiLQlXcCr Date: Sun, 6 Jul 2025 16:47:14 +0000 Message-ID: References: <20250626141129.164-1-ovchinnikov.dmitrii@gmail.com> In-Reply-To: <20250626141129.164-1-ovchinnikov.dmitrii@gmail.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY7PR01MB14640:EE_|OSZPR01MB8081:EE_ x-ms-office365-filtering-correlation-id: f93e0c04-188b-4293-f9ee-08ddbcacc2db x-microsoft-antispam: BCL:0; ARA:14566002|41001999006|19110799006|15080799009|15030799003|461199028|7092599006|8060799009|8062599006|3412199025|440099028|40105399003|102099032|10035399007; x-microsoft-antispam-message-info: =?gb2312?B?Z1Q4MEkvYUE5VXk0Y2YySFpzS2lXMGNZMWp4dlo5VEtrTGlGUVlUTEpka05Y?= =?gb2312?B?eTNZY3JVdG5yaDlUYklOSnQyUmpvZ3NvOEhQYk9xRG12TDMxVmN5V1lHRWJJ?= =?gb2312?B?MW14M2hUL2wvYWk5VFpoK0tJN2lDbmhUMjdjTTJ5VXJ4L0hnWHJzNEU3dzd0?= =?gb2312?B?NUhZUW92MHNRYXRieU9hWFJlUWh6MTcrajdoYmJjbncxcXdIVkpDWUJmYmlQ?= =?gb2312?B?clNVTndJNTZvcW9JdnZ6WXN1bkNxTWxpRG8zQ2djazd2amJKMnlQQnEyYWlx?= =?gb2312?B?eWp5UnJmN1NjeEJnRmZCSDdMcjNDVjhBMXZUZzdmYnFtUHBhdVp4bGhpN2R0?= =?gb2312?B?R2hqU28vUDdVYnBqNzV3QVZrdDRPODNzbEJpTTZ6S05MMkpoZGZNdDRGZUFo?= =?gb2312?B?UjB6a0pULzU5bkQrMWdPa3p4cjVEU0hkWEd3cWlJNUc0cmRyWDllZStzT3RD?= =?gb2312?B?NkxMbUNxK0YvYUhocEJkY0RpaDkyb1R2S3BmOW9nSmhIMTVybUlPWklpNDNY?= =?gb2312?B?RGMxOU4wM2RmWE1ieHg1Z2NuODJTSEp2Q1JRTnMzSTZpaWhBL3JjWXZac0JQ?= =?gb2312?B?aGF2TjFDVGNjZkFNQmIxMFM3K051UTN1cmdrY2srTzliVlhrS0lWdHNIUGlz?= =?gb2312?B?VXUwcFZybGx5SmtzQS81STNhYVRGSVZ6U2EySGdyY2VtQzkwdUhvU09sd3RI?= =?gb2312?B?ZGd4M1IxV2pZN3FRU3BZS3IwcXdmSnpWdEVLblFlNjd0MUtha0JQQUJKTGZT?= =?gb2312?B?eTd0U053MitkYnJrakkzTlkyVUtzWHYrZkNscVd6Q0tJbVhnWGZrSFFnbHpI?= =?gb2312?B?RUxldDF6M2NpSFJLQ2wyK2RmRElPZHh0Vk5DK1pJQWsxY2tWL3BERTdFbmhm?= =?gb2312?B?TW5Ia1p6cEJaWktEK1VRNW1oUzRLeDlQWk5OTVJJWXFSZCtxSStRM0x2dTMr?= =?gb2312?B?a0luWHI3ZVNpZU1TTkl3K2xOSjFqem12Sm9weHo1K1hHQy82RHd6cTIvYllM?= =?gb2312?B?Sjd5TEtmV0pPUkJqZU5RYWYvTEhFMnpJTUJFYnVac3V1QmE3Y01wZklURWl4?= =?gb2312?B?QksxVTh4NmpETjZQV0h0MW1iMWoyd25YdGF2M3FDdEl6RERjMDZBQXF6bFZp?= =?gb2312?B?T3NpNm1RVnkzbnlOMjJkeW1hbUN4QTRBQTYzSE1lRU9LUk5TSkFIenllUUpo?= =?gb2312?B?eVRtaUhoYWF4MmhwMFhNTHFpdEhiT2ZKYUFtQ1d4eWxudmFWWHhIamxERDdp?= =?gb2312?B?ZHVWdkhsellXSWN1ckNZMEx3Y3VWTExnbGVTc2V3OGUwc0dLdXEvWXBXaEVw?= =?gb2312?B?dkNLa3JTZzhmd1hGS1FJTHpEb0tkV1BVaGowSzZseXZzS2VOSEdMTEVYRjh3?= =?gb2312?B?eXRmdFJqd200ajRpVHAzc1hGSmwvZk5nKzVyUmpNeHp6dE1zbEUzNlMxd3Y3?= =?gb2312?B?dmxQNEQzTm5rcDBPYloweFZHTStIVis0L1FDVGd0U09DendISU5DeWlKeTN5?= =?gb2312?B?SzdTTzNHN3dkZUZEWWlGY0p4L0V5K0tTcWhEUzYxSW9pS1gxNHJRb3B0QjhW?= =?gb2312?B?b2ZiMjJQbGdmemwyeDNmNiswL1BMeGw1WHAyTUhGbnVCVmlBYnZmV3NOL0tI?= =?gb2312?Q?ABYn/gszCZ98m4l9dzTq65w3QVlBrBokHFHHhBF51owU=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?V2hFekhIc1JMWnZMOExmdHVtemwzblFTcWg2dk5KSEd2WFN5dllUYnA5Z0R5?= =?gb2312?B?ekFVVFgxc25TTC9BQm9DcFg5ZXppNjU2YTBtRzN6N1VIZ1R0aGl5cXRLUE16?= =?gb2312?B?b2ErY0YveFQ2bXhFczJ5TzNVanUvVm1zdUhlZWd4cjVsT1gwK1V4T1lrSnhP?= =?gb2312?B?RkdzUmI4TTJuUHZTT2x5SVdBeGxUOEE1ZnVnbDkzVTF4OHJpRDYvVnVCSW1B?= =?gb2312?B?b2ZjYzdZOWFUZDFhVmgwK0hXOWZZdVRZL0xNbFBSQjJ1c0VLcUNrZk9yUVdH?= =?gb2312?B?SFAyd1NoeE5Vdldjd0c3NmZLdTh3MnpUVVJMaEVxc3ZadG5kekZhbGZYUmRt?= =?gb2312?B?THpIM3BHOGJyeXkxQnFtakk0Rmt1SnRJVlJnc3dRZjVlejJVdmxHbmR0ZjVB?= =?gb2312?B?NStiaGRubUlyK1dmTjZjTm5adnlrUEsva3k4OW5EbWl2dElmSCtxWnZpL2Jm?= =?gb2312?B?VHZWTzBGUkV6bDFnNEt5SXBDY1F5VHF6K0JGN1dwTGNmcGUxa2RyQldka2ZZ?= =?gb2312?B?aGNiZ2RQcVN0UUhQUEJDRmdad0krK1gxOUtYOEZnTCtvdnNlalF6RitjTURT?= =?gb2312?B?aE9jWTJ5U0RHK2hvZGUvSS81emRCMUowMDNZbEdIRXhKSmx1cklNZ0x1Nncz?= =?gb2312?B?bHMwR3VQdExJZ3dyc3pwSE5aU2swQ2RKRHdoQzJacnBLaFhqTWNQcUt4MVRB?= =?gb2312?B?TE5GOWlweFNOVjZJKzJqRGNjMFR0OU1RZHZBMndLckVPckxqWTViY3F6ZXFr?= =?gb2312?B?UThFK2QydWROb3pMcXFvU2hVUDUvVThyTUxmVWxOdzc1SGxoWE9lOTNuTFRL?= =?gb2312?B?OElxcll6OWFJcDNaYzA3THhENkhYRFBmUGlUYTJVaTVUZTRla1dFSlRhSGpx?= =?gb2312?B?TUxXZHEvTTBUN0pLUk4rRG1qR0VCQmZhZXdzTnFrUlN5VDdXM3dHZXMrakFo?= =?gb2312?B?QUlITThwZ2FEalg0V1lpUytGVmQ2cy8ybjZqaHc1azFtSnBlOWs3MmJQdDYx?= =?gb2312?B?SExLTGJ6ZFNMNEtkSUNNRzlpSEc5Ym1XVVEza2J3Q1RyV0RrVEttWHhZc0Jj?= =?gb2312?B?OGdoWFM5bzRXVEw5Q1ZvN2RuVmFRUXlxcTdjWVM4RzhWUDVzZmRWUlo5dVgy?= =?gb2312?B?K09jTmYrYWVwcVpqTHp6UHdCdGZrRk40eW54SWE4QlRLbnpuWHFJa2s2WHFJ?= =?gb2312?B?UDlOa2wzbndaOUtJdm43T1dON1NpU2RuWjYwTDNSdVR2OS9EdWtwTGNjNWJK?= =?gb2312?B?SU1lSjlURytPMU9SdFZKTnNibGdVVHRGaHVMN0lTeGtRczJBUEVTeGpNR00v?= =?gb2312?B?ZTNUaEN4UzdBVFhBeEkybC90YlVvWExOb3VlMlpZSkkvb2RuZ1U2YWFZRXJl?= =?gb2312?B?dFgxQ3VJMll2alJpQm1jUnNqMEpnUjhkT2JPdlZZRDNwWHZaOGJWWUQ3ZXpD?= =?gb2312?B?aHZpSWppczVlRCtYY3Q2SnRWL0t4d2srNEE4V2RtcnBwYjNFMVhpRnlETFdM?= =?gb2312?B?YjVrQnljbWk4N3UzcTVHNHFLM3ZUdlBNMDR6eHBEZTh2bU9YYndkTXlaQlM2?= =?gb2312?B?TTkxdmhOdXcxZFR6emVDWUxqQUV5c0Vsczd5cHNFbWRudHphSFpvUS9COTFp?= =?gb2312?B?QmtTMFMxMkZYVnRDV3d0RDdIbUlQSEE9PQ==?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY7PR01MB14640.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: f93e0c04-188b-4293-f9ee-08ddbcacc2db X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2025 16:47:14.5557 (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: OSZPR01MB8081 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] =?gb2312?b?u9i4tDogIFtQQVRDSCB2Ml0gYXZ1dGlsL2h3?= =?gb2312?b?Y29udGV4dF9kM2QxMnZhOiBhZGRlZCByZXNvdXJjZSBGbGFncyBzdXBwb3J0?= =?gb2312?b?IHRvIGNvbW1hbmQgbGluZQ==?= 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: Dmitrii Ovchinnikov Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: >From Dmitrii Ovchinnikov: > --- > libavutil/hwcontext_d3d12va.c | 22 +++++++++++++++++++++- > libavutil/hwcontext_d3d12va.h | 6 ++++++ > 2 files changed, 27 insertions(+), 1 deletion(-) > > diff --git a/libavutil/hwcontext_d3d12va.c b/libavutil/hwcontext_d3d12va.c > index 6507cf69c1..b2b58ac6f8 100644 > --- a/libavutil/hwcontext_d3d12va.c > +++ b/libavutil/hwcontext_d3d12va.c > @@ -254,7 +254,7 @@ static AVBufferRef *d3d12va_pool_alloc(void *opaque, size_t size) > if (!frame) > return NULL; > > - if (FAILED(ID3D12Device_CreateCommittedResource(device_hwctx->device, &props, D3D12_HEAP_FLAG_NONE, &desc, > + if (FAILED(ID3D12Device_CreateCommittedResource(device_hwctx->device, &props, hwctx->heap_flags, &desc, > D3D12_RESOURCE_STATE_COMMON, NULL, &IID_ID3D12Resource, (void **)&frame->texture))) { > av_log(ctx, AV_LOG_ERROR, "Could not create the texture\n"); > goto fail; > @@ -281,6 +281,7 @@ fail: > static int d3d12va_frames_init(AVHWFramesContext *ctx) > { > AVD3D12VAFramesContext *hwctx = ctx->hwctx; > + AVD3D12VADeviceContext *device_hwctx = ctx->device_ctx->hwctx; > int i; > > for (i = 0; i < FF_ARRAY_ELEMS(supported_formats); i++) { > @@ -298,6 +299,9 @@ static int d3d12va_frames_init(AVHWFramesContext *ctx) > return AVERROR(EINVAL); > } > > + hwctx->flags |= device_hwctx->flags; > + hwctx->heap_flags |= device_hwctx->heap_flags; > + > ffhwframesctx(ctx)->pool_internal = av_buffer_pool_init2(sizeof(AVD3D12VAFrame), > ctx, d3d12va_pool_alloc, NULL); > > @@ -673,6 +677,22 @@ static int d3d12va_device_create(AVHWDeviceContext *hwdev, const char *device, > } > } > > + ctx->flags = 0; > + ctx->heap_flags = 0; > + We cannot set them to zero. It will clear the flags set by the API user. > + // "shader_resouce" already enabled by default. > + > + if (av_dict_get(opts, "uav_res", NULL, 0)) > + ctx->flags |= D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS; > + > + if (av_dict_get(opts, "render_target_res", NULL, 0)) > + ctx->flags |= D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET; > + > + ctx->heap_flags = D3D12_HEAP_FLAG_NONE; > + > + if (av_dict_get(opts, "shared_res", NULL, 0)) > + ctx->heap_flags |= D3D12_HEAP_FLAG_SHARED; > + > return 0; > } > Maybe we can simply use UAV and RTV, which are also used by d3d12 officially, and SHARED. > diff --git a/libavutil/hwcontext_d3d12va.h b/libavutil/hwcontext_d3d12va.h > index 212a6a6146..2075bd4a48 100644 > --- a/libavutil/hwcontext_d3d12va.h > +++ b/libavutil/hwcontext_d3d12va.h > @@ -75,6 +75,11 @@ typedef struct AVD3D12VADeviceContext { > void (*lock)(void *lock_ctx); > void (*unlock)(void *lock_ctx); > void *lock_ctx; > + /** > + * Need to pass value to frames context from command line > + */ Not `from command line`, for that it can be set by C API, we may comment that it's a global resource flags instead. Please also check the comments of other codes in hwcontext_d3d12va.h. These are exposed to the public API, we need to make it formal. And we may need to change the flags to frame_flags or resource_flags, or it will confuse the user if it is a flags related to the device instead of the frame. > + D3D12_RESOURCE_FLAGS flags; > + D3D12_HEAP_FLAGS heap_flags; > } AVD3D12VADeviceContext; > > /** > @@ -137,6 +142,7 @@ typedef struct AVD3D12VAFramesContext { > * @see https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_flags > */ > D3D12_RESOURCE_FLAGS flags; > + D3D12_HEAP_FLAGS heap_flags; > } AVD3D12VAFramesContext; > > #endif /* AVUTIL_HWCONTEXT_D3D12VA_H */ _______________________________________________ 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".