[FFmpeg-devel] [PATCH] avfilter: add v360_vulkan filter
Paul B Mahol
onemda at gmail.com
Sun Jun 28 11:00:36 EEST 2020
On 6/27/20, Paul B Mahol <onemda at gmail.com> wrote:
> 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?
>
James?
Others?
More information about the ffmpeg-devel
mailing list