Commit Graph

11 Commits

Author SHA1 Message Date
Martin Storsjö 27d8370847 Makefile: Generate dependency information implicitly while compiling
This updates the dependecy information on each successive recompile.

When building with MSVC, dependency information is generated with
a separate command just like before, but done together with
compiling each object file. (This is quite similar to how ffmpeg does
the same.)

This avoids the serial dependency generation step. In slow
environments (in particular if using MSVC) it could take a notable
amount of time; this can now all be done in parallel.

In one example, this reduces the time for a full build from clean
with MSVC (wrapped in wine) from 23 seconds down to 9 seconds,
thanks to parallelism. (For non-parallel builds, it doesn't make
much of a difference.)
2025-03-11 22:22:24 +02:00
Diego Biurrun 40b47eed13 .gitignore: Ignore TAGS file 2018-01-17 18:31:04 +01:00
Steven Walters 6fbbb5b0c0 MSVS 2013 Update 2 support
The first MSVS compiler C99 compliant enough to build x264.
Use `CC=cl ./configure` to compile with it.
2014-07-19 20:53:00 -07:00
Steve Borho f49a1b2ef6 OpenCL lookahead
OpenCL support is compiled in by default, but must be enabled at runtime by an
--opencl command line flag. Compiling OpenCL support requires perl. To avoid
the perl requirement use: configure --disable-opencl.

When enabled, the lookahead thread is mostly off-loaded to an OpenCL capable GPU
device.  Lowres intra cost prediction, lowres motion search (including subpel)
and bidir cost predictions are all done on the GPU.  MB-tree and final slice
decisions are still done by the CPU.  Presets which do not use a threaded
lookahead will not use OpenCL at all (superfast, ultrafast).

Because of data dependencies, the GPU must use an iterative motion search which
performs more total work than the CPU would do, so this is not work efficient
or power efficient. But if there are spare GPU cycles to spare, it can often
speed up the encode. Output quality when OpenCL lookahead is enabled is often
very slightly worse in quality than the CPU quality (because of the same data
dependencies).

x264 must compile its OpenCL kernels for your device before running them, and in
order to avoid doing this every run it caches the compiled kernel binary in a
file named x264_lookahead.clbin (--opencl-clbin FNAME to override).  The cache
file will be ignored if the device, driver, or OpenCL source are changed.

x264 will use the first GPU device which supports the required cl_image
features required by its kernels. Most modern discrete GPUs and all AMD
integrated GPUs will work.  Intel integrated GPUs (up to IvyBridge) do not
support those necessary features. Use --opencl-device N to specify a number of
capable GPUs to skip during device detection.

Switchable graphics environments (e.g. AMD Enduro) are currently not supported,
as some have bugs in their OpenCL drivers that cause output to be silently
incorrect.

Developed by MulticoreWare with support from AMD and Telestream.
2013-04-23 14:36:20 -07:00
Steven Walters 4c624dccf4 Intel Compiler support
Big thanks to David Rudie, the original author of this patch.
2011-03-23 21:04:30 -07:00
Yasuhiro Ikeda 031b37d34b .gitignore more untracked file types 2010-12-14 08:27:12 -08:00
Tony Young cab2d8ad24 Add Python regression test script
Patch from Google Code-In.
2010-11-25 13:46:23 -08:00
Diogo Franco ac759e900e Add config.log support
Now, if configure fails, you'll be able to see why.
2010-01-30 04:05:12 -08:00
Loren Merritt e21bc3443d rm gtk, avc2avi.
I don't remember why I allowed a gui into the repository in the first place. There's nothing that makes this one special relative to all the other x264 guis.
avc2avi doesn't compile since we removed the bitstream reader. And avc doesn't belong in avi.
2008-10-02 21:21:11 -06:00
Loren Merritt c17218e8a3 merge x86_32 and x86_64 asm, with macros to abstract calling convention and register names 2008-03-16 15:15:41 -06:00
Loren Merritt 25fd257d98 .gitignore 2008-03-02 16:12:57 -07:00