From: Mark Thompson <sw@jkqxz.net> To: ffmpeg-devel@ffmpeg.org Subject: Re: [FFmpeg-devel] [PATCH v4 1/1] avutils/hwcontext: When deriving a hwdevice, search for existing device in both directions Date: Thu, 30 Dec 2021 11:21:47 +0000 Message-ID: <10c6a99f-9fa4-012c-66a2-7df163daeade@jkqxz.net> (raw) In-Reply-To: <DM8P223MB036542D5793772FE8FD39309BA459@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> On 30/12/2021 00:29, Soft Works wrote: >> -----Original Message----- >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Mark >> Thompson >> Sent: Thursday, December 30, 2021 12:04 AM >> To: ffmpeg-devel@ffmpeg.org >> Subject: Re: [FFmpeg-devel] [PATCH v4 1/1] avutils/hwcontext: When deriving a >> hwdevice, search for existing device in both directions >> >> On 25/11/2021 02:41, Soft Works wrote: >>> The test /libavutil/tests/hwdevice checks that when deriving a device >>> from a source device and then deriving back to the type of the source >>> device, the result is matching the original source device, i.e. the >>> derivation mechanism doesn't create a new device in this case. >>> >>> Previously, this test was usually passed, but only due to two different >>> kind of flaws: >>> >>> 1. The test covers only a single level of derivation (and back) >>> >>> It derives device Y from device X and then Y back to the type of X and >>> checks whether the result matches X. >>> >>> What it doesn't check for, are longer chains of derivation like: >>> >>> CUDA1 > OpenCL2 > CUDA3 and then back to OpenCL4 >>> >>> In that case, the second derivation returns the first device (CUDA3 == >>> CUDA1), but when deriving OpenCL4, hwcontext.c was creating a new >>> OpenCL4 context instead of returning OpenCL2, because there was no link >>> from CUDA1 to OpenCL2 (only backwards from OpenCL2 to CUDA1) >> >> Yes, this is exactly what I expect. >> >> Because of how these APIs work, device derivation is always one-way - you can >> make an OpenCL device from a D3D11 one, but not the other direction. I don't >> think there is any case which allows both directions > > hwmap=reverse=1 Indeed, hwmap reverse exists because mapping is one-way and sometimes a filter graph wants to use it in the other direction. >> Saying that derivation from A should always return the same B is not >> intended, nor do I think it should be. > > Why not? > > Looking at the reality of API users: > > - I'm covering a wide range of different processing pipelines and > found that this behavior is crucial to make important and relevant > processing pipelines work > > - Intel have three different workaround-patches in their backlog/queue > of ffmpeg patches to get certain processing setups working > > - The developers working on Vulkan have confirmed that this change > is necessary and crucial for certain setups to work > > - Nobody has named any case or scenario that would be negatively > affected by this change > > Given that situation, I don't think it's useful to talk about > theoretical implications. You are not talking about API users at all. When does an API user ever want this patch? From their point of view it is surprising and unwanted - if they want the same device again, they just use the same device again. You are talking about users of the ffmpeg utility. The change is a library hack to work around the inability to select devices per-filter in the ffmpeg utility. Please, just implement device selection for filters in ffmpeg rather than adding unexpected behaviour elsewhere. libavfilter has supported it for API users for a long time, no library changes should be needed. - Mark _______________________________________________ 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".
next prev parent reply other threads:[~2021-12-30 11:21 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <cover.1637807570.git.softworkz@hotmail.com> [not found] ` <163785839519.25323.16303122737288435026@lain.red.khirnov.net> [not found] ` <163794332023.25323.7446601680884381987@lain.red.khirnov.net> [not found] ` <163795393240.7822.9483345286843818669@lain.red.khirnov.net> [not found] ` <DM8P223MB0365E3DFD61F63B305FC079BBA639@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> 2021-12-23 14:01 ` Xiang, Haihao 2021-12-27 3:08 ` Xiang, Haihao 2022-01-05 3:19 ` James Almer 2022-01-05 3:38 ` Xiang, Haihao 2022-01-09 18:39 ` Mark Thompson 2022-01-09 21:15 ` Soft Works 2022-01-09 23:12 ` Mark Thompson 2022-01-09 23:36 ` Soft Works 2022-01-10 0:56 ` Mark Thompson 2022-01-10 1:40 ` Soft Works 2022-01-10 6:47 ` Xiang, Haihao 2022-01-10 21:16 ` Mark Thompson 2022-01-11 7:01 ` Xiang, Haihao 2022-01-10 20:56 ` Mark Thompson 2022-01-12 5:15 ` Soft Works [not found] ` <DM8P223MB036578CDD5AEA447DD2DE424BA629@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> 2021-12-29 23:04 ` Mark Thompson 2021-12-30 0:29 ` Soft Works 2021-12-30 11:21 ` Mark Thompson [this message] 2021-12-30 19:20 ` Soft Works
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=10c6a99f-9fa4-012c-66a2-7df163daeade@jkqxz.net \ --to=sw@jkqxz.net \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git