Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Kacper Michajlow <kasper93-at-gmail.com@ffmpeg.org>
To: "softworkz ." <softworkz@hotmail.com>
Cc: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] graph.{html,css} embed failure on Windows build
Date: Wed, 18 Jun 2025 01:14:30 +0200
Message-ID: <CABPLASQqbgPQPVE-5oEyw01vygyL=s9rNJmPUPVgkb3Zzv53WA@mail.gmail.com> (raw)
In-Reply-To: <DM8P223MB03653864A3BE707FB56BFC84BA73A@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>

On Tue, 17 Jun 2025 at 20:54, softworkz . <softworkz@hotmail.com> wrote:
>
>
> > -----Original Message-----
> > From: Kacper Michajlow <kasper93@gmail.com>
> > Sent: Tuesday, June 17, 2025 6:36 PM
> > To: softworkz . <softworkz@hotmail.com>
> > Cc: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Subject: Re: graph.{html,css} embed failure on Windows build
>
> [..]
>
> > > > > I will wait for the remaining CI builds to succeed and submit the
> > > > > rebased patchset to the ML then.
> > > > >
> > > > > Please let me know whether it fixes the build on your side as well.
> > > >
> > > > Yes, this fixes the build issue. Thanks.
> > >
> > > Thanks for confirming. Patch update sent.
> > >
> > > > Note, I created a pipeline to upload this failing configuration to the fate
> > server.
> > > > So we have coverage of this config now. Things tend to break if
> > > > something is not tested.
> > >
> > > Yup - but that's testing only after merge to master.
> > > I'm thinking about adding an additional check build for Patchwork.
> > > Do you think your configuration is common enough to do this? Or is
> > > there a more typical configure setup for this kind of build
> > > (Win-CLang) that would make more sense for the project?
> >
> > I think this config is criminally underused. Everyone thinks MSVC
> > (cl.exe) only when talking about Visual Studio. But actually they are shipping
> > LLVM toolchain which is a great way to build software with Windows SDK
> > (without mingw) that is not MSVC (cl.exe) compatible.
>
> It still needs MSYS2 for the Gnu build system, but yea, I get the point of
> using the platform SDK directly.

For the build system if you use 3rd-party meson port
https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg you can
compile ffmpeg without MSYS2. This is handy, especially for
dependencies, because you can build them as subprojects, which
simplifies things. But MSYS2 mingw package manager is handy, because
you don't need to build everything yourself.

> How's the resulting binaries' performance? I'm using the SMP project
> generator which allows you to actually work and debug in VS like with
> any other MSVC project/solution, but for production compiles, that's
> not an option as it's way slower than the GCC/MSYS2/mingw path..

It's Clang/LLVM, basically the same compiler as when using mingw path.
In theory performance should be "the same", of course in case of mingw
you have some parts of C runtime from mingw, so things are different.
We had this problem where llvm-mingw was using custom math functions
which were significantly slower than UCRT ones, but this has been
resolved, just an example.

That's also the main advantage of using Clang, because MSVC has its
own limitations and performance difference. It's good that it builds,
but it has always been better to avoid it :)

GCC vs Clang performance is another story.

If you want to debug in VS/windbg. You can create PDB files even from
llvm-mingw build. All you need is cflag `-gcodeview` and ldflag
`-Wl,-pdb=` (empty will use target name). And then you can load such
binaries in VS with debug info without an issue. LLVM is nice like
that because it supports both GNU and MSVC worlds and many things are
just interchangeable.

> > Of course mingw and
> > llvm-mingw have existed for a long time and are goto solutions for such cases,
> > but I find it nice to run software with standard SDK.
> >
> > To answer your questions, depends how much resources you want to throw at
> > that. I wouldn't say this configuration is critical. Though at least one Clang
> > based Windows build would be good to have, whether llvm-mingw or clang-
> > msvc. Note I don't mean clang-cl because this thing is supposed to be closely
> > compatible with MSVC itself, so in theory if cl.exe is working clang-cl.exe
> > should do too.
>
> Now that andriy/make_x86 is active again, I can disable softworkz/make_linux_x64,
> which is almost the same. The mac run is the fastest and of no concern, Linux-shared
> and Linux-out-of-tree don't run FATE. The heavy-weights are Win-MSVC and Win-GCC
> which take 40-60 and 30-50 minutes including FATE (but only partial FATE due to
> the pending patchset for subtitle refs). The Win-MSVC-CLang took 50min (but I don't
> know the range yet).
>
> FATE takes about 2/3 of the time, so when adding Win-MSVC-CLang it would be good
> to have at most 2 of the - then 3 - Windows builds also running FATE. I'm not sure
> which of them would be the least important - maybe Win-GCC, because it's closest
> to the Linux FATE build and Windows-specific issues would be detected with Win-MSVC
> and Win-MSVC-CLang anyway?

I would say the main thing is testing Win-MSVC to see if things work
in the MSVC world. Win-MSVC-Clang is very similar to GNU-Clang in
terms of driver part, but uses MSVC sysroot. It's oversimplified, but
in practice it uses GNU style frontend, as opposed to clang-cl/cl
using MSVC style. Therefore most issues are in the build system or in
platform specific defines. Like we had a linking issue
https://ffmpeg.org/pipermail/ffmpeg-devel/2025-June/345029.html or
this graph.css embedding issue. So it's nice to test, but at the same
time I don't expect huge breakage in this specific configuration,
probably only build related.

- Kacper
_______________________________________________
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".

      reply	other threads:[~2025-06-17 23:14 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-14 22:48 Kacper Michajlow
2025-06-14 23:15 ` Michael Niedermayer
2025-06-15  1:20 ` softworkz .
2025-06-15  2:36   ` softworkz .
2025-06-17  2:07 ` softworkz .
2025-06-17 13:10   ` Kacper Michajlow
2025-06-17 14:06     ` Kacper Michajlow
2025-06-17 14:12       ` softworkz .
2025-06-17 15:29         ` softworkz .
2025-06-17 15:59           ` Kacper Michajlow
2025-06-17 16:06             ` softworkz .
2025-06-17 16:35               ` Kacper Michajlow
2025-06-17 18:54                 ` softworkz .
2025-06-17 23:14                   ` Kacper Michajlow [this message]

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='CABPLASQqbgPQPVE-5oEyw01vygyL=s9rNJmPUPVgkb3Zzv53WA@mail.gmail.com' \
    --to=kasper93-at-gmail.com@ffmpeg.org \
    --cc=ffmpeg-devel@ffmpeg.org \
    --cc=softworkz@hotmail.com \
    /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