On Sun, Jul 20, 2025 at 11:15 AM Dash Santosh Sathyanarayanan
<dash.sathyanaraya...@multicorewareinc.com> wrote:
>
> Regarding the while loop in hwcontext_d3d11va get_buffer, I understand
> the concern about introducing an unbounded wait. However, there have been
> a couple of issues reported in the past that highlight this problem:
>
> - https://lists.ffmpeg.org/pipermail/libav-user/2024-March/013469.html
> - https://lists.ffmpeg.org/pipermail/ffmpeg-trac/2023-October/067420.html
>
> In both the cases, the error reported was: "static surface pool size 
> exceeded".
> The suggested workaround was to increase extra_hw_frames, but in practice,
> this isn't always feasible. But in practice, for decoder-bound D3D11 
> resources,
> the driver restricts ArraySize to 64, which caps the total surface pool size -
> so increasing extra_hw_frames isn’t always viable.
>
> In such scenarios, a short retry loop becomes necessary to maintain pipeline
> flow and avoid premature allocation failures. I instrumented the retry logic
> in one of my test cases - 4K to 1080p AVC transcode using D3D11VA decode
> and Media Foundation encode - and observed the following behavior:
>
> - Most frames succeed with 1-2 retries
> - Roughly 1 in 100 frames may require up to 10 retries
>
> Based on this, I’ve bounded the retry count to 50. This allows enough headroom
> without risking an infinite loop. Please let me know if this works.
>

You are just piling hacks ontop of hacks. As I have said before, this
is the wrong layer to solve your specific problem. It will not be
accepted as part of the hwcontext.
Move it to a user-layer.

- 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-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to