Message ID | 20220420041029.1309-1-tong1.wu@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avutil/hwcontext_d3d11va: enable D3D11_RESOURCE_MISC_SHARED for texture | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
On Wed, Apr 20, 2022 at 6:11 AM Tong Wu <tong1.wu-at-intel.com@ffmpeg.org> wrote: > > Add D3D11_RESOURCE_MISC_SHARED flag for texture to make it shareable. > This can fix the green frames issue when mapping from d3d11va to opencl. > Sample command line: ffmpeg.exe -hwaccel d3d11va -hwaccel_output_format > d3d11 -i input.264 -vf > "hwmap=derive_device=opencl,format=opencl,hwdownload,format=nv12" -c:v > libx264 output.mp4 > The flags are configurable, we should not force them for specific cases. Specifically, there is also two ways to share a texture, this flag and the D3D11_RESOURCE_MISC_SHARED_NTHANDLE flag (which is preferable for new code), which would conflict with each other, making it impossible to set it. - Hendrik
> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Hendrik Leppkes > Sent: Wednesday, April 20, 2022 2:35 PM > To: FFmpeg development discussions and patches <ffmpeg- > devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH] avutil/hwcontext_d3d11va: enable > D3D11_RESOURCE_MISC_SHARED for texture > > On Wed, Apr 20, 2022 at 6:11 AM Tong Wu > <tong1.wu-at-intel.com@ffmpeg.org> wrote: > > > > Add D3D11_RESOURCE_MISC_SHARED flag for texture to make it shareable. > > This can fix the green frames issue when mapping from d3d11va to opencl. > > Sample command line: ffmpeg.exe -hwaccel d3d11va > > -hwaccel_output_format > > d3d11 -i input.264 -vf > > "hwmap=derive_device=opencl,format=opencl,hwdownload,format=nv12" > -c:v > > libx264 output.mp4 > > > > The flags are configurable, we should not force them for specific cases. > Specifically, there is also two ways to share a texture, this flag and the > D3D11_RESOURCE_MISC_SHARED_NTHANDLE flag (which is preferable for > new code), which would conflict with each other, making it impossible to set > it. > Thanks for the review. Since the flags should not be set for those specific cases like that, is there any feasible way to enable the share resource between d3d11 and opencl and make the sample command line work? > - Hendrik > _______________________________________________ > 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".
diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c index 8ab96bad25..c7227a13b4 100644 --- a/libavutil/hwcontext_d3d11va.c +++ b/libavutil/hwcontext_d3d11va.c @@ -199,7 +199,7 @@ static AVBufferRef *d3d11va_alloc_single(AVHWFramesContext *ctx) .ArraySize = 1, .Usage = D3D11_USAGE_DEFAULT, .BindFlags = hwctx->BindFlags, - .MiscFlags = hwctx->MiscFlags, + .MiscFlags = hwctx->MiscFlags | D3D11_RESOURCE_MISC_SHARED, }; hr = ID3D11Device_CreateTexture2D(device_hwctx->device, &texDesc, NULL, &tex); @@ -263,7 +263,7 @@ static int d3d11va_frames_init(AVHWFramesContext *ctx) .ArraySize = ctx->initial_pool_size, .Usage = D3D11_USAGE_DEFAULT, .BindFlags = hwctx->BindFlags, - .MiscFlags = hwctx->MiscFlags, + .MiscFlags = hwctx->MiscFlags | D3D11_RESOURCE_MISC_SHARED, }; if (hwctx->texture) {
Add D3D11_RESOURCE_MISC_SHARED flag for texture to make it shareable. This can fix the green frames issue when mapping from d3d11va to opencl. Sample command line: ffmpeg.exe -hwaccel d3d11va -hwaccel_output_format d3d11 -i input.264 -vf "hwmap=derive_device=opencl,format=opencl,hwdownload,format=nv12" -c:v libx264 output.mp4 Signed-off-by: Tong Wu <tong1.wu@intel.com> --- libavutil/hwcontext_d3d11va.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)