mesa.git
16 years agogallium/i915: compute vertex size _after_ state validation in emit_prim().
Brian [Tue, 26 Feb 2008 00:01:20 +0000 (17:01 -0700)]
gallium/i915: compute vertex size _after_ state validation in emit_prim().

Fixes crash when drawing aa lines.

16 years agoAdded line smooth test
Brian [Mon, 25 Feb 2008 23:26:37 +0000 (16:26 -0700)]
Added line smooth test

16 years agogallium: clamp line width when creating raster state object
Brian [Mon, 25 Feb 2008 23:25:24 +0000 (16:25 -0700)]
gallium: clamp line width when creating raster state object

16 years agogallium/i915: plug in aaline draw stage
Brian [Mon, 25 Feb 2008 23:24:47 +0000 (16:24 -0700)]
gallium/i915: plug in aaline draw stage

16 years agogallium/i915: make sure state is up to date in i915_vbuf_render_get_vertex_info(...
Brian [Mon, 25 Feb 2008 23:22:58 +0000 (16:22 -0700)]
gallium/i915: make sure state is up to date in i915_vbuf_render_get_vertex_info(), also disable bogus assertion

16 years agogallium/i915: need to recompute vertex info if vertex shader changes
Brian [Mon, 25 Feb 2008 23:20:04 +0000 (16:20 -0700)]
gallium/i915: need to recompute vertex info if vertex shader changes

16 years agogallium/i915: call draw_flush() in i915_flush()
Brian [Mon, 25 Feb 2008 23:16:07 +0000 (16:16 -0700)]
gallium/i915: call draw_flush() in i915_flush()

16 years agogallium: fix bad ptr assignment
Brian [Mon, 25 Feb 2008 22:34:46 +0000 (15:34 -0700)]
gallium: fix bad ptr assignment

16 years agogallium/i915: use draw_find_vs_output() directly, fix broken fogcoords.
Brian [Mon, 25 Feb 2008 21:48:31 +0000 (14:48 -0700)]
gallium/i915: use draw_find_vs_output() directly, fix broken fogcoords.

We now produce the correct 915 vertex layout regardless of the order in
which fragment shader inputs are declared.

16 years agosoftpipe: use draw_find_vs_output() directly
Brian [Mon, 25 Feb 2008 21:47:13 +0000 (14:47 -0700)]
softpipe: use draw_find_vs_output() directly

16 years agogallium: modify draw_find_vs_output() to search vertex shader outputs
Brian [Mon, 25 Feb 2008 21:46:42 +0000 (14:46 -0700)]
gallium: modify draw_find_vs_output() to search vertex shader outputs

This simplifies drivers using the draw module and removes the last dependency
on vertex-shader "internals".  Since the draw module is producing the
post-transformed vertices, it makes sense to ask it where specific vertex
attributes are located.

This could also simplify some things in the state tracker code for selection,
feedback, rasterpos...

16 years agogallium/i915: Use hardware rendering, unless INTEL_SP env var is set
Brian [Mon, 25 Feb 2008 18:21:03 +0000 (11:21 -0700)]
gallium/i915: Use hardware rendering, unless INTEL_SP env var is set

16 years agogallium/i915: added SGT/SLE opcodes
Brian [Mon, 25 Feb 2008 18:13:58 +0000 (11:13 -0700)]
gallium/i915: added SGT/SLE opcodes

16 years agoMake the pipe headers C++ friendly.
José Fonseca [Mon, 25 Feb 2008 11:05:41 +0000 (20:05 +0900)]
Make the pipe headers C++ friendly.

16 years agoGet more debugging info out of MSVC.
José Fonseca [Mon, 25 Feb 2008 08:55:45 +0000 (17:55 +0900)]
Get more debugging info out of MSVC.

16 years agoRemove files of unsupported build systems.
José Fonseca [Mon, 25 Feb 2008 08:11:28 +0000 (17:11 +0900)]
Remove files of unsupported build systems.

16 years agoUpdate git ignores.
José Fonseca [Mon, 25 Feb 2008 08:05:15 +0000 (17:05 +0900)]
Update git ignores.

16 years agoReplace standand library functions by portable ones.
José Fonseca [Mon, 25 Feb 2008 07:39:39 +0000 (16:39 +0900)]
Replace standand library functions by portable ones.

16 years agoAdd Zack's comments about CSOs.
José Fonseca [Mon, 25 Feb 2008 06:18:33 +0000 (15:18 +0900)]
Add Zack's comments about CSOs.

16 years agoCleanup scons files.
José Fonseca [Mon, 25 Feb 2008 05:46:53 +0000 (14:46 +0900)]
Cleanup scons files.

16 years agoUpdate some msvc compiler flags.
José Fonseca [Sun, 24 Feb 2008 08:58:18 +0000 (17:58 +0900)]
Update some msvc compiler flags.

16 years agoAdd new files.
José Fonseca [Sun, 24 Feb 2008 08:58:05 +0000 (17:58 +0900)]
Add new files.

16 years agoA few more tweaks to get correct WINDDK compilation.
José Fonseca [Sun, 24 Feb 2008 07:43:07 +0000 (16:43 +0900)]
A few more tweaks to get correct WINDDK compilation.

16 years agogallium: Fix MSVC warnings.
José Fonseca [Sat, 23 Feb 2008 17:46:46 +0000 (02:46 +0900)]
gallium: Fix MSVC warnings.

16 years agogallium: disable early Z test if fragment shader contains KIL instruction.
Brian [Sat, 23 Feb 2008 23:17:17 +0000 (16:17 -0700)]
gallium: disable early Z test if fragment shader contains KIL instruction.

Use tgsi_scan_shader() to determine if the fragment shader uses KIL or
writes fragment.z

16 years agogallium: added TGSI_FILE_COUNT
Brian [Sat, 23 Feb 2008 23:15:54 +0000 (16:15 -0700)]
gallium: added TGSI_FILE_COUNT

16 years agogallium: added new tgsi_scan.c / tgsi_scan_shader() function
Brian [Sat, 23 Feb 2008 23:15:29 +0000 (16:15 -0700)]
gallium: added new tgsi_scan.c / tgsi_scan_shader() function

Used to get information about registers, instructions used in a shader.

16 years agogallium: MSVC fixes.
José Fonseca [Sat, 23 Feb 2008 17:16:28 +0000 (02:16 +0900)]
gallium: MSVC fixes.

16 years agoRevamp scons usage.
José Fonseca [Sat, 23 Feb 2008 10:49:08 +0000 (19:49 +0900)]
Revamp scons usage.

16 years agoBring in several forgotten MSVC fixes.
José Fonseca [Sat, 23 Feb 2008 05:14:54 +0000 (14:14 +0900)]
Bring in several forgotten MSVC fixes.

16 years agoFix typo.
José Fonseca [Sat, 23 Feb 2008 05:14:20 +0000 (14:14 +0900)]
Fix typo.

16 years agogallium: fix a state validation bug found w/ pointblast.c
Brian [Sat, 23 Feb 2008 01:34:31 +0000 (18:34 -0700)]
gallium: fix a state validation bug found w/ pointblast.c

16 years agogallium: fix bug in which wide point stage overrode the aapoint stage
Brian [Sat, 23 Feb 2008 00:22:10 +0000 (17:22 -0700)]
gallium: fix bug in which wide point stage overrode the aapoint stage

Also, simplify the logic a bit.

16 years agogallium/i915: overhaul of fragment shader compilation, constant/immediate allocation
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.

16 years agoi915: include stdio.h
Brian [Fri, 22 Feb 2008 21:07:33 +0000 (14:07 -0700)]
i915: include stdio.h

16 years agoi915: include p_debug.h (resolves undefined assert())
Brian [Fri, 22 Feb 2008 21:07:12 +0000 (14:07 -0700)]
i915: include p_debug.h (resolves undefined assert())

16 years agogallium: fix brokenb build
Brian [Fri, 22 Feb 2008 15:56:55 +0000 (08:56 -0700)]
gallium: fix brokenb build

16 years agocell: added function prototypes to silence warnings
Brian [Fri, 22 Feb 2008 15:52:24 +0000 (08:52 -0700)]
cell: added function prototypes to silence warnings

16 years agocell: fix build: s/dest/vertex/
Brian [Fri, 22 Feb 2008 15:50:37 +0000 (08:50 -0700)]
cell: fix build: s/dest/vertex/

16 years agogallium: Countour MSVC's pickyness for structures returned by value.
José Fonseca [Fri, 22 Feb 2008 09:45:20 +0000 (18:45 +0900)]
gallium: Countour MSVC's pickyness for structures returned by value.

16 years agogallium: Wrap decls in extern "C".
José Fonseca [Fri, 22 Feb 2008 09:28:30 +0000 (18:28 +0900)]
gallium: Wrap decls in extern "C".

16 years agogallium: Add cso convenience routine (from Keith's patch).
José Fonseca [Fri, 22 Feb 2008 08:22:32 +0000 (17:22 +0900)]
gallium: Add cso convenience routine (from Keith's patch).

16 years agogallium: MSVC fixes.
José Fonseca [Fri, 22 Feb 2008 07:22:41 +0000 (16:22 +0900)]
gallium: MSVC fixes.

16 years agogallium: Fix build on Windows.
Michal Krol [Wed, 20 Feb 2008 21:25:18 +0000 (22:25 +0100)]
gallium: Fix build on Windows.

16 years agogallium: Silence compiler warnings on Windows.
Michal Krol [Wed, 20 Feb 2008 21:10:27 +0000 (22:10 +0100)]
gallium: Silence compiler warnings on Windows.

16 years agogallium: Silence compiler warnings on Windows.
Michal Krol [Wed, 20 Feb 2008 21:05:52 +0000 (22:05 +0100)]
gallium: Silence compiler warnings on Windows.

16 years agogallium: Define intptr_t for Windows platform.
Michal Krol [Wed, 20 Feb 2008 21:05:06 +0000 (22:05 +0100)]
gallium: Define intptr_t for Windows platform.

16 years agogallium: Move align_pointer() to p_pointer.h.
Michal Krol [Wed, 20 Feb 2008 21:04:32 +0000 (22:04 +0100)]
gallium: Move align_pointer() to p_pointer.h.

16 years agogallium: New file.
Michal Krol [Wed, 20 Feb 2008 21:03:59 +0000 (22:03 +0100)]
gallium: New file.

16 years agoAvoid building problematic module/drivers on windows.
José Fonseca [Fri, 22 Feb 2008 15:46:40 +0000 (00:46 +0900)]
Avoid building problematic module/drivers on windows.

16 years agoDon't parse mesa's rtasm asm module.
José Fonseca [Wed, 20 Feb 2008 09:57:45 +0000 (18:57 +0900)]
Don't parse mesa's rtasm asm module.

16 years agogallium: new draw stage for polygon stipple.
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.

16 years agogallium: new AA point drawing stage
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.

16 years agogallium: fill in some blend/rasterizer template fields to make sure they're all valid...
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

16 years agogallium: comments, white-space clean-up
Brian [Thu, 21 Feb 2008 15:37:49 +0000 (08:37 -0700)]
gallium: comments, white-space clean-up

16 years ago[PATCH] softpipe: unbreak sp_setup_pos_vector on non-x86 systems
Keith Whitwell [Thu, 21 Feb 2008 19:07:31 +0000 (19:07 +0000)]
[PATCH] softpipe: unbreak sp_setup_pos_vector on non-x86 systems

16 years ago[PATCH] gallium: include p_compiler.h for boolean defn
Keith Whitwell [Thu, 21 Feb 2008 10:07:58 +0000 (10:07 +0000)]
[PATCH] gallium: include p_compiler.h for boolean defn

16 years agodraw: vertex cache rework
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.

16 years agotgsi: print debug messages on failure to codegenerate
Keith Whitwell [Fri, 15 Feb 2008 18:54:00 +0000 (18:54 +0000)]
tgsi: print debug messages on failure to codegenerate

16 years agoCell: Remove erroneous ALIGN16_ATTRIB attributes
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.

16 years agoCell: Add spu_dcache.c to Makefile.
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.

16 years agoCell: Initial scalar implementation of spu_dcache_mark_dirty
Ian Romanick [Thu, 21 Feb 2008 17:03:29 +0000 (09:03 -0800)]
Cell: Initial scalar implementation of spu_dcache_mark_dirty

16 years agoCell: Fix off-by-one error in spu_dcache_fetch_unaligned
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.

16 years agoCell: Initial pass at unified data cache
Ian Romanick [Wed, 20 Feb 2008 22:32:25 +0000 (14:32 -0800)]
Cell: Initial pass at unified data cache

16 years agogallium: include p_inlines.h
Brian [Thu, 21 Feb 2008 01:00:03 +0000 (18:00 -0700)]
gallium: include p_inlines.h

16 years agogallium: s/pipe_reference_texture/pipe_texture_reference/
Brian [Thu, 21 Feb 2008 00:57:40 +0000 (17:57 -0700)]
gallium: s/pipe_reference_texture/pipe_texture_reference/

16 years agogallium: re-fix some msvc warnings
Brian [Wed, 20 Feb 2008 22:32:41 +0000 (15:32 -0700)]
gallium: re-fix some msvc warnings

16 years agocell: use pipe_texture_reference()
Brian [Wed, 20 Feb 2008 22:13:33 +0000 (15:13 -0700)]
cell: use pipe_texture_reference()

16 years agogallium: replace some ordinary assignments with pipe_reference_texture()
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.

16 years agogallium: fix bad ptr comparison
Brian [Wed, 20 Feb 2008 21:44:15 +0000 (14:44 -0700)]
gallium: fix bad ptr comparison

16 years agocell: rename cell_state_fs.c -> cell_state_shader.c
Brian [Wed, 20 Feb 2008 21:32:43 +0000 (14:32 -0700)]
cell: rename cell_state_fs.c -> cell_state_shader.c

16 years agocell: init shader-related functions in cell_init_shader_functions()
Brian [Wed, 20 Feb 2008 21:30:50 +0000 (14:30 -0700)]
cell: init shader-related functions in cell_init_shader_functions()

16 years agocell: #includes to silence warnings
Brian [Wed, 20 Feb 2008 21:27:08 +0000 (14:27 -0700)]
cell: #includes to silence warnings

16 years agocell: plug in cell_set_sampler_texture
Brian [Wed, 20 Feb 2008 21:25:07 +0000 (14:25 -0700)]
cell: plug in cell_set_sampler_texture

16 years agoRemove obsolete files replaced by cell_pipe_state.c
Brian [Wed, 20 Feb 2008 21:24:46 +0000 (14:24 -0700)]
Remove obsolete files replaced by cell_pipe_state.c

16 years agocell: put most simple state-setter functions in new cell_pipe_state.c file
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.

16 years agogallium: re-org of i965 texture/surface code, functions
Brian [Wed, 20 Feb 2008 21:04:05 +0000 (14:04 -0700)]
gallium: re-org of i965 texture/surface code, functions

16 years agogallium: minor re-org of 915 surface/texture code
Brian [Wed, 20 Feb 2008 21:00:42 +0000 (14:00 -0700)]
gallium: minor re-org of 915 surface/texture code

16 years agogallium: new pipe->texture_update() function
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).

16 years agogallium: mark texture object data dirty in do_copy_texsubimage()
Brian [Wed, 20 Feb 2008 20:12:36 +0000 (13:12 -0700)]
gallium: mark texture object data dirty in do_copy_texsubimage()

16 years agogallium: re-enable GenerateMipmap calls
Brian [Wed, 20 Feb 2008 20:11:51 +0000 (13:11 -0700)]
gallium: re-enable GenerateMipmap calls

16 years agoTest calling glTexSubImage2D mid-way through a frame.
Brian [Wed, 20 Feb 2008 18:58:33 +0000 (11:58 -0700)]
Test calling glTexSubImage2D mid-way through a frame.

16 years agogallium: state tracker didn't always notify drivers of texobj data changes
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.

16 years agogallium: use pipe_texture_reference() in sp_tile_cache_set_texture()
Brian [Wed, 20 Feb 2008 18:15:59 +0000 (11:15 -0700)]
gallium: use pipe_texture_reference() in sp_tile_cache_set_texture()

16 years agogallium: general clean-up of xlib winsys Makefile
Brian [Tue, 19 Feb 2008 23:51:19 +0000 (16:51 -0700)]
gallium: general clean-up of xlib winsys Makefile

16 years agogallium: initialize the killmask register to zero before running shader
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.

16 years agogallium: add some casts to prevent likely msvc warnings
Brian [Tue, 19 Feb 2008 21:58:23 +0000 (14:58 -0700)]
gallium: add some casts to prevent likely msvc warnings

16 years agogallium: don't hard-code attrib slot=0 in setup_fragcoord_coeff()
Brian [Tue, 19 Feb 2008 21:56:01 +0000 (14:56 -0700)]
gallium: don't hard-code attrib slot=0 in setup_fragcoord_coeff()

16 years agogallium: implement correct sampling for RECT targets / unnormalized texcoords
Brian [Tue, 19 Feb 2008 21:55:18 +0000 (14:55 -0700)]
gallium: implement correct sampling for RECT targets / unnormalized texcoords

16 years agogallium: updated cell build
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.

16 years agoCell: Add missing "gallium/winsys" to SRC_DIRS to fix build.
Ian Romanick [Tue, 19 Feb 2008 17:43:47 +0000 (09:43 -0800)]
Cell: Add missing "gallium/winsys" to SRC_DIRS to fix build.

16 years agoCell: emit vertex shaders and uniforms more intelligently
Ian Romanick [Tue, 19 Feb 2008 02:55:39 +0000 (18:55 -0800)]
Cell: emit vertex shaders and uniforms more intelligently

16 years agoCell: trivial clean-ups
Ian Romanick [Tue, 19 Feb 2008 02:51:57 +0000 (18:51 -0800)]
Cell: trivial clean-ups

16 years agoFix windows build.
José Fonseca [Tue, 19 Feb 2008 09:57:25 +0000 (18:57 +0900)]
Fix windows build.

16 years agoPortability fixes.
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.)

16 years agoWindows (DDK) compilation support.
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.

16 years agoRemove src/mesa and src/mesa/main from gallium source include paths.
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.

16 years agoBring in ppc spe rtasm into gallium's rtasm module.
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.

16 years agoAdd run-time cpu capabilities detection stubs.
José Fonseca [Tue, 19 Feb 2008 04:41:38 +0000 (13:41 +0900)]
Add run-time cpu capabilities detection stubs.

16 years agoSimplify makefile boilerplate code.
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.