Age | Commit message (Collapse) | Author | Files | Lines |
|
Prevents missing symbols in libGL.so when LLVM is disabled.
|
|
And run SConscripts if they are present.
Also make dri depend on both drm and x11.
|
|
Silences warning about missing packages
|
|
|
|
Fixes libgl-xlib target.
|
|
Use scons target and dependency system instead of ad-hoc options.
Now is simply a matter of naming what to build. For example:
scons libgl-xlib
scons libgl-gdi
scons graw-progs
scons llvmpipe
and so on. And there is also the possibility of scepcified subdirs, e.g.
scons src/gallium/drivers
If nothing is specified then everything will be build.
There might be some rough corners over the next days. Please bare with me.
|
|
Where checked build is compiler optimizations plus debugging checks --
ideal for testing CPU bound loads and running test automation loads.
|
|
Where checked build is compiler optimizations plus debugging checks --
ideal for testing CPU bound loads and running test automation loads.
|
|
It seems to be working correctly with gcc 4.4, and enabling it allows to
test some of the llvmpipe instrinsics on Windows.
|
|
This option is also needed for 64-bit builds if llvm is enabled.
Other the build fails during linking.
|
|
|
|
The Mac OS X SCons build failed on 32-bit CPUs starting with commit
2f6d47a7c8d6e69e5154de44115aab9ba35a41d2 during linking of graw-null.
The build succeeds though on a 64-bit CPU. See FDO bug 29117.
This was the compiler error.
scons: building associated VariantDir targets: build/darwin-x86-debug
Linking build/darwin-x86-debug/gallium/targets/graw-null/libgraw.dylib ...
Undefined symbols:
"_lp_swizzled_cbuf", referenced from:
_lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
_lp_swizzled_cbuf$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
(maybe you meant: _lp_swizzled_cbuf$non_lazy_ptr)
"_lp_dummy_tile", referenced from:
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast.os)
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_rast_tri.os)
_lp_dummy_tile$non_lazy_ptr in libllvmpipe.a(lp_setup.os)
(maybe you meant: _lp_dummy_tile$non_lazy_ptr)
The patch adds -fno-common to all Mac OS X builds to work around this issue.
|
|
Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
|
|
Now that draw depends on llvm it is very difficult to correctly handle
broken llvm installations. Either the user requests LLVM and it needs to
supply a working installation. Or it doesn't, and it gets no LLVM
accelerate pipe drivers.
|
|
This serves several purposes:
- disable caching in situations were is it useless or undesired
- share caches among all trees
- simplify purging the cache (when it's a single location)
- move the cache out of the tree, since that slows downs IDEs considerably
To retain previous behavior just define do
export SCONS_CACHE_DIR=$PWD/build/cache
before invoking scons.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ld on Mac OS X does not recognize the option '-Bsymbolic'.
|
|
|
|
The existing code only checked for GCC 4.2.x and 4.3.x.
|
|
|
|
could use a better test here though.
|
|
Conflicts:
src/mesa/drivers/dri/intel/intel_screen.c
src/mesa/drivers/dri/intel/intel_swapbuffers.c
src/mesa/drivers/dri/r300/r300_emit.c
src/mesa/drivers/dri/r300/r300_ioctl.c
src/mesa/drivers/dri/r300/r300_tex.c
src/mesa/drivers/dri/r300/r300_texstate.c
|
|
Mac OS X ld does not support these options.
|
|
Use bin subdir for windows dlls, lib for unices.
|
|
Fixes windows build.
|
|
Some of the demo progams legitimately need the functionality
that's disabled by WIN32_LEAN_AND_MEAN.
Instead the solution should be to define WIN32_LEAN_AND_MEAN just before
including windows.h on a case by case basis.
|
|
This fixes MinGW cross compilation build, recently broken due to the use
of convenience libraries in the GLSL preprocessor.
|
|
It fixes cached configuration results from one platform being erroneously
used in other platforms.
|
|
|
|
This reverts commit a2937a2f4ecf22a5a4242cd0a350f20228f50232.
Per Jose's comment, We don't want this on master.
|
|
Enable whole program optimizations and fast math.
|
|
Strict aliasing tule violations were fixed on master, but
they're still causing problem in this branch, so disable this assumptions.
Do not apply this fix to master (revert when you merge).
|
|
All code covered by scons is being built on multiple OSes, so pointer
arithmetic must really be addressed when spotted.
|
|
It's not sampling based so its results are biased towards functions called
many times.
|
|
|
|
|
|
-mstackrealign causes stack corruption on MinGW. And without it the ability
to use SSE instrinsics goes down the drain. Even if we use
__attribute__((force_align_arg_pointer)) for the functions we explicitly
use SSE instrinsics, the SSE code automatically generated by gcc will
cause assertion failures. What a nightmare.
Thankfully LLVM gets this right, so all runtime generated SSE code just
works. rtasm code doesn't assume 16byte alignment. Therefore the bulk of
our performance sensitive code is not affected by this.
Still, intrinsics can be convenient, and it would be nice
to get this working again some day, sp will try to get a reduced test
case.
|
|
gprof is useful for shared libraries, hence our drivers. Nevertheless
profilers like oprofile can benefit from disabling some relatively
minor optimizations for more accurate / complete results.
|
|
It is impossible to have gcc generate SSE code without it, as thirdparty
applications often call us with an unaligned stack pointer.
|
|
|
|
Conflicts:
Makefile
progs/glsl/multitex.c
src/mesa/main/enums.c
src/mesa/main/state.c
src/mesa/main/texenvprogram.c
src/mesa/main/version.h
|
|
See also:
- http://bugs.python.org/issue6476
- http://scons.tigris.org/issues/show_bug.cgi?id=2449
|
|
gcc-4.2's optimizer has a strange bug where it looses code from inner
loops in certain situations. For example, if the appearently innocent
looking code below is compiled with gcc-4.2 -S -O1, the inner loop's
code is missing from the outputed assembly.
struct Size {
unsigned width;
};
struct Command {
unsigned length;
struct Size sizes[32];
};
extern void emit_command(void *command, unsigned length);
void
create_surface( struct Size size, unsigned faces, unsigned levels)
{
struct Command cmd;
unsigned face;
unsigned level;
cmd.length = faces*levels*sizeof(cmd.sizes[0]);
for(face = 0; face < faces; ++face) {
for(level = 0; level < levels; ++level) {
cmd.sizes[face*levels + level] = size;
// This should generate a shrl statement, but the whole for body
// disappears in gcc-4.2 -O1/-O2/-O3!
size.width >>= 1;
}
}
emit(&cmd, sizeof cmd.length + cmd.length);
}
Note that this is not specific to MinGW's gcc-4.2 crosscompiler (the
version typically found in debian/ubuntu's mingw32 packages). gcc-4.2 on
Linux also displays the same error. gcc-4.3 and above gets this
correctly though.
Updated MinGW debian packages with gcc-4.3 are available from
http://people.freedesktop.org/~jrfonseca/debian/pool/main/m/
|
|
This prevents the error
relocation R_X86_64_PC32 against symbol `_gl_DispatchTSD' can not be used when making a shared object; recompile with -fPIC
when building on x86_64 architecture.
|