Commit graph

32494 commits

Author SHA1 Message Date
Brian
92650aeadd gallium/i915: make sure state is up to date in i915_vbuf_render_get_vertex_info(), also disable bogus assertion 2008-02-25 16:22:58 -07:00
Brian
f41e957557 gallium/i915: need to recompute vertex info if vertex shader changes 2008-02-25 16:20:04 -07:00
Brian
b53110c789 gallium/i915: call draw_flush() in i915_flush() 2008-02-25 16:16:07 -07:00
Brian
846b7fbc6c 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.
2008-02-25 14:48:31 -07:00
Brian
c037b4d45a softpipe: use draw_find_vs_output() directly 2008-02-25 14:47:13 -07:00
Brian
20839b37ed gallium/i915: added SGT/SLE opcodes 2008-02-25 11:13:58 -07:00
Ben Skeggs
026e2fd3c6 nv40: remove pipe_state struct now. 2008-02-25 13:33:08 +11:00
Ben Skeggs
4058a90127 nv40: construct vbo state the same way as the rest 2008-02-25 13:30:24 +11:00
Ben Skeggs
14de997d5d nv40: dump meaningful names for surface formats 2008-02-25 12:26:48 +11:00
José Fonseca
fdcb9260ee Add new files. 2008-02-24 17:58:05 +09:00
Brian
012391357f 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
2008-02-23 16:17:17 -07:00
José Fonseca
e9bb63c8e2 gallium: MSVC fixes. 2008-02-24 02:23:12 +09:00
José Fonseca
e8de5c70e3 Bring in several forgotten MSVC fixes. 2008-02-23 14:14:54 +09:00
Brian
aec315f05f gallium: fix a state validation bug found w/ pointblast.c 2008-02-22 18:34:31 -07:00
Brian
c74900ee5d 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.
2008-02-22 16:48:05 -07:00
Patrice Mandin
d8a9d850b9 nv30: init zeta to NULL, use color pitch if no zeta 2008-02-22 22:21:15 +01:00
Patrice Mandin
0a5ed0667e nv30: wrong number of parameters 2008-02-22 17:18:27 +01:00
Brian
12c14c31b7 gallium: fix brokenb build 2008-02-22 08:56:55 -07:00
Brian
0bb53709e8 cell: added function prototypes to silence warnings 2008-02-22 08:52:57 -07:00
Brian
b4d050ffcc cell: fix build: s/dest/vertex/ 2008-02-22 08:52:57 -07:00
Michal Krol
e0de82fbcb gallium: Fix build on Windows. 2008-02-23 00:51:19 +09:00
Michal Krol
69a7c9739b gallium: Silence compiler warnings on Windows. 2008-02-23 00:51:12 +09:00
Ben Skeggs
7b938431d0 nv40: stateobj start out with 0 refcount 2008-02-22 14:46:48 +11:00
Ben Skeggs
c2e36bdd1a nv40: move hw_dirty 2008-02-22 13:55:18 +11:00
Ben Skeggs
5b2ff28a2f nv40: rework fragment texture state 2008-02-22 13:32:51 +11:00
Ben Skeggs
73e0e567de nouveau: fix build 2008-02-22 12:36:48 +11:00
Ben Skeggs
f7922db610 Merge branch 'upstream-gallium-0.1' into nouveau-gallium-0.1
Conflicts:

	src/gallium/drivers/Makefile
2008-02-22 12:25:15 +11:00
Brian
446bfc32a8 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.
2008-02-21 16:56:32 -07:00
Brian
eb4dc2dd5e 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.
2008-02-21 16:18:05 -07:00
Keith Whitwell
20fbcbf580 [PATCH] softpipe: unbreak sp_setup_pos_vector on non-x86 systems 2008-02-21 19:17:27 +00:00
Ian Romanick
de5c64e0af 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.
2008-02-21 10:43:46 -08:00
Ian Romanick
6dd47c264a Cell: Add spu_dcache.c to Makefile.
This was erroneously missing in previous commits.
2008-02-21 10:43:45 -08:00
Ian Romanick
e78fc9f2f4 Cell: Initial scalar implementation of spu_dcache_mark_dirty 2008-02-21 10:43:45 -08:00
Ian Romanick
2d1f086c12 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.
2008-02-21 10:43:45 -08:00
Ian Romanick
7c74037852 Cell: Initial pass at unified data cache 2008-02-21 10:43:45 -08:00
Brian
8be9bc08e1 gallium: include p_inlines.h 2008-02-20 18:00:03 -07:00
Brian
d3b7d26b0b gallium: s/pipe_reference_texture/pipe_texture_reference/ 2008-02-20 17:57:40 -07:00
Brian
e523ef7204 cell: use pipe_texture_reference() 2008-02-20 15:14:14 -07:00
Brian
25ea1901b4 gallium: replace some ordinary assignments with pipe_reference_texture()
This fixes at least one instance of dereferencing an invalid texture pointer.
2008-02-20 15:09:44 -07:00
Brian
fce61f341f gallium: fix bad ptr comparison 2008-02-20 15:09:44 -07:00
Brian
fd4bdd020a cell: rename cell_state_fs.c -> cell_state_shader.c 2008-02-20 14:32:43 -07:00
Brian
6468347375 cell: init shader-related functions in cell_init_shader_functions() 2008-02-20 14:30:50 -07:00
Brian
9e57e70b42 cell: #includes to silence warnings 2008-02-20 14:27:08 -07:00
Brian
f6e1654e22 cell: plug in cell_set_sampler_texture 2008-02-20 14:25:07 -07:00
Brian
acd2253ae8 Remove obsolete files replaced by cell_pipe_state.c 2008-02-20 14:24:46 -07:00
Brian
9171e63f41 cell: put most simple state-setter functions in new cell_pipe_state.c file
Also, re-org of texture/surface functions.
2008-02-20 14:21:45 -07:00
Brian
4eae65c8e0 gallium: re-org of i965 texture/surface code, functions 2008-02-20 14:04:05 -07:00
Brian
882a4b5054 gallium: minor re-org of 915 surface/texture code 2008-02-20 14:00:42 -07:00
Brian
d5640a2dbd gallium: new pipe->texture_update() function
Called whenever texture data is changed (glTexImage, glTexSubImage,
glCopyTexSubImage, etc).
2008-02-20 13:24:52 -07:00
Brian
22a0b85eae gallium: use pipe_texture_reference() in sp_tile_cache_set_texture() 2008-02-20 11:15:59 -07:00