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 AD9534C928 for ; Wed, 6 Aug 2025 16:26:50 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 5A20568CA81; Wed, 6 Aug 2025 19:26:46 +0300 (EEST) Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazolkn19011028.outbound.protection.outlook.com [52.103.43.28]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id DFFF068BA65 for ; Wed, 6 Aug 2025 19:26:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zGWjw2NnVeoweAQQJcZhN5Aiygs88wnuyT4P52k8+LIaHi3xkRz5vOzJiYe4SsbWrPhTbJQ5Fbu63vctTgTH/ZRD13k9z4UEjbjzWAvs2fY/2/mlJ1ubDrxJW9yC3PBCvl5vKVcaIA89qnQWTWVOwmXYhv6hOy78KbjWBJIwjW4nZI2vBBxrBtA0q86rMNTPwuKOKnczwlBqIgEf2fBcJfQxncZu0OiFGC2g0CZW2Uij6tQmX3lFb2UCLZOVK1faiuRE5YaVjBBX2j2x1N8l4RlMiTQV+/wLTB8yp1Foh2Ktra5TdDwTZGdxntn17ISw66RgqoeAPbbUGeh819NsnQ== 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=VGwCf0kWW/+qWT7GE5oaHpBdp04WhnvOoK+Ubc1pEA8=; b=evLBYaBDowBVCdNeze2NZYIGHnSasIWzYJg+LZULNJw69smSffwEn3Y5ury8l6axArE2lGjq5vQQNWaOTuB8DjqmPVcRd/SbXPYaRpf707XOzWA/JAkOfxdblMSaCdQP6qMJNeGjzLeKnl0w9Mp//R4Quxmwm1Dbz+knctRLh3RpXK4JNMlOCHWu1QQoCWxGEogWx8BfVGtwSOD3x7j+FzaTvI7PbsjRW7iQiJo5J/fGHmRH9m1bk3J4BoUkN7YGi0FqymkvXLH84BVY5DEP/LrDcylbPMYud5y/4vG0gniv4Cc/CGOGlgyyme36/QnIgYeDLPYyMDvgTNvShJLWfg== 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=VGwCf0kWW/+qWT7GE5oaHpBdp04WhnvOoK+Ubc1pEA8=; b=pe3fHKrQJYLGpeLv/ivSOemGzqk8g2R7cZgV9AVm5pwLTcuuNweYwVPJHfeC2yhMmhwOvFy62LZQqcPv+bcKonWjJhcOKD/bKHbEiINKsCnmdGZnqEL0aNMACS/yJpEmuJNR14rTH1Jk6kGEkOl5zCL6BzIjuVi2CdSV8f7BEoyhSRPTZke6YCRsXJpWgq0E66ouFuWOBWBh3m0gP+oigHinxkmDWjVtx+BJyOGogZaagM/vO6i917JNIHY6lq66rNA9CkdhRmYRg7/ULdLMP9tyqaZiO6yZMRwsnI0ehrech1uhF60GuFtujQMRHvWSaJwoyC2FRLf3ZCQ7kI2EGQ== Received: from TY7PR01MB14640.jpnprd01.prod.outlook.com (2603:1096:405:23f::6) by TY4PR01MB14202.jpnprd01.prod.outlook.com (2603:1096:405:20a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9009.15; Wed, 6 Aug 2025 16:26:34 +0000 Received: from TY7PR01MB14640.jpnprd01.prod.outlook.com ([fe80::10d5:9246:2ba0:3769]) by TY7PR01MB14640.jpnprd01.prod.outlook.com ([fe80::10d5:9246:2ba0:3769%4]) with mapi id 15.20.9009.013; Wed, 6 Aug 2025 16:26:33 +0000 From: Wu Jianhua To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v3] avutil/hwcontext_d3d12va: added resource and heap flags to DeviceContext Thread-Index: AQHb+8rRi7gCX1I2xUyD5aKhhZIaF7RV5X1d Date: Wed, 6 Aug 2025 16:26:33 +0000 Message-ID: References: <20250723121006.1047-1-ovchinnikov.dmitrii@gmail.com> In-Reply-To: <20250723121006.1047-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_|TY4PR01MB14202:EE_ x-ms-office365-filtering-correlation-id: de8fc7bc-9a7e-45c9-e9ad-08ddd5060221 x-microsoft-antispam: BCL:0; ARA:14566002|8062599012|8060799015|19110799012|461199028|31061999003|15030799006|15080799012|41001999006|440099028|40105399003|3412199025|10035399007|102099032; x-microsoft-antispam-message-info: =?gb2312?B?TldBMWQ0dVh0YStKTHdPK1dhVHE1TmIvdGlkQW5CdFRydnhxNDBGWjFKYjM0?= =?gb2312?B?THZLTWtJcC9Xc1Nra0RPcnFBcGxHTytzZG1aSythcmlETmRrN3A4UW9VM1Zn?= =?gb2312?B?c3B1anZjNE03dEdFR3hESTQvS3RGYnQ0amtadXJtZkR6Y1N4N3J5OERSSWlh?= =?gb2312?B?cjJ0bGdaSVRRVWtmNGNMbGVXeUZKWEY4MTE0R0hyVStiSmpwTlJTVXRiTExa?= =?gb2312?B?b0I4MlVuK2NwRFZabTg5aEE0Q25GZWI4SkRXNnB0c0E3c0lFV2xVUFdqMGRz?= =?gb2312?B?c29wVThpbTBQeFBsQUZZOUhaKytVajBwblV1NmRHME04MmpGS0FMSFV4L0RI?= =?gb2312?B?M0tLcFVEdmxYY3krWThBN1JsemtJSnBLUEVQOU9GQkZhSDZkR2Z2RHp3c1Zp?= =?gb2312?B?b2hGV1ZRMWJ2WDN5c0cvMFlWUnVTRzBTTVppZkhkTXArVVJ5Y0ZGb2xFbXo2?= =?gb2312?B?WXQyV2piWnhmRy9VbU16cWtVVE9FUFpscjFaVFA5Z1hNT1lIZE8zeVBRZEZP?= =?gb2312?B?MXY3bCtiS2tEUEUzQm5nMWZ1ZDNRV290NzZYRUNNeDV5UFpSN2oreGxVM2ky?= =?gb2312?B?L1c4dXIrazN0T1A3eEhqTkxxdE5SdzNxUlgwVm9TNko2NElrMWdGUjNkeFR1?= =?gb2312?B?WDR1a1RCeGFnMUIyNTZHVnVVbm9GaHJNUjFpbUFVUVN0cElCUjNjZ2ZjTnFM?= =?gb2312?B?UHByYmxmNUJiSTl4cFRnSmVMYlpQWDdEbUh0YVdDVGtnRGR4ZUM5QVZEREhs?= =?gb2312?B?UE5KRGExRHlWQ3ROZno1NFhQSGhPR1J5d2l4Y0x6K250MmpsaDFySkZTb1Zh?= =?gb2312?B?aVYwTHdNaGYrbCtxOUJoUG1LVnpIU0NJc3F1ZGdyZXk1U0dyUHdsSHAzWWFm?= =?gb2312?B?Ry91VEhtQ2FjM3hQeVE5V0IrajN5VjlBMWl2NXFOUitJc05wbFRhWW9PRWZy?= =?gb2312?B?MU1OMGNBRWJPYWJtZnpPZFhId1lFVzZ5SGRUdjdWNi9CU3F5RUlRaElldERP?= =?gb2312?B?bWRJOXh4R1FzRzd3aDMvTGNuc292MlpQbTlleDJWVmlXVVdVMGNGWnlaNjdY?= =?gb2312?B?RG51MDFBZ0t2WVQxbllJWCs1ekRpc3dvZmdzSWMvaG5nRTVoK2Z3dVBIQVIz?= =?gb2312?B?bzREMitWQmNESGFlbi9VM1dJSUZRZURSTTQvME05TEM4QlRYZ1pXWEVwOU5x?= =?gb2312?B?UGJxNUZIL3ZQQjRab2VCZ0pEUVJEMkk2V0RIVTJhMkV6RjJWQ05KT2ZGWXQ3?= =?gb2312?B?bnZxQ1lNRWlDbjlTOVptZnNzdHFWbkdFSjJ6WS9rM09CWTIvWndEY1VsekNt?= =?gb2312?B?Qit6dGovdjYvMnhibDRsWHhZWWVGRzRHZG9CUHBxek0wQjVGMmNZYWhkOFov?= =?gb2312?B?QnB4S0ZkL2thVjl0M1plalRVYXRBSnp0YzZ0ZWwwT2hTUm55YUFiMkNsak5E?= =?gb2312?B?T2RoaVpLakI5Vml4M3prekdNc29vUGdVWm5YclZUNEFHaVZlSFBXdDdSTTc5?= =?gb2312?B?YjdGc0ZaMTlwRTlHWUxxUkkwb1hoOEpOZWM5eXZzMGJ5NlJJdVhYRWxtM2dm?= =?gb2312?B?UXBtL0RrVHRVODlpcndHWXA5d2lmRHRLK1VQa09tcXJSTEx5cmo3K1FSdld4?= =?gb2312?B?RXQrdzV5WjA3S2hFVTJ4dExrZ05QM0t4REt6ZWpNQmFzRTdxK2FiemRJT0NO?= =?gb2312?B?WWhrWVNqam1YRUM2YzFTeW5zWnZYWThVTkdURWVHcU5mMTBWekg5MlNBPT0=?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?Y2tWclQ4SmhmcTVMNkxobTNwclRsRjJhU0ZQVnpDRFpKbmkvOEY4dXhzZm1m?= =?gb2312?B?cS9ERHR2RVZ2MktZN2JoaWVRZnRPUVFRNTNNTmQydnJTTDVaeDc0SVhhUEl6?= =?gb2312?B?aDJuSzdRR3pPcHJwQmZidTZadlBYWUlYZzQzcHJHU1FZSTB3TmlGSU1NenZo?= =?gb2312?B?QUg3UWsrL3pJT3NrU09pdFBvMlJzcE5SUk5haFdXVWpPOGVBaG41dCtjL2Uv?= =?gb2312?B?aUVyeitqK0t2UDNZMzVXNUxkZjloTlFzdmo5L1dLM3FTUXVjT3pFYURkU3pR?= =?gb2312?B?cUpNaWlIbkdxVzFzYWpFMWFUdDJndFZOUG5lWkVndjBMaStKMGJJaEVPclVz?= =?gb2312?B?UkhHOHFuUDNaWDlaUkNUTWtEbmFEM2QzR0QxdnNTbTQyK1AxU1Y0bkowSkk1?= =?gb2312?B?TE5ZQUpsMFo3b0RsOTdIQkV5VHdxb1RCTkpEWGpkc2pWSjFReGlnRUc1bTdn?= =?gb2312?B?dXh5MHY4ZHo0WkplWVNSM1dVVElNYVZKOGtKbzIybWU5UVFzeFhFNTlDOThJ?= =?gb2312?B?OFhNVmxZa3JSS05qYzM1YXo3cExGTEM3bVNVSkYrTkNIejk3OXUxS3BxTm5W?= =?gb2312?B?RnlhMStLQ3lBN294VnhMNWxzTnYzYyttZWxEbWxSZnV0ck5aTWVBa3MvS245?= =?gb2312?B?UkhLQzF3YkZDNkhreGNPYVd5SlFVcy9TMG41OXgxZm5CUWxteno1UDgxUVJq?= =?gb2312?B?ZHc1ajZXdFdUL0VVN3UyVXVYTmlOQTZZN3B4WTNVWmk5dXpWWEJnNEFnQlNy?= =?gb2312?B?RmJYQytUOElJWTRCbWpJZDd5WTlvZ2RPbld5eDE3YkE0Z01zVlpocE94R3I1?= =?gb2312?B?SWlsZEVLNytLSVQxTVRMK2N2OThNOU0rbEI4eVF2bWsxOTZuRjV3YmpVV1pP?= =?gb2312?B?VFM0MDMyRnFrODU0eE9ENVFqRDg2cHAvS0ZqZFJ1d2J2dWMvbTVpaU83ckJQ?= =?gb2312?B?TWowbkpBMXhDeDRIVjk4VVVWMlRwUUIyNk9UMGFIOW1NbUFWUGhCNFk3VFpq?= =?gb2312?B?c2ZDOXdvczdtNHZUbTJ1NllPb0hsVCtOajdxMC9OTFdIQ3QxNDV6ZWtFczNP?= =?gb2312?B?YjBoMG02SkJBNTZQbm1wUTZlTnJSVk5DR0pZN0lubCtLT0FaWmtHeDVSNmV2?= =?gb2312?B?V21NakdpZS9CTUZlMmpiS0k3cWtpemVJcnBWbTVjam92REh6cGdHRk92RlRJ?= =?gb2312?B?NnA4WTQ0S3lrM1oxcE5TRjUzdjdLNTB1dlpodnlRYkdGdzI2UWRacmQ4dEdD?= =?gb2312?B?ZHRXSGtBRisyUm1Fekxzc05waWcraTB3amlrbUZyb1QweEx5NDBiZXY5VXJ0?= =?gb2312?B?TDlrTGFzeUlXZXJ2ZVluVnRQU25QajdnUHdYM205L1ljWFJzVGM0WmxadWln?= =?gb2312?B?Qk5GSnF6TEVheVpMSWQ3OXpOOTFHbGtyOGYwTFNwMGI2QkVkWG5qYXFka1Rs?= =?gb2312?B?Q2FFcXBGM3RiVVY3dUNlaU5uTTE1VHJMWW9WNUZScjdNZTlWN3cvbi9Pa1cz?= =?gb2312?B?OVpIbERqWjREcWxmdnRZSVFhdHkvT05SdVdPRzJQdjVUeTJkRE5BVWhVU3lQ?= =?gb2312?B?eDNhbTRGQkY3UGUyekp0MGlaS3BvTmovWGpBbndZcXBFTCt5VG5YTmpqNEdt?= =?gb2312?B?cVFVWUJpZkpqYnlyZ2VseWNrZW1uNGc9PQ==?= 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: de8fc7bc-9a7e-45c9-e9ad-08ddd5060221 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Aug 2025 16:26:33.8373 (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: TY4PR01MB14202 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] =?gb2312?b?u9i4tDogIFtQQVRDSCB2M10gYXZ1dGlsL2h3?= =?gb2312?b?Y29udGV4dF9kM2QxMnZhOiBhZGRlZCByZXNvdXJjZSBhbmQgaGVhcCBmbGFn?= =?gb2312?b?cyB0byBEZXZpY2VDb250ZXh0?= 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: Dmitrii Ovchinnikov: > --- > libavutil/hwcontext_d3d12va.c | 17 ++++++++++++++++- > libavutil/hwcontext_d3d12va.h | 11 +++++++++++ > 2 files changed, 27 insertions(+), 1 deletion(-) > > diff --git a/libavutil/hwcontext_d3d12va.c b/libavutil/hwcontext_d3d12va.c > index 6507cf69c1..dca8ddc0c3 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->resource_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,17 @@ static int d3d12va_device_create(AVHWDeviceContext *hwdev, const char *device, > } > } > > + if (av_dict_get(opts, "UAV", NULL, 0)) > + ctx->resource_flags |= D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS; > + > + if (av_dict_get(opts, "RTV", NULL, 0)) > + ctx->resource_flags |= D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET; > + > + ctx->heap_flags = D3D12_HEAP_FLAG_NONE; > + > + if (av_dict_get(opts, "SHARED", NULL, 0)) > + ctx->heap_flags |= D3D12_HEAP_FLAG_SHARED; > + > return 0; > } > > diff --git a/libavutil/hwcontext_d3d12va.h b/libavutil/hwcontext_d3d12va.h > index 212a6a6146..0d3a4cc1ec 100644 > --- a/libavutil/hwcontext_d3d12va.h > +++ b/libavutil/hwcontext_d3d12va.h > @@ -75,6 +75,16 @@ typedef struct AVD3D12VADeviceContext { > void (*lock)(void *lock_ctx); > void (*unlock)(void *lock_ctx); > void *lock_ctx; > + /** > + * Resource flags and Heap flags to be applied to D3D12 resources allocated > + * for frames using this device context. > + * > + * Can be set by the user before initialization via av_hwdevice_ctx_create(). > + * > + * These apply globally to all frames allocated from this device context. > + */ > + D3D12_RESOURCE_FLAGS resource_flags; > + D3D12_HEAP_FLAGS heap_flags; > } AVD3D12VADeviceContext; > > /** > @@ -137,6 +147,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 */ > -- > 2.47.1.windows.1 Hi there, This patch looks good to me. Will push if there is no more comments. Thanks, Jianhua _______________________________________________ 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".