Brian [Fri, 22 Feb 2008 23:48:05 +0000 (16:48 -0700)]
gallium/i915: overhaul of fragment shader compilation, constant/immediate allocation
Before, fragment shaders were translated to i915 hw code at bind time, rather
than create time. Now there's an i915_fragment_shader struct with the expected
contents that's created by i915_create_fs_state(). Translation to i915 code
takes place there too.
Immediates are handled correctly now. During program translation we keep
track of which constant buffer slots are free (i.e. not referenced by the
shader). Then the TGSI immediates and ancillary immediates (introduced for
SIN/COS/etc) are put into those free slots.
When it's time to upload the constant buffer, use the fp->constant_flags[]
array to determine if we should grab an immediate from the shader, or a
user-defined parameter from the gallium constant buffer.
Brian [Fri, 22 Feb 2008 21:07:33 +0000 (14:07 -0700)]
i915: include stdio.h
Brian [Fri, 22 Feb 2008 21:07:12 +0000 (14:07 -0700)]
i915: include p_debug.h (resolves undefined assert())
Brian [Fri, 22 Feb 2008 15:56:55 +0000 (08:56 -0700)]
gallium: fix brokenb build
Brian [Fri, 22 Feb 2008 15:52:24 +0000 (08:52 -0700)]
cell: added function prototypes to silence warnings
Brian [Fri, 22 Feb 2008 15:50:37 +0000 (08:50 -0700)]
cell: fix build: s/dest/vertex/
José Fonseca [Fri, 22 Feb 2008 09:45:20 +0000 (18:45 +0900)]
gallium: Countour MSVC's pickyness for structures returned by value.
José Fonseca [Fri, 22 Feb 2008 09:28:30 +0000 (18:28 +0900)]
gallium: Wrap decls in extern "C".
José Fonseca [Fri, 22 Feb 2008 08:22:32 +0000 (17:22 +0900)]
gallium: Add cso convenience routine (from Keith's patch).
José Fonseca [Fri, 22 Feb 2008 07:22:41 +0000 (16:22 +0900)]
gallium: MSVC fixes.
Michal Krol [Wed, 20 Feb 2008 21:25:18 +0000 (22:25 +0100)]
gallium: Fix build on Windows.
Michal Krol [Wed, 20 Feb 2008 21:10:27 +0000 (22:10 +0100)]
gallium: Silence compiler warnings on Windows.
Michal Krol [Wed, 20 Feb 2008 21:05:52 +0000 (22:05 +0100)]
gallium: Silence compiler warnings on Windows.
Michal Krol [Wed, 20 Feb 2008 21:05:06 +0000 (22:05 +0100)]
gallium: Define intptr_t for Windows platform.
Michal Krol [Wed, 20 Feb 2008 21:04:32 +0000 (22:04 +0100)]
gallium: Move align_pointer() to p_pointer.h.
Michal Krol [Wed, 20 Feb 2008 21:03:59 +0000 (22:03 +0100)]
gallium: New file.
José Fonseca [Fri, 22 Feb 2008 15:46:40 +0000 (00:46 +0900)]
Avoid building problematic module/drivers on windows.
José Fonseca [Wed, 20 Feb 2008 09:57:45 +0000 (18:57 +0900)]
Don't parse mesa's rtasm asm module.
Brian [Thu, 21 Feb 2008 23:56:32 +0000 (16:56 -0700)]
gallium: new draw stage for polygon stipple.
For hardware without native polygon stipple. Create a 32x32 alpha texture
that encodes the stipple pattern. Modify the user's fragment program to
sample the texture (with gl_FragCoord) and kill the fragment according to
the texel value.
Temporarily enabled in softpipe driver, replacing the sp_quad_stipple.c step.
Brian [Thu, 21 Feb 2008 23:18:05 +0000 (16:18 -0700)]
gallium: new AA point drawing stage
AA points are drawn by converting the point to a quad, then modifying the
user's fragment shader to compute a coverage value. The final fragment
color's alpha is modulated by the coverage value. Fragments outside the
point's radius are killed.
Brian [Thu, 21 Feb 2008 19:32:38 +0000 (12:32 -0700)]
gallium: fill in some blend/rasterizer template fields to make sure they're all valid, even if not relevant
Brian [Thu, 21 Feb 2008 15:37:49 +0000 (08:37 -0700)]
gallium: comments, white-space clean-up
Keith Whitwell [Thu, 21 Feb 2008 19:07:31 +0000 (19:07 +0000)]
[PATCH] softpipe: unbreak sp_setup_pos_vector on non-x86 systems
Keith Whitwell [Thu, 21 Feb 2008 10:07:58 +0000 (10:07 +0000)]
[PATCH] gallium: include p_compiler.h for boolean defn
Keith Whitwell [Fri, 15 Feb 2008 18:56:41 +0000 (18:56 +0000)]
draw: vertex cache rework
Take a baby step to straightening out vertex paths.
Keith Whitwell [Fri, 15 Feb 2008 18:54:00 +0000 (18:54 +0000)]
tgsi: print debug messages on failure to codegenerate
Ian Romanick [Thu, 21 Feb 2008 18:32:02 +0000 (10:32 -0800)]
Cell: Remove erroneous ALIGN16_ATTRIB attributes
If a structure is marked as being aligned the SPE compiler performs
extra optimizations (sadly, only -O2 is used) when reading the
structure. Since most of the structures sent in batch buffers are
only 8-byte aligned, this resulted in mysterous bugs with -O2.
Ian Romanick [Thu, 21 Feb 2008 18:24:29 +0000 (10:24 -0800)]
Cell: Add spu_dcache.c to Makefile.
This was erroneously missing in previous commits.
Ian Romanick [Thu, 21 Feb 2008 17:03:29 +0000 (09:03 -0800)]
Cell: Initial scalar implementation of spu_dcache_mark_dirty
Ian Romanick [Wed, 20 Feb 2008 22:45:08 +0000 (14:45 -0800)]
Cell: Fix off-by-one error in spu_dcache_fetch_unaligned
An off-by-one error caused an extra qword to be fetched under certain
alignment / size combinations.
Ian Romanick [Wed, 20 Feb 2008 22:32:25 +0000 (14:32 -0800)]
Cell: Initial pass at unified data cache
Brian [Thu, 21 Feb 2008 01:00:03 +0000 (18:00 -0700)]
gallium: include p_inlines.h
Brian [Thu, 21 Feb 2008 00:57:40 +0000 (17:57 -0700)]
gallium: s/pipe_reference_texture/pipe_texture_reference/
Brian [Wed, 20 Feb 2008 22:32:41 +0000 (15:32 -0700)]
gallium: re-fix some msvc warnings
Brian [Wed, 20 Feb 2008 22:13:33 +0000 (15:13 -0700)]
cell: use pipe_texture_reference()
Brian [Wed, 20 Feb 2008 22:09:27 +0000 (15:09 -0700)]
gallium: replace some ordinary assignments with pipe_reference_texture()
This fixes at least one instance of dereferencing an invalid texture pointer.
Brian [Wed, 20 Feb 2008 21:44:15 +0000 (14:44 -0700)]
gallium: fix bad ptr comparison
Brian [Wed, 20 Feb 2008 21:32:43 +0000 (14:32 -0700)]
cell: rename cell_state_fs.c -> cell_state_shader.c
Brian [Wed, 20 Feb 2008 21:30:50 +0000 (14:30 -0700)]
cell: init shader-related functions in cell_init_shader_functions()
Brian [Wed, 20 Feb 2008 21:27:08 +0000 (14:27 -0700)]
cell: #includes to silence warnings
Brian [Wed, 20 Feb 2008 21:25:07 +0000 (14:25 -0700)]
cell: plug in cell_set_sampler_texture
Brian [Wed, 20 Feb 2008 21:24:46 +0000 (14:24 -0700)]
Remove obsolete files replaced by cell_pipe_state.c
Brian [Wed, 20 Feb 2008 21:21:45 +0000 (14:21 -0700)]
cell: put most simple state-setter functions in new cell_pipe_state.c file
Also, re-org of texture/surface functions.
Brian [Wed, 20 Feb 2008 21:04:05 +0000 (14:04 -0700)]
gallium: re-org of i965 texture/surface code, functions
Brian [Wed, 20 Feb 2008 21:00:42 +0000 (14:00 -0700)]
gallium: minor re-org of 915 surface/texture code
Brian [Wed, 20 Feb 2008 20:24:52 +0000 (13:24 -0700)]
gallium: new pipe->texture_update() function
Called whenever texture data is changed (glTexImage, glTexSubImage,
glCopyTexSubImage, etc).
Brian [Wed, 20 Feb 2008 20:12:36 +0000 (13:12 -0700)]
gallium: mark texture object data dirty in do_copy_texsubimage()
Brian [Wed, 20 Feb 2008 20:11:51 +0000 (13:11 -0700)]
gallium: re-enable GenerateMipmap calls
Brian [Wed, 20 Feb 2008 18:58:33 +0000 (11:58 -0700)]
Test calling glTexSubImage2D mid-way through a frame.
Brian [Wed, 20 Feb 2008 18:20:25 +0000 (11:20 -0700)]
gallium: state tracker didn't always notify drivers of texobj data changes
Calling glTexSubImage() or glTexImage() to replace texture data didn't
reliably cause pipe->set_sampler_texture() to get called so drivers didn't
always get notified of new texture data.
The st_texture_object->pt pointer doesn't always indicate changed data so
added a dirtyData field.
Brian [Wed, 20 Feb 2008 18:15:59 +0000 (11:15 -0700)]
gallium: use pipe_texture_reference() in sp_tile_cache_set_texture()
Brian [Tue, 19 Feb 2008 23:51:19 +0000 (16:51 -0700)]
gallium: general clean-up of xlib winsys Makefile
Brian [Tue, 19 Feb 2008 23:28:25 +0000 (16:28 -0700)]
gallium: initialize the killmask register to zero before running shader
This fixes mysterious missing fragments when running with SSE.
Brian [Tue, 19 Feb 2008 21:58:23 +0000 (14:58 -0700)]
gallium: add some casts to prevent likely msvc warnings
Brian [Tue, 19 Feb 2008 21:56:01 +0000 (14:56 -0700)]
gallium: don't hard-code attrib slot=0 in setup_fragcoord_coeff()
Brian [Tue, 19 Feb 2008 21:55:18 +0000 (14:55 -0700)]
gallium: implement correct sampling for RECT targets / unnormalized texcoords
Brian [Tue, 19 Feb 2008 18:14:54 +0000 (11:14 -0700)]
gallium: updated cell build
Building on Ian's Cell build fix.
Put libcell.a in the gallium/drivers/cell/ directory.
General Makefile clean-up, simplification, updated comments.
Ian Romanick [Tue, 19 Feb 2008 17:43:47 +0000 (09:43 -0800)]
Cell: Add missing "gallium/winsys" to SRC_DIRS to fix build.
Ian Romanick [Tue, 19 Feb 2008 02:55:39 +0000 (18:55 -0800)]
Cell: emit vertex shaders and uniforms more intelligently
Ian Romanick [Tue, 19 Feb 2008 02:51:57 +0000 (18:51 -0800)]
Cell: trivial clean-ups
José Fonseca [Tue, 19 Feb 2008 09:57:25 +0000 (18:57 +0900)]
Fix windows build.
José Fonseca [Tue, 19 Feb 2008 09:56:55 +0000 (18:56 +0900)]
Portability fixes.
Eliminate C99/C++ constructs.
(We should actually disable gcc C99 syntax options if we are serious about
portability.)
José Fonseca [Tue, 19 Feb 2008 09:53:16 +0000 (18:53 +0900)]
Windows (DDK) compilation support.
It also works when cross compiling with Wine.
José Fonseca [Tue, 19 Feb 2008 06:07:53 +0000 (15:07 +0900)]
Remove src/mesa and src/mesa/main from gallium source include paths.
José Fonseca [Tue, 19 Feb 2008 05:00:16 +0000 (14:00 +0900)]
Bring in ppc spe rtasm into gallium's rtasm module.
Moving files since these are not being used outside gallium.
José Fonseca [Tue, 19 Feb 2008 04:41:38 +0000 (13:41 +0900)]
Add run-time cpu capabilities detection stubs.
José Fonseca [Tue, 19 Feb 2008 04:27:13 +0000 (13:27 +0900)]
Simplify makefile boilerplate code.
Don't define ASM_SOURCES variable globally -- reserve that variable to be defined
locally by makefiles, together with C_SOURCES and CPP_SOURCES.
José Fonseca [Tue, 19 Feb 2008 03:52:28 +0000 (12:52 +0900)]
Use gallium's rtasm module.
José Fonseca [Tue, 19 Feb 2008 03:24:42 +0000 (12:24 +0900)]
Move mm.c code into util module.
Using the u_ prefix to distingish the c source files that support gallium
interfaces and those that have really no relation with gallium itself.
José Fonseca [Tue, 19 Feb 2008 03:05:32 +0000 (12:05 +0900)]
Add copyright headers to all rtasm source files.
José Fonseca [Tue, 19 Feb 2008 03:00:48 +0000 (12:00 +0900)]
Rename rtasm files.
José Fonseca [Tue, 19 Feb 2008 02:49:48 +0000 (11:49 +0900)]
Bring rtasm from mesa to gallium.
José Fonseca [Tue, 19 Feb 2008 01:50:39 +0000 (10:50 +0900)]
Initial scons support to build gallivm.
Not yet complete.
José Fonseca [Mon, 18 Feb 2008 14:35:19 +0000 (14:35 +0000)]
More llvm -> gallivm.
Forgot this one on the last commit.
Brian [Tue, 19 Feb 2008 01:39:55 +0000 (18:39 -0700)]
gallium: move draw_set_viewport_state() call, plus code clean-up, remove obsolete comments
Brian [Tue, 19 Feb 2008 01:36:20 +0000 (18:36 -0700)]
gallium: call draw_flush() for scissor/stipple state changes
Brian [Mon, 18 Feb 2008 23:50:07 +0000 (16:50 -0700)]
gallium: remove the prototype/unused wide_line_aa() function
Brian [Mon, 18 Feb 2008 23:19:05 +0000 (16:19 -0700)]
gallium: antialiased line drawing
New draw/prim stage: draw_aaline. When installed, lines are replaced by
textured quads to do antialiasing. The current user-defined fragment shader
is modified to do a texture fetch and modulate fragment alpha.
José Fonseca [Mon, 18 Feb 2008 12:33:34 +0000 (12:33 +0000)]
Update for llvm -> gallivm rename.
José Fonseca [Mon, 18 Feb 2008 11:05:06 +0000 (20:05 +0900)]
Rename llvm -> gallivm.
Following the directory == library name policy simplifies the build system.
José Fonseca [Mon, 18 Feb 2008 11:02:42 +0000 (20:02 +0900)]
Standardize on using the pipe/ include prefix.
José Fonseca [Mon, 18 Feb 2008 10:52:44 +0000 (10:52 +0000)]
Update scons build for new code layout.
José Fonseca [Mon, 18 Feb 2008 07:47:35 +0000 (16:47 +0900)]
Add an "all" target alias for "default" target.
"all" is more commonly expected, expecially by many IDEs.
José Fonseca [Mon, 18 Feb 2008 06:45:29 +0000 (15:45 +0900)]
Build glx/x11.
José Fonseca [Mon, 18 Feb 2008 06:37:52 +0000 (15:37 +0900)]
Cleanup depend files.
José Fonseca [Mon, 18 Feb 2008 06:07:17 +0000 (15:07 +0900)]
Actually use GALLIUM_DRIVER_DIRS.
José Fonseca [Mon, 18 Feb 2008 05:25:04 +0000 (14:25 +0900)]
Code reorganization: split gallium and mesa makefiles.
In other words, don't build src/gallium source code from within src/mesa/Makefile.
Also, allow to customize which gallium auxiliary dirs, driver driver, winsys
dirs get built from the config/* files.
José Fonseca [Mon, 18 Feb 2008 03:07:24 +0000 (12:07 +0900)]
Update doxygen configuration file for new tree layout.
Zack Rusin [Sun, 17 Feb 2008 14:42:26 +0000 (09:42 -0500)]
fix the build
Brian [Sat, 16 Feb 2008 20:55:47 +0000 (13:55 -0700)]
gallium: add missing mip level clamp
Brian [Sat, 16 Feb 2008 20:50:31 +0000 (13:50 -0700)]
gallium: tweak texture filter min/mag thresholds
Brian [Sat, 16 Feb 2008 17:05:01 +0000 (10:05 -0700)]
gallium: implement min vs. mag filter determination for non-mipmapped textures
Fixes tests/minmag.c
Brian [Sat, 16 Feb 2008 16:38:34 +0000 (09:38 -0700)]
Added minmag.c test
Test that different minification and magnification filters are chosen for the
non-mipmapped texture case.
Ian Romanick [Fri, 15 Feb 2008 19:03:54 +0000 (11:03 -0800)]
Cell: Enable code gen for SPE attribute fetch
Doubles are still unsupported.
Ian Romanick [Fri, 15 Feb 2008 18:36:48 +0000 (10:36 -0800)]
Cell: Add missing back-slash in linux-cell config file
Ian Romanick [Fri, 15 Feb 2008 18:33:12 +0000 (10:33 -0800)]
Cell: Add INCLUDE_DIRS to SPU_CFLAGS to fix build.
Ian Romanick [Fri, 15 Feb 2008 18:00:31 +0000 (10:00 -0800)]
Make this file build on non-SSE builds (e.g., Cell)
Ian Romanick [Fri, 15 Feb 2008 17:43:13 +0000 (09:43 -0800)]
Move cell_vertex_fetch.c for recent code reorg.
Ian Romanick [Fri, 15 Feb 2008 02:30:48 +0000 (18:30 -0800)]
Initial version of code gen for attribute fetch
Ian Romanick [Fri, 15 Feb 2008 02:29:51 +0000 (18:29 -0800)]
Correct the convert to and from float instructions