Age | Commit message (Collapse) | Author |
|
successful."
Otherwise the library will be unloaded and function pointers become invalid.
This reverts commit bc2bc0306e4dd8c56bd66a8aabf2433f6689653d.
|
|
|
|
|
|
|
|
Unnecessary, and doesn't even guarantee size.
|
|
Loosely based on Luca Barbieri's commit
52e9b990a192a9329006d5f7dd2ac222effea5a5.
|
|
Superseded by u_format_yuv.c. Also PIPE_FORMAT_YUYV's interpretation was
inconsistent: it was being interpreted as VYUY.
|
|
|
|
|
|
|
|
|
|
Based on code from Brian Paul and Michal Krol.
|
|
|
|
|
|
|
|
support.
Not all is bad, but I'm afraid I'll have to throw the baby with the water
given they are all tied to together.
|
|
|
|
|
|
Putting calls to util_format_init all over the codebase is infeasible.
Instead, half float tables are pregenerated, and the s3tc library is
loaded on demand.
I believe this is a solution that combines performance, cleanliness,
flexibility and portability.
|
|
This improves the code by making it more readable, and removes
special knowledge of S3TC and other formats from softpipe.
|
|
This changes the S3TC function pointers to be initialized to stubs
that load the S3TC library and then delegate to the real functions.
If the S3TC library fails to load, the function pointers are replaced
with a "nop" function.
The code is also changed to attempt to load the library only one time.c
Note that unlike checking for a flag, this method has no performance
cost at all.
The use of the "nop" functions also allows to avoid most checks, that
are only preserved when the function does non-trivial work.
|
|
This solution avoids the issue of how to run the initializers and
also allows those pages (and the parts of them in processor caches)
to be shared between multiple processes.
The drawback is slightly higher library size.
|
|
Fixes MSVC build.
|
|
Switch from auto-init to explicit init for util_half per Brian Paul's
indication.
NOTE: this is probably broken because not enough things call util_format_init.
Will be fixed shortly
|
|
|
|
They apparently both declare the section, but #pragma data_seg
also puts all subsequent definitions in the section, which is
undesirable.
This should be the correct solution, and is actually used by the
reference I cited (but I forgot to do it in my code).
Untested, let me know if it doesn't work.
|
|
Sorry, forgout about that.
|
|
This reverts commit 950300eb255f0e3507bf2757d16c3b5bc8ff3471.
|
|
Gets rid of unnecessary delays on startup and compiler-specific hax.
|
|
|
|
NOTE: this commit will cause Gallium to fail to build on any compiler
except GCC, the Microsoft C compiler and compatible compilers that
claim to be one of those.
This commit removes the u_gctors.cpp mechanism, in favor of using
compiler-specific syntax to add global constructors from C files.
This solves the problem of u_gctors.o not being pulled from static
libraries and avoids using C++.
However, it needs compiler-specific support for every compiler.
The Microsoft C compiler support has not been tested.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This adds a fast half float conversion facility to Gallium.
Mesa already contains such a facility, but using a much worse algorithm.
This one is an implementation of
www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
and uses a branch-less algorithm with some lookup tables small enough
to fit in the L1 cache.
Ideally, Mesa should start using these functions too, but I'm not sure
how to arrange that with the current build system.
A new "u_gctors.cpp" is added that defines a global C++ constructor
allowing to initialize to conversion lookup tables at library init.
|
|
|
|
Conceivably, we could also have a dummy util_bswap8, but it seems better
to not emit it in the first place.
|
|
|
|
Otherwise there's no way to unpack blocks with height >1
|
|
|
|
Avoids the need to special case PIPE_FORMAT_NONE so often.
Conflicts:
src/gallium/auxiliary/util/u_format_table.py
|
|
|
|
|
|
generated correctly.
Not that the code generated are any better, but to quickly detect any regression
in the code generated ones from now on.
|