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
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
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
Brian
75a4524f2c
gallium: initialize the killmask register to zero before running shader
...
This fixes mysterious missing fragments when running with SSE.
2008-02-19 16:28:25 -07:00
Brian
4ec46e4869
gallium: add some casts to prevent likely msvc warnings
2008-02-19 14:58:23 -07:00
Brian
a2c06c5b5c
gallium: don't hard-code attrib slot=0 in setup_fragcoord_coeff()
2008-02-19 14:56:01 -07:00
Brian
b1c8fa5b60
gallium: implement correct sampling for RECT targets / unnormalized texcoords
2008-02-19 14:55:18 -07:00
Brian
3e329ea7e4
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.
2008-02-19 11:14:54 -07:00
Ian Romanick
66be2810c3
Cell: emit vertex shaders and uniforms more intelligently
2008-02-19 08:41:04 -08:00
Ian Romanick
4362c6e59d
Cell: trivial clean-ups
2008-02-19 08:41:04 -08:00
José Fonseca
b9da3791c9
Remove src/mesa and src/mesa/main from gallium source include paths.
2008-02-19 15:07:53 +09:00
José Fonseca
5d78212d75
Bring in ppc spe rtasm into gallium's rtasm module.
...
Moving files since these are not being used outside gallium.
2008-02-19 14:06:11 +09:00
José Fonseca
90b2beb661
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.
2008-02-19 14:06:11 +09:00
José Fonseca
f430d95a36
Use gallium's rtasm module.
2008-02-19 14:01:49 +09:00
José Fonseca
e279b1c57a
More llvm -> gallivm.
...
Forgot this one on the last commit.
2008-02-19 14:01:49 +09:00
Brian
6c7f663cb9
gallium: move draw_set_viewport_state() call, plus code clean-up, remove obsolete comments
2008-02-18 18:39:55 -07:00
Brian
ae9931dad2
gallium: call draw_flush() for scissor/stipple state changes
2008-02-18 18:36:20 -07:00
Brian
aceeb80d4f
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.
2008-02-18 16:19:05 -07:00
José Fonseca
687a8b96ef
Standardize on using the pipe/ include prefix.
2008-02-18 20:02:42 +09:00
José Fonseca
33ceb6716a
Update scons build for new code layout.
2008-02-18 10:52:44 +00:00