Roland Scheidegger
5e5d0ad081
Merge branch 'gallium-noconstbuf'
...
Conflicts:
src/gallium/drivers/softpipe/sp_draw_arrays.c
src/mesa/state_tracker/st_draw_feedback.c
2010-01-15 18:09:45 +01:00
Roland Scheidegger
70c8d2a297
gallium: remove const qualifier from pipe_buffer argument in set_constant_buffer
2010-01-11 16:30:48 +01:00
José Fonseca
7bd7e2da75
llvmpipe: Axe texture sampling code inherited from softpipe.
...
Was used only as a reference, since texture sampling is now code generated.
Already axed in the lp-binning branch too.
This fixes the llvmpipe build after recent sampling changes.
2010-01-07 15:35:24 +00:00
Michal Krol
4e014c0a14
pipe_sampler_state::compare_mode is not a boolean enable flag.
...
It's a 1-bit enum.
2010-01-06 16:11:26 +01:00
Brian Paul
25024d9482
Merge branch 'mesa_7_7_branch'
...
Conflicts:
configs/darwin
src/gallium/auxiliary/util/u_clear.h
src/gallium/state_trackers/xorg/xorg_exa_tgsi.c
src/mesa/drivers/dri/i965/brw_draw_upload.c
2009-12-31 09:02:27 -07:00
Vinson Lee
31d1822473
llvmpipe: Silence compiler warnings.
2009-12-28 00:44:30 -08:00
José Fonseca
080703e398
llvmpipe: Treat state changes systematically.
...
That is:
- check for no op
- update/flush draw module
- update bound state and mark it as dirty
In particular flushing the draw module is important since it may contain
unflushed primitives which would otherwise be draw with wrong state.
2009-12-26 21:06:46 +00:00
Zack Rusin
89d8577fb3
gallium: add geometry shader support to gallium
2009-12-25 05:52:16 -05:00
Roland Scheidegger
1278507e3b
gallium: adapt drivers to pipe_constant_buffer removal
2009-12-24 00:55:49 +01:00
José Fonseca
2584c5bd25
llvmpipe: add LP_DEBUG env var
...
Cherry-picked from dec35d04ae
.
2009-12-16 15:06:17 +00:00
José Fonseca
4ae3e88dc9
llvmpipe: Use assert instead of abort. Only verify functions on debug builds.
2009-11-24 14:25:21 +00:00
José Fonseca
2282fb7710
llvmpipe: Use the generic conversion routine for depths.
...
This allows for z32f depth format to work correctly.
2009-11-24 14:25:20 +00:00
José Fonseca
88e08d7c6d
llvmpipe: Human friendlier sampler state dump.
2009-10-25 12:27:14 +00:00
José Fonseca
5fcb75758c
llvmpipe: Dump the sampler state of the shader key.
2009-10-25 11:49:01 +00:00
José Fonseca
69588d7ed5
llvmpipe: Eliminate constant mapping/unmapping.
2009-10-09 11:29:33 +01:00
Keith Whitwell
4456006ba6
gallium: remove depth.occlusion_count flag
...
This was redundant as drivers can just keep track of whether they are
inside a begin/end query pair. We want to add more query types later
and also support nested queries, none of which map well onto a flag like
this. No driver appeared to be using the flag.
2009-10-01 14:34:23 +01:00
José Fonseca
a02ecdf8c2
llvmpipe: First verify LLVM IR, only then run optimizing passes.
2009-09-29 17:28:15 +01:00
José Fonseca
b4835ea03d
llvmpipe: Make lp_type a regular union.
...
Union not worth the hassle of violating C99 or adding a name to
the structure.
2009-09-14 11:05:38 +01:00
José Fonseca
6a405b4a21
llvmpipe: Fix alpha test.
2009-09-10 13:35:39 +01:00
José Fonseca
4c3a48ad0c
llvmpipe: Mask out color channels not present in the color buffer.
2009-09-10 12:37:44 +01:00
José Fonseca
c3c80c5c22
llvmpipe: Skip blending when mask is zero.
...
This increases quake3 timedemo fps another 10%.
2009-09-10 12:01:42 +01:00
José Fonseca
8e6b925d2a
llvmpipe: Proper control flow builders.
...
New control flow helper functions which keep track of all variables
and generate the correct Phi functions.
This re-enables skipping the fs execution of quads masked out by
the rasterizer, early z testing, and kill opcode.
This yields a performance improvement of around 20%.
2009-09-10 11:44:03 +01:00
José Fonseca
cdbbcdf3bd
llvmpipe: Include zsbuf's format in the fragment shader key.
2009-09-09 21:48:50 +01:00
José Fonseca
e4c76c02f7
llvmpipe: Code generate the texture sampling inside the shader.
...
Finally a substantial performance improvement: framerates of apps using
texturing tripled, and furthermore, enabling/disabling texturing only
affects around 15% of the framerate, which means the bottleneck is now
somewhere else.
Generated texture sampling code is not complete though -- we always
sample from the base level -- so final figures will be different.
2009-09-07 15:02:08 +01:00
José Fonseca
8be72bb764
llvmpipe: Further abstract the texture sampling generation from TGSI translation.
2009-09-07 15:02:06 +01:00
José Fonseca
c40eddd294
llvmpipe: Isolate sampling from TGSI translation.
2009-08-29 09:21:42 +01:00
José Fonseca
8aa62cead7
llvmpipe: Fix shader variant key construction.
...
Fixes the blank screen on non-64bit mode.
2009-08-29 09:21:42 +01:00
José Fonseca
f85c5f8621
llvmpipe: Factor out and optimize the input interpolation.
...
Special attention is given to the interpolation of side by side quads.
Multiplications are made only for the first quad. Interpolation of
inputs for posterior quads are done exclusively with additions, and
perspective divide if necessary.
2009-08-29 09:21:41 +01:00
José Fonseca
03180dca7a
llvmpipe: Pre-declare fetch_texel.
2009-08-29 09:21:41 +01:00
José Fonseca
635c37e118
llvmpipe: Pass the alpha ref value and blend color in the jit context.
2009-08-29 09:21:41 +01:00
José Fonseca
c022e15d1e
llvmpipe: Pass fragment context to generated function in a single structure.
2009-08-29 09:21:41 +01:00
José Fonseca
08dd41fd68
llvmpipe: Centralize the C <-> JIT interfaces in one place.
2009-08-29 09:21:41 +01:00
José Fonseca
97b4681d7e
llvmpipe: Drop blend derived state.
...
Already included in the fragment shader.
2009-08-29 09:21:41 +01:00
José Fonseca
5811ed87d7
llvmpipe: Add a bunch of comments.
...
Description/rationale/to-do items, while I still remember them...
2009-08-29 09:21:40 +01:00
José Fonseca
3f36f4b051
llvmpipe: Split off vs stuff from lp_state_fs.c.
...
lp_state_fs.c is already too big without it.
2009-08-29 09:21:40 +01:00
José Fonseca
9897180279
llvmpipe: Generate the fragment pipeline into a single function.
...
Still hackish. Will document and optimize later.
2009-08-29 09:21:40 +01:00
José Fonseca
3d7a88674f
llvmpipe: Early depth testing.
2009-08-29 09:21:39 +01:00
José Fonseca
e3b38e5ec1
llvmpipe: Code generate the depth test, and include in the shader.
...
Only 32bit depth/stencil surfaces supported for now. Stencil ops not
implemented yet.
2009-08-29 09:21:38 +01:00
José Fonseca
c0472f9c34
llvmpipe: Centralize mask update logic.
2009-08-29 09:21:37 +01:00
José Fonseca
9ae47069b4
llvmpipe: Code generate alpha testing and append to generated fragment shader.
2009-08-29 09:21:37 +01:00
Brian Paul
03b388e1c9
llvmpipe: frag shader comments
2009-08-29 09:21:36 +01:00
José Fonseca
7c2dc3faa8
llvmpipe: Code generate the position interpolation.
2009-08-29 09:21:35 +01:00
José Fonseca
39352b3443
llvmpipe: Put color/depth directly into the quad structure.
2009-08-29 09:21:35 +01:00
José Fonseca
5999ebfb69
llvmpipe: Debug helper function to name llvm intermediate values.
2009-08-29 09:21:34 +01:00
José Fonseca
7821664b15
llvmpipe: Implement KIL.
2009-08-29 09:21:33 +01:00
José Fonseca
818d444e12
llvmpipe: Disassemble generated x86 code.
2009-08-29 09:21:32 +01:00
José Fonseca
a7f9b915ae
llvmpipe: Shader function arguments don't alias.
2009-08-29 09:21:32 +01:00
José Fonseca
b6f43b445b
llvmpipe: Pass the interpolation factors as scalars.
2009-08-29 09:21:32 +01:00
José Fonseca
73af91e938
llvmpipe: Eliminate non-LLVM fs execution paths.
2009-08-29 09:21:32 +01:00
José Fonseca
c9a5930fe4
llvmpipe: Rename preprocessor symbols too.
2009-08-29 09:21:16 +01:00