[FFmpeg-devel] [PATCH] avfilter: add v360_vulkan filter

Paul B Mahol onemda at gmail.com
Sat Jun 27 13:54:39 EEST 2020


On 6/26/20, James Almer <jamrial at gmail.com> wrote:
> On 6/26/2020 4:16 PM, Lynne wrote:
>> Jun 26, 2020, 19:05 by jamrial at gmail.com:
>>
>>> On 6/26/2020 1:58 PM, Paul B Mahol wrote:
>>>
>>>> On 6/26/20, James Almer <jamrial at gmail.com> wrote:
>>>>
>>>>> On 6/26/2020 1:13 PM, Paul B Mahol wrote:
>>>>>
>>>>>> On 6/26/20, Paul B Mahol <onemda at gmail.com> wrote:
>>>>>>
>>>>>>> On 6/24/20, Paul B Mahol <onemda at gmail.com> wrote:
>>>>>>>
>>>>>>>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>>>>>>>> ---
>>>>>>>> Please test it and reports benchmark results on non toyish GPUs.
>>>>>>>>
>>>>>>>
>>>>>>> Please, I really need it!
>>>>>>>
>>>>>>
>>>>>>
>>>>>> Why nobody wants to help?
>>>>>>
>>>>>> This makes me really really sad.
>>>>>>
>>>>>
>>>>> I can try. Can you give an example command line with a publicly
>>>>> available sample?
>>>>>
>>>>
>>>> You can use any sample, samples are irrelevant. just report resolution
>>>> used.
>>>> Also compare with CPU solution with just v360 filter.
>>>>
>>>> For yuv420p inputs:
>>>>
>>>> ffmpeg -init_hw_device vulkan=vulkan -i INPUT -filter_hw_device vulkan
>>>> -vf
>>>> hwupload,v360_vulkan=fisheye:e:ih_fov=180:iv_fov=180:w=2048:h=1024,hwdownload,format=yuv420p
>>>> -f null -
>>>>
>>>> ffmpeg -i INPUT -vf v360=fisheye:e:ih_fov=180:iv_fov=180:w=2048:h=1024
>>>> -f null -
>>>>
>>>> Just make sure that you get same output resolution in both cases. If
>>>> not, adjust w/h accordingly.
>>>>
>>>
>>> I'm getting a segfault on vkGetInstanceProcAddr, and i don't know if
>>> it's your filter or some issue in the driver. gdb is not being helpful.
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request at ffmpeg.org>  with subject "unsubscribe".
>>>
>>
>> Can you test again but replace EXT_EXTERNAL_HOST_MEMORY in
>> optional_device_exts
>> with EXT_NO_FLAG?
>
> Applying
>
>> diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c
>> index 5e51d0390f..49fb7827ba 100644
>> --- a/libavutil/hwcontext_vulkan.c
>> +++ b/libavutil/hwcontext_vulkan.c
>> @@ -228,7 +228,7 @@ static const VulkanOptExtension optional_device_exts[]
>> = {
>>      { VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME,
>> EXT_EXTERNAL_DMABUF_MEMORY, },
>>      { VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME,
>> EXT_DRM_MODIFIER_FLAGS,     },
>>      { VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME,
>> EXT_EXTERNAL_FD_SEM,        },
>> -    { VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME,
>> EXT_EXTERNAL_HOST_MEMORY,   },
>> +    { VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME,
>> EXT_NO_FLAG,   },
>>  };
>>
>>  /* Converts return values to strings */
>
> I still get a segfault:
>
>> Thread 1 received signal SIGSEGV, Segmentation fault.
>> 0x00007ff8ed9274c0 in vkGetInstanceProcAddr ()
>>    from
>> C:\Windows\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_ccad5caddc3a3d35\nvoglv64.dll
>
> Debug output shows
>
>> [AVHWDeviceContext @ 000001532a762800] GPU listing:
>> [AVHWDeviceContext @ 000001532a762800]     0: GeForce GTX 1660 (discrete)
>> (0x2184)
>> [AVHWDeviceContext @ 000001532a762800] Using queue family 0 (total queues:
>> 16) for graphics
>> [AVHWDeviceContext @ 000001532a762800]     QF 0 flags: (graphics)
>> (compute) (transfers) (sparse)
>> [AVHWDeviceContext @ 000001532a762800] Using queue family 2 (total queues:
>> 8) for compute
>> [AVHWDeviceContext @ 000001532a762800]     QF 2 flags: (compute)
>> (transfers) (sparse)
>> [AVHWDeviceContext @ 000001532a762800] Using queue family 1 (total queues:
>> 2) for transfers
>> [AVHWDeviceContext @ 000001532a762800]     QF 1 flags: (transfers)
>> (sparse)
>> [AVHWDeviceContext @ 000001532a762800] Using device extension
>> "VK_EXT_external_memory_host"
>> [AVHWDeviceContext @ 000001532a762800] Using device extension
>> VK_EXT_external_memory_host
>> [AVHWDeviceContext @ 000001532a762800] Using device: GeForce GTX 1660
>> [AVHWDeviceContext @ 000001532a762800] Alignments:
>> [AVHWDeviceContext @ 000001532a762800]
>> optimalBufferCopyRowPitchAlignment: 1
>> [AVHWDeviceContext @ 000001532a762800]     minMemoryMapAlignment:
>>     64
>
> And crashes right after printing:
>
>> [Parsed_v360_vulkan_1 @ 000001532abd5c80] Shader v360_compute linked!
>> Size: 5508 bytes
>
> I'm using the latest driver, 451.48, on Windows 10 2004.

So other vulkan filters, like vulkan_chromaber works for you?

> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list