Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
docs: update GL3 / GL_ARB_fragment_coord_conventions status
Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
mesa: minor fixes in _mesa_GetTransformFeedbackVarying()
Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
glsl: append built-in, used varying vars to the varying vars list
Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
mesa: make _mesa_copy_string() non-static
Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
glsl: pass datatype to _mesa_add_varying()
Will be needed later for transform feedback support.
Brian Paul [Fri, 2 Apr 2010 04:15:16 +0000 (22:15 -0600)]
glsl: add more vertex/fragment output info helpers
Luca Barbieri [Fri, 2 Apr 2010 02:51:50 +0000 (04:51 +0200)]
gallium/util: revert util_format_init addition
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.
Luca Barbieri [Fri, 2 Apr 2010 03:23:32 +0000 (05:23 +0200)]
gallium/util: add util_format_is_supported to check for pack/unpack
This improves the code by making it more readable, and removes
special knowledge of S3TC and other formats from softpipe.
Luca Barbieri [Fri, 2 Apr 2010 02:48:42 +0000 (04:48 +0200)]
gallium/util: load s3tc on demand
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.
Luca Barbieri [Fri, 2 Apr 2010 02:35:20 +0000 (04:35 +0200)]
progs/gallium: add unit test for u_half
Luca Barbieri [Fri, 2 Apr 2010 01:48:59 +0000 (03:48 +0200)]
gallium/util: pregenerate half float tables
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.
Chia-I Wu [Fri, 2 Apr 2010 02:19:43 +0000 (10:19 +0800)]
st/egl: Add a missing break.
The swtich in egl_g3d_st_framebuffer_validate misses a break.
Chia-I Wu [Fri, 2 Apr 2010 02:03:20 +0000 (10:03 +0800)]
progs/egl: Update .gitignore.
Chia-I Wu [Fri, 2 Apr 2010 01:59:36 +0000 (09:59 +0800)]
progs/egl: Link to eglut first.
This moves eglut before EGL so that the symbols can be resolved.
Vinson Lee [Fri, 2 Apr 2010 01:49:54 +0000 (18:49 -0700)]
gallium/util: s/inline/INLINE/
Fixes MSVC build.
Luca Barbieri [Fri, 2 Apr 2010 00:36:59 +0000 (02:36 +0200)]
nv50: call util_format_init
Needed to fetch static vertex attributes.
Luca Barbieri [Thu, 1 Apr 2010 23:43:49 +0000 (01:43 +0200)]
gallium/util: add util_format_init that inits s3tc and util_half
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
Luca Barbieri [Fri, 2 Apr 2010 00:01:25 +0000 (02:01 +0200)]
gallium/util: add one-time initialization helper
Luca Barbieri [Thu, 1 Apr 2010 22:41:51 +0000 (00:41 +0200)]
gallium/util: use #pragma section instead of #pragma data_seg
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.
Luca Barbieri [Thu, 1 Apr 2010 22:39:08 +0000 (00:39 +0200)]
gallium/util: reindent u_half.c and u_half.h with Mesa coding style
Sorry, forgout about that.
Luca Barbieri [Thu, 1 Apr 2010 22:34:44 +0000 (00:34 +0200)]
Revert "util: Init half-float tables on demand."
This reverts commit
950300eb255f0e3507bf2757d16c3b5bc8ff3471.
Dan Nicholson [Thu, 1 Apr 2010 21:59:10 +0000 (14:59 -0700)]
progs: Fix linking of Xlib demos for non-autoconf builds
The Xlib demos were fixed to use $(X11_LIBS) so that configure could
detect the proper directory to link the library from, but this broke
the non-autoconf builds. Give X11_LIBS a default value to fallback on.
Corbin Simpson [Thu, 1 Apr 2010 21:41:18 +0000 (14:41 -0700)]
util: Init half-float tables on demand.
Gets rid of unnecessary delays on startup and compiler-specific hax.
José Fonseca [Thu, 1 Apr 2010 18:00:03 +0000 (19:00 +0100)]
llvmpipe: Support sampling from PIPE_FORMAT_R32_FLOAT.
Michal Krol [Thu, 1 Apr 2010 17:25:25 +0000 (19:25 +0200)]
util: Declare .CRT$XCU data segment.
Michal Krol [Thu, 1 Apr 2010 17:06:05 +0000 (19:06 +0200)]
scons: Remove `util/u_gctors.cpp'.
Luca Barbieri [Thu, 1 Apr 2010 16:40:27 +0000 (18:40 +0200)]
gallium/util: rewrite global constructor system for half floats (GCC/MSVC only!)
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.
José Fonseca [Thu, 1 Apr 2010 16:45:29 +0000 (17:45 +0100)]
llvmpipe: Support sampling from signed and mixed siged formats.
José Fonseca [Thu, 1 Apr 2010 16:36:37 +0000 (17:36 +0100)]
python/tests: We're using a rgba8 rendertarget so sample only in the [0, 1] range.
José Fonseca [Thu, 1 Apr 2010 16:35:46 +0000 (17:35 +0100)]
st/python: Allow to sample only in the [0,1] range.
José Fonseca [Thu, 1 Apr 2010 16:26:50 +0000 (17:26 +0100)]
python/tests: Several cleanups.
José Fonseca [Thu, 1 Apr 2010 15:38:01 +0000 (16:38 +0100)]
st/python: Always use softpipe as reference driver.
Luca Barbieri [Thu, 1 Apr 2010 15:29:48 +0000 (17:29 +0200)]
gallium/util: add copyright header to u_half.c
Chia-I Wu [Thu, 1 Apr 2010 06:25:15 +0000 (14:25 +0800)]
Update DEMO_FILES for demos using EGL.
Reflect the recent addtion of eglut and reorganization of the EGL demos.
This helps remove ~2k lines of duplicated code
$ git diff --shortstat -M
57cc1db87b5cacffd3344c49062c8289b7d46e78
18 files changed, 298 insertions(+), 2178 deletions(-)
Chia-I Wu [Thu, 1 Apr 2010 14:03:54 +0000 (22:03 +0800)]
progs/egl: Port OpenVG lion and sp to eglut.
Chia-I Wu [Thu, 1 Apr 2010 06:03:30 +0000 (14:03 +0800)]
progs/egl: Port ES1 gears to eglut.
As gears in the last demo under "screen" subdirectory, this also removes
the directory.
Chia-I Wu [Thu, 1 Apr 2010 05:47:53 +0000 (13:47 +0800)]
progs/egl: Port ES1 tri to eglut.
This also removes EGL_MESA_screen_surface version of ES1 tri as eglut
supports the extension.
Chia-I Wu [Thu, 1 Apr 2010 05:16:06 +0000 (13:16 +0800)]
progs/egl: Replace egltri by xegl_tri.
With the switch to eglut, xegl_tri supports both X11 and
EGL_MESA_screen_surface. Have it replace egltri.
Chia-I Wu [Thu, 1 Apr 2010 05:12:16 +0000 (13:12 +0800)]
progs/egl: Porg xegl_tri to eglut.
Chia-I Wu [Thu, 1 Apr 2010 04:21:06 +0000 (12:21 +0800)]
progs/egl: Port eglgears to eglut.
Chia-I Wu [Thu, 1 Apr 2010 04:19:47 +0000 (12:19 +0800)]
progs/egl: Add eglut.
eglut is a simple library with GLUT-like API. It is intended to be used
by simple EGL demos.
Chia-I Wu [Thu, 1 Apr 2010 06:20:24 +0000 (14:20 +0800)]
progs/openvg: Move OpenVG demos to a subdirectory of progs/egl.
That is, move
progs/openvg/demos to progs/egl/openvg,
progs/openvg/trivial to progs/egl/openvg/trivial.
Chia-I Wu [Thu, 1 Apr 2010 05:43:33 +0000 (13:43 +0800)]
progs/es: Move OpenGL ES demos to subdirectories of progs/egl.
Move
progs/es1/xegl -> progs/egl/opengles1,
progs/es1/screen -> progs/egl/opengles1/screen,
progs/es2/xegl -> progs/egl/opengles2.
Chia-I Wu [Thu, 1 Apr 2010 03:17:43 +0000 (11:17 +0800)]
progs/egl: Move demos a level deeper.
Move the demos to "opengl" subdirectory.
José Fonseca [Thu, 1 Apr 2010 14:16:26 +0000 (15:16 +0100)]
llvmpipe: More tweaks to the supported texture formats.
José Fonseca [Thu, 1 Apr 2010 14:15:57 +0000 (15:15 +0100)]
gallium/unit: Invoke util_half_init_tables().
half float formats now pass the tests.
José Fonseca [Thu, 1 Apr 2010 14:15:28 +0000 (15:15 +0100)]
util: Declare util_half_init_tables only once.
José Fonseca [Thu, 1 Apr 2010 14:11:05 +0000 (15:11 +0100)]
util: Use u_math.h's union fi instead of redefining it.
José Fonseca [Thu, 1 Apr 2010 14:07:14 +0000 (15:07 +0100)]
util: Add support for other DXTn RGBA formats.
José Fonseca [Thu, 1 Apr 2010 13:43:35 +0000 (14:43 +0100)]
util: Get DXT1_RGB format working correctly.
José Fonseca [Thu, 1 Apr 2010 12:34:24 +0000 (13:34 +0100)]
util: Add test case for PIPE_FORMAT_DXT1_RGB.
José Fonseca [Thu, 1 Apr 2010 12:20:00 +0000 (13:20 +0100)]
llvmpipe: Fix build...
José Fonseca [Thu, 1 Apr 2010 12:12:43 +0000 (13:12 +0100)]
util: Allow to have block format test cases
Michal Krol [Thu, 1 Apr 2010 11:56:03 +0000 (13:56 +0200)]
util: Generate correct format conversions for half floats.
Michal Krol [Thu, 1 Apr 2010 07:52:40 +0000 (09:52 +0200)]
util: Use u_half to perform half <--> float conversions.
Michal Krol [Thu, 1 Apr 2010 07:51:54 +0000 (09:51 +0200)]
gallium: Integrate util_half with scons.
Luca Barbieri [Wed, 24 Mar 2010 17:12:45 +0000 (18:12 +0100)]
gallium/util: add fast half float conversion functions
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.
José Fonseca [Thu, 1 Apr 2010 10:52:54 +0000 (11:52 +0100)]
gallium/unit: Install test in build/xxx/bin
José Fonseca [Thu, 1 Apr 2010 10:52:00 +0000 (11:52 +0100)]
util: Add half float test cases.
José Fonseca [Thu, 1 Apr 2010 10:31:03 +0000 (11:31 +0100)]
llvmpipe: Fix (un)swizzling, broken due to use of VOID channels.
Vinson Lee [Thu, 1 Apr 2010 06:44:29 +0000 (23:44 -0700)]
mesa: Remove unnecessary header.
Vinson Lee [Thu, 1 Apr 2010 06:36:06 +0000 (23:36 -0700)]
r300g: Remove unnecessary header.
Luca Barbieri [Thu, 1 Apr 2010 04:17:10 +0000 (06:17 +0200)]
util/format: fix big endian compilation by not trying to byteswap single bytes
Conceivably, we could also have a dummy util_bswap8, but it seems better
to not emit it in the first place.
Zack Rusin [Thu, 1 Apr 2010 01:30:37 +0000 (21:30 -0400)]
gallivm: convert floats to doubles
printf can't handle floats, convert them to doubles so that we can
actually print floats.
Marek Olšák [Thu, 1 Apr 2010 00:21:06 +0000 (02:21 +0200)]
r300g: add RGBA16F colorbuffer support
Disabled by default due to unresolved IP issues.
Marek Olšák [Thu, 1 Apr 2010 00:14:52 +0000 (02:14 +0200)]
r300g: add RGTC texture support
The CS checker already knows about this.
Marek Olšák [Wed, 31 Mar 2010 23:13:26 +0000 (01:13 +0200)]
r300g: format handling cleanup
José Fonseca [Wed, 31 Mar 2010 21:47:11 +0000 (22:47 +0100)]
softpipe: Use S3TC when avaiilable,
José Fonseca [Wed, 31 Mar 2010 21:46:42 +0000 (22:46 +0100)]
util: Hook into libtxc_dxtn.so (WIP).
José Fonseca [Wed, 31 Mar 2010 20:37:57 +0000 (21:37 +0100)]
llvmpipe: Don't call unused generate_clamp().
José Fonseca [Wed, 31 Mar 2010 20:27:07 +0000 (21:27 +0100)]
libgl-xlib: Fix missing X11 symbols.
José Fonseca [Wed, 31 Mar 2010 20:16:16 +0000 (21:16 +0100)]
util: Make the accessors bidimensional again.
Otherwise there's no way to unpack blocks with height >1
Michal Krol [Wed, 31 Mar 2010 19:54:54 +0000 (21:54 +0200)]
util: First stab at half-float conversion.
José Fonseca [Thu, 18 Mar 2010 11:27:29 +0000 (11:27 +0000)]
util: Describe PIPE_FORMAT_NONE as PIPE_FORMAT_R8_USCALED.
Avoids the need to special case PIPE_FORMAT_NONE so often.
Conflicts:
src/gallium/auxiliary/util/u_format_table.py
José Fonseca [Wed, 17 Mar 2010 19:50:33 +0000 (19:50 +0000)]
util: Silence pointer to integer size mismatch errors.
José Fonseca [Wed, 31 Mar 2010 19:15:17 +0000 (20:15 +0100)]
util: Add callback to fetch a single pixel.
José Fonseca [Wed, 31 Mar 2010 19:05:10 +0000 (20:05 +0100)]
python/tests: Read the number of tests to execute from command line.
José Fonseca [Wed, 31 Mar 2010 18:53:25 +0000 (19:53 +0100)]
mesa: Use a consistent name of the external s3tc library for all windows compilers.
José Fonseca [Wed, 31 Mar 2010 18:43:57 +0000 (19:43 +0100)]
scons: Force to consider the util/u_format_pack.py for util/u_format_table.c.
José Fonseca [Thu, 11 Mar 2010 17:52:34 +0000 (17:52 +0000)]
scons: Don't always include/links X11 headers/libs.
Move it into a separate tool.
TODO: Needs to be "tooled" in each SConscript that uses it.
José Fonseca [Thu, 11 Mar 2010 16:50:37 +0000 (16:50 +0000)]
scons: Don't always link expat.
Only needed for DRI. Should be linked in DRI specific subdirectories.
José Fonseca [Wed, 10 Mar 2010 16:34:09 +0000 (16:34 +0000)]
llvmpipe: Disable threads by default on embedded.
Kurt Daverman [Wed, 10 Mar 2010 16:30:22 +0000 (16:30 +0000)]
os: Temporarily use posix thread for embedded too.
José Fonseca [Mon, 8 Mar 2010 19:58:34 +0000 (19:58 +0000)]
scons: Allow any toolchain to be specified in the command line.
José Fonseca [Wed, 31 Mar 2010 16:29:51 +0000 (17:29 +0100)]
util: Remove the hand written u_tile.c functions for the ones that are code generated correctly.
Not that the code generated are any better, but to quickly detect any regression
in the code generated ones from now on.
José Fonseca [Wed, 31 Mar 2010 16:26:31 +0000 (17:26 +0100)]
util: Use u_format_pack.py's code instead of u_format_access.py.
José Fonseca [Wed, 31 Mar 2010 15:58:05 +0000 (16:58 +0100)]
llvmpipe: Don't rely on u_format_access.py
Roland Scheidegger [Wed, 31 Mar 2010 14:57:05 +0000 (16:57 +0200)]
Merge branch 'gallium-new-formats'
Conflicts:
src/gallium/auxiliary/util/u_format.csv
src/gallium/auxiliary/util/u_format_access.py
src/gallium/auxiliary/util/u_format_pack.py
José Fonseca [Wed, 31 Mar 2010 14:30:14 +0000 (15:30 +0100)]
util: Put the format pack/unpack functions in the description table.
José Fonseca [Wed, 31 Mar 2010 13:43:09 +0000 (14:43 +0100)]
util: Make pack/unpack operate on spans.
Ben Skeggs [Wed, 31 Mar 2010 05:44:25 +0000 (15:44 +1000)]
st/mesa: use BITFIELD64_BIT to access shader OutputsWritten in more places
José Fonseca [Wed, 31 Mar 2010 13:31:29 +0000 (14:31 +0100)]
util: Make util_format_xxx_pack_xxx take pointer as arguments.
José Fonseca [Wed, 31 Mar 2010 13:28:54 +0000 (14:28 +0100)]
util: Fix PIPE_FORMAT_B5G5R5X1_UNORM test case.
José Fonseca [Wed, 31 Mar 2010 13:28:34 +0000 (14:28 +0100)]
util: Use VOID type for X channels in format descriptions.
José Fonseca [Wed, 31 Mar 2010 13:05:55 +0000 (14:05 +0100)]
python/tests: Run trhough tests randomly.
José Fonseca [Wed, 31 Mar 2010 13:05:21 +0000 (14:05 +0100)]
gallivm: Fix USCALED translation. Minor Cleanups.
José Fonseca [Wed, 31 Mar 2010 13:00:46 +0000 (14:00 +0100)]
llvmpipe: More accurate format capability exporting.
José Fonseca [Wed, 31 Mar 2010 12:59:59 +0000 (13:59 +0100)]
llvmpipe: Drop the aos format conversion.
It's unused and incomplete. Still in git history if necessary in future.
José Fonseca [Wed, 31 Mar 2010 12:55:12 +0000 (13:55 +0100)]
util: Generalize lp_format_is_rgba8 into util_format_is_rgba8_variant.
José Fonseca [Wed, 31 Mar 2010 12:28:36 +0000 (13:28 +0100)]
python/tests: Rename test name.
We only test blitting from a surface -- we don't test any sampler state.