• Home
  • History
  • Annotate
  • only in /external/mesa3d/src/gallium/auxiliary/draw/
History log of /external/mesa3d/src/gallium/auxiliary/draw/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9ae069dbbd6814fc86ad371e439b7750b938408a 05-Dec-2012 Brian Paul <brianp@vmware.com> draw: set precalc_flat flag for AA lines too

Fixes flat shading for AA lines. demos/src/trivial/line-smooth is a
test case which hits this.

Note: This is a candidate for the stable branches.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
(cherry picked from commit d2c7fe5389e40871a7e339dc0ecaa7f570f851ed)
raw_pipe_validate.c
4a0423e1bd2ba287f7c0599d1a9b80d9206f14cb 16-Nov-2012 José Fonseca <jfonseca@vmware.com> draw: Properly limit vertex buffer fetches on draw arrays.

We need to clamp vertex buffer fetch based on its size, not based on the
user specified max index hint.

This matches draw_pt_fetch_run() above.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 7da3a947c72111dfb605781be6c0d61423b56e76)
raw_pt_fetch.c
de5e3774d04da66dbf85ca0705de38b7942943fe 30-Oct-2012 Marek Olšák <maraeo@gmail.com> draw: fix assertion failure in draw_emit_vertex_attr

This is a regression since b3921e1f53833420e0a0fd581f7417.

The array stores VS outputs, not FS inputs.
Now llvmpipe can do 32 varyings too.

NOTE: This is a candidate for the stable branches.

Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 183e122bdfe27f875c3c121964484dae9587c051)
raw_vertex.h
38d1191f4133dc427fccdbaec61bef33201c2dcc 14-Sep-2012 Marek Olšák <maraeo@gmail.com> draw: fix non-indexed draw calls if there's an index buffer

pipe_draw_info::indexed determines if it should be indexed and not
the presence of an index buffer.

This fixes crashes in r300g.

NOTE: This is a candidate for the stable branches.

Tested-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
(cherry picked from commit 2988fa940e1d8a4531fddff4d554eec1e6e04474)
raw_context.c
raw_private.h
raw_pt.c
3e3f99277df947a96029580dc4e66ae38a93f004 24-Aug-2012 José Fonseca <jfonseca@vmware.com> draw: Fix regression in draw_set_sampler(_views).

draw->samplers(_views) now has PIPE_SHADER_TYPES elements, instead of
PIPE_MAX_SAMPLERS as before.

Also, shader_stage must be less than PIPE_SHADER_TYPES to prevent buffer
overflow.

Trivial.
raw_context.c
0d308ef8feb081bedd12e01b270278e5f0de8e5a 16-Aug-2012 Brian Paul <brianp@vmware.com> gallium/draw: move misplaced brace
raw_context.c
cab2fed135bc1edf7b65ddca3236020638427061 10-Aug-2012 Brian Paul <brianp@vmware.com> gallium: remove PIPE_MAX_VERTEX/GEOMETRY_SAMPLERS #define

PIPE_MAX_SAMPLERS, PIPE_MAX_VERTEX_SAMPLERS and PIPE_MAX_GEOMETRY_SAMPLERS
were all defined to the same value (16).

In various places we're creating arrays such as
sampler_views[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS] so we were assuming
the same number of max samplers for all shader stages anyway.

Of course, drivers are still free to advertise different numbers of max
samplers for different shaders.
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
a2c1df4c9a7375bc5306e8cfd07a9f7087759a96 10-Aug-2012 Brian Paul <brianp@vmware.com> draw: index samplers and sampler_view state by shader type

So that we can handle GS state and other types of shaders in the future.
raw_context.c
raw_llvm.c
raw_private.h
bef196c7929606bb8c7e9c06fe83a90fc0d95f09 10-Aug-2012 Brian Paul <brianp@vmware.com> draw: move tgsi-related state into a tgsi sub-struct

To better organize things a bit.
raw_context.c
raw_gs.c
raw_private.h
raw_vs.c
raw_vs_exec.c
df87fb59136eb302d72eac4b58fd8ffb25989ed5 10-Aug-2012 Brian Paul <brianp@vmware.com> gallium: add a shader stage/type param to some draw functions

To prepare for geometry shader texture support in the draw module.
Note: we still only handle the vertex shader case.
raw_context.c
raw_context.h
5bce0b51755e465d6aa9077df2167018d2e5150c 03-Aug-2012 Vinson Lee <vlee@freedesktop.org> draw: Ensure channel in convert_to_soa is initialized.

Fixes uninitialized pointer read defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
3469715a8a171512cf9b528702e70393f01c6041 13-Jul-2012 José Fonseca <jfonseca@vmware.com> gallivm,draw,llvmpipe: Support wider native registers.

Squashed commit of the following:

commit 7acb7b4f60dc505af3dd00dcff744f80315d5b0e
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Jul 9 17:46:31 2012 +0100

draw: Don't use dynamically sized arrays.

Not supported by MSVC.

commit 5810c28c83647612cb372d1e763fd9d7780df3cb
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Jul 9 17:44:16 2012 +0100

gallivm,llvmpipe: Don't use expressions with PIPE_ALIGN_VAR().

MSVC doesn't accept exceptions in _declspec(align(...)). Use a
define instead.

commit 8aafd1457ba572a02b289b3f3411e99a3c056072
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Jul 9 17:41:56 2012 +0100

gallium/util: Make u_cpu_detect.h header C++ safe.

commit 5795248350771f899cfbfc1a3a58f1835eb2671d
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Jul 2 12:08:01 2012 +0100

gallium/util: Add ULL suffix to large constants.

As suggested by Andy Furniss: it looks like some old gcc versions
require it.

commit 4c66c22727eff92226544c7d43c4eb94de359e10
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Jun 29 13:39:07 2012 +0100

gallium/util: Truly disable INF/NAN tests on MSVC.

Thanks to Brian for spotting this.

commit 8bce274c7fad578d7eb656d9a1413f5c0844c94e
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Jun 29 13:39:07 2012 +0100

gallium/util: Disable INF/NAN tests on MSVC.

Somehow they are not recognized as constants.

commit 6868649cff8d7fd2e2579c28d0b74ef6dd4f9716
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jul 5 15:05:24 2012 +0200

gallivm: Cleanup the 2 x 8 float -> 16 ub special path in lp_build_conv.

No behaviour change intended, like 7b98455fb40c2df84cfd3cdb1eb7650f67c8a751.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 5147a0949c4407e8bce9e41d9859314b4a9ccf77
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jul 5 14:28:19 2012 +0200

gallivm: (trivial) fix issues with multiple-of-4 texture fetch

Some formats can't handle non-multiple of 4 fetches I believe, but
everything must support length 1 and multiples of 4.
So avoid going to scalar fetch (which is very costly) just because length
isn't 4.
Also extend the hack to not use shift with variable count for yuv formats to
arbitrary length (larger than 1) - doesn't matter how many elements we
have we always want to avoid it unless we have variable shift count
instruction (which we should get with avx2).

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 87ebcb1bd71fa4c739451ec8ca89a7f29b168c08
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jul 4 02:09:55 2012 +0200

gallivm: (trivial) fix typo for wrap repeat mode in linear filtering aos code

This would lead to bogus coordinates at the edges.
(undetected by piglit because this path is only taken for block-based
formats).

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit 3a42717101b1619874c8932a580c0b9e6896b557
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue Jul 3 19:42:49 2012 +0100

gallivm: Fix TGSI integer translation with AVX.

commit d71ff104085c196b16426081098fb0bde128ce4f
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Jun 29 15:17:41 2012 +0100

llvmpipe: Fix LLVM JIT linear path.

It was not working properly because it was looking at the JIT function
before it was actually compiled.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

commit a94df0386213e1f5f9a6ed470c535f9688ec0a1b
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Jun 28 18:07:10 2012 +0100

gallivm: Refactor lp_build_broadcast(_scalar) to share code.

Doesn't really change the generated assembly, but produces more compact IR,
and of course, makes code more consistent.

Reviewed-by: Brian Paul <brianp@vmware.com>

commit 66712ba2731fc029fa246d4fc477d61ab785edb5
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jun 27 17:30:13 2012 +0100

gallivm: Make LLVMContextRef a singleton.

There are any places inside LLVM that depend on it. Too many to attempt
to fix.

Reviewed-by: Brian Paul <brianp@vmware.com>

commit ff5fb7897495ac263f0b069370fab701b70dccef
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 28 18:15:27 2012 +0200

gallivm: don't use 8-wide texture fetch in aos path

This appears to be a slight loss usually.
There are probably several reasons for that:
- fetching itself is scalar
- filtering is pure int code hence needs splitting anyway, same
for the final texel offset calculations
- texture wrap related code, which can be done 8-wide, is slightly more
complex with floats (with clamp_to_edge) and float operations generally
more costly hence probably not much faster overall
- the code needed to split when encountering different mip levels for the
quads, adding complexity
So, just split always for aos path (but leave it 8-wide for soa, since we
do 8-wide filtering there when possible).
This should certainly be revisited if we'd have avx2 support.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit ce8032b43dcd8e8d816cbab6428f54b0798f945d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 27 18:41:19 2012 +0200

gallivm: (trivial) don't extract fparts variable if not needed

Did not have any consequences but unnecessary.

commit aaa9aaed8f80dc282492f62aa583a7ee23a4c6d5
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 27 18:09:06 2012 +0200

gallivm: fix precision issue in aos linear int wrap code

now not just passes at a quick glance but also with piglit...
If we do the wrapping with floats, we also need to set the
weights accordingly. We can potentially end up with different
(integer) coordinates than what the integer calculations would
have chosen, which means the integer weights calculated previously
in this case are completely wrong. Well at least that's what I think
happens, at least recalculating the weights helps.
(Some day really should refactor all the wrapping, so we do whatever is
fastest independent of 16bit int aos or 32bit float soa filtering.)

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit fd6f18588ced7ac8e081892f3bab2916623ad7a2
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jun 27 11:15:53 2012 +0100

gallium/util: Fix parsing of options with underscore.

For example

GALLIVM_DEBUG=no_brilinear

which was being parsed as two options, "no" and "brilinear".

commit 09a8f809088178a03e49e409fa18f1ac89561837
Author: James Benton <jbenton@vmware.com>
Date: Tue Jun 26 15:00:14 2012 +0100

gallivm: Added a generic lp_build_print_value which prints a LLVMValueRef.

Updated lp_build_printf to share common code.
Removed specific lp_build_print_vecX.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit e59bdcc2c075931bfba2a84967a5ecd1dedd6eb0
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed May 16 15:00:23 2012 +0100

draw,llvmpipe: Avoid named struct types on LLVM 3.0 and later.

Starting with LLVM 3.0, named structures are meant not for debugging, but
for recursive data types, previously also known as opaque types.

The recursive nature of these types leads to several memory management
difficulties. Given that we don't actually need recursive types, avoid
them altogether.

This is an attempt to address fdo bugs 41791 and 44466. The issue is
somewhat random so there's no easy way to check how effective this is.

Cherry-picked from 9af1ba565dfd5cef9ee938bb7c04767d14878fbf

commit df6070f618a203c7a876d984c847cde4cbc26bdb
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 27 14:42:53 2012 +0200

gallivm: (trivial) fix typo in faster aos linear int wrap code

no longer crashes, now REALLY tested.

commit d8f98dce452c867214e6782e86dc08562643c862
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 26 18:20:58 2012 +0200

llvmpipe: (trivial) remove bogus optimization for float aos repeat wrap

This optimization for nearest filtering on the linear path generated
likely bogus results, and the int path didn't have any optimizations
there since the only shader using force_nearest apparently uses
clamp_to_edge not repeat wrap anyway.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit c4e271a0631087c795e756a5bb6b046043b5099d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 26 23:01:52 2012 +0200

gallivm: faster repeat wrap for linear aos path too

Even if we already have scaled integer coords, it's way faster to use
the original float coord (plus some conversions) rather than use URem.
The choice of what to do for texture wrapping is not really tied to int
aos or float soa filtering though for some modes there can be some gains
(because of easier weight calculations).

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 1174a75b1806e92aee4264ffe0ffe7e70abbbfa3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 26 14:39:22 2012 +0200

gallivm: improve npot tex wrap repeat in linear soa path

URem gets translated into series of scalar divisions so
just about anything else is faster.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit f849ffaa499ed96fa0efd3594fce255c7f22891b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 26 00:40:35 2012 +0100

gallivm: (trivial) fix near-invisible shift-space typo

I blame the keyboard.

commit 5298a0b19fe672aebeb70964c0797d5921b51cf0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 25 16:24:28 2012 +0200

gallivm: add new intrinsic helper to deal with arbitrary vector length

This helper will split vectors which are too large for the hw, or expand
them if they are too small, so a caller of a function using intrinsics which
uses such sizes need not split (or expand) the vectors manually and the
function will still use the intrinsic instead of dropping back to generic
llvm code. It can also accept scalars for use with pseudo-vector intrinsics
(only useful for float arguments, all x86 scalar simd float intrinsics use
4vf32).
Only used for lp_build_min/max() for now (also added the scalar float case
for these while there). (Other basic binary functions could use it easily,
whereas functions with a different interface would need different helpers.)
Expanding vectors isn't widely used, because we always try to use
build contexts with native hw vector sizes. But it might (or not) be nicer
if this wouldn't need to be done, the generated code should in theory stay
the same (it does get hit by lp_build_rho though already since we
didn't have a intrinsic for the scalar lp_build_max case before).

v2: incorporated Brian's feedback, and also made the scalar min/max case work
instead of crash (all scalar simd float intrinsics take 4vf32 as argument,
probably the reason why it wasn't used before).
Moved to lp_bld_intr based on José's request, and passing intrinsic size
instead of length.
Ideally we'd derive the source type info from the passed in llvm value refs
and process some llvmtype return type so we could handle intrinsics where
the source and destination type isn't the same (like float/int conversions,
packing instructions) but that's a bit too complicated for now.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 01aa760b99ec0b2dc8ce57a43650e83f8c1becdf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 25 16:19:18 2012 +0200

gallivm: (trivial) increase max code size for shader disassembly

64kB was just short of what I needed (which caused a crash) hence
increase to 96kB (should probably be smarter about that).

commit 74aa739138d981311ce13076388382b5e89c6562
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 25 11:53:29 2012 +0100

gallivm: simplify aos float tex wrap repeat nearest

just handle pot and npot the same. The previous pot handling
ended up with exactly the same instructions plus 2 more (leave it
in the soa path though since it is probably still cheaper there).
While here also fix a issue which would cause a crash after an assert.

commit 0e1e755645e9e49cfaa2025191e3245ccd723564
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 25 11:29:24 2012 +0100

gallivm: (trivial) skip floor rounding in ifloor when not signed

This was only done for the non-sse41 case before, but even with
sse41 this is obviously unnecessary (some callers already call
itrunc in this case anyway but some might not).

commit 7f01a62f27dcb1d52597b24825931e88bae76f33
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 25 11:23:12 2012 +0100

gallivm: (trivial) fix bogus comments

commit 5c85be25fd82e28490274c468ce7f3e6e8c1d416
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Jun 20 11:51:57 2012 +0100

translate: Free elt8_func/elt16_func too.

These were leaking.

Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>

commit 0ad498f36fb6f7458c7cffa73b6598adceee0a6c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 19 15:55:34 2012 +0200

gallivm: fix bug for tex wrap repeat with linear sampling in aos float path

The comparison needs to be against length not length_minus_one, otherwise
the max texel is never chosen (for the second coordinate).

Fixes piglit texwrap-1D-npot-proj (and 2D/3D versions).

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit d1ad65937c5b76407dc2499b7b774ab59341209e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Jun 19 16:13:43 2012 +0200

gallivm: simplify soa tex wrap repeat with npot textures and no mip filtering

Similar to what is already done in aos sampling for the float path (but not
the int path since we don't get normalized float coordinates there).
URem is expensive and the calculation is done trivially with
normalized floats instead (at least with sse41-capable cpus).
(Some day should probably do the same for the mip filter path but it's much
more complicated there hence the gain is smaller.)

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit e1e23f57ba9b910295c306d148f15643acc3fc83
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 18 20:38:56 2012 +0200

llvmpipe: (trivial) remove duplicated function declaration

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 07ca57eb09e04c48a157733255427ef5de620861
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 18 20:37:34 2012 +0200

llvmpipe: destroy setup variants on context destruction

lp_delete_setup_variants() used to be called in garbage collection,
but this no longer exists hence the setup shaders never got freed.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit ed0003c633859a45f9963a479f4c15ae0ef1dca3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 18 16:25:29 2012 +0100

gallivm: handle different ilod parts for multiple quad sampling

This fixes filtering when the integer part of the lod is not the same
for all quads. I'm not fully convinced of that solution yet as it just
splits the vector if the levels to be sampled from are different.
But otherwise we'd need to do things like some minify steps, and getting
mip level base address separately anyway hence it wouldn't really look
like much of a win (and making the code even more complex).
This should now give identical results to single quad sampling.

commit 8580ac4cfc43a64df55e84ac71ce1a774d33c0d2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 14 18:14:47 2012 +0200

gallivm: de-duplicate sample code common to soa and aos sampling

There doesn't seem to be any reason why this code dealing with cube face
selection, lod and mip level calculation is separate in aos and
soa sampling, and I am sick of having it to change in both places.

commit fb541e5f957408ce305b272100196f1e12e5b1e8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 14 18:15:41 2012 +0200

gallivm: do mip filtering with per quad lod_fpart

This gives better results for mip filtering, though the generated code might
not be optimal. For now it also creates some artifacts if the lod_ipart isn't
the same for all quads, since instead of using the same mip weight for all
quads as previously (which just caused non-smooth gradients) this now will
use the right weights but with the wrong mip level in this case (can easily
be seen with things like texfilt, mipmap_tunnel).
v2: use logic helper suggested by José, and fix issue with negative lod_fpart
values

commit f1cc84eef7d826a20fab6cd8ccef9a275ff78967
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 13 18:35:25 2012 +0200

gallivm: (trivial) fix bogus assert in lp_build_unpack_broadcast_aos_scalars

commit 7c17dbae8ae290df9ce0f50781a09e8ed640c044
Author: James Benton <jbenton@vmware.com>
Date: Tue Jun 12 12:11:14 2012 +0100

util: Reimplement half <-> float conversions.

Removed u_half.py used to generate the table for previous method.

Previous implementation of float to half conversion was faulty for
denormalised and NaNs and would require extra logic to fix,
thus making the speedup of using tables irrelevant.

commit 7762f59274070e1dd4b546f5cb431c2eb71ae5c3
Author: James Benton <jbenton@vmware.com>
Date: Tue Jun 12 12:12:16 2012 +0100

tests: Updated tests to properly handle NaN for half floats.

commit fa94c135aea5911fd93d5dfb6e6f157fb40dce5e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 11 18:33:10 2012 +0200

gallivm: do mip level calculations per quad

This is the final piece which shouldn't change the rendering output yet.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 23cbeaddfe03c09ca18c45d28955515317ffcf4c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 9 00:54:21 2012 +0200

gallivm: do per-quad cube face selection

Doesn't quite fix the piglit cubemap test (not sure why actually)
but doing per-quad face selection is doing the right thing and
definitely an improvement.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit abfb372b3702ac97ac8b5aa80ad1b94a2cc39d33
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 11 18:22:59 2012 +0200

gallivm: do all lod calculations per quad

Still no functional change but lod is now converted to scalar after
lod calculations.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 519368632747ae03feb5bca9c655eccbc5b751b4
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 16:46:10 2012 +0100

gallivm: Added support for half-float to float conversion in lp_build_conv.

Updated various utility functions to support this change.

commit 135b4d683a4c95f7577ba27b9bffa4a6fbd2c2e7
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 16:02:46 2012 +0100

gallivm: Added function for half-float to float conversion.

Updated lp_build_format_aos_array to support half-float source.

commit 37d648827406a20c5007abeb177698723ed86673
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 14:55:18 2012 +0100

util: Updated u_format_tests to rigidly test half-float boundary values.

commit 2ad18165d96e578aa9046df7c93cb1c3284d8c6b
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 14:54:16 2012 +0100

llvmpipe: Updated lp_test_format to properly handle Inf/NaN results.

commit 78740acf25aeba8a7d146493dd5c966e22c27b73
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 14:53:30 2012 +0100

util: Added functions for checking NaN / Inf for double and half-floats.

commit 35e9f640ae01241f9e0d67fe893bbbf564c05809
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu May 24 21:05:13 2012 +0200

gallivm: Fix calculating rho for 3d textures for the single-quad case

Discovered by accident, this looks like a very old typo bug.

commit fc1220c636326536fd0541913154e62afa7cd1d8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu May 24 21:04:59 2012 +0200

gallivm: do calcs per-quad in lp_build_rho

Still convert to scalar at the end of the function.

commit 50a887ffc550bf310a6988fa2cea5c24d38c1a41
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon May 21 23:21:50 2012 +0200

gallivm: (trivial) return scalar in lp_build_extract_range for length 1 vectors

Our type system on top of llvm's one doesn't generally support vectors of
length 1, instead using scalars. So we should return a scalar from this
function instead of having to bitcast the vector with length 1 later elsewhere.

commit 80c71c621f9391f0f9230460198d861643324876
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 17:49:15 2012 +0100

draw: Fixed bad merge error

commit c47401cfad0c9167de20ff560654f533579f452c
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 15:29:30 2012 +0100

draw: Updated store_clip to store whole vectors instead of individual elements.

commit 2d9c1ad74b0b0b41861fffcecde39f09cc27f1cf
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 15:28:32 2012 +0100

gallivm: Added lp_build_fetch_rgba_aos_array.

A version of lp_build_fetch_rgba_aos which is targeted at simple array formats.

Reads the whole vector from memory in one, instead of reading each element
individually.

Tested with mesa tests and demos.

commit ff7805dc2b6ef6d8b11ec4e54aab1633aef29ac8
Author: James Benton <jbenton@vmware.com>
Date: Tue May 22 15:27:40 2012 +0100

gallivm: Added lp_build_pad_vector.

This function pads a vector with undef to a desired length.

commit 701f50acef24a2791dabf4730e5b5687d6eb875d
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 17:27:19 2012 +0100

util: Added util_format_is_array.

This function checks whether a format description is in a simple array format.

commit 5e0a7fa543dcd009de26f34a7926674190fa6246
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 19:13:47 2012 +0100

draw: Removed draw_llvm_translate_from and draw/draw_llvm_translate.c.

This is "replaced" by adding an optimised path in lp_build_fetch_rgba_aos
in an upcoming patch.

commit 8c886d6a7dd3fb464ecf031de6f747cb33e5361d
Author: James Benton <jbenton@vmware.com>
Date: Wed May 16 15:02:31 2012 +0100

draw: Modified store_aos to write the vector as one, not individual elements.

commit 37337f3d657e21dfd662c7b26d61cb0f8cfa6f17
Author: James Benton <jbenton@vmware.com>
Date: Wed May 16 14:16:23 2012 +0100

draw: Changed aos_to_soa to use lp_build_transpose_aos.

commit bd2b69ce5d5c94b067944d1dcd5df9f8e84548f1
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 19:14:27 2012 +0100

draw: Changed soa_to_aos to use lp_build_transpose_aos.

commit 0b98a950d29a116e82ce31dfe7b82cdadb632f2b
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 18:57:45 2012 +0100

gallivm: Added lp_build_transpose_aos which converts between aos and soa.

commit 69ea84531ad46fd145eb619ed1cedbe97dde7cb5
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 18:57:01 2012 +0100

gallivm: Added lp_build_interleave2_half aimed at AVX unpack instructions.

commit 7a4cb1349dd35c18144ad5934525cfb9436792f9
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue May 22 11:54:14 2012 +0100

gallivm: Fix build on Windows.

MC-JIT not yet supported there.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

commit afd105fc16bb75d874e418046b80d9cc578818a1
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:17:26 2012 +0100

llvmpipe: Added a error counter to lp_test_conv.

Useful for keeping track of progress when fixing errors!

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit b644907d08c10a805657841330fc23db3963d59c
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:16:46 2012 +0100

llvmpipe: Changed known failures in lp_test_conv.

To comply with the recent fixes to lp_bld_conv.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit d7061507bd94f6468581e218e61261b79c760d4f
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:14:38 2012 +0100

llvmpipe: Added fixed point types tests to lp_test_conv.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit 146b3ea39b4726dbe125ac666bd8902ea3d6ca8c
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:26:35 2012 +0100

llvmpipe: Changed lp_test_conv src/dst alignment to be correct.

Now based on the define rather than a fixed number.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit f3b57441f834833a4b142a951eb98df0aa874536
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:06:44 2012 +0100

gallivm: Fixed erroneous optimisation in lp_build_min/max.

Previously assumed normalised was 0 to 1, but it can be -1 to 1
if type is signed.
Tested with lp_test_conv and lp_test_format, reduced errors.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit a0613382e5a215cd146bb277646a6b394d376ae4
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:04:49 2012 +0100

gallivm: Compensate for lp_const_offset in lp_build_conv.

Fixing a /*FIXME*/ to remove errors in integer conversion in lp_build_conv.
Tested using lp_test_conv and lp_test_format, reduced errors.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit a3d2bf15ea345bc8a0664f8f441276fd566566f3
Author: James Benton <jbenton@vmware.com>
Date: Fri May 18 16:01:25 2012 +0100

gallivm: Fixed overflow in lp_build_clamped_float_to_unsigned_norm.

Tested with lp_test_conv and lp_test_format, reduced errors.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit e7b1e76fe237613731fa6003b5e1601a2e506207
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon May 21 20:07:51 2012 +0100

gallivm: Fix build with LLVM 2.6

Trivial, and useful.

commit d3c6bbe5c7f5ba1976710831281ab1b6a631082d
Author: José Fonseca <jfonseca@vmware.com>
Date: Tue May 15 17:15:59 2012 +0100

gallivm: Enable MCJIT/AVX with vanilla LLVM 3.1.

Add the necessary C++ glue, so that we don't need any modifications
to the soon to be released LLVM 3.1.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

commit 724a019a14d40fdbed21759a204a2bec8a315636
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon May 14 22:04:06 2012 +0100

gallivm: Use HAVE_LLVM 0x0301 consistently.

commit af6991e2a3868e40ad599b46278551b794839748
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon May 14 21:49:06 2012 +0100

gallivm: Add MCRegisterInfo.h to silence benign warnings about missing implementation.

Trivial.

commit 6f8a1d75458daae2503a86c6b030ecc4bb494e23
Author: Vinson Lee <vlee@freedesktop.org>
Date: Mon Apr 2 22:14:15 2012 -0700

gallivm: Pass in a MCInstrInfo to createMCInstPrinter on llvm-3.1.

llvm-3.1svn r153860 makes MCInstrInfo available to the MCInstPrinter.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit 62555b6ed8760545794f83064e27cddcb3ce5284
Author: Vinson Lee <vlee@freedesktop.org>
Date: Tue Mar 27 21:51:17 2012 -0700

gallivm: Fix method overriding in raw_debug_ostream.

Use matching type qualifers to avoid method hiding.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit 6a9bd784f4ac68ad0a731dcd39e5a3c39989f2be
Author: Vinson Lee <vlee@freedesktop.org>
Date: Tue Mar 13 22:40:52 2012 -0700

gallivm: Fix createOProfileJITEventListener namespace with llvm-3.1.

llvm-3.1svn r152620 refactored the OProfile profiling code.
createOProfileJITEventListener was moved from the llvm namespace to the
llvm::JITEventListener namespace.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit b674955d39adae272a779be85aa1bd665de24e3e
Author: Vinson Lee <vlee@freedesktop.org>
Date: Mon Mar 5 22:00:40 2012 -0800

gallivm: Pass in a MCRegisterInfo to MCInstPrinter on llvm-3.1.

llvm-3.1svn r152043 changes createMCInstPrinter to take an additional
MCRegisterInfo argument.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit 11ab69971a8a31c62f6de74905dbf8c02884599f
Author: Vinson Lee <vlee@freedesktop.org>
Date: Wed Feb 29 21:20:53 2012 -0800

Revert "gallivm: Change getExtent and readByte to non-const with llvm-3.1."

This reverts commit d5a6c172547d8964f4d4bb79637651decaf9deee.

llvm-3.1svn r151687 makes MemoryObject accessor members const again.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit 339960c82d2a9f5c928ee9035ed31dadb7f45537
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon May 14 16:19:56 2012 +0200

gallivm: (trivial) fix assertion failure for mipmapped 1d textures

In lp_build_rho, we may end up with a 1-element vector (for mipmapped 1d
textures), but in this case we require the type to be a non-vector type,
so need a cast.

commit 9d73edb727bd6d196030dc3026b7bf0c574b3e19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu May 10 18:12:07 2012 +0200

gallivm: prepare for per-quad lod calculations for large vectors

to be able to handle multiple quads at once in texture sampling and still
do lod calculations per quad, it is necessary to get the per-quad derivatives
into the lp_build_rho function.
Until now these derivative values were just scalars, which isn't going to work.
So we now use vectors, and since the interface needs to change we also do some
different (slightly more efficient) packing of the values.
For 8-wide vectors the packed derivative values for 3 coords would look like
this, this scales to a arbitrary (multiple of 4) vector size:
ds1dx ds1dy dt1dx dt1dy ds2dx ds2dy dt2dx dt2dy
dr1dx dr1dy _____ _____ dr2dx dr2dy _____ _____
The second vector will be unused for 1d and 2d textures.
To facilitate future changes the derivative values are put into a struct, since
quite some functions just pass these values through.
The generated code seems to be very slightly better for 2d textures (with
4-wide vectors) than before with sse2 (if you have a cpu with physical 128bit
simd units - otherwise it's probably not a win).
v2: suggestions from José, rename variables, add comments, use swizzle helper

commit 0aa21de0d31466dac77b05c97005722e902517b8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu May 10 18:10:31 2012 +0200

gallivm: add undefined swizzle handling to lp_build_swizzle_aos

This is useful for vectors with "holes", it lets llvm choose the most
efficient shuffle instructions if some elements aren't needed without having to
worry what elements to manually pick otherwise.

commit 00faf3f370e7ce92f5ef51002b0ea42ef856e181
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri May 4 17:25:16 2012 +0100

gallivm: Get the LLVM IR optimization passes before JIT compilation.

MC-JIT engine compiles the module immediately on creation, so the optimization
passes were being run too late.

So now we create a target data layout from a string, that matches the
ABI parameters reported by the compiler.

The backend optimization passes were always been run, so the performance
improvement is modest (3% on multiarb mesa demo).

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>

commit 40a43f4e2ce3074b5ce9027179d657ebba68800a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed May 2 16:03:54 2012 +0200

gallivm: (trivial) fix wrong define used in lp_build_pack2

should fix stack-smashing crashes.

commit e6371d0f4dffad4eb3b7a9d906c23f1c88a2ab9e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Apr 30 21:25:29 2012 +0200

gallivm: add perf warnings when not using intrinsics with 256bit vectors

Helper functions using integer sse2 intrinsics could split the vectors with AVX
instead of using generic fallback (which should be faster).
We don't actually expect to hit these paths (hence don't fix them up to actually
do the vector splitting) so just emit warnings (for those functions where it's
obvious doing split/intrinsic is faster than using generic path).
Only emit warnings for 256bit vectors since we _really_ don't expect to hit
arbitrary large vectors which would affect a lot more functions.
The warnings do not actually depend on avx since the same logic applies to
plain sse2 too (but of course again there's _really_ no reason we should hit
these functions with 256bit vectors without avx).

commit 8a9ea701ea7295181e846c6383bf66a5f5e47637
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue May 1 20:37:07 2012 +0200

gallivm: split vectors manually for avx in lp_build_pack2 (v2)

There's 2 reasons for this:
First, there's a llvm bug (fixed in 3.1) which generates tons of byte
inserts/extracts otherwise, and second, more importantly, we want to use
pack intrinsics instead of shuffles.
We do this in lp_build_pack2 and not the calling code (aos sample path)
because potentially other callers might find that useful too, even if
for larger sequences of code using non-native vector sizes it might be
better to manually split vectors.
This should boost texture performance in the aos path considerably.
v2: fix issues with intrinsics types with old llvm

commit 27ac5b48fa1f2ea3efeb5248e2ce32264aba466e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue May 1 20:26:22 2012 +0200

llvmpipe: refactor lp_build_pack2 (v2)

prettify, and it's unnecessary to assert when there's no intrinsic due to
unsupported bit width - the shuffle path will work regardless.
In contrast lp_build_packs2, should only rely on lp_build_pack2 doing the
clamping for element sizes for which there is a sse2 intrinsic.
v2: fix bug spotted by Jose regarding the intrinsic type for packusdw
on old llvm versions.

commit ddf279031f0111de4b18eaf783bdc0a1e47813c8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue May 1 20:13:59 2012 +0200

gallivm: add src width check in lp_build_packs2()

not doing so would skip clamping even if no sse2 pack instruction is
available, which is incorrect (in theory only, such widths would also always
hit a (unnecessary) assertion in lp_build_pack2().

commit e7f0ad7fe079975eae7712a6e0c54be4fae0114b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 27 15:57:00 2012 +0200

gallivm: (trivial) fix crash-causing typo for npot textures with avx

commit 28a9d7f6f655b6ec508c8a3aa6ffefc1e79793a0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Apr 25 19:38:45 2012 +0200

gallivm: (trivial) remove code mistakenly added twice.

commit d5926537316f8ff67ad0a52e7242f7c5478d919b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Apr 24 21:16:15 2012 +0200

gallivm: add a new avx aos sample path (v2)

Try to avoid mixing float and int address calculations. This does texture wrap
modes with floats, and then the offset calculations still with ints (because
of lack of precision with floats, though we could do some effort to make it work
with not too large (16MB) textures).
This also handles wrap repeat mode with npot-sized textures differently than
either the old soa or aos int path (likely way faster but untested).
Otherwise the actual address wrap code is largely similar to the soa path (not
quite the same as this one also has some int code), it should get used by avx
soa sampling later as well but doesn't handle more complex address modes yet
(this will also have the benefit that we can use aos sampling path for all
texture address modes).
Generated code for that looks reasonable, but still does not split vectors
explicitly for fetch/filter which means still get hit by llvm (fixed upstream)
which generates hundreds of pinsrb/pextrb instead of two shuffles.
It is not obvious though if it's much of a win over just doing address calcs
4-wide but with ints, even if it is definitely much less instructions on avx.
piglit's texwrap seems to look exactly the same but doesn't test
neither the non-normalized nor the npot cases.
v2: fix comments, prettify based on Brian's and Jose's feedback.

commit bffecd22dea66fb416ecff8cffd10dd4bdb73fce
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 19 01:58:29 2012 +0200

gallivm: refactor aos lp_build_sample_image_nearest/linear

split them up to separate address calculations and fetching/filtering.
Need this for being able to do 8-wide float address calcs and 4-wide
fetch/filter later (for avx). Plus the functions were very big scary monsters
anyway (in particular lp_build_sample_image_linear).

commit a80b325c57529adddcfa367f96f03557725c4773
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Apr 16 17:17:18 2012 +0200

gallivm: fix lp_build_resize when truncating width but expanding vector size

Missed this case which I thought was impossible - the assertion for it was
right after the division by zero...
(AoS) texture sampling may ask us to do this, for things like 8 4x32int
vectors to 1 32x8int vector conversion (eventually, we probably don't want
this to happen).

commit f9c8337caa3eb185830d18bce8b95676a065b1d7
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Apr 14 18:00:59 2012 +0200

gallivm: fix cube maps with larger vectors

This makes the branchless cube face selection code work with larger vectors.
Because the complexity is quite high (cannot really be improved it seems,
per-face selection would reduce complexity a lot but this leads to errors
unless the derivatives are calculated all from the same face which almost
doubles the work to be done) it is still slower than the branching version,
hence only enable this with large vectors.
It doesn't actually do per-quad face selection yet (only makes sense with
matching lod selection, in fact it will select the same face for all pixels
based on the average of the first four pixels for now) but only different
shuffles are required to make it work (the branching version actually should
work with larger vectors too now thanks to the improved horizontal add but of
course it cannot be extended to really select the face per-quad unless doing
branching per quad).

commit 7780c58869fc9a00af4f23209902db7e058e8a66
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 30 21:11:12 2012 +0100

llvmpipe: (trivial) fix compiler warning

and also clarify comment regarding availability of popcnt instruction.

commit a266dccf477df6d29a611154e988e8895892277e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 30 14:21:07 2012 +0100

gallivm: remove unneeded members in lp_build_sample_context

Minor cleanup, the texture width, height, depth aren't accessed in their
scalar form anywhere. Makes it more obvious those values should probably be
fetched already vectorized (but this requires more invasive changes)...

commit b678c57fb474e14f05e25658c829fc04d2792fff
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Mar 29 15:53:55 2012 +0100

gallivm: add a helper for concatenating vectors

Similar to the extract_range helper intended to get around slow code generated
by llvm for 128bit insertelements.
Concatenating two 128bit vectors this way will result in a single vinsertf128
operation rather than two 64bit stores plus one 128bit load, though it might be
mildly useful for other purposes as well.

commit 415ff228bcd0cf5e44a4c15350a661f0f5520029
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 28 19:41:15 2012 +0100

gallivm: add a custom 2x8f->1x16ub avx conversion path

Similar to the existing 4x4f->1x16ub sse2 path, shaves off a couple
instructions (min/max mostly) because it relies on pack intrinsics clamping.

commit 78c08fc89f8fbcc6dba09779981b1e873e2a0299
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 28 18:44:07 2012 +0100

gallivm: add avx arithmetic intrinsics

Add all avx intrinsics for arithmetic functions (with the exception
of the horizontal add function which needs another look).
Seems to pass basic tests.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

commit a586caa2800aa5ce54c173f7c0d4fc48153dbc4e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 28 15:31:35 2012 +0100

gallivm: add avx logic intrinsics

Add the blend intrinsics for 8-wide float and 4-wide double vectors.
Since we lack 256bit int instructions these are used for int vectors as well,
though obviously not for byte or word element values.
The comparison intrinsics aren't extended for avx since these are only used
for pre-2.7 llvm versions.

commit 70275e4c13c89315fc2560a4c488c0e6935d5caf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 28 00:40:53 2012 +0100

gallivm: new helper function for extract shuffles.

Based on José's idea as we can need that in a couple places.
Note that such shuffles should not be used lightly, since data layout
of <4 x i8> is different to <16 x i8> for instance, hence might cause
data rearrangement.

commit 4d586dbae1b0c55915dda1759d2faea631c0a1c2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 27 18:27:25 2012 +0100

gallivm: (trivial) don't overallocate shuffle variable

using wrong define meant huge array...

commit 06b0ec1f6d665d98c135f9573ddf4ba04b2121ad
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 27 17:54:20 2012 +0100

gallivm: don't do per-element extract/insert for vector element resize

Instead of doing per-element extract/insert if the src vectors
and dst vector differ in total size (which generates atrocious code)
first change the src vectors size by using shuffles to destination
vector size.
We can still do better than that on AVX for packing to color buffer
(by exploiting pack intrinsics characteristics hence eleminating the
need for some clamps) but this already generates much better code.

v2: incorporate feedback from José, Keith and use shuffle instead of
bitcasts/extracts. Due to llvm deficiencies the latter cause all data
to get moved to GPRs and back in pieces (even though the data in the
regs actually stays the same...).

commit c9970d70e05f95d3f52fe7d2cd794176a52693aa
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 23 19:33:19 2012 +0000

gallivm: fix bug in simple position interpolation

Accidental use of position attribute instead of just pixel coordinates.
Caused failures in piglit glsl-fs-ceil and glsl-fs-floor.

commit d0b6fcdb008d04d7f73d3d725615321544da5a7e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 23 15:31:14 2012 +0000

gallivm: fix emission of ceil opcode

lp_build_ceil seems more appropriate than lp_build_trunc.
This seems to be never hit though someone performs some ceil
to floor magic.

commit d97fafed7e62ffa6bf76560a92ea246a1a26d256
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Mar 22 11:46:52 2012 +0000

gallivm: new vectorized path for cubemap calculations

should be faster when adapted to multiple quads as only selection masks need to be different.
The code is more or less a per-pixel version adapted to only do it per quad.
A per pixel version would be much simpler (could drop 2 selects, 6 broadcasts and the messy
horizontal add of 3 vectors at the expense of only 2 more absolute value instructions -
would also just work for arbitary large vectors).
This version doesn't yet work with larger vectors because the horizontal add isn't adjusted
to be able to work with 2x4 vectors (and also because face selection wouldn't be done per
quad just per block though that would be only a correctness issue just as with lod selection).
The downside is this code is quite a bit slower. On a Core2 it can be sped up by disabling the
hw blend instructions for selection and using logicop fallbacks instead, but it is still slower
than the old code, hence leave that in for now. Probably will chose one or the other version
based on vector length in the end.

commit b375fbb18a3fd46859b7fdd42f3e9908ea4ff9a3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 21 14:42:29 2012 +0000

gallivm: fix optimized occlusion query intrinsic name

commit a9ba0a3b611e48efbb0e79eb09caa85033dbe9a2
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Mar 21 16:19:43 2012 +0000

draw,gallivm,llvmpipe: Call gallivm_verify_function everywhere.

commit f94c2238d2bc7383e088b8845b7410439a602071
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 20 18:54:10 2012 +0000

gallivm: optimize calculations for cube maps a bit

this does some more vectorized calculations and uses horizontal adds if possible.
A definite win with sse3 otherwise it doesn't seem to make much of a difference.
In any case this is arithmetically identical, cannot handle larger vectors.
Should be useful as a reference point against larger vector version later...

commit 21a2c1cf3c8e1ac648ff49e59fdc0e3be77e2ebb
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 20 15:16:27 2012 +0000

llvmpipe: slight optimization of occlusion queries

using movmskps when available.
While this is slightly better for cpus without popcnt we should
really sum the vectors ourselves (it is also possible to cast to i4 before
doing the popcnt but that doesn't help that much neither since llvm
is using some optimized popcnt version for i32)

commit 5ab5a35f216619bcdf55eed52b0db275c4a06c1b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 20 13:32:11 2012 +0000

llvmpipe: fix occlusion queries with larger vectors

need to adjust casts etc.

commit ff95e6fdf5f16d4ef999ffcf05ea6e8c7160b0d5
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Mar 19 20:15:25 2012 +0000

gallivm: Restore optimization passes.

commit 57b05b4b36451e351659e98946dae27be0959832
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 19:34:22 2012 +0000

llvmpipe: use existing min2 macro

commit bc9a20e19b4f600a439f45679451f2e87cd4b299
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 19:07:27 2012 +0000

llvmpipe: add some safeguards against really large vectors

As per José's suggestion, prevent things from blowing up if some cpu
would have 1024bit or larger vectors.

commit 0e2b525e5ca1c5bbaa63158bde52ad1c1564a3a9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 18:31:08 2012 +0000

llvmpipe: fix mask generation for uberwide vectors

this was the only piece preventing 16-wide vectors from working
(apart from the LP_MAX_VECTOR_WIDTH define that is), which is the maximum
as we don't get more pixels in the fragment shader at once.
Hence adjust that so things could be tested properly with that size
even though there seems to be no practical value.

commit 3c8334162211c97f3a11c7f64e9e5a2a91ad9656
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 18:19:41 2012 +0000

llvmpipe: fix the simple interpolation method with larger vectors

so both methods actually _really_ work now. Makes textures look
nice with larger vectors...

commit 1cb0464ef8871be1778d43b0c56adf9c06843e2d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 17:26:35 2012 +0000

llvmpipe: fix mask generation and position interpolation with 8-wide vectors

trivial bugs, with these things start to look somewhat reasonable.
Textures though have some swizzling issues it seems.

commit 168277a63ef5b72542cf063c337f2d701053ff4b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 16:04:03 2012 +0000

llvmpipe: don't overallocate variables

we never have more than 16 (stamp size) / 4 (minimum possible vector size).
(With larger vectors those variables are still overallocated a bit.)

commit 409b54b30f81ed0aa9ed0b01affe15c72de9abd2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 15:56:48 2012 +0000

llvmpipe: add some 32f8 formats to lp_test_conv

Also add the ability to handle different sized vectors.

commit 55dcd3af8366ebdac0af3cdb22c2588f24aa18ce
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Mar 19 15:47:27 2012 +0000

gallivm: handle different sized vectors in conversion / pack

only fully generic path for now (extract/insert per element).

commit 9c040f78c54575fcd94a8808216cf415fe8868f6
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sun Mar 18 00:58:28 2012 +0100

llvmpipe: fix harmless use of unitialized values

commit 551e9d5468b92fc7d5aa2265db9a52bb1e368a36
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 16 23:31:21 2012 +0100

gallivm: drop special path in extract_broadcast with different sized vectors

Not needed, llvm can handle shuffles with different sized result vector just
fine. Should hopefully generate the same code in the end, but simpler IR.

commit 44da531119ffa07a421eaa041f63607cec88f6f8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 16 23:28:49 2012 +0100

llvmpipe: adapt interpolation for handling multiple quads at once

this is still WIP there are actually two methods possible not quite
sure what makes the most sense, so there's code for both for now:
1) the iterative method as used before (compute attrib values at upper left
corner of stamp and upper left corner of each quad initially).
It is improved to handle more than one quad at once, and also do some more vectorized
calculations initially for slightly better code - newer cpus have full throughput with
4 wide float vectors, hence don't try to code up a path which might be faster if there's
just one channel active per attribute.
2) just do straight interpolation for each pixel.
Method 2) is more work per quad, but less initially - if all quads are executed
significantly more overall though. But this might change with larger vector lengths.
This method would also be needed if we'd do some kind of active quad merging when
operating on multiple quads at once.
This path contains some hack to force llvm to generate better code, it is still far
from ideal though, still generates far too many unnecessary register spills/reloads.
Both methods should work with different sized vectors.
Not very well tested yet, still seems to work with four-wide vectors, need changes
elsewhere to be able to test with wider vectors.

commit be5d3e82e2fe14ad0a46529ab79f65bf2276cd28
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 16 20:59:37 2012 +0000

draw: Cleanup.

commit f85bc12c7fbacb3de2a94e88c6cd2d5ee0ec0e8d
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 16 20:43:30 2012 +0000

gallivm: More module compilation refactoring.

commit d76f093198f2a06a93b2204857e6fea5fd0b3ece
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Mar 15 21:29:11 2012 +0000

llvmpipe: Use gallivm_compile/free_function() in linear code.

Should had been done before.

commit 122e1adb613ce083ad739b153ced1cde61dfc8c0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 13 14:47:10 2012 +0100

llvmpipe: generate partial pixel mask for multiple quads

still works with one quad, cannot be tested yet with more
At least for now always fixed order with multiple quads.

commit 4c4f15081d75ed585a01392cd2dcce0ad10e0ea8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Mar 8 22:09:24 2012 +0100

llvmpipe: refactor state setup a bit

Refactor to make it easier to emit (and potentially later fetch in fs)
coefficients for multiple attributes at once.
Need to think more about how to make this actually happen however, the
problem is different attributes can have different interpolation modes,
requiring different handling in both setup and fs (though linear and
perspective handling is close).

commit 9363e49722ff47094d688a4be6f015a03fba9c79
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Mar 8 19:23:23 2012 +0100

llvmpipe: vectorize tri offset calc

cuts number of instructions in quad-offset-factor from 107 to 75.
This code actually duplicated the (scalar) code calculating the determinant
except it used different vertex order (leading to different sign but it doesn't
matter) hence llvm could not have figured out it's the same (of course with
determinant vectorized in the other place that wouldn't have worked any longer
neither).
Note this particular piece doesn't actually vectorize well, not many arithmetic
instructions left but tons of shuffle instructions...
Probably would need to work on n tris at a time for better vectorization.

commit 63169dcb9dd445c94605625bf86d85306e2b4297
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Mar 8 03:11:37 2012 +0100

llvmpipe: vectorize some scalar code in setup

reduces number of arithmetic instructions, and avoids loading
vector x,y values twice (once as scalars once as vectors).
Results in a reduction of instructions from 76 to 64 in fs setup for glxgears
(16%) on a cpu with sse41.
Since this code uses vec2 disguised as vec4, on old cpus which had physical
64bit sse units (pre-Core2) it probably is less of a win in practice (and if
you have no vectors you can only hope llvm eliminates the arithmetic for
unneeded elements).

commit 732ecb877f951ab89bf503ac5e35ab8d838b58a1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 7 00:32:24 2012 +0100

draw: fix clipping

bug introduced by 4822fea3f0440b5205e957cd303838c3b128419c broke
clipping pretty badly (verified with lineclip test)

commit ef5d90b86d624c152d200c7c4056f47c3c6d2688
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 6 23:38:59 2012 +0100

draw: don't store vertex header per attribute

storing the vertex header once per attribute is totally unnecessary.
Some quick look at the generated assembly says llvm in fact cannot optimize
away the additional stores (maybe due to potentially aliasing pointers
somewhere).
Plus, this makes the code cleaner and also allows using a vector "or"
instead of scalar ones.

commit 6b3a5a57b0b9850854cfbd7b586e4e50102dda71
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 6 19:11:01 2012 +0100

draw: do the per-vertex "boolean" clipmask "or" with vectors

no point extracting the values and doing it per component.
Doesn't help that much since we still extract the values elsewhere anyway.

commit 36519caf1af40e4480251cc79a2d527350b7c61f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Mar 2 22:27:01 2012 +0100

gallivm: fix lp_build_extract_broadcast with different sized vectors

Fix the obviously wrong argument, so it doesn't blow up.

commit 76d0ac3ad85066d6058486638013afd02b069c58
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Mar 2 12:16:23 2012 +0000

draw: Compile per module and not per function (WIP).

Enough to get gears w/ LLVM draw + softpipe to work on AVX doing:

GALLIUM_DRIVER=softpipe SOFTPIPE_USE_LLVM=yes glxgears

But still hackish -- will need to rethink and refactor this.

commit 78e32b247d2a7a771be9a1a07eb000d1e54ea8bd
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 29 12:01:05 2012 +0000

llvmpipe: Remove lp_state_setup_fallback.

Never used.

commit 6895d5e40d19b4972c361e8b83fdb7eecda3c225
Author: José Fonseca <jfonseca@vmware.com>
Date: Mon Feb 27 19:14:27 2012 +0000

llvmpipe: Don't emit EMMS on x86

We already take precautions to ensure that LLVM never emits MMX code.

commit 4822fea3f0440b5205e957cd303838c3b128419c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Feb 29 15:58:19 2012 +0100

draw: modifications for larger vector sizes

We want to be able to use larger vectors especially for running the vertex
shader. With this patch we build soa vectors which might have a different
length than 4.
Note that aos structures really remain the same, only when aos structures
are converted to soa potentially different sized vectors are used.
Samplers probably don't work yet, didn't look at them.
Testing done:
glxgears works with both 128bit and 256bit vectors.

commit f4950fc1ea784680ab767d3dd0dce589f4e70603
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 29 15:51:57 2012 +0100

gallivm: override native vector width with LP_NATIVE_VECTOR_WIDTH env var for debug

commit 6ad6dbf0c92f3bf68ae54e5f2aca035d19b76e53
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 29 15:51:24 2012 +0100

draw: allocate storage with alignment according to native vector width

commit 7bf0e3e7c9bd2469ae7279cabf4c5229ae9880c1
Author: José Fonseca <jfonseca@vmware.com>
Date: Fri Feb 24 19:06:08 2012 +0000

gallivm: Fix comment grammar.

Was missing several words. Spotted by Roland.

commit b20f1b28eb890b2fa2de44a0399b9b6a0d453c52
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 19:22:09 2012 +0000

gallivm: Use MC-JIT on LLVM 3.1 + (i.e, SVN)

MC-JIT

Note: MC-JIT is still WIP. For this to work correctly it requires
LLVM changes which are not yet upstream.

commit b1af4dfcadfc241fd4023f4c3f823a1286d452c0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Feb 23 20:03:15 2012 +0100

llvmpipe: use new lp_type_width() helper in lp_test_blend

commit 04e0a37e888237d4db2298f31973af459ef9c95f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Feb 23 19:50:34 2012 +0100

llvmpipe: clean up lp_test_blend a little

Using variables just sized and aligned right makes it a bit more obvious
what's going on.
The test still only tests vector length 4.
For AoS anything else probably isn't going to work.
For SoA other lengths should work (at least with floats).

commit e61c393d3ec392ddee0a3da170e985fda885a823
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 17:48:30 2012 +0000

gallivm: Ensure vector width consistency.

Instead of assuming that everything is the max native size.

commit 330081ac7bc41c5754a92825e51456d231bf84dd
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 17:44:14 2012 +0000

draw: More simd vector width consistency fixes.

commit d90ca002753596269e37297e2e6c139b19f29f03
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 17:43:00 2012 +0000

gallivm: Remove unused lp_build_int32_vec4_type() helper.

commit cae23417824d75869c202aaf897808d73a2c1db0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Feb 23 17:32:16 2012 +0100

gallivm: use global variable for native vector width instead of define

We do not know the simd extensions (and hence the simd width we should use)
available at compile time.
At least for now keep a define for maximum vector width, since a global
variable obviously can't be used to adjust alignment of automatic stack
variables.
Leave the runtime-determined value at 128 for now in all cases.

commit 51270ace6349acc2c294fc6f34c025c707be538a
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 15:41:02 2012 +0000

gallivm: Add a hunk inadvertedly lost when rebasing.

commit bf256df9cfdd0236637a455cbaece949b1253e98
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 14:24:23 2012 +0000

llvmpipe: Use consistent vector width in depth/stencil test.

commit 5543b0901677146662c44be2cfba655fd55da94b
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 14:19:59 2012 +0000

draw: Use a consistent the vector register width.

Instead of 4x32 sometimes, LP_NATIVE_VECTOR_WIDTH other times.

commit eada8bbd22a3a61f549f32fe2a7e408222e5c824
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 12:08:04 2012 +0000

gallivm: Remove garbagge collection.

MC-JIT will require one compilation per module (as opposed to one
compilation per function), therefore no state will be shared,
eliminating the need to do garbagge collection.

commit 556697ea0ed72e0641851e4fbbbb862c470fd7eb
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 10:33:41 2012 +0000

gallivm: Move all native target initialization to lp_set_target_options().

commit c518e8f3f2649d5dc265403511fab4bcbe2cc5c8
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 09:52:32 2012 +0000

llvmpipe: Create one gallivm instance for each test.

commit 90f10af8920ec6be6f2b1e7365cfc477a0cb111d
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 09:48:08 2012 +0000

gallivm: Avoid LLVMAddGlobalMapping() in lp_bld_assert().

Brittle, complex, and unecesary. Just use function pointer constant.

commit 98fde550b33401e3fe006af59db4db628bcbf476
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 09:21:26 2012 +0000

gallivm: Add a lp_build_const_func_pointer() helper.

To be reused in all places where we want to call C code.

commit 6cfedadb62c2ce5af8d75969bc95a607f3ece118
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 09:44:41 2012 +0000

gallivm: Cleanup/simplify lp_build_const_string_variable.

- Move to lp_bld_const where it belongs
- Rename to lp_build_const_string
- take the length from the argument (and don't count the zero terminator twice)
- bitcast the constant to generic i8 *

commit db1d4018c0f1fa682a9da93c032977659adfb68c
Author: José Fonseca <jfonseca@vmware.com>
Date: Thu Feb 23 11:52:17 2012 +0000

gallivm: Set NoFramePointerElimNonLeaf to true where supported.

commit 088614164aa915baaa5044fede728aa898483183
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Feb 22 19:38:47 2012 +0100

llvmpipe: pass in/out pointers rather scalar floats in lp_bld_arit

we don't want llvm to potentially optimize away the vectors (though it doesn't
seem to currently), plus we want to be able to handle in/out vectors of arbitrary
length.

commit 3f5c4e04af8a7592fdffa54938a277c34ae76b51
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Feb 21 23:22:55 2012 +0100

gallivm: fix lp_build_sqrt() for vector length 1

since we optimize away vectors with length 1 need to emit intrinsic
without vector type.

commit 79d94e5f93ed8ba6757b97e2026722ea31d32c06
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 22 17:00:46 2012 +0000

llvmpipe: Remove lp_test_round.

commit 81f41b5aeb3f4126e06453cfc78990086b85b78d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Feb 21 23:56:24 2012 +0100

llvmpipe: subsume lp_test_round into lp_test_arit

Much simpler, and since the arguments aren't passed as 128bit values can run
on any arch.
This also uses the float instead of the double versions of the c functions
(which probably was the intention anyway).
In contrast to lp_test_round the output is much less verbose however.
Tested vector width of 32 to 512 bits - all pass except 32 (length 1) which
crashes in lp_build_sqrt() due to wrong type.

Signed-off-by: José Fonseca <jfonseca@vmware.com>

commit 945b338b421defbd274481d8c4f7e0910fd0e7eb
Author: José Fonseca <jfonseca@vmware.com>
Date: Wed Feb 22 09:55:03 2012 +0000

gallivm: Centralize the function compilation logic.

This simplifies a lot of code.

Also doing this in a central place will make it easier to carry out the
changes necessary to use MC-JIT in the future.

gallivm: Fix typo in explicit derivative shuffle.

Trivial.

draw: make DEBUG_STORE work again

adapt to lp_build_printf() interface changes

Reviewed-by: José Fonseca <jfonseca@vmware.com>

draw: get rid of vecnf_from_scalar()

just use lp_build_broadcast directly (cannot assign a name but don't really
need it, vecnf_from_scalar() was producing much uglier IR due to using
repeated insertelement instead of insertelement+shuffle).

Reviewed-by: José Fonseca <jfonseca@vmware.com>

llvmpipe: fix typo in complex interpolation code

Fixes position interpolation when using complex mode
(piglit fp-fragment-position and similar)

Reviewed-by: José Fonseca <jfonseca@vmware.com>

draw: fix clipvertex/position storing again

This appears to be the result of a bad merge.
Fixes piglit tests relying on clipping, like a lot of the interpolation tests.

Reviewed-by: José Fonseca <jfonseca@vmware.com>

gallivm: Fix explicit derivative manipulation.

Same counter variable was being used in two nested loops. Use more
meanigful variable names for the counter to fix and avoid this.

gallivm: Prevent buffer overflow in repeat wrap mode for NPOT.

Based on Roland's patch, discussion, and review .

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

gallivm: Fix dims for TGSI_TEXTURE_1D in emit_tex.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

gallivm: Fix explicit volume texture derivatives.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>

gallivm: fix 1d shadow texture sampling

Always r coordinate is used, hence need 3 coords not two
(the second one is unused).

Reviewed-by: José Fonseca <jfonseca@vmware.com>

gallivm: Enable AVX support without MCJIT, where available.

For now, this just enables AVX on Windows for testing. If the code is
stable then we might consider prefering the old JIT wherever possible.

No change elsewhere.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
raw_llvm_translate.c
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
6dddd184803da5f67f69e7c243dbb596b4dd4b9d 12-Jul-2012 José Fonseca <jfonseca@vmware.com> draw,gallivm: Fix draw_get_shader_param.

- Use LLVM limits when LLVM is being used, instead of TGSI limits
- Provide draw_get_shader_param_no_llvm for when llvm is never used (softpipe)
- Eliminate several of the hacks around draw shader caps in several drivers

Unfortunately the hack for PIPE_MAX_VERTEX_SAMPLERS is still necessary.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
raw_context.c
raw_context.h
b8068afafacc3071cacfbaf71f176a2943341382 21-Jun-2012 Olivier Galibert <galibert@pobox.com> draw: Handle the case when there isn't a fragment shader.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
raw_pipe_clip.c
c790c2c7598dea2d5a5b0bfbe47732956e1e89a6 19-Jun-2012 Olivier Galibert <galibert@pobox.com> llvmpipe: Add vertex id support.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
46931ecf480e1d231bb6c2236d91b5390f2465ac 19-Jun-2012 Olivier Galibert <galibert@pobox.com> llvmpipe: Simplify and fix system variables fetch.

The system array values concept doesn't really because it expects the
system values to be fixed per call, which is wrong for gl_VertexID and
iffy for gl_SampleID. So this patch does two things:

- kill the array, have emit_fetch_system_value directly pick the
values it needs (only gl_InstanceID for now, as the previous code)

- correctly handle the expected type in emit_fetch_system_value

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
4625a9b1adf7a30c56e2bbeb41573fbba4465851 19-Jun-2012 Olivier Galibert <galibert@pobox.com> draw: fix flat shading and screen-space linear interpolation in clipper

This includes:
- picking up correctly which attributes are flatshaded and which are
noperspective

- copying the flatshaded attributes when needed, including the
non-built-in ones

- correctly interpolating the noperspective attributes in screen-space
instead than in a 3d-correct fashion.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pipe_clip.c
e48d26bf4065ed682f5d7bf81c368554aecebf43 15-Jun-2012 José Fonseca <jfonseca@vmware.com> draw: Ensure that the vertex_header type size matches expectation.

This is failing sometimes, probably because TargetData keeps a structure layout
cache, which can becomes bogus, ever since the InvalidateStructLayoutInfo API
was removed in LLVM r135245.

This change merely makes the problem easier to diagnose (an assertion
failure instead of a random crash).
raw_llvm.c
185ed2105829d6f5eb19edb9abbf0d7977e157c3 25-May-2012 Brian Paul <brianp@vmware.com> draw: simplify index buffer specification

Replace draw_set_index_buffer() and draw_set_mapped_index_buffer() with
draw_set_indexes() which simply takes a pointer and an index size.
raw_context.c
raw_context.h
raw_private.h
raw_pt.c
raw_pt_vsplit_tmp.h
1609efb4180659322557380550d17ed7adb8eae2 24-May-2012 Brian Paul <brianp@vmware.com> draw: fix primitive restart bug by using the index buffer offset

The code which scans the index buffer for restart indexes wasn't adding
the index buffer offset so we were always starting at offset=0. The
offset is usually zero so it wasn't noticed before.

Fixes a failure in the piglit primitive-restart test when testing
vertex data + index data in a single VBO.

NOTE: This is a candidate for the 8.0 branch.
raw_pt.c
5d10d757276a599a60a68b88b21087b5824a8df7 17-May-2012 Olivier Galibert <galibert@pobox.com> llvmpipe: Implement TXQ.

Piglits test for fragment shaders pass, vertex shaders fail. The
actual failure seems to be in the interpolators, and not the
textureSize query.

Signed-off-by: Olivier Galibert <galibert@pobox.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: José Fonseca <jose.r.fonseca@gmail.com>
raw_llvm_sample.c
9af1ba565dfd5cef9ee938bb7c04767d14878fbf 16-May-2012 José Fonseca <jfonseca@vmware.com> draw,llvmpipe: Avoid named struct types on LLVM 3.0 and later.

Starting with LLVM 3.0, named structures are meant not for debugging, but
for recursive data types, previously also known as opaque types.

The recursive nature of these types leads to several memory management
difficulties. Given that we don't actually need recursive types, avoid
them altogether.

This is an attempt to address fdo bugs 41791 and 44466. The issue is
somewhat random so there's no easy way to check how effective this is.
raw_llvm.c
685a28fd8a046e8dac02c2c26ab8b169de7a2a29 30-Mar-2012 Marek Olšák <maraeo@gmail.com> gallium/util: remove unused parameter nr_vertex_buffers in util_draw_max_index
raw_pt.c
bb4c5d72d7c7cb1d9e7016e2c07c36875f30011a 11-May-2012 Marek Olšák <maraeo@gmail.com> Merge branch 'gallium-userbuf'

Conflicts:
src/gallium/docs/source/screen.rst
src/gallium/drivers/nv50/nv50_state.c
src/gallium/include/pipe/p_defines.h
src/mesa/state_tracker/st_draw.c
1279923d72942ee201fcc6ad40d552143f651f03 30-Apr-2012 Francisco Jerez <currojerez@riseup.net> gallium/tgsi: Move interpolation info from tgsi_declaration to a separate token.

Move Interpolate, Centroid and CylindricalWrap from tgsi_declaration
to a separate token -- they only make sense for FS inputs and we need
room for other flags in the top-level declaration token.
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
4552fd50d959ab99546cfa994f8ba5bdf5d66bc7 24-Apr-2012 Marek Olšák <maraeo@gmail.com> gallium: add void *user_buffer in pipe_vertex_buffer

This reduces CPU overhead in st_draw_vbo and removes a lot of unnecessary code
in that function which was required only to comply with the gallium interface,
but wasn't any useful really.

Adapted drivers: i915, llvmpipe, r300, softpipe.
No changes required in: r600, radeonsi.

User vertex buffers have been disabled in nv30, nv50, nvc0 and svga to keep
things working.
raw_llvm.c
7f16246acef4089570abca76a59580691ec6cf68 23-Mar-2012 Brian Paul <brianp@vmware.com> draw: fix missing immediates bug in polygon stipple code

The function that counts the number of TGSI immediates also needs to
emit the immediates. This fixes assorted failures when using polygon
stipple with fragment shaders that have their own immediates.

NOTE: This is a candidate for the 8.0 branch.
raw_pipe_pstipple.c
831de96db87ee1f16b60d3aff308a423fece3407 03-Mar-2012 Zack Rusin <zackr@vmware.com> svga: fix the rasterizer state resets

draw module calls back into the driver and sets certain parts
of the state to whatever it needs, unfortunately unless you
get the ordering of calls to draw just right you'll end up
reseting your own driver state. That's what was happening to us
draw module would under certain conditions reset our own driver
state.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_context.h
ef3e26c2e43a000d5e5e6b673324b0ebdc918207 03-Mar-2012 Dave Airlie <airlied@redhat.com> draw/llvm: add clip distance support

This add clipdistance support like the non-llvm draw paths,
if we have a clip distance we compare with it instead of doing
the dot4.

We also have to put the have_clipvertex bit into the emitted
vertex header.

Fixes vs-clip-distance-all-planes-enabled, vs-clip-distance-const-reject,
vs-clip-distance-enables, vs-clip-distance-implicitly-sized,
vs-clip-distance-in-param, vs-clip-distance-uint-index.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
9c465a95ac612b346759d35fd58a9edbb79eef67 03-Mar-2012 Dave Airlie <airlied@redhat.com> draw/llvm: fix storing of clipvertex and positions into pre_clip_pos (v2)

This fixes the rest of the piglit clipvertex tests.

v2: fixup comments.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
cb4bcbcb1dbe2ad0046e695f771b56b4467e2c85 03-Mar-2012 Dave Airlie <airlied@redhat.com> draw/llvm: fix clipvertex setting up clipmask. (v2)

We incorrectly setup clipmask for gl_ClipVertex, this fixes the clipmask
setup.

v2: fix comment

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>

fix comment
raw_llvm.c
c67a1f1d5366dc20cd07d9b677a335ff537da193 18-Feb-2012 Dave Airlie <airlied@redhat.com> draw: add missing streamout state setup for draw/llvm.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_vs_llvm.c
c89b471f8cd3da6c07eb437caabb2e648027f8bb 04-Feb-2012 Dave Airlie <airlied@redhat.com> llvmpipe: fix fogcoord writing (v2)

this fixes the fogcoord related piglit tests, like I fixed them in softpipe.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_llvm.c
8b4f7b0672d663273310fffa9490ad996f5b914a 06-Feb-2012 Christoph Bumiller <e0425955@student.tuwien.ac.at> gallium: add PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION

Just let the hardware do it if it can and avoid drivers having to
check for the special case on each draw call.

v2: update the draw module
raw_context.c
raw_decompose_tmp.h
raw_gs_tmp.h
raw_private.h
raw_pt_decompose.h
raw_so_emit_tmp.h
fa2a76a21c8c513de506f2c5ec938c829cc65fdf 28-Jan-2012 Dave Airlie <airlied@redhat.com> draw: fix fog coord export.

This does what we do in the hw drivers, and only export the X.

fixes the fogcoord.dp* tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_vs_exec.c
edb19707951306447daef43c1ea3cacec5f211fb 02-Feb-2012 José Fonseca <jfonseca@vmware.com> draw: Avoid NULL pointer dereference when binding NULL fragment shaders.

Now that the draw module avoids flushing, it may flush precisely when
binding a NULL shader, so care must be taken when restoring the original
fragment shader.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
6b63e25b3d7a6ac0bd738c139ead0c7e7ad84368 14-Jan-2012 Tom Stellard <tstellar@gmail.com> gallium: Prefix #defines in tgsi_exec.h with TGSI_
raw_llvm.c
raw_vs_exec.c
743432039ccd4c4af03aa4ef274a7922f871bc38 15-Jan-2012 Vinson Lee <vlee@freedesktop.org> draw: Remove unused variables.

Fix this GCC warning.
draw_pipe_clip.c: In function ‘interp’:
draw_pipe_clip.c:122:13: warning: variable ‘clip_dist’ set but not used
[-Wunused-but-set-variable]

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Dave Airlie <airlied@redhat.com>
raw_pipe_clip.c
07635a4799b15a7575e1feb8859ecc7734850deb 27-Jan-2012 José Fonseca <jfonseca@vmware.com> draw: Ensure that prepare is always run after LLVM garbagge collection.

Should avoid dangling pointer derreference with

glean --run results --overwrite --quick --tests texSwizzle

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
b6d3a435a0e0e53a9e8cc4c4249dc7c2f897a83d 24-Jan-2011 Jakob Bornecrantz <wallbraker@gmail.com> draw: Only run prepare when state, prim and opt changes

In bad applications like ipers which does a lot of draw calls with
no state changes this helps to greatly reduce time spent in prepare.
In ipers around 7% of CPU was spent in various prepare functions,
after this commit no prepare function show on the profile.

This commit also has the added benefit of now grouping all pipelined
drawing into a single draw call if the driver uses vbuf_render.

Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
raw_context.c
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_vsplit.c
eb65ccbc21670d16813b53e0f8d94cb4e037d39c 05-Dec-2010 Jakob Bornecrantz <wallbraker@gmail.com> draw: Don't revalidate pipeline on backend flushes

Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
raw_pipe.c
4a79545bdfb9e948329a761ef350eb83a3d87496 05-Dec-2010 Jakob Bornecrantz <wallbraker@gmail.com> draw: Remove reduced_prim

Conflicts:

src/gallium/auxiliary/draw/draw_context.c

Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
raw_context.c
raw_private.h
raw_pt.c
2449695e822421fdcaf1c66dffc12d7d705ea69d 17-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: improve the pipe_stream_output_info struct (v2)

There are 3 changes:

1) stride is specified for each buffer, not just one, so that drivers don't
have to derive it from the outputs

2) new per-output property dst_offset, which specifies the offset
into the buffer in dwords where the output should be stored,
so that drivers don't have to compute the offsets manually;
this will also be useful for gl_SkipComponents
from ARB_transform_feedback3

3) register_mask is removed, instead, there is start_component
and num_components; register_mask with non-consecutive 1s
doesn't make much sense (some hardware cannot do packing of components)

Christoph Bumiller: fixed nvc0.

v2: resolve merge conflicts in Draw and clean it up
raw_pt_so_emit.c
1306644a67ad90c39c55f76e9b4734d943b6b5cc 11-Jan-2012 José Fonseca <jfonseca@vmware.com> draw: Store the new pre_clip_pos member as well.

Again, not much testing nor peer review, but should be better than what's
now.
raw_llvm.c
1865f341d8f45b389061fc08d2da90b7aa8a6099 06-Jan-2012 Dave Airlie <airlied@redhat.com> draw: clipdistance support (v2)

Add support for using the clipdistance instead of clip plane.

Passes all piglit clipdistance tests.

v2: fixup some comments from Brian in review.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_cliptest_tmp.h
raw_context.c
raw_pipe_clip.c
raw_private.h
raw_pt_post_vs.c
raw_vs.c
raw_vs.h
40c5987ed84f9f0b8bb1f707bb13c1aafc39330a 04-Jan-2012 Dave Airlie <airlied@redhat.com> draw/softpipe: add clip vertex support. (v2)

softpipe always clipped using the position vector, however for unclipped
vertices it stored the position in window coordinates, however when position
and clipping are separated, we need to store the clip-space position and
the clip-space vertex clip, so we can interpolate both separately.

This means we have to take the clip space position and store it to use later.

This allows softpipe to pass all the clip-vertex piglit tests.

v2: fix llvm draw regression, the structure being passed into llvm needed
updating, remove some hardcoded ints that should have been enums while there.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_cliptest_tmp.h
raw_context.c
raw_llvm.c
raw_llvm.h
raw_pipe_clip.c
raw_private.h
raw_pt_fetch.c
raw_vs.c
raw_vs.h
34a78b7ef6b0edf217acf221eab4b63542be5552 05-Jan-2012 Dave Airlie <airlied@redhat.com> tgsi/softpipe: add VertexID support.

This required changing the system value semantics, so we stored
a system value per vertex, instance id is the only other system
value we currently support, so I span it across the channels.

This passes the 3 vertexid-* piglit tests + lots of instanceid tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_vs_exec.c
8597c986d739212024bcb663470b929095230a12 10-Jan-2012 Brian Paul <brianp@vmware.com> draw: remove unused 'so' variable in draw_pt_so_emit()
raw_pt_so_emit.c
54f6b64e7ec905bad9e6ab0b7fc9e035c48030aa 09-Jan-2012 Jakob Bornecrantz <jakob@vmware.com> draw: Silence warning

This peice of code has been here since the inital commit (c5c5cd71) and the
code that used instance_id_index was removed in (caede752) by José.

Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
Reviewed-by Brian Paul <brianp@vmware.com>
raw_pt_fetch_shade_pipeline_llvm.c
ec8cbd79ac4065111365a6720c9564de56855cc8 04-Jan-2012 Dave Airlie <airlied@redhat.com> draw/softpipe: EXT_transform_feedback support (v2)

This replaces the current code with an implementation compatible with
the new gallium interface. I've left some of the remains of the interface
intact so llvmpipe keeps building correctly, and I'll take a look at fixing
llvmpipe up later.

v2: fixup as per Brian's review

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_context.c
raw_context.h
raw_private.h
raw_pt_so_emit.c
raw_vbuf.h
raw_vs_exec.c
dc4c821f0817a3db716f965692fb701079f66340 10-Jan-2012 Marek Olšák <maraeo@gmail.com> Squash-merge branch 'gallium-clip-state'

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_strings.c
src/mesa/state_tracker/st_atom_clip.c

commit d919791f2742e913173d6b335128e7d4c63c0840
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 17:59:22 2012 +0100

d3d1x: adapt to new clip state

commit cfec82bca3fefcdefafca3f4555285ec1d1ae421
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:16:51 2012 +0100

gallium/docs: update for clip state changes

commit c02bfeb81ad9f62041a2285ea6373bbbd602912a
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 14:21:43 2012 +0100

tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS

commit d4e0a785a6a23ad2f6819fd72e236acb9750028d
Author: Brian Paul <brianp@vmware.com>
Date: Thu Jan 5 08:30:00 2012 -0700

tgsi: consolidate TGSI string arrays in new tgsi_strings.h

There was some duplication between the tgsi_dump.c and tgsi_text.c
files. Also use some static assertions to help catch errors when
adding new TGSI values.

v2: put strings in tgsi_strings.c file instead of the .h file.

Reviewed-by: Dave Airlie <airlied@redhat.com>

commit c28584ce0d8c62bd92c8f140729d344f88a0b3cd
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Fri Jan 6 12:48:09 2012 +0100

gallium: extend user_clip_plane_enable to apply to clip distances

commit f1d5016c07f786229ed057effbe55fbfd160b019
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 02:39:09 2012 +0100

nvfx: adapt to new clip state

commit 6f6fa1c26bd19f797c1996731708e3569c9bfe24
Author: Marek Olšák <maraeo@gmail.com>
Date: Fri Jan 6 01:41:39 2012 +0100

st/mesa: fix DrawPixels with GL_DEPTH_CLAMP

commit c86ad730aa1c017788ae88a55f54071bf222be12
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:51:30 2012 +0100

nv50: adapt to new clip state

commit 3a8ae6ac243bae5970729dc4057fe02d992543dc
Author: Christoph Bumiller <e0425955@student.tuwien.ac.at>
Date: Tue Jan 3 23:32:36 2012 +0100

nvc0: adapt to new clip state

commit 6243a8246997f8d2fcc69ab741a2c2dea080ff11
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Dec 29 01:32:51 2011 +0100

draw: initalize pt.user.planes in draw_init

This fixes a crash in glean/fpexceptions.

commit e3056524b19b56d473f4faff84ffa0eb41497408
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:26:55 2011 +0100

svga: adapt to new clip state

commit c5bfa8b37d6d489271df457229081d6bbb51b4b7
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:11:51 2011 +0100

r600g: adapt to new clip state

commit f11890905362f62627c4a28a8255b76eb7de7df2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 14:10:26 2011 +0100

r300g: adapt to new clip state

commit e37465327c79a01112f15f6278d9accc5bf3103f
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:39:16 2011 +0100

draw: adapt to new clip state

This adds a regression in the LLVM clipping path. Can anybody see anything
wrong with the code? It works for every other case, just glean/fpexceptions
crashes when doing the "Infinite clip plane test".

commit b474d2b18c72d965eefae4e427c269cba5ce6ba2
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:14:59 2011 +0100

u_blitter: don't save/set/restore clip state

commit 9dd240ea91f523a677af45e8d0adb9e661e28602
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 13:11:56 2011 +0100

gallium: don't cso_save/set/restore clip state

The enable bits are in the rasterizer state.

commit a4f7031179f5f4ad524b34b394214b984ac950f6
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 12:58:55 2011 +0100

gallium: default depth_clip to 1

depth_clip = !depth_clamp

commit fe21147a00ab90e549d63fe12ee4625c9c2ffcc3
Author: Marek Olšák <maraeo@gmail.com>
Date: Mon Dec 26 06:14:19 2011 +0100

trace,util: update state logging to new clip state

Also dump the other missing flags.

commit 2a3b96e84ac872dcc5bc1de049fe76bb58d64b23
Author: Marek Olšák <maraeo@gmail.com>
Date: Sun Dec 25 10:43:43 2011 +0100

st/mesa: adapt to new clip state

commit b7b656a42fca19d7c85267f42649a206a85a2c72
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Dec 17 15:45:19 2011 +0100

gallium: move state enable bits from clip_state to rasterizer_state
raw_cliptest_tmp.h
raw_context.c
raw_llvm.c
raw_llvm.h
raw_private.h
f4863f3923152448e27ea68d0cd04411bbe3f4c7 09-Jan-2012 Jakob Bornecrantz <wallbraker@gmail.com> draw: Fail if we fail to enable llvm when asked for it

The r300 driver requires LLVM when building and other drivers that
depend on it for all TNL, like i915g will be a lot slower without it.

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_context.c
3e22c7a25321554a32fa6254485912fd53deff3a 09-Jan-2012 Jakob Bornecrantz <wallbraker@gmail.com> draw: Make it possible to create a llvm free context

Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_context.c
raw_context.h
f0f623a9075107461438468e1aea6bca3a3234f3 07-Jan-2012 Brian Paul <brianp@vmware.com> draw: replace assert(0) with debug_warn_once()

If the assertion was hit, it probably meant that we were unable to allocate
or map a vertex buffer. Instead of dying in a debug build, issue a warning
and continue.
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
994c33db875c6af2f5b535a7a173ff3bfa24fc32 07-Jan-2012 Brian Paul <brianp@vmware.com> draw: whitespace fixes, etc.
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
488dd2c1912132fe7ee5e81b05fb64ba62a46098 07-Jan-2012 Brian Paul <brianp@vmware.com> gallium: make vbuf_render::set_primitive() return void

All the implementations of this function always return TRUE.
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_vbuf.h
784026139cc15db384bed858e7be943b79772aa4 07-Jan-2012 Dave Airlie <airlied@redhat.com> draw: fix missing include for u_format.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_pt_fetch.c
17707d89f438d7f52a3918f9b351e1419314cb17 06-Jan-2012 Dave Airlie <airlied@redhat.com> draw: don't translate non-floats to float.

translate signed/unsigned integers to coresponding uint/sint r32g32b32a32 types.

This fixes a bunch of piglit tests.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_pt_fetch.c
293a3916bd0dfa4fb8850e58f81743bfab0f89dc 02-Jan-2012 Dave Airlie <airlied@redhat.com> draw: fix piglit base vertex + user vertex array tests

This fixes
draw-elements-base-vertex user_varrays
draw-elements-instanced-base-vertex user_varrays
for softpipe with no llvm support (DRAW_USE_LLVM=false)

I'm not sure if this is the correct answer, but these tests were showing
a max_index of 7, then trying to fetch up to 43, maybe it should be fixing
max_index earlier somewhere to take care of this.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_pt_fetch.c
f4ab1783b390cd8ff7f4b1e7ba9fc15893e2d69c 19-Dec-2011 Dave Airlie <airlied@redhat.com> gallium/draw: fix two side handling

The code didn't handle the case where front wasn't specified in the vertex
shader outputs, but back was.

In that case we were doing a copy from back to non-existant front,
this code checks we have existant front/backs and only does the copy when
they both exist.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pipe_twoside.c
861a029ddb31e91bb4d8e18ab708d0d172f63aad 15-Dec-2011 Marek Olšák <maraeo@gmail.com> gallium: interface changes necessary to implement transform feedback (v5)

Namely:
- EXT_transform_feedback
- ARB_transform_feedback2
- ARB_transform_feedback_instanced

The old interface was not useful for OpenGL and had to be reworked.

This interface was originally designed for OpenGL, but additional
changes have been made in order to make st/d3d1x support easier.

The most notable change is the stream-out info must be linked
with a vertex or geometry shader and cannot be set independently.
This is due to limitations of existing hardware (special shader
instructions must be used to write into stream-out buffers),
and it's also how OpenGL works (stream outputs must be specified
prior to linking shaders).

Other than that, each stream output buffer has a "view" into it that
internally maintains the number of bytes which have been written
into it. (one buffer can be bound in several different transform
feedback objects in OpenGL, so we must be able to have several views
around) The set_stream_output_targets function contains a parameter
saying whether new data should be appended or not.

Also, the view can optionally be used to provide the vertex
count for draw_vbo. Note that the count is supposed to be stored
in device memory and the CPU never gets to know its value.

OpenGL way | Gallium way
------------------------------------
BeginTF = set_so_targets(append_bitmask = 0)
PauseTF = set_so_targets(num_targets = 0)
ResumeTF = set_so_targets(append_bitmask = ~0)
EndTF = set_so_targets(num_targets = 0)
DrawTF = use pipe_draw_info::count_from_stream_output

v2: * removed the reset_stream_output_targets function
* added a parameter append_bitmask to set_stream_output_targets,
each bit specifies whether new data should be appended to each
buffer or not.
v3: * added PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME for ARB_tfb2,
note that the draw-auto subset is always required (for d3d10),
only the pause/resume functionality is limited if the CAP is not
advertised
v4: * update gallium/docs
v5: * compactified struct pipe_stream_output_info, updated dump/trace
raw_context.c
raw_context.h
raw_private.h
raw_pt_so_emit.c
f32c7232a8a16887af710a11f025381bc73640f0 28-Nov-2011 José Fonseca <jfonseca@vmware.com> llvmpipe,draw,gallivm: Ensure we don't walk beyond the end of the shader variant list.

u_simple_list.h uses a sentinel element, and not a NULL element. So
ensure list is not empty when reducing the list of shader variants.

Something I noticed while trying to free variants more aggressively.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pt_fetch_shade_pipeline_llvm.c
438d7ac146dc89d1c2943610c662c57e11a47382 12-Nov-2011 Brian Paul <brianp@vmware.com> util/draw: replace assertions with conditionals in util_draw_max_index()

Don't assert/die if a VBO is too small. Return zero instead. For
debug builds, emit a warning message since this is an unusual situation
that might indicate that there's a bug in the app.

Note that util_draw_max_index() now returns max_index+1 instead of
max_index. This lets us return zero to indicate that one of the VBOs
is too small to draw anything.

Fixes a failure with the new piglit vbo-too-small test.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
raw_pt.c
9e29cdbe95810de8658dfd1cabf1a7d87264c2f7 09-Nov-2011 José Fonseca <jfonseca@vmware.com> draw: Handle failure to allocate aligned_constant_storage.

Also, actually update const_storage_size, therefore avoiding to
unnecessarily reallocate aligned_constant_storage every single time
draw_vs_set_constants() is called.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_vs.c
aa661306828b8c76c1511f05e0fae577f06477b8 10-Nov-2011 Brian Paul <brianp@vmware.com> draw: handle out of memory conditions

If the vbuf backend fails to allocate a vertex buffer, don't crash
or assert.
raw_pipe_vbuf.c
1462114475709c9460a3cb0c58ae684c5843f5cd 10-Nov-2011 Brian Paul <brianp@vmware.com> draw/llvm: silence uninitialized variable warnings
raw_llvm.c
4eb3225b38ce12cb34ab3d90804c9683bd7b4ed3 08-Nov-2011 José Fonseca <jose.r.fonseca@gmail.com> Remove tgsi_sse2.

tgsi_exec is simple. llvm is fast. tgsi_sse2 ends up being neither.
raw_private.h
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_aos_machine.c
raw_vs_ppc.c
raw_vs_sse.c
e814d577253d3b618cc40e36f9d50b42fe61d6ed 03-Nov-2011 Brian Paul <brianp@vmware.com> draw: assert that we have non-null fragment shader

Instead of just segfaulting. Recently ran into this.
raw_pipe_pstipple.c
raw_pipe_wide_point.c
11938c87a3e5a5b0a16b22f1913567a64015a92d 11-Oct-2011 Brian Paul <brianp@vmware.com> draw/llvm: set draw->pt.user.planes field in draw_set_clip_state()

Previously it was getting set in draw_set_mapped_constant_buffer() but
if there were no shader constants, that function wasn't called. So the
pt.user.planes field was null and we died when we tried to access the
clip planes in the LLVM-generated code.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=41663

Note: This is a candidate for the 7.11 branch.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
raw_context.c
e6c237cfd6f53ff569f68255d5d6da15148cd0f5 11-Oct-2011 Brian Paul <brianp@vmware.com> draw/llvm: fix hard-coded number of total clip planes

Instead of 12 use DRAW_TOTAL_CLIP_PLANES. The max number of user-defined
clip planes was increased to 8 so the total number of planes is 14.
This doesn't fix any specific bug, but clearly the old code was wrong.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
raw_context.c
raw_llvm.c
raw_llvm.h
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
16f8308c3df020a786908be065d3dcb90c8ca2a5 24-Sep-2011 Christoph Bumiller <e0425955@student.tuwien.ac.at> gallium: add polygon offset clamp state

This is required for D3D1x and supported by hardware.
raw_pipe_offset.c
9f61e43b4903c6cf0ac03a479ec9ed7b15fd6ccf 27-Sep-2011 Dave Airlie <airlied@redhat.com> gallium: move border color to be a color union

EXT_texture_integer also specifies border color should be a color
union, the values are used according to the texture sampler format.

(update docs)

Signed-off-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
102bf6e2a70f565f03d5e9c4995b29d61c0aa165 23-Sep-2011 José Fonseca <jfonseca@vmware.com> draw: Never allocate duplicate extra vertex attribs.

Prevents mismatches when the VS outputs generic attributes not used by
the FS.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_context.c
raw_context.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_wide_point.c
fc31f9a3f255c5565ce2a3e9c73415bc17199e28 23-Sep-2011 José Fonseca <jfonseca@vmware.com> draw: Make copy of the TGSI tokens.

There is no guarantee that the tokens TGSI will persist beyond the
create_fs_state. The pipe driver (and therefore the draw module) is
responsible for making copies of the TGSI tokens when it needs them.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pipe_aaline.c
raw_pipe_aapoint.c
ddfdea88d86bc9016dd51730b855ff6a9a53a4f3 22-Sep-2011 Brian Paul <brianp@vmware.com> draw/llvm: add additional null pointer checkin draw_pt_fetch_pipeline_or_emit_llvm()
raw_pt_fetch_shade_pipeline_llvm.c
4465efc3bf8d755a9afb7a4bb5382e2f5bf113e1 21-Sep-2011 Brian Paul <brianp@vmware.com> draw: add support for guard-band clipping
raw_cliptest_tmp.h
raw_context.c
raw_context.h
raw_private.h
raw_pt.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
a5c0fb51c6b1d5f7e6ea8f089da921719ad1b6c4 14-Jul-2010 José Fonseca <jfonseca@vmware.com> draw: Reduce the number of vertex shader variants per context to 128.
raw_private.h
3c56280d330f50025fc948041f1413af55c50581 07-Mar-2011 Kurt Daverman <krd@vmware.com> draw: Respect max_indices from the renderer.
raw_pipe_vbuf.c
bc0037083235ea149d8a2708bd1a5d2559f07dc7 08-Sep-2011 Paul Berry <stereotype441@gmail.com> Gallium: remove unnecessary ifdef for MAX_CLIPPED_VERTICES.

draw_pipe_clip.c contained an ifdef to ensure that its local
definition of MAX_CLIPPED_VERTICES would not take effect if the global
MAX_CLIPPED_VERTICES (defined in src/mesa/main/config.h) was already
defined. This was unnecessary because draw_pipe_clip.c doesn't
directly or indirectly include src/mesa/main/config.h. Removed the
ifdef to reduce confusion.

Reviewed-by: Brian Paul <brianp@vmware.com>
raw_pipe_clip.c
aa77df135571978bcda5a3254f67ca7e307b1960 10-Sep-2011 Brian Paul <brianp@vmware.com> draw/llvm: combine draw_llvm_generate() and draw_llvm_generate_elts()

These two functions were nearly the same with lots of duplicated code.
Now pass in a boolean 'elts' flag and use a few conditionals to implement
the linear vs. indexed cases.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
raw_llvm.c
3143e95353072523ff5d9c977a474a87fe3cbe57 16-Jul-2011 Tobias Droste <tdroste@gmx.de> llvmpipe: fix build with LLVM 3.0svn

LLVM 3.0svn introduced a new type system. It defines a new way to create
named structs and removes the (now not needed) LLVMInvalidateStructLayout
function. See revision 134829 of LLVM.

Signed-off-by: Tobias Droste <tdroste@gmx.de>
Signed-off-by: Brian Paul <brianp@vmware.com>
raw_llvm.c
f67de2ed468ecbd09085746130a27bd2c2da911d 04-Jul-2011 José Fonseca <jfonseca@vmware.com> draw: Fix fetch_max calculation.

It should be

max_index = start + count - 1

instead of

max_index = count - 1
raw_llvm.c
7d39ff44a2256a08fac725ae0ee8a4475fbf9de5 30-Jun-2011 Micael Dias <kam1kaz3@gmail.com> Gallium: fix buffer overflow

Signed-off-by: José Fonseca <jfonseca@vmware.com>
raw_llvm.c
5349b95920c82ab9187fe965f3921bd564fe6524 29-Jun-2011 Stéphane Marchesin <marcheu@chromium.org> Gallium:draw:aaline and aapoint: Restore the old hooks when we destroy our stage.
raw_pipe_aaline.c
raw_pipe_aapoint.c
f6572017b94a137a4102342ebf6cd20dedc90271 08-Jun-2011 Brian Paul <brianp@vmware.com> draw: fix edge flag handling in clipper (for unfilled tris/quads/polygons)

Previously, we were errantly drawing some interior edges of clipped
polygons and quads. Also, we were introducing extra edges where
polygons intersected the view frustum clip planes.

The main problem was that we were ignoring the edgeflags encoded in
the primitive header's 'flags' field which are set during polygon/quad
->tri decomposition. We need to observe those during clipping. Since
we can't modify the existing vert's edgeflag fields, we need to store
them in a parallel array.

Edge flags also need to be handled differently for view frustum planes
vs. user-defined clip planes. In the former case we don't want to draw
new clip edges but in the later case we do. This matches NVIDIA's
behaviour and it just looks right.

Finally, note that the LLVM draw code does not properly set vertex
edge flags. It's OK on the regular software path though.
raw_pipe_clip.c
b3e75a61eed372cde15b56dcd51c251c129a22c8 07-Jun-2011 Brian Paul <brianp@vmware.com> draw: rename draw_vs_varient.c to draw_vs_variant.c
raw_vs_variant.c
raw_vs_varient.c
47f3d5d42d107b79c94b0713354c93b484c4c813 07-Jun-2011 Brian Paul <brianp@vmware.com> draw/llvm: whitespace, formatting fixes
raw_llvm.c
57f2f84f0e2a06313d30b3d9341229f6643683a1 06-Jun-2011 Brian Paul <brianp@vmware.com> draw: s/1/TRUE/
raw_context.c
5829332a9b814c5922f45b570c83565f8d35752d 03-May-2011 Michel Dänzer <daenzer@vmware.com> gallium/draw: Fix enum type taken by draw_get_shader_param().

Pointed out by clang:

src/gallium/auxiliary/draw/draw_context.h:251:41: warning: implicit conversion
from enumeration type 'enum pipe_cap' to different enumeration type
'enum pipe_shader_cap' [-Wconversion]
return tgsi_exec_get_shader_param(param);
~~~~~~~~~~~~~~~~~~~~~~~~~~ ^~~~~
raw_context.h
cacdc42e36d27d49b6deb0f1ea57f564ad31c88f 01-May-2011 Marek Olšák <maraeo@gmail.com> draw: remove set-but-unused variable
raw_vertex.c
931432fea69c29b4029ff23613468c8ad2c0181e 22-Apr-2011 Brian Paul <brianp@vmware.com> draw: fix point/line/tri flushing bug in vbuf code

Need to reset the point/line/tri functions to point to the "first"
versions whenever we flush vertices. Fixes unfilled polygon rendering
errors seen in demos/samples/logo.c. See comments for more info.

NOTE: This is a candidate for the 7.10 branch.
raw_pipe_vbuf.c
08070cead0bb79d4441d8c5b900d1571bb63c670 31-Mar-2011 Fabian Bieler <der.fabe@gmx.net> llvmpipe: Take the sampler view's first_level into account when sampling.
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
dcbc9be38ecea30506198d0db037cbf532f070e4 05-Apr-2011 José Fonseca <jose.r.fonseca@gmail.com> draw: Fix thinko in debug warnings.
raw_pt_vsplit_tmp.h
3733da31e8b4405b65e1b6ca3b6599ecc5af5fe7 31-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Prevent out-of-bounds vertex buffer access.

Based on some code and ideas from Keith Whitwell.
raw_private.h
raw_pt.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_vsplit.c
raw_pt_vsplit_tmp.h
3dedd39cdd198afa54ba5b53384d6be2040f9485 31-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Revert code reorg in previous change.

Because

fetch_count = max_index - min_index + 1

overflows for min_index = 0 and max_index = 0xffffffff.

Fixes fdo 35815.
raw_pt_vsplit_tmp.h
5f996e2b1d09dad64c088ccabb1a4a53ebfb8102 16-Feb-2011 Luca Barbieri <luca@luca-barbieri.com> draw: implement vertex color clamping, and disable SSE and PPC paths

(some little changes by Marek Olšák)

Squashed commit of the following:

commit 737c0c6b7d591ac0fc969a7590e1691eeef0ce5e
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Fri Aug 27 02:13:57 2010 +0200

draw: disable SSE and PPC paths (use LLVM instead)

These paths don't support vertex clamping, and are anyway
obsoleted by LLVM.

If you want to re-enable them, add vertex clamping and test that it
works with the ARB_color_buffer_float piglit tests.

commit fed3486a7ca0683b403913604a26ee49a3ef48c7
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Thu Aug 26 18:27:38 2010 +0200

draw_llvm: respect vertex color clamp

commit ef0efe9f3d1d0f9b40ebab78940491d2154277a9
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Thu Aug 26 18:26:43 2010 +0200

draw: respect vertex clamping in interpreter path
raw_llvm.c
raw_llvm.h
raw_vs.c
raw_vs_exec.c
dcad6fb670ccc533167d1ae360833989c1eb4823 30-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Forgot to remove one istart usage.
raw_pt_vsplit_tmp.h
713230ff39cd22a2082c12b937889c3ef81973ac 29-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Fix bug when drawing ushort indices.

When the condition

min_index == 0 && sizeof(ib[0]) == sizeof(draw_elts[0])

was true, we were wrongly ignoring istart and processing indices 0.

Reorder some statements to make the code easier to understand.
raw_pt_vsplit_tmp.h
b79b05e17e197a7cdc523deff8f7ea456a91e8d0 12-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Fix draw_variant_output::format's type.
raw_vs.h
raw_vs_aos_io.c
8a01cb8793485ea3bded1cc881189a0114270612 08-Mar-2011 Marek Olšák <maraeo@gmail.com> draw: remove unnecessary flush
raw_pipe_pstipple.c
4a4f6a390160d8c535e0a7ae96a203a99971f3c0 04-Mar-2011 José Fonseca <jfonseca@vmware.com> draw: Silence tgsi_emit_sse2 failed messages.
raw_vs_sse.c
e6f3e24330926b2ea04c39b5a60b9a20123e5bd4 01-Mar-2011 Brian Paul <brianp@vmware.com> draw: setup pipe's draw pointer for the aapoint stage

The other draw stages like aaline and pstipple were already doing this.
If the driver used the aapoint stage but not the others it would crash
because of a null pipe->draw pointer.
raw_pipe_aapoint.c
1fa97ddb25c008c9edd0a137198eb89c3650d6fa 17-Feb-2011 Brian Paul <brianp@vmware.com> draw: update comments, rename vars in pstipple code
raw_pipe_pstipple.c
cdca3c58aa2d9549f5188910e2a77b438516714f 10-Jan-2011 Marek Olšák <maraeo@gmail.com> gallium: remove pipe_vertex_buffer::max_index

This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
raw_llvm.c
raw_llvm.h
raw_pt.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
07eb660fc92b63213b542d47671b0d944286b77a 14-Feb-2011 José Fonseca <jfonseca@vmware.com> draw: Don't define the last two mipmap levels in aa lines.

Some hardware needs to make a seperate copy of all levels to obey
max_lod, so simply do not define the last two levels instead of
clamping.
raw_pipe_aaline.c
413511f7967260c61085a4fa61bebdcc385cf7ca 09-Feb-2011 Brian Paul <brianp@vmware.com> draw: tweak AA line texture minimum alpha

AA lines drawn as textured quads look a little better with this change.
Conformance/piglit tests still pass.
raw_pipe_aaline.c
4586e6c8cb5b391536a370faa0c419c3fd541693 11-Feb-2011 José Fonseca <jfonseca@vmware.com> draw: Don't use the pipeline when drawing lines with fractional widths.

Spotted by Jakob Bornecrantz.
raw_context.c
raw_pipe.c
raw_pipe_validate.c
92badb4c8c6f603ff823d4aeb87c27582648ba6d 24-Jan-2011 José Fonseca <jfonseca@vmware.com> draw: Do not use LLVM's opaque types.

Contrary what the name may suggest, LLVM's opaque types are used for
recursive types -- types whose definition refers itself -- so opaque
types correspond to pre-declaring a structure in C. E.g.:

struct node;

struct link {
....
struct node *next;
};

struct node {
struct link link;
}

Void pointers are also disallowed by LLVM. So the suggested way of creating
what's commonly referred as "opaque pointers" is using byte pointer (i.e.,
uint8_t * ).
raw_llvm.c
4c73030d47f39441d718157f7d9a59c136bbfac0 23-Jan-2011 Jakob Bornecrantz <wallbraker@gmail.com> draw: Init llvm if not provided
raw_context.c
raw_private.h
5700bc6bac8a1a7f8a82f667e561745804317bb8 16-Jan-2011 Brian Paul <brianp@vmware.com> draw: add missing LP_CHECK_MEMBER_OFFSET()
raw_llvm.c
652901e95b4ed406293d0e1fabee857c054119b1 15-Jan-2011 Brian Paul <brianp@vmware.com> Merge branch 'draw-instanced'

Conflicts:
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/glsl/ir_set_program_inouts.cpp
src/mesa/tnl/t_vb_program.c
abbb1c8f084c6739bc9d6f559caf26f3f71b2fab 13-Jan-2011 Chia-I Wu <olv@lunarg.com> draw: Fix an off-by-one bug in a vsplit assertion.

When use_spoken is true, istart (the first vertex of this segment) is
replaced by i0 (the spoken vertex of the fan). There are still icount
vertices.

Thanks to Brian Paul for spotting this.
raw_pt_vsplit_tmp.h
3c9aa3a7b12cfe178c14fea93cfb64a32db0b8ad 26-Dec-2010 Marek Olšák <maraeo@gmail.com> gallium: drivers should reference vertex buffers

So that a state tracker can unreference them after set_vertex_buffers.
raw_context.c
b7e150605d402224cdd8fa3d186924bdee3c6c49 16-Dec-2010 Brian Paul <brianp@vmware.com> draw: s/varient/variant/
raw_pt_fetch_shade_emit.c
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_ppc.c
raw_vs_sse.c
raw_vs_varient.c
becc4bb90c46f754018ac596460e6c6a650d399c 10-Dec-2010 Brian Paul <brianp@vmware.com> draw/llvm: don't flush in vs_llvm_delete()

Fixes piglit glx-shader-sharing crash.

When shaders are shared by multiple contexts, the shader's draw context
pointer may point to a previously destroyed context. Dereferencing the
context pointer will lead to a crash.

In this case, simply removing the flushing code avoids the crash (the
exec and sse shader paths don't flush here either).

There's a deeper issue here, however, that needs examination. Shaders
should not keep pointers to contexts since contexts might get destroyed
at any time.

NOTE: This is a candidate for the 7.10 branch (after this has been
tested for a while).
raw_vs_llvm.c
70ca06445445060c75b55b6c5531973b7b2a1bf0 10-Dec-2010 Brian Paul <brianp@vmware.com> draw/llvm: remove redundant comment
raw_llvm.h
bd995cf6c053075833b53fae29773b15d948462e 10-Dec-2010 Brian Paul <brianp@vmware.com> draw/llvm: remove extraneous conditional
raw_llvm.c
1d6f3543a063ab9e740fd0c149dcce26c282d773 09-Dec-2010 Brian Paul <brianp@vmware.com> gallivm/llvmpipe: implement system values and instanceID
raw_llvm.c
2d62fb6c3f7dd7261513253767cc63ff00fad9bb 09-Dec-2010 Brian Paul <brianp@vmware.com> draw: setup instance ID for SSE generator
raw_vs_sse.c
0be042cb4d256393750f7060d79bdaa2cd47d72e 09-Dec-2010 Brian Paul <brianp@vmware.com> draw: setup instance ID for VS interpreter
raw_vs_exec.c
4c7001462607e6e99e474d6271dd481d3f8f201c 02-Dec-2010 Roland Scheidegger <sroland@vmware.com> gallium: support for array textures and related changes

resources have a array_size parameter now.
get_tex_surface and tex_surface_destroy have been renamed to create_surface
and surface_destroy and moved to context, similar to sampler views (and
create_surface now uses a template just like create_sampler_view). Surfaces
now really should only be used for rendering. In particular they shouldn't be
used as some kind of 2d abstraction for sharing a texture. offset/layout fields
don't make sense any longer and have been removed, width/height should go too.
surfaces and sampler views now specify a layer range (for texture resources),
layer is either array slice, depth slice or cube face.
pipe_subresource is gone array slices (or cube faces) are now treated the same
as depth slices in transfers etc. (that is, they use the z coord of the
respective functions).

Squashed commit of the following:

commit a45bd509014743d21a532194d7b658a1aeb00cb7
Merge: 1aeca28 32e1e59
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 04:32:06 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/drivers/i915/i915_surface.c

commit 1aeca287a827f29206078fa1204715a477072c08
Merge: 912f042 6f7c8c3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Dec 2 00:37:11 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/st_inlines.h
src/gallium/state_trackers/vega/vg_context.c
src/gallium/state_trackers/vega/vg_manager.c

commit 912f042e1d439de17b36be9a740358c876fcd144
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 03:01:55 2010 +0100

gallium: even more compile fixes after merge

commit 6fc95a58866d2a291def333608ba9c10c3f07e82
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Dec 1 00:22:26 2010 +0100

gallium: some fixes after merge

commit a8d5ffaeb5397ffaa12fb422e4e7efdf0494c3e2
Merge: f7a202f 2da02e7
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 30 23:41:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/state_trackers/vega/api_images.c
src/gallium/state_trackers/vega/vg_context.c

commit f7a202fde2aea2ec78ef58830f945a5e214e56ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 19:19:32 2010 +0100

gallium: even more fixes/cleanups after merge

commit 6895a7f969ed7f9fa8ceb788810df8dbcf04c4c9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Nov 24 03:07:36 2010 +0100

gallium: more compile fixes after merge

commit af0501a5103b9756bc4d79167bd81051ad6e8670
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 19:24:45 2010 +0100

gallium: lots of compile fixes after merge

commit 0332003c2feb60f2a20e9a40368180c4ecd33e6b
Merge: 26c6346 b6b91fa
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Nov 23 17:02:26 2010 +0100

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_sample.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blitter.c
src/gallium/auxiliary/util/u_inlines.h
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/util/u_surfaces.c
src/gallium/docs/source/context.rst
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nvfx/nv04_surface_2d.c
src/gallium/drivers/nvfx/nv04_surface_2d.h
src/gallium/drivers/nvfx/nvfx_buffer.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_resource.c
src/gallium/drivers/nvfx/nvfx_resource.h
src/gallium/drivers/nvfx/nvfx_state_fb.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_buffer.c
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/include/pipe/p_defines.h
src/gallium/state_trackers/egl/common/egl_g3d_api.c
src/gallium/state_trackers/glx/xlib/xm_st.c
src/gallium/targets/libgl-gdi/gdi_softpipe_winsys.c
src/gallium/targets/libgl-gdi/libgl_gdi.c
src/gallium/tests/graw/tri.c
src/mesa/state_tracker/st_cb_blit.c
src/mesa/state_tracker/st_cb_readpixels.c

commit 26c6346b385929fba94775f33838d0cceaaf1127
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:37:21 2010 +0200

fix more merge breakage

commit b30d87c6025eefe7f6979ffa8e369bbe755d5c1d
Merge: 9461bf3 1f1928d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Aug 2 19:15:38 2010 +0200

Merge remote branch 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast_priv.h
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_screen_buffer.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_texture.h
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_screen.c
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c
src/gallium/drivers/r600/r600_texture.h
src/gallium/state_trackers/dri/common/dri1_helper.c
src/gallium/state_trackers/dri/sw/drisw.c
src/gallium/state_trackers/xorg/xorg_exa.c

commit 9461bf3cfb647d2301364ae29fc3084fff52862a
Merge: 17492d7 0eaccb3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jul 15 20:13:45 2010 +0200

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_blitter.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_surface.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/tests/trivial/quad-tex.c

commit 17492d705e7b7f607b71db045c3bf344cb6842b3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Jun 18 10:58:08 2010 +0100

gallium: rename element_offset/width fields in views to first/last_element

This is much more consistent with the other fields used there
(first/last level, first/last layer).
Actually thinking about removing the ugly union/structs again and
rename first/last_layer to something even more generic which could also
be used for buffers (like first/last_member) without inducing headaches.

commit 1b717a289299f942de834dcccafbab91361e20ab
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 14:46:09 2010 +0100

gallium: remove PIPE_SURFACE_LAYOUT_LINEAR definition

This was only used by the layout field of pipe_surface, but this
driver internal stuff is gone so there's no need for this driver independent
layout definition neither.

commit 10cb644b31b3ef47e6c7b55e514ad24bb891fac4
Merge: 5691db9 c85971d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 12:20:41 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/docs/source/glossary.rst
src/gallium/tests/graw/fs-test.c
src/gallium/tests/graw/gs-test.c

commit 5691db960ca3d525ce7d6c32d9c7a28f5e907f3b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 17 11:29:03 2010 +0100

st/wgl: fix interface changes bugs

commit 2303ec32143d363b46e59e4b7c91b0ebd34a16b2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:32 2010 +0100

gallium: adapt code to interface changes...

commit dcae4f586f0d0885b72674a355e5d56d47afe77d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 19:42:05 2010 +0100

gallium: separate depth0 and array_size in the resource itself.

These fields are still mutually exclusive (since no 3d array textures exist)
but it ultimately seemed to error-prone to adapt all code accept the new
meaning of depth0 (drivers stick that into hardware regs, calculate mipmap
sizes etc.). And it isn't really cleaner anyway.
So, array textures will have depth0 of 1, but instead use array_size,
3D textures will continue to use depth0 (and have array_size of 1). Cube
maps also will use array_size to indicate their 6 faces, but since all drivers
should just be fine by inferring this themselves from the fact it's a cube map
as they always used to nothing should break.

commit 621737a638d187d208712250fc19a91978fdea6b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:47:38 2010 +0100

gallium: adapt code to interface changes

There are still usages of pipe_surface where pipe_resource should be used,
which should eventually be fixed.

commit 2d17f5efe166b2c3d51957c76294165ab30b8ae2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Jun 16 17:46:14 2010 +0100

gallium: more interface changes

In particular to enable usage of buffers in views, and ability to use a
different pipe_format in pipe_surface.
Get rid of layout and offset parameter in pipe_surface - the former was
not used in any (public) code anyway, and the latter should either be computed
on-demand or driver can use subclass of pipe_surface.
Also make create_surface() use a template to be more consistent with
other functions.

commit 71f885ee16aa5cf2742c44bfaf0dc5b8734b9901
Merge: 3232d11 8ad410d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 14:19:51 2010 +0100

Merge commit 'origin/master' into gallium-array-textures

Conflicts:
src/gallium/auxiliary/util/u_box.h
src/gallium/drivers/nv50/nv50_surface.c
src/gallium/drivers/nvfx/nvfx_surface.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_screen.h
src/gallium/include/pipe/p_state.h

commit 3232d11fe3ebf7686286013c357b404714853984
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:40:04 2010 +0100

mesa/st: adapt to interface changes

still need to fix pipe_surface sharing
(as that is now per-context).
Also broken is depth0 handling - half the code assumes
this is also used for array textures (and hence by extension
of that cube maps would have depth 6), half the code does not...

commit f433b7f7f552720e5eade0b4078db94590ee85e1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Mon Jun 14 11:35:52 2010 +0100

gallium: fix a couple of bugs in interface chnage fixes

commit 818366b28ea18f514dc791646248ce6f08d9bbcf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:42:11 2010 +0200

targets: adapt to interface changes

Yes even that needs adjustments...

commit 66c511ab1682c9918e0200902039247793acb41e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:41:13 2010 +0200

tests: adapt to interface changes

Everything needs to be fixed :-(.

commit 6b494635d9dbdaa7605bc87b1ebf682b138c5808
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:39:50 2010 +0200

st: adapt non-rendering state trackers to interface changes

might not be quite right in all places, but they really don't want
to use pipe_surface.

commit 00c4289a35d86e4fe85919ec32aa9f5ffe69d16d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:38:48 2010 +0200

winsys: adapt to interface changes

commit 39d858554dc9ed5dbc795626fec3ef9deae552a0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:54 2010 +0200

st/python: adapt to interface changes

don't think that will work, sorry.

commit 6e9336bc49b32139cec4e683857d0958000e15e3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:26:07 2010 +0200

st/vega: adapt to interface changes

commit e07f2ae9aaf8842757d5d50865f76f8276245e11
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:25:56 2010 +0200

st/xorg: adapt to interface changes

commit 05531c10a74a4358103e30d3b38a5eceb25c947f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:53 2010 +0200

nv50: adapt to interface changes

commit 97704f388d7042121c6d496ba8c003afa3ea2bf3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:45 2010 +0200

nvfx: adapt to interface changes

commit a8a9c93d703af6e8f5c12e1cea9ec665add1abe0
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:24:01 2010 +0200

i965g: adapt to interface changes

commit 0dde209589872d20cc34ed0b237e3ed7ae0e2de3
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:22:38 2010 +0200

i915g: adapt to interface changes

commit 5cac9beede69d12f5807ee1a247a4c864652799e
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:58 2010 +0200

svga: adapt to interface changes

resource_copy_region still looking fishy.
Was not very suited to unified zslice/face approach...

commit 08b5a6af4b963a3e4c75fc336bf6c0772dce5150
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:20:01 2010 +0200

rbug: adapt to interface changes

Not sure if that won't need changes elsewhere?

commit c9fd24b1f586bcef2e0a6e76b68e40fca3408964
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:31 2010 +0200

trace: adapt to interface changes

commit ed84e010afc5635a1a47390b32247a266f65b8d1
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:21 2010 +0200

failover: adapt to interface changes

commit a1d4b4a293da933276908e3393435ec4b43cf201
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:19:12 2010 +0200

identity: adapt to interface changes

commit a8dd73e2c56c7d95ffcf174408f38f4f35fd2f4c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:55 2010 +0200

softpipe: adapt to interface changes

commit a886085893e461e8473978e8206ec2312b7077ff
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:44 2010 +0200

llvmpipe: adapt to interface changes

commit 70523f6d567d8b7cfda682157556370fd3c43460
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:14 2010 +0200

r600g: adapt to interface changes

commit 3f4bc72bd80994865eb9f6b8dfd11e2b97060d19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:18:05 2010 +0200

r300g: adapt to interface changes

commit 5d353b55ee14db0ac0515b5a3cf9389430832c19
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:17:37 2010 +0200

cell: adapt to interface changes

not even compile tested

commit cf5d03601322c2dcb12d7a9c2f1745e2b2a35eb4
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:14:59 2010 +0200

util: adapt to interface changes

amazing how much code changes just due to some subtle interface changes?

commit dc98d713c6937c0e177fc2caf23020402cc7ea7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Sat Jun 12 02:12:40 2010 +0200

gallium: more interface fail, docs

this also changes flush_frontbuffer to use a pipe_resource instead of
a pipe_surface - pipe_surface is not meant to be (or at least no longer)
an abstraction for standalone 2d images which get passed around.
(This has also implications for the non-rendering state-trackers.)

commit 08436d27ddd59857c22827c609b692aa0c407b7b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 10 17:42:52 2010 +0200

gallium: fix array texture interface changes bugs, docs

commit 4a4d927609b62b4d7fb9dffa35158afe282f277b
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Jun 3 22:02:44 2010 +0200

gallium: interface changes for array textures and related cleanups

This patch introduces array textures to gallium (note they are not immediately
usable without the associated changes to the shader side).
Also, this abandons pipe_subresource in favor of using level and layer
parameters since the distinction between several faces (which was part of
pipe_subresource for cube textures) and several z slices (which were not part
of pipe_subresource but instead part of pipe_box where appropriate for 3d
textures) is gone at the resource level.
Textures, be it array, cube, or 3d, now use a "unified" set of parameters,
there is no distinction between array members, cube faces, or 3d zslices.
This is unlike d3d10, whose subresource index includes layer information for
array textures, but which considers all z slices of a 3d texture to be part
of the same subresource.
In contrast to d3d10, OpenGL though reuses old 2d and 3d function entry points
for 1d and 2d array textures, respectively, which also implies that for instance
it is possible to specify all layers of a 2d array texture at once (note that
this is not possible for cube maps, which use the 2d entry points, although
it is possible for cube map arrays, which aren't supported yet in gallium).
This should possibly make drivers a bit simpler, and also get rid of mutually
exclusive parameters in some functions (as z and face were exclusive), one
potential downside would be that 3d array textures could not easily be supported
without reverting this, but those are nowhere to be seen.

Also along with adjusting to new parameters, rename get_tex_surface /
tex_surface_destroy to create_surface / surface_destroy and move them from
screen to context, which reflects much better what those do (they are analogous
to create_sampler_view / sampler_view_destroy).

PIPE_CAP_ARRAY_TEXTURES is used to indicate if a driver supports all of this
functionality (that is, both sampling from array texture as well as use a range
of layers as a render target, with selecting the layer from the geometry shader).
raw_pipe_aaline.c
raw_pipe_pstipple.c
efc82aef35a2aac5d2ed9774f6d28f2626796416 01-Dec-2010 Brian Paul <brianp@vmware.com> gallivm/llvmpipe: squash merge of the llvm-context branch

This branch defines a gallivm_state structure which contains the
LLVMBuilderRef, LLVMContextRef, etc. All data structures built with
this object can be periodically freed during a "garbage collection"
operation.

The gallivm_state object has to be passed to most of the builder
functions where LLVMBuilderRef used to be used.

Conflicts:
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
src/gallium/drivers/llvmpipe/lp_state_setup.c
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
raw_llvm_translate.c
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
85a08f8fc761d8501fc315d16df6ce0fba9f091e 18-Oct-2010 José Fonseca <jfonseca@vmware.com> gallivm: Remove the EMMS opcodes.

Unnecessary now that lp_set_target_options() successful disables MMX code
emission.
raw_llvm.c
69a07be3e527dbc2148a4e20c50e60266225f5f2 22-Oct-2010 Brian Paul <brianp@vmware.com> Merge branch 'primitive-restart-cleanup'

Conflicts:
docs/relnotes-7.10.html

This branch is a re-do of the primitive-restart branch with all
the intermediate/temporary stuff cleaned out.
0eaaceb218b2cfdb3fcfb420eca3220e74e53d4a 22-Oct-2010 Brian Paul <brianp@vmware.com> draw: implement primitive splitting for primitive restart
raw_pt.c
154d91cad907ba5643fb3e39717a8f7c5a76049a 21-Oct-2010 Brian Paul <brianp@vmware.com> draw: fix typo in comment
raw_llvm.c
3a54195679b5a9ed12127c85ca03e5546643d63d 21-Oct-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary header.
raw_llvm.c
c492066071c17e55740f3eed69b3344e6f1793ff 20-Oct-2010 Brian Paul <brianp@vmware.com> draw: use float version of LLVM Mul/Add instructions

LLVM 2.8 is pickier about int vs float instructions and operands.
raw_llvm.c
f36346c11662901cc2f2b2239d9adb38bbdc54b6 20-Oct-2010 Brian Paul <brianp@vmware.com> llvmpipe/draw: always enable LLVMAddInstructionCombiningPass()

We were working around an LLVM 2.5 bug but we're using LLVM 2.6 or later now.
This basically reverts commit baddcbc5225e12052b3bc8c07a8b65243d76574d.
This fixes the piglit bug/tri-tex-crash.c failure.
raw_llvm.c
289900439f0f327910496f6bc362b95930eebb53 20-Oct-2010 Vinson Lee <vlee@vmware.com> draw: Move loop variable declaration outside for loop.

Fixes MSVC build.
raw_llvm.c
05921fd4e5305da68bb269748cb0ef059e1db417 20-Oct-2010 Keith Whitwell <keithw@vmware.com> draw: make sure viewport gets updated in draw llvm shader

The viewport state was being baked in at compile time (oops...)
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
cd6a31cd4a9ea6deef4778c2eaef2d47240c3a6e 20-Oct-2010 Keith Whitwell <keithw@vmware.com> Merge branch 'llvm-cliptest-viewport'
ab2e1edd1fc6fbfd4f7d1949aa0d40cdb7142bd6 18-Oct-2010 Hui Qi Tay <tayhuiqithq@gmail.com> draw: corrections to allow for different cliptest cases
raw_llvm.c
b5236f3da482665567a9d53264e6203092120c31 18-Oct-2010 Keith Whitwell <keithw@vmware.com> llvmpipe: clean up fields in draw_llvm_variant_key
raw_llvm.c
raw_llvm.h
c1d6b318661de2acdee38254d3750ed8dfc09e8b 16-Oct-2010 Hui Qi Tay <tayhuiqithq@gmail.com> draw: corrections for w coordinate
raw_llvm.c
26ff7523b69ddb377ade29296d20abfc46e69489 14-Oct-2010 Hui Qi Tay <tayhuiqithq@gmail.com> draw: sanitize llvm variant key

Fixes recompilation, but seems to be broken with llvm 2.8.
raw_llvm.c
raw_llvm.h
048a90c1cb926fdeae47392582cb91b0a689905f 13-Oct-2010 Brian Paul <brianp@vmware.com> draw/llvmpipe: replace DRAW_MAX_TEXTURE_LEVELS with PIPE_MAX_TEXTURE_LEVELS

There's no apparent reason for the former to exist. And they didn't
even have the same value.
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
08f890d4c3b8376d1840f90474f7c56329432d95 10-Oct-2010 delphi <tayhuiqithq@gmail.com> draw: some changes to allow for runtime changes to userclip planes
raw_context.c
raw_llvm.c
raw_llvm.h
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
25bb05fef075a87ec6e5f2a989049faff2afedd2 04-Oct-2010 delphi <tayhuiqithq@gmail.com> draw: added userclip planes and updated variant_key
raw_llvm.c
raw_llvm.h
66992463ac294b1a106090250ad2af305f9d8a10 01-Oct-2010 Brian Paul <brianp@vmware.com> draw: check for null sampler pointers

http://bugs.freedesktop.org/show_bug.cgi?id=30516
raw_llvm.c
0cb545a7f2e823c85309013c4c41e9461f297d06 29-Sep-2010 Brian Paul <brianp@vmware.com> draw: pass sampler state down to llvm jit state

Fixes a regression caused from the change to make min/max lod dynamic
state.

https://bugs.freedesktop.org/show_bug.cgi?id=30437
raw_context.c
raw_llvm.c
raw_llvm.h
3744d1c7d30543520cede8a6c580f26985978953 28-Sep-2010 Hui Qi Tay <tayhuiqithq@gmail.com> draw: added viewport and cliptest flags

Corrections in store_clip to store clip coordinates in AoS form.
Viewport & cliptest flag options based on variant key.
Put back draw_pt_post_vs and now 2 paths based on whether clipping
occurs or not.
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
94f65d095a1365b69a041302b473e40c6ccae3c3 28-Sep-2010 Hui Qi Tay <tayhuiqithq@gmail.com> draw: cliptest and viewport done in a single loop in vertex shader

Cliptesting now done at the end of vs in draw_llvm instead of
draw_pt_post_vs.

Added viewport mapping transformation and further cliptesting to
vertex shader in draw_llvm.c

Alternative path where vertex header setup, clip coordinates store,
cliptesting and viewport mapping are done earlier in the vertex
shader.

Still need to hook this up properly according to the return value of
"draw_llvm_shader" function.
raw_llvm.c
raw_llvm.h
998cf11e1387b3b0f774426eb7b52abfebbb20d3 25-Sep-2010 José Fonseca <jfonseca@vmware.com> draw: Fullfil the new min_lod/max_lod/lod_bias/border_color dynamic state
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
440129521c36bc2c2e59c462a94394b2f42a847e 26-Aug-2010 José Fonseca <jfonseca@vmware.com> draw: Prevent clipped vertices overflow.

Some pathological triangles cause a theoritically impossible number of
clipped vertices.

The clipper will still assert, but at least release builds will not
crash, while this problem is further investigated.
raw_pipe_clip.c
8b597b4ea4290301bd97587db5389f151cb5f25f 23-Sep-2010 Keith Whitwell <keithw@vmware.com> draw: don't apply flatshading to clipped tris with <3 verts

If a triangle was completely culled by clipping, we would still try to
fix up its provoking vertex.
raw_pipe_clip.c
b3a647276e5fae570628826961c9b86612c2a2c6 21-Sep-2010 Brian Paul <brianp@vmware.com> draw: new draw_fs.[ch] files
raw_fs.c
raw_fs.h
77af10955462819d973a395270777c5b8217f6ae 20-Sep-2010 Brian Paul <brianp@vmware.com> draw: check bitshift against PIPE_MAX_SHADER_OUTPUS
raw_pipe_wide_point.c
a7ea4d11fb5a2a39daaad8752706291ac93013f7 20-Sep-2010 Brian Paul <brianp@vmware.com> draw: fix test for using the wide-point stage

As it was, we weren't obeying the draw->pipeline.point_sprite state.
Fixes point sprites in llvmpipe driver.
raw_pipe_validate.c
e22e3927b056806e9bbb089734132ad0bcb98df1 18-Sep-2010 Brian Paul <brianp@vmware.com> gallium: rework handling of sprite_coord_enable state

Implement the pipe_rasterizer_state::sprite_coord_enable field
in the draw module (and softpipe) according to what's specified
in the documentation.

The draw module can now add any number of extra vertex attributes
to a post-transformed vertex and generate texcoords for those
attributes per sprite_coord_enable. Auto-generated texcoords
for sprites only worked for one texcoord unit before.

The frag shader gl_PointCoord input is now implemented like any
other generic/texcoord attribute.

The draw module now needs to be informed about fragment shaders
since we need to look at the fragment shader's inputs to know
which ones need auto-generated texcoords.

Only softpipe has been updated so far.
raw_context.c
raw_context.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_wide_point.c
raw_private.h
00118c4077ceee6d1f8b33713cf8587609969d45 16-Sep-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary header.
raw_llvm_translate.c
a508d2dddcc67d0f92cc36b9ed6f36a9bbfc579d 05-Sep-2010 Luca Barbieri <luca@luca-barbieri.com> gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)

Changes in v3:
- Also change trace, which I forgot about

Changes in v2:
- No longer adds tessellation shaders

Currently each shader cap has FS and VS versions.

However, we want a version of them for geometry, tessellation control,
and tessellation evaluation shaders, and want to be able to easily
query a given cap type for a given shader stage.

Since having 5 duplicates of each shader cap is unmanageable, add
a new get_shader_param function that takes both a shader cap from a
new enum and a shader stage.

Drivers with non-unified shaders will first switch on the shader
and, within each case, switch on the cap.

Drivers with unified shaders instead first check whether the shader
is supported, and then switch on the cap.

MAX_CONST_BUFFERS is now per-stage.
The geometry shader cap is removed in favor of checking whether the
limit of geometry shader instructions is greater than 0, which is also
used for tessellation shaders.

WARNING: all drivers changed and compiled but only nvfx tested
raw_context.h
451dfe541393c553e78c9c037a907c1214d3b4ed 10-Sep-2010 Brian Paul <brianp@vmware.com> draw: minor reformatting
raw_pipe_aaline.c
619e899a422297fbbc9bfc837d48fb6986f896ee 03-Sep-2010 Vinson Lee <vlee@vmware.com> draw: Include missing headers in draw_vs_aos.h.

Include tgsi_exec.h for TGSI_EXEC_NUM_TEMPS.
Include draw_vs.h for draw_vs_varient.
raw_vs_aos.h
9112e531d4c26ea88a31c05fe2bc8cc613b76b65 28-Aug-2010 Vinson Lee <vlee@vmware.com> draw: Include missing header in draw_vs_llvm.c.

Include p_screen.h for completely type to pipe_screen.
raw_vs_llvm.c
6c0dc4bafbdbdc0cb4b6e5934fe064226dbd47ec 20-Aug-2010 Keith Whitwell <keithw@vmware.com> draw: specialized cliptesting routines
raw_cliptest_tmp.h
raw_context.c
raw_context.h
raw_pipe_validate.c
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
d29d7807c1e2c53336b1adaf0ecdeb3e35b39969 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Remove UNDEFINED_VERTEX_ID checks in emit pathes.

UNDEFINED_VERTEX_ID is used by draw_pipe_vbuf to decide whether a vertex
has been emitted or not. The non-pipeline pathes do not use it (they
tell the frontend the max vertex count when prepare() is called).
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
22f6026324f63c142925244ff575fefc29a90389 25-Aug-2010 Chia-I Wu <olv@lunarg.com> gallium: Use draw_set_index_buffer and others.

Update all drivers to use draw_set_index_buffer,
draw_set_mapped_index_buffer, and draw_vbo. Remove
draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
raw_context.c
raw_context.h
raw_pt.c
4f024e0f642f4f743e4d051ec71c00e45bfd361f 25-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add draw_set_index_buffer and others.

This commit adds draw_set_index_buffer, draw_set_mapped_index_buffer,
and draw_vbo. The idea behind the new functions is that an index buffer
should be a state.

draw_arrays and draw_set_mapped_element_buffer are preserved, but the
latter will be removed soon.
raw_context.c
raw_context.h
raw_private.h
raw_pt.c
raw_pt_vsplit_tmp.h
a1de6f48c3fa79bbc8f2514da19b3e01138e7093 21-Aug-2010 Keith Whitwell <keithw@vmware.com> draw: reduce the size of the llvm variant key
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
raw_vs_llvm.c
ae34a6393e6519dc32e53fa8407155e8679fc257 22-Aug-2010 José Fonseca <jfonseca@vmware.com> draw: Don't assert if indices point outside vertex buffer.

This is valid input, and asserting here does causes the test suites that
verify this to crash.

Also, the assert was wrongly accepting the case

max_index == vert_info->count

which, IIUC, is the first vertex outside the buffer. Assuming the
vert_info->count is precise (which often is not the case).
raw_pipe.c
f201217c1d87919572a3b1cf7de94f580f20e5f0 15-Aug-2010 Luca Barbieri <luca@luca-barbieri.com> draw_llvm: fix segfaults on non-SSE2 CPUs where it is disabled (v2)

Changes in v2:
- Change function name

Currently draw_llvm refuses to create itself on non-SSE2 CPUs due to
an alleged LLVM bug.

However, this is implemented improperly, because other parts of draw
still attempt to access draw->llvm, resulting in segfaults.

Instead, put the check in debug_get_option_draw_use_llvm, check that
before calling draw_llvm_create, and then check whether draw->llvm is
non-null everywhere else.
raw_context.c
raw_llvm.c
raw_pt.c
9271059b361128070c68b3d1a7982b4f9f151546 16-Aug-2010 Chia-I Wu <olv@lunarg.com> drwa: Fix polygon edge flags.

Fix a copy-and-paste error introduced by
f141abdc8fdbff41e16b0ce53fa3fa8fba32a7f9.
raw_decompose_tmp.h
aaf51ed7c24a5d9488f8225972e5d5d108c6c197 09-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: No need to make max_vertices even.

Triangle strip alternates the front/back orientation of its triangles.
max_vertices was made even so that varray never splitted a triangle
strip at the wrong positions.

It did not work with triangle strips with adjacencies. And it is no
longer relevant with vsplit.
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
c3fee80f2b35f6a7e48d6015bfc759c66b7e1a2c 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Remove DRAW_PIPE_MAX_VERTICES and DRAW_PIPE_FLAG_MASK.

The higher bits of draw elements are no longer used for the stipple or
edge flags.
raw_gs.c
raw_pipe.c
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_so_emit.c
a072f0e186522f9de2848989422ad0244f65c961 13-Aug-2010 Chia-I Wu <olv@lunarg.com> drwa: Add PRIMITIVE macro to vsplit.

PRIMITIVE is used by the indexed path to flush the entire primitive with
custom vertex count checks. It replaces the existing fast path.
raw_pt_vsplit_tmp.h
raw_split_tmp.h
7b3beb22405ee2de0cf02951b6547964a2989ee5 09-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: last_vertex_last is always true for GS and SO.

That is, OpenGL decomposition rule is assumed. There should be a
pipe_context state to specify the rules.
raw_gs_tmp.h
raw_so_emit_tmp.h
a97419a3ba86fd112a22b5786c4f34f8d8a54f2d 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Remove varray and vcache.

They have been deprecated by vsplit.
raw_pt.h
raw_pt_elts.c
raw_pt_varray.c
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
raw_pt_vcache.c
raw_pt_vcache_tmp.h
5a085c623faebf957be3fae2f82dc89ef6214585 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Replace vcache by vsplit.

vcache decomposes primitives while vsplit splits primitives. Splitting
is generally easier to do and is faster. More importantly, vcache
depends on flatshade_first to decompose. The outputs may have incorrect
vertex order which is significant to GS.
raw_pipe.c
raw_private.h
raw_pt.c
5b6bf799e637e9020af3a4bebe514b53d7c38eca 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Replace varray by vsplit.

vsplit is a superset of varray. It sets the split flags comparing to
varray.
raw_private.h
raw_pt.c
04bc530dbdbe5d004219c9100e35f5d56cfedd80 06-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add vsplit frontend.

vsplit is based on varray. It sets the split flags when a primitive is
splitted. It also has support for indexed primitives.

For indexed primitives, unlike vcache, vsplit splits the primitives
instead of decomposes them.
raw_pt.h
raw_pt_vsplit.c
raw_pt_vsplit_tmp.h
raw_split_tmp.h
56213a64fe9e4270fd7886675b1e8224b2d88794 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add new util function draw_pt_trim_count.

draw_pt_trim_count is renamed from trim in draw_pt.c.
raw_pt.c
raw_pt.h
raw_pt_util.c
9d2be38fad109d9a10942fddde0b9dc3824c329c 18-Jul-2010 Chia-I Wu <olv@lunarg.com> draw: Simplify frontend interface a little.

The run method is simplified to take the start vertex and the vertex
count.
raw_pt.c
raw_pt.h
raw_pt_varray_tmp_linear.h
raw_pt_vcache.c
raw_pt_vcache_tmp.h
f132498347c41294042db0cc6830abe928d827de 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add prim flags to middle ends.

Update the middle end interface to pass the primitive flags from the
frontends to the pipeline. No frontend sets the flags yet.
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_varray.c
raw_pt_vcache.c
f141abdc8fdbff41e16b0ce53fa3fa8fba32a7f9 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add flags to draw_prim_info.

A primitive may be splitted in frontends. The splitted primitives
should convey certain flag bits so that the decomposer can correctly
decide the stipple or edge flags.

This commit adds flags to draw_prim_info and updates the decomposer to
honor the flags. Frontends and middle ends will be updated later.
raw_decompose_tmp.h
raw_gs.c
raw_gs_tmp.h
raw_pipe.c
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_vcache_tmp.h
raw_so_emit_tmp.h
b9a21fd6ca036763500e72ce5783867fdfb340e5 08-Aug-2010 José Fonseca <jfonseca@vmware.com> draw: Remove unused variable.
raw_llvm.c
445e59057f69131fc0f1585f22c5f281d1d0f4a3 06-Aug-2010 nobled <nobled@dreamwidth.org> draw: Use the correct type for integers

Two integers were being operated on as
a vector of floats in draw_llvm_generate().

This bug got uncovered by fixing this bug:
http://bugs.freedesktop.org/29407
raw_llvm.c
e34c52da87990b1ec64602a20418cdb274deefa9 06-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add an assertion to varray's version of trim().

Assert that "first" is always smaller than "count" and add reasoning.
It would be better to simply fix trim(), but it is used in tight loops
right now.
raw_pt_varray_tmp_linear.h
600cd858d446bc1698a9b28f714f3fd6145316fb 06-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Fix draw_pt_split_prim for primitives with adjacency.

Some primitives with adjacency have their "incr" wrong.
raw_pt_util.c
6ae39f6dca8f0968902642f04f1deb6f573edb6d 07-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Assert that only the first vetex may have flags set.

642d5ba79abc6a231a5fdabb3454b9b082b0d7f8 removed flags masking for
vertices other than the first one. Add assertions to be on the safe
side.
raw_pipe.c
d38afcd2f286e924e0f9b7f484712ac19e3f98fc 06-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Avoid mixed declarations and code.

Do not expand LOCAL_VARS to void expression. Otherwise, declarations
and code will be mixed when more variables are declared in FUNC_ENTER.

This fixes fdo bug #29416.
raw_decompose_tmp.h
raw_pt_decompose.h
raw_pt_vcache_tmp.h
642d5ba79abc6a231a5fdabb3454b9b082b0d7f8 04-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Remove unnecessary vertex flag ANDs.

Vertex flags are a contract between vcache and the pipeline. They are
set only for the first vertex of a primitive.
raw_pipe.c
f1fc444bb05421404f42e8d08e9085c6fb6ce7a9 04-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Mask out vertex flags in GS and stream output.

This fixes out-of-bound access to the vertices.
raw_gs.c
raw_pt_so_emit.c
eb3c6ddafb7a1b544243e9dec991cc24d16940ea 01-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Include draw_decompose_tmp.h in draw_pt_decompose.h.

Use draw_decompose_tmp.h to replace pipeline primitive decomposer.
raw_pipe.c
raw_pt_decompose.h
94d256591d83ac1330f7237e865784618d124d09 01-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Include draw_decompose_tmp.h in draw_so_emit_tmp.h.

Use draw_decompose_tmp.h to replace stream out primitive decomposer.
raw_pt_so_emit.c
raw_so_emit_tmp.h
23176779f88c5cff7365698f391194141e11e64c 01-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Include draw_decompose_tmp.h in draw_gs_tmp.h.

Use draw_decompose_tmp.h to replace GS primitive decomposer.
raw_gs.c
raw_gs_tmp.h
8a41b18b7d731b5db2df5523dbe26143ae171c3a 01-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Include draw_decompose_tmp.h in draw_pt_vcache_tmp.h.

Use draw_decompose_tmp.h to replace vcache primitive decomposer. As the
new decomposer supports primitives with adjacency, vcache_triangle_adj
and vcache_line_adj (and their variants that have flags) are added.
raw_pt_vcache.c
raw_pt_vcache_tmp.h
524b2626c2d018f330ae7423c858ef73ea0424b5 01-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Add draw_decompose_tmp.h.

Including draw_decompose_tmp.h defines a primitive decomposer. It is
intended to replace the existing vcache/so/gs/pipe decomposers.

This is based on draw_pt_vcache_tmp.h.
raw_decompose_tmp.h
988e86762f07eb8b685eef6f3302566f604db2a6 04-Aug-2010 Vinson Lee <vlee@vmware.com> draw: Fix return type of draw_translate_vinfo_size.

Fixes typo from commit b609cfc7c9c38f26e7e6d6f7dd5dd6d38f4ed209.
raw_vertex.h
5c2f01bbb076af8b8ae6e1803d95a9ae678c2d1c 04-Aug-2010 Chia-I Wu <olv@lunarg.com> draw: Fix the edge flags of flatshade_first polygons.

This bug can be triggered by rendering polygons with

glProvokingVertexEXT(GL_FIRST_VERTEX_CONVENTION_EXT);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
raw_pt_vcache_tmp.h
48268e0f2a5e65b63586398db3a58523a8c7a7a0 04-Aug-2010 Brian Paul <brianp@vmware.com> draw: check for instance divisors in vcache_check_run()

When we have instance divisors we don't really know which vertex
elements we'll be fetching ahead of time.

This fixes a bug in instanced drawing which was exposed by the new
draw_vbo() code because of max_index not being ~0 as often as it used
to be. The test for max_index >= DRAW_PIPE_MAX_VERTICES often hid
this problem before.
raw_pt_vcache.c
8c3cc83432bbbc190b0f71f87e3e9583ae11f0b2 04-Aug-2010 Brian Paul <brianp@vmware.com> draw: added a comment
raw_pt_emit.c
0e7b53c75be6051b2a935e65f4dbc02449714ee1 03-Aug-2010 Brian Paul <brianp@vmware.com> draw: use instance divisor in draw_print_arrays()
raw_pt.c
f94e7e25d101a8691a5276a5aa0eb97d2f4eebbc 03-Aug-2010 Brian Paul <brianp@vmware.com> draw: add assertion, rearrange debug code
raw_pt.c
aef4500ca4ae9e5bc57560c6f9a32d9ad892975b 02-Aug-2010 Dave Airlie <airlied@redhat.com> draw: fix warning in sse code.

Not sure if this will actually fix the issue, but it fixes the warning.
raw_vs_sse.c
dd406cf34196a5a60362d8e1928b1308b56dd3f8 30-Jul-2010 Zack Rusin <zackr@vmware.com> draw: actually a noop, rather than not implemented

we just have nothing to do in it right now
raw_gs.c
078eff659a7ef90691966d983f35ed9e4ce63901 30-Jul-2010 Vinson Lee <vlee@vmware.com> llvmpipe: Fix implicit declaration of lp_func_delete_body warnings.
raw_llvm.c
042018a943a403a4d9887b400deb3b3c83ee40c0 27-Jul-2010 Zack Rusin <zackr@vmware.com> llvmpipe: delete function bodies after generating machine code
raw_llvm.c
b4c8de1ff24d4d5e2fe550da54249934320acab4 30-Jul-2010 Brian Paul <brianp@vmware.com> draw: do bounds checking of array elements (debug only)

Make sure that all the element indexes actually lie inside the vertex
buffer.

Also, rename pipe_run() to pipe_run_elts() to be more specific.

And assert/check the vertex count for the non-indexed case.
raw_pipe.c
d88b6e19c14900f4cad94cf7a28d159369463108 29-Jul-2010 Brian Paul <brianp@vmware.com> draw: assorted clean-ups in clipper code
raw_pipe_clip.c
ba2cc3b8e6ad161181b67fd2575c6bc768584d23 29-Jul-2010 Brian Paul <brianp@vmware.com> gallium: implement bounds checking for constant buffers

Plumb the constant buffer sizes down into the tgsi interpreter where
we can do bounds checking. Optional debug code warns upon out-of-bounds
reading. Plus add a few other assertions in the TGSI interpreter.
raw_context.c
raw_gs.c
raw_gs.h
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_vs.c
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_varient.c
8a2933f3663177f32f5ee45bb696463b8549dcbb 29-Jul-2010 Brian Paul <brianp@vmware.com> draw: add vertex buffer offset in draw_print_arrays()
raw_pt.c
111902f2c47377f7d7ea41af6a2a29a087350f17 26-Jul-2010 José Fonseca <jfonseca@vmware.com> draw: Also emit EMMS on generated LLVM IR.
raw_llvm.c
da30209afdd77199c98694ef64c6eaea557d0918 28-Jul-2010 Vinson Lee <vlee@vmware.com> draw: Fix VMware spelling.
raw_gs.c
raw_gs.h
raw_pt_fetch_shade_pipeline_llvm.c
41e7347a173693e9cf9ec41151a38e89627ed54f 23-Jul-2010 Brian Paul <brianp@vmware.com> draw: add small ybias factor for drawing wide points

Fixes minor rasterization error detected by some tests.
raw_pipe_wide_point.c
815e79e72c1f4aa849c0ee6103621685b678bc9d 23-Jul-2010 Brian Paul <brianp@vmware.com> draw: re-order optimization passes depending on LLVM version, 32/64-bit

This is a work-around for an apparent bug in LLVM seen with piglit's
glsl-vs-sqrt-zero test.
raw_llvm.c
ca3238f3fce89b4641833d1722d03c5d23b3e081 22-Jul-2010 Brian Paul <brianp@vmware.com> draw: added new assertions to clipping code
raw_pipe_clip.c
9ca48de1068d4ebce81853d29455c83b4898e25e 21-Jul-2010 Marek Olšák <maraeo@gmail.com> draw: disable depth clipping if depth clamp is enabled
raw_context.c
raw_private.h
raw_pt_post_vs.c
aa9003e20e91213bb97269bcd35961f0c2e9791b 21-Jul-2010 Brian Paul <brianp@vmware.com> draw: tweak aa line width threshold and sampling

Set sampler max_lod to avoid sampling the 1x1 and 2x2 mipmap levels.

Fixes piglit line-aa-width test, fd.o bug 29160.
raw_pipe_aaline.c
6921a6dd4ed2df2e4b635b329f66b1664a092923 21-Jul-2010 Brian Paul <brianp@vmware.com> draw: whitespace clean-up
raw_pt_vcache.c
691c1fb074144395aa441b3102923d8f92136c37 20-Jul-2010 Brian Paul <brianp@vmware.com> draw: correctly handle max_index=0xffffffff case in vcache code

If max_index=0xffffffff and elt_bias > 0 the test for
elt_bias + max_index >= DRAW_PIPE_MAX_VERTICES
was wrong. Check earlier if max_index=0xffffffff and do the
"fail" case.

This fixes the piglit draw-elements-base-vertex test (and probably
some other things).
raw_pt_vcache.c
37692e5dc9bbcf4f48b4401255d47f724a602978 20-Jul-2010 Brian Paul <brianp@vmware.com> draw: fix incorrect instancing divisor in LLVM code
raw_llvm.c
80e07c41907cc0ac43d68aeb3abf9de8435e70fd 16-Jul-2010 Brian Paul <brianp@vmware.com> draw: updated debug/dump code
raw_pt.c
959a458ea01d5fa4274bdd439da114b42d3b86d3 16-Jul-2010 Brian Paul <brianp@vmware.com> draw: added array element debug / bounds checking code (disabled)
raw_pt_vcache.c
fab4ac9e942465cb184a74b3abc57c2e5353c5bf 16-Jul-2010 Zack Rusin <zackr@vmware.com> draw/llvm: adjust the instance id at run time

fixes instancing in draw llvm
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
b77f5024ca2926404d701276eafc72f5769daa32 16-Jul-2010 Zack Rusin <zackr@vmware.com> draw: use the instance id when fetching vertex data
raw_llvm.c
839608a8be2dbcb759626b629f98176e4125e0a2 15-Jul-2010 Brian Paul <brianp@vmware.com> draw: update comments for drawing functions
raw_pt.c
5c0f6bf13b49d38fc41632ef5a0bbada98195398 15-Jul-2010 Brian Paul <brianp@vmware.com> draw: move prototype, update comment
raw_context.h
f52f8e9a8c24e54f27a1841e382fd8f6dfe17b6d 11-Jul-2010 Zack Rusin <zackr@vmware.com> draw: fix decomposition to work with adjacency primitives
raw_pt_varray.c
425870c5fdb40f7daf2e25323fa28c90c4367bae 10-Jul-2010 Zack Rusin <zackr@vmware.com> mesa: get the translation from mesa 2d regs to tgsi working

first working version of arb_geometry_shader4
raw_pt.c
f8f1c629d6b2f86e65c5c0997b140cf8db8f616e 09-Jul-2010 Vinson Lee <vlee@vmware.com> draw: Fix off-by-one error in assert.

textures is an array of size PIPE_MAX_VERTEX_SAMPLERS.
raw_llvm.c
9ead6c129fd77ce5426a1ff2fe71bbf17127cfff 07-Jul-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary header.
raw_llvm_sample.c
ca88683459016d2cdc82175c718ee429e9440cf0 06-Jul-2010 Zack Rusin <zackr@vmware.com> draw: make sure softpipe doesn't crash with vertex tex sampling

softpipe doesn't implement the draw's llvm tex sampling interface
so make sure draw can handle the cases where the driver doesn't
implement the interface
raw_llvm.c
01eebfe1b6de2e36dd3af0952fc8329b7073a100 14-Jun-2010 Zack Rusin <zackr@vmware.com> draw: implement vertex texture sampling using llvm
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
raw_llvm_sample.c
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
7071eefdb2ef2a1f644a2bbed9685847b60ff6c4 02-Jul-2010 José Fonseca <jfonseca@vmware.com> gallivm: Support multiple pixels in lp_build_fetch_rgba_aos().

This allows to do the unpacking of formats that fit in 4 x unorm8 in
parallel, 4 pixels at a time.
raw_llvm_translate.c
8d93f360c582297b9ced11c234ab4bd53103a8a6 01-Jul-2010 José Fonseca <jfonseca@vmware.com> gallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos().

Uses code and ideas from Brian Paul.
raw_llvm_translate.c
87d2c77ed3861390d2250788e8b654a504a78c28 30-Jun-2010 Brian Paul <brianp@vmware.com> draw: fix out of memory handling in polygon stipple stage
raw_pipe_pstipple.c
bb6ca7b3f74b63d45532108730b5c93a57926662 29-Jun-2010 José Fonseca <jfonseca@vmware.com> draw: Add inline keyword to inline function.

Otherwise gcc will warn about unusued functions.
raw_llvm.h
3443b581fb3ac139955fcfc61924a87d7ff6018f 26-Jun-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary header.
raw_vs_llvm.c
4503bd33dac04bb925780852e49f2ffa501ebc0a 26-Jun-2010 Zack Rusin <zackr@vmware.com> draw: deleted by mistake
raw_pt_post_vs.c
a5c44986a3f19936df448fe4ae47ca77ece9b0ce 26-Jun-2010 Zack Rusin <zackr@vmware.com> draw: initialize headers in the none post paths as well
raw_pt_post_vs.c
8ebfcf31eb905b7d47e520c04420620ae21bdf4e 26-Jun-2010 Zack Rusin <zackr@vmware.com> draw: limit the number of vertex shader variants kept around

we used to create and cache unltimited number of variant, this
change limits the number of variants kept around to a fixed number.
the change is based on a similar patch by Roland for llvmpipe fragment
shaders.
raw_llvm.c
raw_llvm.h
raw_private.h
raw_pt_fetch_shade_pipeline_llvm.c
raw_vs.c
raw_vs.h
raw_vs_llvm.c
5cf1921e6d7ba36e6e882094d3280e3cd363df61 24-Jun-2010 Zack Rusin <zackr@vmware.com> draw: initialize vertex header
raw_pipe.c
raw_pt_fetch.c
raw_pt_post_vs.c
7a9246c5d72290ed8455a426801b85b54374e102 25-Jun-2010 Chia-I Wu <olv@lunarg.com> draw: Work around an invalid write.

SSE vertex shader does not seem to honor the execution mask. Pad the
output array as a workaround.
raw_pt_fetch_shade_pipeline.c
bf2d2772a21748b6279c1fc3397ab75450aff74e 23-Jun-2010 Brian Paul <brianp@vmware.com> draw: use gallium's TRUE/FALSE
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
64682da8ab7aff7b4ce651db99a32ed1fd8b178c 23-Jun-2010 Keith Whitwell <keithw@vmware.com> draw: don't try to precalculate the pipeline output primitive

We were previously calculating a value which was either the geometry
shader output primitive or the application's input primitive, and
passing that to the various front/middle/back components for use as
the ultimate rendering primtive.

Unfortunately, this was not correct -- if the vcache decomposition
path is active and geometry shaders are *not* active, we can end up
with a third primitive -- specifically the decomposed version of the
input primitive.

Rather than trying to precalculate this, just let the individual
components inform their successors about which primitive type they are
recieving.
raw_pt.c
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_varray.c
raw_pt_vcache.c
292eecca8c4284cbb343d954b76586fcaa26de2a 23-Jun-2010 Brian Paul <brianp@vmware.com> draw: mask off DRAW_PIPE_FLAG_MASK bits in prim decompose code

Any elt may potentially have flags bits set so mask off those bits
everywhere.

Fixes crashes with demos/gamma.c, redbook/polys.c, etc. but polygon
stippling is still broken.
raw_pipe.c
e433b73dd256577b022bf38c8499c7ea4eda9845 22-Jun-2010 Zack Rusin <zackr@vmware.com> gallium: add a timestamp disjoint query

allows application to not only request the frequency of the TIME_ELAPSED
clock but also to detect if that frequency was consistent throughout the
entire bracketed range of graphics commands.
raw_gs.c
4320a451a313bbf4e145809ffb11c829ae84aa98 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: implement triangle strips with adjacency in geometry shader
raw_gs_tmp.h
f542a2770a5ac3eb487cd3723cf98a383779a98d 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: implement triangle lists with adjacency support in gs
raw_gs.c
raw_gs_tmp.h
06b854752f8a550ddd299610e0e22c8f929109e2 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: fix a silly error
raw_gs_tmp.h
eb33dd69540d9d14acc42102f14dcc7d0075943f 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: implement line strip adjacency
raw_gs_tmp.h
dc8f64c537a72d82c4c3d9e3bf6bf1e4a07c3b53 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: implement lines with adjacency in geometry shaders
raw_gs.c
raw_gs_tmp.h
91862051f98e646647906bb15aec5c5d537f87e4 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: validate stream output buffers

fixes a crash.
raw_pt_so_emit.c
c85971da31276f17f90fe7d7596c24b5daa204f9 17-Jun-2010 Zack Rusin <zackr@vmware.com> draw: fix some unsigned issue

spotted by Vinson
raw_pt_so_emit.c
638a80bc075a4b58123cb9ba03993bd8bfd024cd 16-Jun-2010 Zack Rusin <zackr@vmware.com> draw: make sure we correctly iterate over output buffers on stream out

we kept overwriting the first attribute of a vertex in a single-stream-
out-buffer case
raw_pt_so_emit.c
0b8e1980276a3935e6748e2f459313ffd2681146 16-Jun-2010 Zack Rusin <zackr@vmware.com> draw: add stream output decomposition file
raw_so_emit_tmp.h
287531772ccea82c8a6c4dab5656d751a8943524 16-Jun-2010 Zack Rusin <zackr@vmware.com> draw: rewrite stream output to handle all the dark corners

register masks, multiple output buffers, multiple primitives,
non-linear vertices (elts) and stride semantics.
raw_gs.c
raw_pt.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_so_emit.c
raw_vbuf.h
51729b5119df450f2f80c4e648b99fa35b9ec32d 16-Jun-2010 Alan Hourihane <alanh@vmware.com> draw: add alloc check
raw_llvm.c
1c377cea1094c0b5414c663adf2fd393bf41ddfb 16-Jun-2010 Alan Hourihane <alanh@vmware.com> draw: handle some out of memory conditions
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
88308ea1730df07beadd81cbce942a3aecb5d873 16-Jun-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary headers.
raw_pt_fetch.c
raw_pt_post_vs.c
3560652ccf0d88bcc23c326ea99bbc7091b45f39 15-Jun-2010 Zack Rusin <zackr@vmware.com> gs: make sure we end primitives when finishing executing shaders
raw_gs.c
raw_private.h
215e10ac2615359065cc264c68f08f39533bafd4 15-Jun-2010 Zack Rusin <zackr@vmware.com> draw/gs: make sure gs works with elts and doesn't overrun the buffer
raw_gs.c
raw_gs_tmp.h
bf577393c7334ed8e11584984138285ae0faac93 15-Jun-2010 Zack Rusin <zackr@vmware.com> draw: run the pipeline with the correct number of verts

verts per primitive, not total count
raw_pipe.c
9cf5e814b943d38750cdc6d27a9e25856454c853 15-Jun-2010 Zack Rusin <zackr@vmware.com> draw: fix primitive indexing in the pipeline

spotted by Keith
raw_pipe.c
a192b5eeafae80f9f9e7e7e442abc5b44d583d1a 15-Jun-2010 Zack Rusin <zackr@vmware.com> draw: finish the new pipeline setup

Keith came up with a new way of running the pipeline which involves passing
a few info structs around (for fetch, vertices and prims) and allows us
to correctly handle cases where we endup with multiple primitives generated
by the pipeline itself.
raw_gs.c
raw_gs.h
raw_gs_tmp.h
raw_private.h
raw_pt.h
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
raw_pt_so_emit.c
b85a361ccbac956d2842251395c048a4b3f4c440 14-Jun-2010 Keith Whitwell <keithw@vmware.com> draw wip
raw_gs.c
raw_gs.h
raw_pipe.c
raw_private.h
raw_pt.h
raw_pt_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_so_emit.c
db05972807c5cb7911b5745df00fa13130cf919e 12-Jun-2010 Zack Rusin <zackr@vmware.com> draw/gs: copy the outputs only if we emitted something
raw_gs.c
53bd9796a1395e4acde884ff55cb7ee18586595a 11-Jun-2010 Zack Rusin <zack@kde.org> gallium/softpipe/draw: support samplers in geometry shaders
raw_context.c
raw_context.h
9896b7ebebfb36f12948b28c773ddba356d48e0d 10-Jun-2010 Zack Rusin <zackr@vmware.com> draw: forgot to add a file
raw_gs_tmp.h
29639932f7d42ce3eb2f4b487366c67bb0bc910b 10-Jun-2010 Zack Rusin <zackr@vmware.com> draw: rewrite geometry shader pipeline

done to handle strips correctly as inputs - we need to decompose
the strips
raw_gs.c
raw_gs.h
4d0baa73c9e1a40b4ac089c786af79dc7f1ff219 10-Jun-2010 Zack Rusin <zack@kde.org> draw: geometry shader fixes

don't overwrite the inputs and make sure the correct primitive
is used on entry
raw_gs.c
raw_gs.h
raw_private.h
raw_pt_fetch_shade_pipeline.c
9ef6d34f7e03f3d33c0ebad4191f3300a9062c4a 10-Jun-2010 Zack Rusin <zack@kde.org> draw: make sure that the gs never outputs more data than we allocated for
raw_pt_fetch_shade_pipeline.c
1d11eac93f408053a0807783b434624a6dfcb3fb 09-Jun-2010 Zack Rusin <zack@kde.org> draw: make sure geometry shader correctly iterates the output buffer
raw_gs.c
raw_pt_fetch_shade_pipeline.c
da4185ca77395b9dddc362891d8f7bbc2fa924cd 09-Jun-2010 Zack Rusin <zack@kde.org> draw: make sure the buffer is big enough to fit everything emitted by the gs
raw_gs.c
raw_pt_fetch_shade_pipeline.c
04490ad31d0d763a0a1da7b521da55f5ea14e1cd 09-Jun-2010 Zack Rusin <zack@kde.org> draw: fix geometry shader which emit multiplie primitives
raw_gs.c
d4ef0f6c67aefe06d8dd647acf8d9005df39a709 09-Jun-2010 Zack Rusin <zack@kde.org> geometry shaders: make gs work with changable primitives and variable number of vertices

lots and lots of fixes for geometry shaders. in particular now we work when the gs
emits a different primitive than the one the pipeline was started with and also
we work when gs emits more vertices than would fit in the original buffer.
raw_gs.c
raw_gs.h
raw_pt.c
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
raw_pt_varray.c
raw_pt_vcache.c
c217d94cca357d38e244754747a1bd15e9cf2557 09-Jun-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary headers.
raw_pt_emit.c
raw_pt_so_emit.c
b5d2fc2b48ffb09b21eb3148218a73806af22f09 07-Jun-2010 Zack Rusin <zackr@vmware.com> gallium: scream when one of two unimplemented features in draw is used

plus used the correctly specified stride
raw_pt_so_emit.c
2c22b8e61dc4adab658c6198feea30c006aa6c58 01-Jun-2010 Zack Rusin <zack@kde.org> gallium: make draw auto work and add relevant caps and docs
raw_pt_so_emit.c
raw_vbuf.h
c9db97c8229689060fab0edee7df717f804b99ce 31-May-2010 Zack Rusin <zack@kde.org> gallium: a lot more complete implementation of stream output

interface wise we have everything needed by d3d10 and gl transform feedback.
the draw module misses implementation of some corner cases (e.g. when stream
output wants different number of components per output than normal rendering
paths)
raw_pt.h
raw_pt_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_so_emit.c
a45b7f47ee0e38b288cc8fc4f6a1c013e8c227bc 28-May-2010 Zack Rusin <zack@kde.org> gallium: basic and initial implementation of the stream output interface

aka transform feedback
raw_context.c
raw_context.h
raw_private.h
raw_pt_emit.c
045174b6853608f1f17194115da570067b4ce121 07-Jun-2010 Keith Whitwell <keithw@vmware.com> draw: don't use llvm engine when geometry shaders active

They aren't implemented for llvm.
raw_pt.c
4b29da1226133f2578557c0e8fa8b859061bf88b 30-May-2010 José Fonseca <jfonseca@vmware.com> draw: Use pointer_to_func() instead of custom wrappers.
raw_llvm.c
ef9b4d20d78a748e653a61286d83f33dc6c46184 21-May-2010 Keith Whitwell <keithw@vmware.com> Merge branch 'gallium-front-ccw'
5ebd2fa7dacee1b517e50ac89af66800fe47af22 15-May-2010 Keith Whitwell <keithw@vmware.com> draw: fix front/back error in unfilled pipeline stage
raw_pipe_unfilled.c
7813d12e05e654d12e2cf6c47a7e73eb0310493c 15-May-2010 Keith Whitwell <keithw@vmware.com> draw: fix typo checking for unfilled polygons
raw_pipe_validate.c
0bd1cbcd0d28dbadfb0c3e1f8b048a18b56bc72c 14-May-2010 Keith Whitwell <keithw@vmware.com> gallium: convert rasterizer state to use gl-style front/back concepts

Use front/back instead of cw/ccw throughout.
Also, use offset_point/line/fill instead of offset_cw/ccw.

Brings gallium representation of this state into line with its main
user, and also what turns out to be the most common hardware
representation.

This fixes a long-standing bias in the interface towards the
architecture of the software rasterizer.
raw_context.c
raw_pipe_cull.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_validate.c
56da0cb7ac1c22c8029028ed804bdbd1972d0d8b 13-May-2010 Brian Paul <brianp@vmware.com> draw: silence casting warnings
raw_llvm.c
8ad3e0b55df50beac8ba3c5cafa0be79641a4977 09-May-2010 José Fonseca <jfonseca@vmware.com> gallivm: Add an alternative to LLVMDumpValue that works with Windows GUI apps.
raw_llvm.c
74fb08018ac740e8189cee5f9aa8e429d50496e4 08-May-2010 Brian Paul <brianp@vmware.com> gallium/draw: additional comments in the clipping code
raw_pipe_clip.c
4d52a25326506f8a3e876ded029ff4db7749f8a9 06-May-2010 Török Edwin <edwintorok@gmail.com> gallivm: Require SSE2 for draw_llvm/llvmpipe due to LLVM PR6960.

Note that this also requires X86 for llvm, if llvmpipe/draw_llvm works
on PPC then the condition should be extended to include && x86.

Signed-off-by: Török Edwin <edwintorok@gmail.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
raw_llvm.c
fca24899cbf5217cee5f884bac267c43f9897197 06-May-2010 Brian Paul <brianp@vmware.com> gallium: still more provoking vertex fixes

This fixes edge flags for polygons and provoking vertex for
filled quads.
raw_pt_vcache.c
raw_pt_vcache_tmp.h
eaad99d230c2c265b2cc20df0bf1f6f4a7837a67 06-May-2010 Brian Paul <brianp@vmware.com> gallium: added edge flag print/debug code (disabled)
raw_pipe_unfilled.c
740e50c60f03d194aafab93d5251699964800979 05-May-2010 Brian Paul <brianp@vmware.com> gallium: rename draw() to draw_elements() in vbuf code

Now we have draw_elements() and draw_arrays() to be consistent with the
pipe_context drawing functions.
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_vbuf.h
cb136a93aba4dc64db7e446b0fbc36c9172e4017 06-May-2010 Brian Paul <brianp@vmware.com> gallium: rework provoking vertex code

Builds on commit ddb0e18f6c5582d4d2cc59ffd16ad9c4639ed059 and fixes
regressions in glean clipFlat test.

We assume that Gallium drivers observe flatshade_first for all triangles
and that all the assorted per-triangle calls in the 'draw' module also
follow flatshade_first. Everything else builds on those rules.

Gallium does not use follow flatshade_first for GL quads, quad strips
and polygons; the "last" vertex is always the provoking vertex for those
prims. So now there are separate QUAD_FIRST_PV and QUAD_LAST_PV macros
in the draw primitive decomposition code instead of one QUAD macro.
raw_pipe.c
raw_pipe_clip.c
raw_pipe_vbuf.c
raw_pt_decompose.h
raw_pt_vcache.c
e768d11ca0f118f06b96e4779a917ded26eeaef2 05-May-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary header.
raw_pt_fetch_shade_pipeline_llvm.c
ddb0e18f6c5582d4d2cc59ffd16ad9c4639ed059 05-May-2010 José Fonseca <jfonseca@vmware.com> draw: Preserve the provoking vertex both when decomposing and clipping.

Based on John Lawless' feedback.
raw_pipe_clip.c
raw_pt_decompose.h
dc1c33b448c830c5775e4f3fb6510830694a4177 05-May-2010 Brian Paul <brianp@vmware.com> draw: Adjust wideline vertex coords for D3D.
raw_pipe_wide_line.c
15af543f106db9e6ff840828905df4978e68f715 03-May-2010 Török Edwin <edwintorok@gmail.com> Reorder LLVM passes, running mem2reg earlier.

This gives a ~30% shader optimization time improvement on blender.
Tested by comparing the dumped LLVM modules.
Current ordering:
time ~/llvm-git/obj/Release-Asserts/bin/opt l.bc -constprop -instcombine
-mem2reg -gvn -simplifycfg
real 0m1.126s
user 0m1.108s
sys 0m0.012s

With this patch:
time ~/llvm-git/obj/Release-Asserts/bin/opt l.bc -mem2reg -constprop -instcombine -gvn -simplifycfg
real 0m0.885s
user 0m0.880s
sys 0m0.000s

The overall improvement in blender is ~15%.
Blender without the patch takes 1m13s:
edwin 5934 87.6 11.5 729440 458296 pts/5 SLl+ 17:35 1:13 blender

Blender with the patch takes 1m3s:
edwin 5726 94.2 11.2 716424 446168 pts/5 SLl+ 17:32 1:03 blender

It is still slow with the patch, but better (most of the optimization time is
taken up by GVN, see LLVM PR7023).

Signed-off-by: Török Edwin <edwintorok@gmail.com>
Signed-off-by: José Fonseca <jfonseca@vmware.com>
raw_llvm.c
caede7528d2afad478c49afb98eb96088e1c41cc 03-May-2010 José Fonseca <jfonseca@vmware.com> draw: Remove draw_pt_fetch_prepare call from llvm middle end.

Unneeded since we code generate the vertex fecthes.
raw_pt_fetch_shade_pipeline_llvm.c
d44c8ee568878899e4ce5d8e1d0fcf523aa62199 03-May-2010 José Fonseca <jfonseca@vmware.com> draw: Disable rtasm compilation when using LLVM.

Saves time and trouble.
raw_vs.c
e7c0b4de172acd297ebe2e616c3c8fd7d7d4c40e 15-May-2010 José Fonseca <jfonseca@vmware.com> draw: Use GALLIVM_DEBUG opt.
raw_llvm.c
e9bf09a98a624e594bdea2503326bb693b8cf9b8 30-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fix memory leaks in llvm code.
raw_llvm.c
raw_pt_fetch_shade_pipeline_llvm.c
b7618c89b11a13de98f1e784338a4e02a8db0fd2 28-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: stay in bounds even if fetch_count % 4 != 0

if fetch_count % 4 != 0 then on the last iteration we fetch garbage.
this patch makes sure we stay within bounds
raw_llvm.c
7327a84b18140f30f2a4254066ae8ed025a8dfc0 29-Apr-2010 Michel Dänzer <daenzer@vmware.com> gallium/draw: Fix PPC compiler warning.
raw_vs_ppc.c
63d1134c862ea83435e492a53f70b2902a6645a9 29-Apr-2010 Michel Dänzer <daenzer@vmware.com> gallium/draw: Fix PPC build failure.
raw_vs_ppc.c
0e4f0e8725cd93fc1e51e4caa09aadf340add11a 28-Apr-2010 Brian Paul <brianp@vmware.com> draw: remove extra semicolons
raw_pt.c
raw_vs.c
18d1d59484d2aa8b4f965558f18e13657e4812a9 28-Apr-2010 Brian Paul <brianp@vmware.com> draw: use a cast wrapper
raw_vs_aos.c
35883f42967a6dd31939e5653a818233c2e34abf 28-Apr-2010 Brian Paul <brianp@vmware.com> draw: put 'create' in the vs varient create function names
raw_vs.h
raw_vs_aos.c
raw_vs_exec.c
raw_vs_sse.c
raw_vs_varient.c
dd3b98bdf67df9a5b1127bf7d50bbb6691597bfb 28-Apr-2010 Brian Paul <brianp@vmware.com> draw: add missing function parameter
raw_vs_aos.c
52f145a186b8e47439fb4a96d04a099d439477b7 26-Apr-2010 Zack Rusin <zackr@vmware.com> draw/llvm: implement fetch elts paths

we were only running the llvm paths when the input elts were linear,
now we can handle abritrary fetch elts arrays. we do this by generating
two paths - linear and fetch_elts one and just selecting the right one
at run time.
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
6ecbbc3c056d177174c97ac4d1a57abed3ac3177 26-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Always use the llvm middle end when available & enabled.
raw_private.h
raw_pt.c
2a30d3d74a0b87f8066659952628ccd072a4e2b0 26-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Pass-through pipe_buffer::max_index to translate.

max_index must be observed to prevent crashes due to bad index data.

I've been using this patch for some time without regressions.

Some places, where we use internal vertex buffer, it is not entirely
clear what max_index should be, so passing just ~0 to avoid regressions
for now.
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_varient.c
4dd1a568404dcf068cb111db04bb6e904b91d7bd 25-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Respect pipe_vertex_buffer::max_index in llvm generated code.

Everybody should respect max_index, specially llvm generated code, which
likes to eat vertices 4 at a time, so it may end up chew a bit a bit more
than actually exists.
raw_llvm.c
raw_llvm.h
06441af657a1956a5b2a700a70a2b59b0488ee84 23-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: remove old comment
raw_pipe_wide_line.c
1820d240cd0b517ca1d73f1e8e0a528ca8d5b092 22-Apr-2010 Jakob Bornecrantz <jakob@vmware.com> gallium: Convert some uses of get option to static
raw_pt.c
raw_vs.c
c09f3705196f1472871782d23d588e9fd14a50c7 23-Apr-2010 Stephen Johnson <sjohnson@vmware.com> draw: use FREE() instead of free()
raw_llvm.c
021e0dc78b15fab29e761012860276c2597c8d8f 23-Apr-2010 Zack Rusin <zackr@vmware.com> gallivm: implement indirect addressing over temporaries

a bit more involved than indirect addressing over consts, but still
fairly reasonable. we allocate an array instead of individual alloca's,
and we do it only if the shader does indirect addressing.
raw_llvm.c
5c364b3ef78cd36a41c43a771efe5b631ea9559b 21-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Make LLVM integration work without llvmpipe too (e.g. sofptipe).

Prevents the assertion failure.
raw_context.c
8cb223eb020560d59c8f73e09b832cef477933b7 21-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: fix point sprite handling

New draw API function to indicate whether or not to convert points to
quads for sprite rasterization.

Fix point-to-quad conversion regression in the wide-point stage. We
need to check the pipe_rasterizer_state::point_quad_rasterization flag.
raw_context.c
raw_context.h
raw_pipe.c
raw_pipe_validate.c
raw_pipe_wide_point.c
raw_private.h
d30ab4394e7c6b1f3508eb68d673fbf315907781 21-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: use local var to simplify code
raw_pipe_validate.c
ec8d9523d465554e3ffaa1aeef46bfff868281d3 20-Apr-2010 José Fonseca <jfonseca@vmware.com> gallivm: Universal format support on lp_build_fetch_rgba_aos via util_format_description::fetch_rgba_float

This therefore adds support to half float vertex buffers.
raw_llvm_translate.c
2cb0a20f67e3f47a96980271e6548318fc8539c1 20-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fallback to gallivm for translation of A8R8G8B8/B8G8R8A8/R10G10B10X2/R10G10B10X2 and other formats.

These need swizzles, and bitshifts.
raw_llvm_translate.c
373f03efe70b9fb47dda9955d9c0437dae0edbff 20-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Remove draw_vs_llvm.c.

To silence some warnings.

Super-seeded by Zack's new llvm middle end.
raw_vs.c
raw_vs.h
raw_vs_llvm.c
a6171a9dd99713266091982215bf1008c9ac8e64 20-Apr-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-index-bias'
3dcdca433a5d6cde1c0b4d69ff0aa3a5eee26473 20-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: No need to rebase for elt_bias.

As we are rebasing to min_index + elt_bias, and the vertex buffer has no
elt_bias.

I still don't know how to exercise this code. I hope this is now right.
raw_pt_vcache.c
4e8154e8666ec9375936bbe3fa2ca925ff9be5df 20-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fix cache elt_bias implementation.
raw_pt_vcache.c
f1d3f42c47ee0d3c5f13f5b30e6b113d6b542f64 20-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fix typo resulting from bad regular expression in index bias addition.
raw_pt_vcache_tmp.h
49ba607abab17cc07e9f163f5415636474fd7940 20-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Move dereference of pointer after NULL check.
raw_context.c
11913e97987ee116e12299d57d85c8676d892120 20-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Remove unnecessary header.
raw_llvm.c
7dfde3aadc7f776abf828e4c45dbce2177564a53 19-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: make sure use_llvm isn't used when not defined
raw_pt.c
e3e5faba89996c64f6d5b5a00b9028900ddbd64f 19-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix typo (boolean, not bool)
raw_private.h
4df3e76949e1ca7b29f844ad9a715b442396a024 19-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: allow runtime switching of pipelines (yes/no to llvm)

use DRAW_USE_LLVM to disable or enable (default) llvm
raw_private.h
raw_pt.c
7c4208c3a0f48955720f41b3cb320a120c505ba6 19-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix constructor mess

use just one constructor to figure out whether to use llvm.
raw_context.c
raw_context.h
raw_llvm.c
2197fac47cb1f87387820678357cc67c9a2536b9 19-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Implement index bias.
raw_context.c
raw_context.h
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_varray_tmp_linear.h
raw_pt_vcache.c
raw_pt_vcache_tmp.h
62c958738545bbaf4283303613146e6a04f1793a 17-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: use a local var to simplify some code
raw_pipe_wide_point.c
8f3bdeaad610d7d5a5c6e73e1e9c721219595754 19-Apr-2010 Brian Paul <brianp@vmware.com> Merge branch '7.8'

Conflicts:

src/gallium/auxiliary/draw/draw_context.c
src/gallium/auxiliary/draw/draw_pipe_aaline.c
src/gallium/drivers/llvmpipe/lp_context.c
e3a34cc7f6c9f959cdc2af4486e84587fab4d0d7 19-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: use correct rasterization state for wide/AA points/lines

When points or lines are decomposed into triangles, we need to be sure
to disable polygon culling, stippling, "un-filled" modes, etc.

This patch sets the rasterization state to disable those things prior to
drawing points/lines with triangles, then restores the previous state
afterward.

The new piglit point-no-line-cull test checks this problem & solution.
raw_context.c
raw_context.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_private.h
b609cfc7c9c38f26e7e6d6f7dd5dd6d38f4ed209 18-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Cosmetic cleanups and comments.
raw_context.c
raw_pipe.c
raw_pipe_vbuf.c
raw_vertex.h
f6f78fac9ed78bf3d6600401200be724a74bdfb6 17-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Remove unnecessary header.
raw_llvm_translate.c
b7c5e9b33675249c261f365280a854ee1f97d867 16-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: fix breakage from moving lp_bld_* files
raw_llvm.c
raw_llvm_translate.c
0639765b2850739af1678f10fc0c5706d5827776 16-Apr-2010 Brian Paul <brianp@vmware.com> Merge the lp-surface-tiling branch into master.

This branch implemented dual representations of texture/drawing surfaces:
one in the conventional linear layout and the other the tiled layout which
is used by the fragment shader pipe. Per-tile flags indicate the layout
of each image tile. In many situations this lets us avoid converting
image data between the two layouts.

Squashed commit of the following:

commit 563a7e3cc552fdcfcaf9ac0d4b1683c3ba2ae732
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 14:48:21 2010 -0600

llvmpipe: convert points/lines to triangles with draw module

This isn't the most efficient way to render points/lines but it allows us
to run more tests.

commit a8aa763e8a717533f2b13bb6ea53cbccbede68c9
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 14:47:28 2010 -0600

llvmpipe: call llvmpipe_get_texture_tile() for depth/stencil

The returned pointer isn't used, but the tile status/layout info
gets updated. Helps to fix glReadPixels(DEPTH / STENCIL).

commit 463bc64af266194acbea71cd52e26a79b8c8a260
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 10:58:48 2010 -0600

llvmpipe: add store_color to debug cmd_names list

commit 784cc73fb334a9d7b7c93cbd8a1445cdf742ff58
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 10:57:43 2010 -0600

llvmpipe: fix debug build

commit 792c93171ec075664f55720ffed397ac2834a4fc
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 10:49:01 2010 -0600

llvmpipe: fix cube mapping

commit 882b1035db88c3dd8aebe28dc971ac30a9ee39e3
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 09:53:30 2010 -0600

llvmpipe: remove some older/unused code

commit b807d32b23145301e8842824664d9f06b9c5502e
Author: Brian Paul <brianp@vmware.com>
Date: Thu Apr 8 09:29:50 2010 -0600

llvmpipe: silence warning

commit 7b337e64fec92836ccdf9d96216289dd58418e35
Author: Brian Paul <brianp@vmware.com>
Date: Wed Apr 7 17:06:08 2010 -0600

llvmpipe: clean-up, comments in lp_surface_copy()

commit c52fa36f249cc652fa8d5fdd94d6574127c08c41
Author: Brian Paul <brianp@vmware.com>
Date: Wed Apr 7 16:51:42 2010 -0600

llvmpipe: overhaul tiled/linear memory management

Now we keep per-tile layout info (linear vs. tiled (or neither or both)
and convert from one layout to the other on demand.

commit 4a50ccfd470547c9be0704005818a87014e9c0e9
Author: Brian Paul <brianp@vmware.com>
Date: Wed Apr 7 16:51:27 2010 -0600

llvmpipe: added tile read/write counters

commit b7d0ea9c687ac8773b083791623826fa604adf21
Author: Brian Paul <brianp@vmware.com>
Date: Mon Apr 5 14:54:04 2010 -0600

llvmpipe: rename some functions

commit ee45c6e5b95cbd3c8cccc9aa4d45d8aef11e20c4
Author: Brian Paul <brianp@vmware.com>
Date: Mon Apr 5 14:42:15 2010 -0600

llvmpipe: re-org some get block/tile pointer code

commit 26ce97c16c0b6520ff1538803baa772d8c3b1280
Author: Brian Paul <brianp@vmware.com>
Date: Mon Apr 5 14:34:13 2010 -0600

llvmpipe: disable bad assertions

commit 5c670481248c4d46f87f13bf3af5655925e7002d
Author: Brian Paul <brianp@vmware.com>
Date: Fri Apr 2 16:36:11 2010 -0600

llvmpipe: add a special-case optimization to lp_surface_copy()

Be more efficient when copying tiled image to linear image.
Before, the fallback path was always converting the whole source image
to linear. Now we can convert just a sub region.

commit faa684645e64d6024b3a11e4e08da825e8220b2e
Author: Brian Paul <brianp@vmware.com>
Date: Fri Apr 2 16:15:16 2010 -0600

llvmpipe: assorted texture and tile/line conversion code change s

The tiled/linear conversion functions take x/y positions now to
allow converting only sub-regions.

More texture-related helper functions.

commit baad81ec5318d44bfac1e37c7643afc0836607bb
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 30 13:18:40 2010 -0600

llvmpipe: convert tiled->linear upon PIPE_FLUSH_SWAPBUFFERS

If we know we're about to do a swapbuffers we should immediately
convert the tiled color tiles to linear instead of later in
llvmpipe_texture_unmap() since we can take advantage of threading/
parallelism here.

commit 928dd41256811daeddb7506a49a34dbad04beaf8
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 30 09:16:58 2010 -0600

llvmpipe: polish-up the llvmpipe_flush() code

commit dd6014abcf86c517d159b8175e0eaeb167ea2ef6
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 30 09:15:17 2010 -0600

llvmpipe: SETUP_x enum clean-up

commit 0b1ce6da2b28a41f3389685ab93e10b43c950f5d
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 26 10:43:37 2010 -0600

llvmpipe: remove unused vars

commit 4562663480f88162ed4452cb05569eecb67f9f39
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 26 10:31:55 2010 -0600

llvmpipe: cope with non-existant color/depth buffers

The fragment jit functions always grab these pointers, even if they're
not used.

commit df4329edbaf204ed501f1eac0698b8198178f9af
Author: Brian Paul <brianp@vmware.com>
Date: Thu Mar 25 15:20:15 2010 -0600

llvmpipe: do all render target surface mapping/unmapping in the rast code

commit 3d0c25d5ba8b8f61e8366d4c97324e45d526ff41
Author: Brian Paul <brianp@vmware.com>
Date: Thu Mar 25 14:31:21 2010 -0600

llvmpipe: map z/stencil buffer on demand like color buffers

Plus lots of code clean-up and loose ends taken care of.

commit c3b6fddd788aef09b4b84b843b7b1272231151e8
Author: Brian Paul <brianp@vmware.com>
Date: Thu Mar 25 13:15:03 2010 -0600

llvmpipe: remove unused write_zstencil field

commit 63374d97836926a6357e9d6dd24a509a8e155c56
Author: Brian Paul <brianp@vmware.com>
Date: Thu Mar 25 09:45:59 2010 -0600

llvmpipe: add missing lp_rast_end() call

Fixes crash on window resize when LP_NUM_THREADS=0.

commit 92fe9952161cc06f6edc58778e9e5a8b9ea447dc
Author: Brian Paul <brianp@vmware.com>
Date: Wed Mar 24 10:15:19 2010 -0600

llvmpipe: add tiled/linear conversion for 16-bit Z images

commit 6605fa28c147f30df351da0e4413cab33e4db5da
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 23 16:06:41 2010 -0600

llvmpipe: implement tiled/linear conversion for Z/stencil images

commit 804528d84ffa292ef9d49d3666cdd3fa099ff3ff
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 23 16:05:45 2010 -0600

llvmpipe: added texture stride comment

commit 66a88c012edf670c4ac887a912f02dcff93266dd
Author: Brian Paul <brianp@vmware.com>
Date: Tue Mar 23 16:04:07 2010 -0600

llvmpipe: remove unused vars

commit e2ca8d1328316dc8b36d5f688c16d109e49a6870
Author: Brian Paul <brianp@vmware.com>
Date: Mon Mar 22 18:53:11 2010 -0600

llvmpipe: checkpoint WIP: overhaul texture/surface mapping

Conversion between tiled and linear surfaces is working everywhere now.
The LP_TEXTURE_READ/READ_WRITE/WRITE_ALL flags let us avoid unnecessary
image layout conversions.

Still some loose ends, temporary/debug code, etc.
Need to implement tiled/linear conversion for depth/stencil images.

commit f2730a03839ee8984c1f537b7cbebba24961397a
Author: Brian Paul <brianp@vmware.com>
Date: Mon Mar 22 14:41:58 2010 -0600

llvmpipe: rename/repurpose lp_rast_store_color()

commit e192a47552c5d20d2caef452ca7697e2cd852c9b
Author: Brian Paul <brianp@vmware.com>
Date: Mon Mar 22 14:38:51 2010 -0600

llvmpipe: remove lp_rast_load_color()

commit 3cff0bde4b4ab980e1c3e812700419091527c76b
Author: Brian Paul <brianp@vmware.com>
Date: Mon Mar 22 14:11:38 2010 -0600

llvmpipe: remove/consolidate texture image code

commit 3a2f08b6a550c69ef5e874f482be30252cbf8bfa
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 19 17:03:14 2010 -0600

llvmpipe: checkpoint WIP: directly render to tiled texture buffers

We're now directly writing colors into the tiled texture image buffers.

This is a checkpoint commit with lots of dead code and temporary hacks.
Everything will get cleaned up eventually.

commit c5ca987e03870849514d4e3c99af143722a09695
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 19 16:41:14 2010 -0600

llvmpipe: refactor code, create tile_pixel_offset()

commit 2133e8273e937cbac09cd7264d6ce53af9764ddb
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 19 14:55:11 2010 -0600

llvmpipe: pass LP_TEXTURE_LINEAR/TILED flags around

commit b9b9d4b82b01f4588721fdc8444740f859b4a021
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 19 14:51:05 2010 -0600

llvmpipe: checkpoint WIP: hanlde co-existing tiled/linear texture data

Cube maps are temporarily broken, maybe other things.

commit 4cd322e6889940b5f155fcb69041b685b9ef9273
Author: Brian Paul <brianp@vmware.com>
Date: Fri Mar 19 11:34:43 2010 -0600

progs/demos: add other modes/patterns to dissolve demo
raw_pipe_aaline.c
raw_pipe_pstipple.c
9f39d3240b41639cbaa5b6c438a76c34d3f23444 13-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Initialize variable.
raw_llvm.c
911fa4a4a16e7cb099107ecf79d9ed8f63139236 12-Apr-2010 Dave Airlie <airlied@redhat.com> ffvertex: don't touch tex coords if coord replace is enabled.

The fixed function vertex program shouldn't need to deal or touch tex coords
if stuffing is enabled.

Though I'm not 100% this won't break assumption made elsewhere it seems like
the correct thing to do, and makes r300g point sprites a lot easier to implement.

draw: fix point-sprite when vertex program is used.

This commit regressed draw, so fix it as well to help bisection.

Signed-off-by: Dave Airlie <airlied@redhat.com>
raw_pipe_wide_point.c
ea532f0e725bd68e7784189c9b7f6f7bf7f9d901 10-Apr-2010 José Fonseca <jfonseca@vmware.com> scons: Make LLVM a black-white dependency.

Now that draw depends on llvm it is very difficult to correctly handle
broken llvm installations. Either the user requests LLVM and it needs to
supply a working installation. Or it doesn't, and it gets no LLVM
accelerate pipe drivers.
raw_context.h
raw_llvm.h
raw_private.h
raw_pt.c
raw_vs_llvm.c
287c94ea4987033f9c99a2f91c5750c9083504ca 10-Apr-2010 Keith Whitwell <keithw@vmware.com> Squashed commit of the following:

commit 0189cb2fde9f5d7326fd4bfbc2e52db4cce73b3e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 12:48:43 2010 +0100

gallium: don't use generic get_transfer func for textures

It doesn't know and can't fill in the stride value.

commit 65bc6f88fd9ce8ff90175b250e580bef2739ea35
Author: Chia-I Wu <olv@lunarg.com>
Date: Sat Apr 10 13:49:34 2010 +0800

i915g: Initialize screen surface function.

commit eb56e64986790aa2fa35534ce652b78656b0c3c5
Merge: f8b0a7f e7f1e5c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 00:38:43 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/r300/r300_texture.c

commit f8b0a7f6a3a98fd36ce90a81073ec8c8f09b684c
Merge: a3c9980 f43c679
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Apr 10 00:35:09 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/r300/r300_texture.c

commit a3c99807de37dc2c072f1d75ed3a11da333bc9a1
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:51:39 2010 +0200

scons: Add missing sources.

commit 927cec79cedb457efa9e6f335727cfcb8e4908e2
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 18:07:56 2010 +0200

gallium: fix another compile warning after merge. Hmpf.

commit 52953cd7b0e51deafecb812bdc40f9e45f9ac62a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 18:02:11 2010 +0200

gallium: fix comment

commit 7c8763aa6cfc74adf1ea49c2bab25ca17b32575f
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:05:20 2010 +0200

util: Fix type cast.

commit 9d0086411a104b7cc9297aac0d1f82853118d7bf
Author: unknown <michal@.(none)>
Date: Fri Apr 9 18:04:33 2010 +0200

libgl-gdi: Use proper unwrap functions for resources.

commit 251a5cdd18ba31c690ef61f133dfc65cd4a45cf8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:51:23 2010 +0200

gallium: more comments fixup

commit 8f3f9d5e1e9c0de98a3dfb19e81250d2c32ee4e9
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:48:18 2010 +0200

gallium: another fix after merge

commit 41f00a32ee5be91512c048bacb89ede0e04bc08d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:44:30 2010 +0200

gallium: more pipe_texture/resource fixes after merge

commit faf53328d1154c51d8a59513f2bfcae62272b0bf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 17:44:24 2010 +0200

gallium: fix comments for changed USAGE flags

commit fdcb17bea4b0798d316b56deea69832f41142adf
Author: Roland Scheidegger <sroland@vmware.com>
Date: Fri Apr 9 16:40:07 2010 +0200

gallium/pb: pb uses PB_USAGE_ flags, not PIPE_TRANSFER_ (same value anyway)

commit c95f7278ecc6db417ec1053279f2a8172c47aee9
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:44:35 2010 +0100

llvmpipe: fix merge glitches

commit 28f8b8683175149a381be5eff263d4c20568bce7
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:41:39 2010 +0100

r300g: update after merge for pipe_resources

commit 248c93cbc066ba6e3fadd94c5fcf3bdbb373d8fd
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:41:20 2010 +0100

st/mesa: fix old pipe_texture usages

commit a563b1c5c2cb57b3ef28a3654d9b477460d13ced
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:40:56 2010 +0100

r300g: remove unused variable

commit 734500131d828c9dfd68c5fa26b3e6b07e086d2d
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:40:36 2010 +0100

nv50: fix compiler warning

commit efd402e13037e5c3e29759fa5b1c754c6d65d0e2
Merge: fec8a1d 5452615
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Apr 9 13:33:57 2010 +0100

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/cell/ppu/cell_screen.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/r300/r300_transfer.c
src/gallium/state_trackers/egl/common/egl_g3d.h
src/gallium/state_trackers/egl/kms/native_kms.c
src/gallium/state_trackers/egl/x11/native_dri2.c
src/gallium/state_trackers/egl/x11/native_ximage.c

commit fec8a1db13fac04ef56f6ece799d1f20aa3011db
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Apr 3 07:58:34 2010 +0200

util: fix assertion failures in pipe_buffer_flush_mapped_range

commit 1ff3984c2edce9927744f3cce3e7b07778990170
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 8 17:44:54 2010 +0200

docs: fix transfer_map description

commit 20bf14be8ac6438cb1afa38212e306fc06a5ed40
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Apr 8 14:39:13 2010 +0100

util: fix up several uses of pipe_map_buffer_range

This function used to return a pointer to where the start of the
actual buffer would have been, even though only the requested range is
being mapped.

In the resources change, the function was modified to use a transfer
internally, and started returning the pointer to the beginning of the
transfer, ie the mapped range.

Some users of the function were changed to reflect this new behaviour,
some were not. Since then the function has reverted to its original
behaviour, matching master.

This change restores some of the users of the map_buffer_range helper
to expect the old/original behaviour.

commit 33179a86058b68b518f40971030db337dc26fe6e
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Apr 8 14:38:54 2010 +0100

mesa/st: fix up several uses of pipe_map_buffer_range

This function used to return a pointer to where the start of the
actual buffer would have been, even though only the requested range is
being mapped.

In the resources change, the function was modified to use a transfer
internally, and started returning the pointer to the beginning of the
transfer, ie the mapped range.

Some users of the function were changed to reflect this new behaviour,
some were not. Since then the function has reverted to its original
behaviour, matching master.

This change restores some of the users of the map_buffer_range helper
to expect the old/original behaviour.

commit 3f5363d4dc9d7ad48467ae82d58d5f3d9bd10698
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:26:52 2010 +0100

util: map_range and flush_range have offsets relative to start of buffer

commit 7eb1bfb97a790c73188d6b616d54fb3849e69b1e
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:26:08 2010 +0100

nv50: fix compiler warning

commit d040daff0642dd791ac38e9b353dc251b03fc873
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Apr 7 17:25:58 2010 +0100

nvfx: fix compiler warning

commit 49ec01dffb8e99ab3ff8f856287db7b4df3efed6
Author: Chia-I Wu <olv@lunarg.com>
Date: Mon Apr 5 11:58:53 2010 +0800

mesa/es: Fixes for gallium-resources.

commit 47c87ada452be45766928a01b6d69da63e3a5f5e
Author: Marek Olšák <maraeo@gmail.com>
Date: Sat Apr 3 05:19:20 2010 +0200

r300g: fix transfers for textures created from winsys handles

commit 5f2701fddaef9c18d85c049311c2819c49cc1ae0
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 03:52:38 2010 +0200

nouveau: don't use the staging usage

Maybe it could make sense, but for now dynamic is enough.

None of these avoid uncached reads from GART on AGP cards.

commit 0db20fa49e008f35911007fa7ed9be1d678a2161
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 03:27:19 2010 +0200

i965: add brw_resource.c to Makefile

commit b94f3e7389cbd1b6465de3c04e8059ce73f1ea1f
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Sat Apr 3 01:48:33 2010 +0200

nouveau: fix for gallium-resources

commit a01ff99a19986e6beb7903431e60a074945b09bc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 19:26:35 2010 +0200

gallium: fix missing includes

commit 26aeded562ce947a6deeb867fe22bf8daf7b1a1a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 19:19:18 2010 +0200

gallium: remove video interface and related stuff

These interfaces weren't quite was needed, and building disabled for a while.
Some code actually build since some branch merge, and were now not fully
converted to gallium-resources.
See http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg09619.html
for a discussion of this. Video related work is done in origin/pipe-video
branch.

commit c64285aea45997a276fb141d7badc8a04f617c7c
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 18:45:54 2010 +0200

python: fixes for resource changes

doesn't look quite ok yet, but sort of compiles.

commit 03d4d5a41f5cf158a358fd705c695e1c987a328f
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 18:34:46 2010 +0200

gallium: s/u_box_orgin_2d/u_box_origin_2d

commit 2444f023142bcaf7bd310b44794580f273254408
Author: Marek Olšák <maraeo@gmail.com>
Date: Thu Apr 1 03:26:50 2010 +0200

r300g: fix segfault when the transfers functions are used

Still broken.

commit 6f09bf4066ab651b323c131bb07978e700519805
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 00:05:12 2010 +0200

r300g: compile fixes

commit 76711ff40d2092f9ef03d452de7458c4e76d9246
Author: Roland Scheidegger <sroland@vmware.com>
Date: Thu Apr 1 00:04:47 2010 +0200

nvfx: more compile fixes

commit c5d2e90c9cc119447a447dc04a4bce4ab91fc671
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 23:18:50 2010 +0200

gallium: more mostly merge fallout fixes...

commit fbc3722696790857f4adc936190406e74dffd969
Merge: 86d9225 d97f696
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 22:09:35 2010 +0200

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/cell/ppu/cell_screen.c
src/gallium/drivers/i915/i915_buffer.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i915/i915_resource_texture.c
src/gallium/drivers/i915/i915_screen.c
src/gallium/drivers/i915/i915_state_emit.c
src/gallium/drivers/i965/brw_resource_texture.c
src/gallium/drivers/llvmpipe/lp_screen.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/nvfx/nv30_fragtex.c
src/gallium/drivers/nvfx/nv40_fragtex.c
src/gallium/drivers/nvfx/nvfx_miptree.c
src/gallium/drivers/nvfx/nvfx_screen.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/svga/svga_screen_texture.c
src/gallium/state_trackers/dri/common/dri_drawable.c
src/gallium/state_trackers/dri/common/dri_screen.c
src/gallium/state_trackers/dri/common/dri_st_api.h
src/gallium/state_trackers/dri/drm/dri1.c
src/gallium/state_trackers/dri/drm/dri1.h
src/gallium/state_trackers/dri/drm/dri2.c
src/gallium/state_trackers/python/st_device.c
src/gallium/state_trackers/python/st_sample.c
src/mesa/state_tracker/st_cb_clear.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_extensions.c

commit 86d9225d19d194eebbbe95b059695697c3307d15
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 19:06:06 2010 +0200

gallium: more fixes for bind changes

commit a215ef0606347e34669a580ec8df93ede7e46399
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 31 18:48:36 2010 +0200

gallium/docs: some updates for bind changes

commit c6c7e6746cbc7af59f7972719ed76f43e8ac16fc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 20:24:26 2010 +0200

gallium: more bind change compile fixes

commit a83fa1504b78180524a5eb454ae186741a27cdf8
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 17:37:13 2010 +0200

compile fixes

commit 30dc8afcd243d6a160571bac5f06d773e54a4196
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 16:56:28 2010 +0200

fix some merge issues

commit 30aa617fee11fe50c0a9c2f33fcd120a474f5e34
Merge: 1dde609 3a830bc
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 30 16:09:45 2010 +0200

Merge commit 'origin/gallium-buffer-usage-cleanup' into gallium-resources

Conflicts:
src/gallium/drivers/nouveau/nouveau_screen.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c

commit 1dde609ad6c9d2dfa0a5f7167f3c5bcf023b7c4d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Wed Mar 24 02:35:00 2010 +0100

docs: some updates for pipe_resource

commit f236f9660d31b936f54b64ae07e569f8637067bd
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Wed Mar 24 01:31:28 2010 +0100

nvfx: fix for gallium-resources

It seems to work with basic applications but almost surely needs more work.

In particular, it probably shouldn't use PIPE_BUFFER_USAGE_* flags
and should use PIPE_TRANSFER_* in several places.

Also, we probably don't want the vtable indirect calls and that ought
to be replaced with something better instead.

commit 5a136ad7b63768cb9a753eff8686c44592e62325
Author: Luca Barbieri <luca@luca-barbieri.com>
Date: Wed Mar 24 01:31:19 2010 +0100

nv50: fix build in gallium-resources

Not actually tested.

Also needs next patch tee to actually build, this is just the nv50 part
split from the rest.

commit 3a830bc4a3f0f60c925b9434845a6bcad9a913c5
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 14:00:52 2010 -0700

st/egl: fix up for binding flags

commit c6a80dc32ef17bc972d4137ce7444ebed4d28ebb
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 13:52:15 2010 -0700

r300: restore 4k alignment for oqbo buffers

commit e75a8d5ea9e0ffcf67bc858e08937e10b4fc74ba
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 13:00:07 2010 -0700

gallium: bind flags

commit 1f5b509543a7f399835fd9edf27c18e1643fab7d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 19:32:21 2010 +0100

i965g: scons compile fixes

commit 2c385f8f905ec794d9119c05c6293e0b1b9b565a
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 19:20:33 2010 +0100

nouveau: drm compile fix

commit b285086ebd5132b47c340897c4622cc9fbd286cb
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 18:36:19 2010 +0100

r300g: pipe_resource compile fixes

bring back mistakenly deleted radeon_buffer.h
plus some more

commit 7810606f423ef2f51f0a14b919640c2fd2c931aa
Author: Michal Krol <michal@vmware.com>
Date: Tue Mar 23 16:21:03 2010 +0100

softpipe: Map GS constants, too.

commit 366f1176fb89d2b1978da6cfe60000b76bbc7338
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:51:52 2010 +0100

failover: update for pipe_resources

commit 615f44d70d293704ed821bc0b21fcfe6e363895d
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:51:02 2010 +0100

identity: remove double is_resource_reference assignment

commit 7008586020395905ddfff333d02b3893de369796
Author: Roland Scheidegger <sroland@vmware.com>
Date: Tue Mar 23 15:50:32 2010 +0100

trace: compile fix

commit 058c5697bda4c9cf7b49d26ee27a34586544efaa
Merge: dd7ba13 b33fd3c
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 23 06:40:39 2010 -0700

Merge commit 'origin/gallium-resources' into gallium-buffer-usage-cleanup

Conflicts:
src/gallium/state_trackers/vega/api_filters.c
src/mesa/state_tracker/st_cb_drawpixels.c

commit b33fd3ce3daf2921a895367d0ed3fd9c718a8575
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 21:03:26 2010 +0100

gallium: Usage parameter of get_transfer/transfer_inline_write is a bitfield.

commit 9c1162d9d656062a490a529997def3f674cc61fc
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 20:50:49 2010 +0100

scons: Update file lists after gallium-resources changes.

commit af9793ab9e5386b150d6b25c0d1978fdc67172e4
Author: Michal Krol <michal@vmware.com>
Date: Mon Mar 22 20:04:39 2010 +0100

gallium: Do not use `template` for formal parameter names.

commit dc2e12d714c444af9ff1acdd5a7e91408b116c99
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:41:34 2010 +0000

ws/nouveau: remove pipe_texture reference

commit b94c72329f1be85887d40d49b0586979da469d77
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:40:41 2010 +0000

ws/xlib: remove pipe_buffer reference in comment

commit 0a2af3eeae7de1d1cb433f0a2c35136b115f9920
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:39:34 2010 +0000

st/vega: clean up reference to pipe_texture

commit 437ce98daae46be5d532fbb04c7cbf4a503c1623
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:39:02 2010 +0000

st/python: begin conversion to pipe_resources, much more to do

commit 1b02e1ee3e5e87774f0c9e5f0e1898b7f8de1b16
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:29:34 2010 +0000

st/xorg: update for pipe_resources

commit eb39977fe7a1d9f0c3f4f2d4303a93c2c613cc3b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:23:51 2010 +0000

st/dri: update for pipe_resources

commit e447aeff597a4d8c0f5de25854c14c99f2cc138c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:23:36 2010 +0000

st/egl: update for pipe_resources

commit e4cc48da8fdbd7d521257a6d7cd10e6fc5aa1a65
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:08:44 2010 +0000

r300: drop use of R300 DONT SYNC flag

commit 129a83ab4d32e44ded5faea3f86ae5e1e62cddb6
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:08:17 2010 +0000

pipebuffer: use transfer flag

commit 575b35ee6b683d77095ef21c573c1de207107e79
Merge: f29ac73 9fc6c8b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 22:03:25 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/winsys/drm/radeon/core/radeon_buffer.h

commit f29ac73f3f626d5779a627b7fa6fecdb60a35aab
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 18:37:25 2010 +0000

cell: attempt to convert to pipe_resources

Can't even compile test this driver.

commit 484b1947f4af81bab60b41f21c3c23ea6f67488c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:25:50 2010 +0000

nvfx: restore usage of pipe_winsys

The interface that cannot be killed...

commit ac76ac6eb30f4f9aa9f5733d60358b357925953a
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:25:10 2010 +0000

nv50: fix warning

commit 9683f4423449fa5acf6c019c571223650473bd82
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 17:14:31 2010 +0000

util: restore u_simple_screen, nouveau still relies on it

commit 961cbcb62232689c959965384c6aa9b8eca697c1
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 16:51:54 2010 +0000

nouveau: convert nvfx and nv50 to pipe_resources

Compile tested only.

This was a deeper change than I was hoping for, due to the
layering of the pipe_texture implementation in each driver on
top of a shared pipe_buffer implementation in the shared code.

Have modified the shared code to act as a set of convenience
routines operating on nouveau_bo objects.

Each driver now uses the u_resource_vtbl technique to split the
implementation of pipe_resources between the existing miptree code
for textures and a new, minimal buffer implementation in each
driver.

Eventually these should be combined, not least because APIs are now
allowing things like binding buffer resources as textures and render
targets.

commit 18ba74016db13b23282f5033ee37b628a12ee566
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 10:02:54 2010 +0000

r300: fix compilation after merge

Also build r300 by default.

commit eb9c0175c8e4baca3fcb0b8364f83ceba9d74e0d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:59:49 2010 +0000

st/vega: fix up after merge

commit ea8dd1d4ae7b58c9315c3491046ef3852ddd3377
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:59:44 2010 +0000

aux: remove unused piperesource helpers

commit be7af29d3ad1a10409b0ea689d882cf30a4e1d62
Merge: d22c2c6 12deb9e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 21 09:54:53 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/cso_cache/cso_context.h
src/gallium/drivers/r300/r300_context.c
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/r300/r300_state_derived.c
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/image.h
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/mask.h
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/paint.h
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/renderer.h
src/gallium/state_trackers/vega/shader.c
src/gallium/state_trackers/vega/vg_context.h
src/gallium/state_trackers/vega/vg_tracker.c
src/mesa/state_tracker/st_manager.c

commit d22c2c6cb23a063e3334a165d0c5c3d73f05d234
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 20 11:48:54 2010 +0000

drm/r300: update for r300g pipe_resources conversion

Remove old files that related to pipe_buffers but weren't being
built. Hopefully this is correct.

commit f07b2c836958bee5796899123eca4ed05ac6242b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 20 11:47:03 2010 +0000

r300: convert to pipe_resources

Do a very shallow conversion - basically keeping the existing
buffer and texture code intact and using a vtbl struct
inside our resource struct to select between the two implementations.

The buffer and texture treatments could be further merged without
much effort, but try to keep the existing code working at this point.

commit feca9c3ca62daaf0d8745370106d4e3b22340c49
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:34 2010 +0000

gallium: update new merges to pipe_resource

commit 1cad983eac77a0c5333e6a3ce92b90ac87407714
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:19 2010 +0000

drm/sw: update new merges to pipe_resource

commit 191d39490ed792c569f98d42cf05891b264f71f8
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 06:00:01 2010 +0000

vg: update new merges to pipe_resource

commit b727c59bc44812ad503d9390505c92b738a5b8b0
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:38 2010 +0000

llvmpipe: update new merges to pipe_resource

commit 5f4b64b37fdcd70162c382b2ebbd494bef751dbd
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:23 2010 +0000

brw: pipe_resource fixes

commit d4aca209f531f1b65bf706ce1e5fc0375b587eb6
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:59:06 2010 +0000

util: update new merges to pipe_resource

commit cf6bef0afee10763c78509a3d17e9a6e49bcd3c8
Merge: 1997231 6de8e56
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 18 05:38:50 2010 +0000

Merge commit 'origin/master' into gallium-resources

commit 1997231916144485c3c4a36f53eda39fce460272
Merge: ad88ac7 e1ee3ea
Author: Keith Whitwell <keithw@vmware.com>
Date: Wed Mar 17 08:46:38 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/auxiliary/Makefile
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_blit.h
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_gen_mipmap.h
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_gen_mipmap.c

commit ad88ac79034a91670940276e722bdd398d5c9023
Merge: 77bc770 8cdfd12
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 16 09:13:07 2010 +0000

Merge branch 'gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/softpipe/sp_texture.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_framebuffer.c
src/mesa/state_tracker/st_texture.c

commit 77bc770c991ea025c82eaa4e0e2390efd825d96d
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 15 22:21:48 2010 +0000

util: missing file

commit f83c91db8ae63a3c3a34ff21492427a5663fb760
Merge: c1d4774 42910eb
Author: Keith Whitwell <keithw@vmware.com>
Date: Mon Mar 15 09:48:58 2010 +0000

Merge commit 'origin/gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/drivers/nv40/nv40_transfer.c
src/gallium/drivers/nvfx/nvfx_transfer.c
src/gallium/drivers/trace/tr_drm.c

commit dd7ba1378fc50710667724d30d6d4cf1125ad61e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 23:54:36 2010 +0000

gallium: start a cleanup of buffer_usage

Remove fairly meaningless CPU/GPU READ/WRITE flags and
replace with proper usages.

commit c1d4774187189f4af8ff421b210824f3d53ceefb
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 23:05:45 2010 +0000

llvmpipe: don't FREE userbuffer data

commit 9bfa07afe179f8060e7beefb754a29c4d9c6e349
Merge: 65757a1 08cddfe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:54:51 2010 +0000

Merge commit 'origin/master' into gallium-resources

Conflicts:
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_scene.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/llvmpipe/lp_texture.h
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/svga/svga_screen_texture.c

commit 65757a143f8e3fcd7afbc1ff92db44a823edf46c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:41:17 2010 +0000

svga: build fixes

commit 2f5435220501d4b3050cab2bb1dce6174cd13ff6
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:39:25 2010 +0000

gallivm: build fix

commit 42642ec0984107d82b740711f2debbf38457a06e
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:38:33 2010 +0000

llvmpipe: convert to pipe_resources

commit 7bbcb21e20cb545ef8dd5fc61d67ed931c69e813
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 22:19:30 2010 +0000

gallivm: convert to pipe_resources

commit 88ae0d04610ca52649b42e32141a52af6d5a739b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:01:22 2010 +0000

configs: build svga

commit 0e112bc69828e65085ebfaef895ecd78fe53f1c4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:01:17 2010 +0000

gallium: restore PIPE_BUFFER_USAGE_CUSTOM

commit 102aca688b95c976b7178b84092fba7d041ff9d2
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 21:00:41 2010 +0000

util: more transfer helpers

commit a79f6a4a0836fc64c07f9aeec21d914474fe3649
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 20:59:36 2010 +0000

svga: convert to use pipe_resrource

As with others so far, a fairly shallow conversion.

commit 087fb54492fa5e3baf040c5efbf7dacd98a8849b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:38:08 2010 +0000

brw: fix function name

commit cfc9dd707d16e06fd23b6926da3a6e2269f31dc8
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:19:06 2010 +0000

gallium: enable brw compile

commit 8a5b86d76bdd3c7de63322423f59940a4dc2ee25
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:18:50 2010 +0000

brw: compiles with pipe_resource

commit 563ca458b548c41ca4dca559354c16ca1a80d009
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 18:18:42 2010 +0000

i915: hook up userbuffer create

commit b5095b48247b6020e36cc942ac145c3fccbe9a19
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:20:51 2010 +0000

i915: use helpers for is_resource_referenced

commit d5392bdc6d70002acf9c5bac0fde14ba405c4d84
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:20:38 2010 +0000

util: helpers for is_resource_referenced

commit 2f3492a5aefbb2e745f6700d8e910ebb5cbb98cf
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:08:50 2010 +0000

i915: remove buffer.c again

commit 1373a35b65fcc25ec6cdfea2703bbb3417de2c6d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 17:08:34 2010 +0000

i915: add new files to scons

commit 0251612d70e57fe38e10e75915b394631d224f2c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 16:38:29 2010 +0000

i915: compiling with pipe_resources

commit 9a0235864252929a8eedd44dbd2fe30fe54c531d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:51:16 2010 +0000

gallium: remove inline_read transfer

commit a6ba315e25793e0c228d3a4ae2f8201634dc9ff0
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:50:32 2010 +0000

trace: get running

Some dumping will be incorrect or disabled, but it runs without
crashing

commit 2133f1d90aa919662a8420a0cf3b4557e6ec1afd
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 13:49:42 2010 +0000

gallium: remove the inline_read transfer

There aren't enough users of this to justify it.

commit bccaf1fa30881f6b4fb189a9b74fc7af79c3b481
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:30:37 2010 +0000

identity: hook up inline transfer operations

commit e4c152a344f2f53c842b810724a2ae7cb4554f58
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:21:54 2010 +0000

gallium: build trace and identity

commit 0b5a311db78852fa9fd021e17b5968a1e0436b49
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:21:36 2010 +0000

gallium: add more of the transfer state to pipe_transfer

Not really sure if recording all the arguments to the
create_{transfer,texture,surface,etc} functions in the result of those
calls is a great idea, but it seems we're fairly dependent on it
throughout the code.

commit a23985c26eafe76b0a7dacc892e50cb589f211fe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:19:46 2010 +0000

identity: compiles with pipe_resources

commit d0d630944304c208f6dade6ef8836763ee2bc7b4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 12:13:02 2010 +0000

trace: compiles with pipe_resources

commit a4451ea459cc8bfc915fe6aed2891b90854b6c9d
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:39:50 2010 +0000

softpipe: give userbuffers a format other than NONE

Most mesa demos working

commit 32bb1bd4ba29884a4ecfa11c8441d33dfceabcef
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:39:21 2010 +0000

util: correct argument order in pipe_buffer_map

commit 7e2696c06445282feb781047277b260308760a33
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:32:55 2010 +0000

softpipe: transfer flush

commit a0543b13c042e3c1142522d9d136f16fd4cabf78
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:32:13 2010 +0000

util: noop implementation of transfer_flush_region

commit ce418533be752dbeb164e7ff82a99483048e482b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:26:07 2010 +0000

gallium: softpipe runs gears with pipe_resources

commit bfda4f2eb34498e4b7f3c608d30fccff6bb9651b
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 11:25:48 2010 +0000

util: get clip_tile working again

commit f5ef219c3bed62b6a0da842e675fae16268e0fbe
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:43:20 2010 +0000

softpipe: use u_transfer helpers

commit 072957aab25affecf0702e925310e46c694a5ee4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:42:46 2010 +0000

util: helpers for inline transfers

commit 9c45561fb0d7a52400093bcb2ce5f727fafd7777
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:42:25 2010 +0000

util: fix typo calculating transfer box

commit f3e98fd47f36804d019a684d49ff230df3ab0cf5
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 09:25:46 2010 +0000

st/vega: convert to pipe_resource

commit d1b7b00afc944f6499c83d676c7642115d62a62c
Author: Keith Whitwell <keithw@vmware.com>
Date: Sun Mar 14 08:37:56 2010 +0000

gallium: begin converting drivers to pipe_resource

Work in progress...

commit 51c25117f5d6da1926a2be5ecc66677952a8abf0
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 20:16:27 2010 +0000

gallium: work in progress on layering resources on top of old textures

Helper code in an aux module to avoid rewriting all the drivers.

commit fb6764d3ce95c55aa78af2f1c8cbb17b79ce1ba2
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 19:19:09 2010 +0000

heaps of wip

commit ee6b3bc730fcdaf8da3646d62f04578ec06d36a1
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 16:38:02 2010 +0000

wip2

commit 1830880212445189fe267d615075239ed17c7cc0
Merge: 90b4045 47bfbd4
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 15:14:03 2010 +0000

Merge branch 'gallium-sampler-view' into gallium-resources

Conflicts:
src/gallium/include/pipe/p_context.h
src/mesa/state_tracker/st_atom_texture.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_drawpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_texture.h

commit 90b4045fbc0a093fcd04efba7e045ec259c490b8
Author: Keith Whitwell <keithw@vmware.com>
Date: Sat Mar 13 14:52:43 2010 +0000

wip
raw_pipe_aaline.c
raw_pipe_pstipple.c
074084d5639dc0eba93d3497a5618e018b8b7433 08-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: hook up the generated function into the draw elts path

we were only using the jited function in the linear case, now drawelts
correctly uses the same path. it results in a significant gain in
real world apps (openarena went from 23fps to 29fps)
raw_pt_fetch_shade_pipeline_llvm.c
3ceafcf143d2e0cf73ecf116a2391e540873ca18 08-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fix vertex buffer indexation.
raw_llvm.c
01ec162d5305c7dc1b20b7c54a0cc163a1ea1bcf 08-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Remove unnecessary header.
raw_llvm.c
821abff8c03031603111abc17dabe7cfa28a31e1 07-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: highly reduce the compilation times for draw llvm

our code resets pipe_vertex_buffer's with different offsets when rendering
vbo, meaning that we kept creating insane number of shaders even for simple
apps e.g. geartrain had 54 shaders and it was taking almost 27 seconds just to
compile them. this patch passes pipe_vertex_buffer's to the jit function and lets
it to the stride/buffer_offset computation at run time. the slowdown at runtime
is largely unnoticable but the we go from 54 shaders to 3, and from 27 seconds to less
than 1.
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
a46ca64562aeaa11a53baa1407226901f2ce0fd9 07-Apr-2010 José Fonseca <jfonseca@vmware.com> draw: Fix MSVC build (snprintf->util_snprintf).
raw_llvm.c
78fd65fd2c9b537b88bf35454b98323029ee1bb3 07-Apr-2010 Brian Paul <brianp@vmware.com> draw: init draw->pt.middle.general = NULL just to be safe

This field should be null from the initial calloc() of the draw context,
but let's be safe (and improve understanding of the code).
raw_pt.c
da17623c33cddf96c0f63b32e25ebc33b04a2b14 07-Apr-2010 José Fonseca <jfonseca@vmware.com> llvmpipe: Fix USE_DRAW_LLVM build. Use lp_build_engine.
raw_context.h
raw_llvm.c
95bfd0067c55859b311feab3109851deb88dbda2 07-Apr-2010 Vinson Lee <vlee@vmware.com> draw llvm: Remove unnecessary headers.
raw_llvm_translate.c
raw_pt_fetch_shade_pipeline_llvm.c
1570760a9756234978ff56a9db4c781a630fe6ce 07-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: disable printing of the LLVM ir
raw_llvm.c
45c89091487a9cd3999362cdb486299c4a0f24c6 07-Apr-2010 Brian Paul <brianp@vmware.com> gallium/draw: add additional DRAW_LLVM check

Fixes build breakage.
raw_pt.c
06bda76c08618eaf68de70f4f776329e6ef1f196 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: disable debugging output
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
323fdd8ae5baf16df6c57754e58adc8e22d28e10 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: implement simple pipeline caching using variants
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
1e0bf24139f6047f505b138392fc0f1d6584d6bc 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix iteration for larger vertex arrays

we were trying to store the outputs starting at the same offset we
were using for the input arrays, which was writing beyond the end of
the output array.
raw_llvm.c
de0647dbad96db222b5643d03b3f61b093e7ef76 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: iterate with the correct stop over the outputs

it's whatever the var step is (4 usually) not an unconditional 1
raw_llvm.c
aeaf2cf18fc74f2d65fcadfad8c19f244ccd4206 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix draw arrays

we don't index within the outputs but only within the inputs
raw_llvm.c
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
9dd70e7b85ddbc73bd976c4dab81476aa36c557e 06-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix loop iteration and vertex header offsets

the loop was doing a NE comparison which we could have skipped if the prim
was triangles (3 verts) and our step was 4 verts. also fix offsets in conversion
to aos.
raw_llvm.c
raw_pt_fetch_shade_pipeline_llvm.c
1b0bab167cd541f70c32249ca3e70da88b8c93c5 05-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: when generating the vertex_header struct adjust its name

change the name to not clash and accuretly represent the number of inputs
we store in the data member
raw_llvm.c
cb31d3b5fec6260142ed27cc37f7155915ecfe89 03-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix storing of outputs for the rest of the pipeline

there's no good way of aligning the output's, and since the vertex_header
is variable sized in the first place we need to extract elements from a vector
and store them individually into an array. this gets the basic examples working
again
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
raw_pt_post_vs.c
557b75248a3ebc6daabe3c2b69ac24d409aaa1e0 02-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix translation of formats with variable components
raw_llvm_translate.c
ab5c09738760bc1b665b9809eaf921f4ac27057e 02-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: a lot better storing implementation
raw_llvm.c
raw_llvm.h
raw_pt_fetch_shade_pipeline_llvm.c
ae5487d4276007e466b6a7c783d6fb740f9539c5 01-Apr-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix iteration over buffers

fetching was converting garbage
raw_llvm.c
raw_llvm_translate.c
880e3fb09b538f6f0b6fad2db7e0e10e9df43555 31-Mar-2010 Zack Rusin <zackr@vmware.com> Merge remote branch 'origin/master' into gallium_draw_llvm
93e342574f5fc95789028dbe7cf637257562e9bb 31-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix a warning
raw_llvm.c
b0f946e90069f34e69a0492caa7a2867ae184e9a 30-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvm: actually set the constant buffers on the context
raw_llvm.c
raw_pt_fetch_shade_pipeline_llvm.c
8bc07fc83e344c9e693bdec4148009320a1731f1 30-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvm: fix some silly mistakes

the vs_type selection isn't ideal, but for now both llvmpipe's fs and vs
do the same thing which is operate on 4xfloat vector as the base type
raw_llvm.c
raw_llvm_translate.c
6f34339af421d4001dcc01114be462d2ea381f16 30-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvm: we translate between pointers, not values directly
raw_llvm_translate.c
1963112f9d0a2ed8e237641eef8eb384365d1375 30-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvm: various fixes for the translation code

the from translation isn't quite right yet
raw_gs.c
raw_llvm.c
raw_llvm.h
raw_llvm_translate.c
f44af927ff90a9fe1256d8c6f4869a39a55043d3 29-Mar-2010 Zack Rusin <zackr@vmware.com> draw llvmpipe: lots of fixes for fetch/emit

the values passed are still not right, but the general scheme
is looking good.
raw_llvm.c
raw_llvm.h
raw_llvm_translate.c
raw_pt_fetch_shade_pipeline_llvm.c
fe306e7ea5e789adc955653d9be8cd7f8af47264 25-Mar-2010 Jakob Bornecrantz <wallbraker@gmail.com> draw: Add EMIT_4UB_BGRA format

Needed for i915g, also fixed swizzle in draw_vs_aos_io.
raw_vertex.c
raw_vertex.h
raw_vs_aos_io.c
84a8347b9f6ef0c1b2519e9bd5fef2ce3c85afb7 25-Mar-2010 Jakob Bornecrantz <wallbraker@gmail.com> draw: Use translate function instead of switch cases
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_vertex.c
raw_vertex.h
275c4bd3643d773210780cb8d578ca84f2604684 15-Mar-2010 Zack Rusin <zackr@vmware.com> Merge remote branch 'origin/master' into gallium_draw_llvm
47bfbd452c93e6a8db013fb90d9f42210cf24889 13-Mar-2010 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/master' into gallium-sampler-view

Conflicts:
src/gallium/auxiliary/util/u_tile.c
src/gallium/auxiliary/util/u_tile.h
src/gallium/drivers/identity/id_context.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_setup.h
src/gallium/drivers/softpipe/sp_tex_tile_cache.c
src/gallium/include/pipe/p_context.h
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_drawpixels.c
d35ecca5ee231c072687578642e0c22c6c0590b1 11-Mar-2010 Keith Whitwell <keithw@vmware.com> gallium: remove pipe_context member from pipe_transfer

There was very little use for this beyond permitting the
pipe_context::tex_transfer_destroy() function to omit the pipe_context
argument.

This change adds the pipe_context argument into tex_transfer_destroy()
so that it looks like other pipe_context functions, and removes the
pipe_context pointer from pipe_transfer.
raw_pipe_aaline.c
raw_pipe_pstipple.c
b43c182f19c6291c88420fa12714f952c2b461fb 11-Mar-2010 Keith Whitwell <keithw@vmware.com> Squashed commit of gallium-context-transfers:

commit 7a2ee04629681e59ea147b440856c4f9a33ae9f8
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 14:19:17 2010 +0000

nv: convert to context transfers

commit 188a3f5331c8e5966729fd59d02975afb7324adc
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 14:11:10 2010 +0000

nouveau: remove unused variable

commit 5c8e880ab4dc020358c08728b8adb1637d2dc5bc
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 12:31:21 2010 +0000

mesa/st: fix compilation after merge

commit c552595333f860c2a4807e195596acdf5d6a5ef8
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 12:31:06 2010 +0000

util: fix compilation after merge

commit e80836878a3617b0e350d2a8f92311832a1476cb
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 12:30:47 2010 +0000

r300g: fix compilation after merge

commit 0e4883e9511b9db4e75a4dbc78d7bb970badc15d
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 12:18:45 2010 +0000

i965g: fix incorrect merge

commit 17d74133d8168eebf93bf1390de79930fc8da231
Merge: cb81c79 aa311ae
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Mar 11 12:08:32 2010 +0000

Merge commit 'origin/master' into gallium-context-transfers

Conflicts:
src/gallium/drivers/i965/brw_screen_texture.c
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/svga/svga_screen_texture.c
src/gallium/state_trackers/egl/x11/native_ximage.c

commit cb81c79098bc3a92a4d2a3dcc0edc972dfb407be
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 2 16:04:01 2010 +0000

egl/x11: hack for context transfers

There is a better approach to this in the winsys-handle branch, but
for now avoid using transfers at all by always allocating our own
backing store directly.

commit f44a24e1d4ad7563f3eedd6b3a5688f53a36265c
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 2 16:03:16 2010 +0000

llvmpipe: context transfers

commit 4d7475ef8104b3b478c7c6ce77cd3506c57e25d1
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 2 16:02:50 2010 +0000

llvmpipe: disable testprogs build

Not working.

commit a9bf98c4d36bd92a76f81e83747eb9b8f0a0515f
Merge: ee0f97e 0c616da
Author: Keith Whitwell <keithw@vmware.com>
Date: Tue Mar 2 15:28:25 2010 +0000

Merge commit 'origin/master' into gallium-context-transfers

Conflicts:
src/mesa/state_tracker/st_cb_accum.c
src/mesa/state_tracker/st_cb_bitmap.c

commit ee0f97e8d9fd5ef57211a8e1268f505c9829e246
Merge: a7f078e 828f545
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Feb 19 13:00:29 2010 +0000

Merge commit 'origin/master' into gallium-context-transfers

Conflicts:
src/gallium/auxiliary/util/u_debug.h
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/llvmpipe/lp_flush.c
src/gallium/drivers/nv30/nv30_screen.h
src/gallium/drivers/nv40/nv40_context.h
src/gallium/drivers/nv40/nv40_screen.h
src/gallium/drivers/nv50/nv50_context.h
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r300/r300_winsys.h
src/gallium/drivers/softpipe/sp_context.c
src/gallium/drivers/trace/tr_context.c
src/gallium/state_trackers/dri/dri_context.c
src/gallium/state_trackers/egl/common/egl_g3d.c
src/gallium/state_trackers/python/st_device.c
src/gallium/winsys/drm/radeon/core/radeon_drm.c

commit a7f078e16d851b53ef316066dcced46eb39ebe24
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Feb 5 14:16:11 2010 +0000

gallium: move texture transfers to pipe_context

commit 7b2ffc2019d72e833afea7eebf3e80121187375d
Merge: 51e190e c036d13
Author: Keith Whitwell <keithw@vmware.com>
Date: Fri Feb 5 09:55:02 2010 +0000

Merge commit 'origin/master' into gallium-screen-context

Conflicts:
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c

This branch has got a pretty tortured history now, I expect
a squash merge will be appropriate when it is done.

commit 51e190e95acf120f72768fafb29e9721e358df1b
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 17:58:02 2010 +0000

gallium: fix some build issues

commit f524bdaa723fb181637ad30c6ad708aeedabe25b
Merge: f906212 3aba0a2
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 17:51:32 2010 +0000

Merge commit 'origin/master' into gallium-screen-context

commit f9062126883199eabf045714c717cd35f4b7b313
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 17:17:12 2010 +0000

gallium/docs: small description of screen::create_context

commit efcb37bd3d5ed37f06c6105bd2d750b374ec0927
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:42:42 2010 +0000

drm/radeon: more dead create_context wrapper removal

commit 6badc0dd9e06cf2ec936940bcf12b9ef5324b301
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:42:30 2010 +0000

drm/i965: more dead create_context wrapper removal

commit cf04ebd5a54b18b2d894cfdab2b0f2fd55626ffc
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:42:05 2010 +0000

st/python: more dead create_context wrapper removal

commit 444f114c3516abf71c430e6e9d0d2ae3b80679d3
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:37:58 2010 +0000

idenity: wrapped context creation

commit 5a6d09cb9e468d1ee6c8d54b887618819d8d94f2
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:28:47 2010 +0000

ws/gdi: remove dead context_create wrapper

commit 132b55f4bec39386ac625f09aaa11f609664024c
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:27:52 2010 +0000

ws/gdi: remove dead context_create wrapper

commit 56d2d21a0cdcb197a364049d354c2f15a4fc026a
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:25:38 2010 +0000

st/xorg: use screen::context_create

commit 838c5cfe56b2af6c644909bed3c5e7cdd64c336a
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:23:20 2010 +0000

glx/xlib: simplify creation of trace-wrapped contexts

Trace screen knows how to properly wrap context creation in the
wrapped screen, so nothing special to do here.

commit c99404c03ebaec4175f08a2f363e43c9085f2635
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:18:24 2010 +0000

st/python: no need to special case context creation for trace

commit 193a527a682b6877bb1faecd8092df4dfd055a18
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:15:30 2010 +0000

drm/radeon: remove dead create_context declaration

commit bb984eecc25cf23bc77e1c818b81165ba1a07c9a
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:14:58 2010 +0000

nv/drm: remove dead create_context ref

commit e809313a44287dc4e16c28e9e74ef3b2b5271aa1
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:12:51 2010 +0000

st/egl: remove a layer of wrappers around screen::create_context

commit 39caa6672a04122f185c22e17aab86d1c40938bf
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:05:28 2010 +0000

r300g: fill in screen::context_create

commit 407f12556d16ba0656774d8a1d9ebda22f82f473
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 16:04:04 2010 +0000

cell: adapt for screen::create_context, untested

commit d02b0c6ce321a04c76fdabb09e0e4380ce1c1376
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:50:24 2010 +0000

drm/nv: adapt for screen::create_context

All contexts now created directly through the screen, so remove
equivalent code here.

Remove apparently un-needed array of contexts in the winsys.

commit 53eec5b1349aa1b6892a75a7bff7e7530957aeae
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:50:08 2010 +0000

stw: adapt for screen::create_context, untested

commit c6a64de3eb381bc9a88e9fbdecbf87d77925aaf5
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:49:20 2010 +0000

trace: expose the wrapped context's priv data

If we are going to keep this priv idea, really want an accessor
function for it so that trace and other drivers can wrap that.

commit 75d6104e11d86ec2b0749627ed58e35f856ee6eb
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:47:55 2010 +0000

nv30: adapt to screen::context_create

commit 12f5deb6ed9723e9b5d34577052b8365813ca14e
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:44:47 2010 +0000

nv40: adapt to screen::context_create

commit 14baccaa3b6bbb3b91056126f6521828e786dc62
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:35:27 2010 +0000

nv50: adapt to screen::create_context

Not build tested. Need to figure out how to build nouveau.

commit a0e94505ccd2d7f3e604465a2ac302f1286b73b6
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:22:27 2010 +0000

llvmpipe: update for screen::create_context, untested

commit 0eae17107c950346030e4f7e0ec232f868d3893d
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 15:16:57 2010 +0000

xlib/llvmpipe: remove dead winsys context creation path

commit 2f69f9ffaa7e2a01d2483277246ed13051ae4ca3
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 14:58:27 2010 +0000

gallium: convert most code to use screen::create_context

I wish I could build all of gallium at once to find breakages.

commit d7b57f4061b82322cbcae176125913d9f0dea6c1
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 12:46:21 2010 +0000

glx: permit building with older protocol headers

I'd like to be able to build mesa on current distro releases without
having to upgrade from the standard dri2proto and glproto headers. With
this change I'm able to build on ancient releases such as Ubuntu 9-10...

In general, it would be nice to be able to build-test mesa to check for
unintended breakages without having to follow the external dependencies
of every group working on the codebase.

commit 57adedd6fb06c98572ed8d4aef19203df4c4eea2
Merge: da71847 e1906ae
Author: Keith Whitwell <keithw@vmware.com>
Date: Thu Feb 4 11:38:15 2010 +0000

Merge commit 'origin/master' into gallium-screen-context

Conflicts:
src/gallium/drivers/softpipe/sp_video_context.h
src/gallium/drivers/trace/tr_context.c
src/gallium/state_trackers/wgl/shared/stw_context.c
src/gallium/winsys/gdi/gdi_softpipe_winsys.c

commit da71847ea6414d7e352c6094f8963bb4eda344dc
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat May 2 08:57:39 2009 +0100

wgl: Use pipe_screen::context_create.

commit 2595a188f93fd903600ef5d8517737ee0592035d
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat May 2 08:56:47 2009 +0100

trace: Implement pipe_screen::context_create.

commit f3640e4ae37a5260cbfba999d079f827de0a313a
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat May 2 08:56:17 2009 +0100

softpipe: Implement pipe_screen::context_create.

commit 347266bddc8bd39c711bacb2193793759d0f3696
Author: José Fonseca <jfonseca@vmware.com>
Date: Sat May 2 08:55:31 2009 +0100

gallium: New pipe_screen::context_create callback.
raw_pipe_aaline.c
raw_pipe_pstipple.c
3ce4375912c8ea488460e593e07c5bb15b92dca9 10-Mar-2010 Michal Krol <michal@vmware.com> Merge branch 'master' into gallium-sampler-view

Conflicts:
src/gallium/auxiliary/Makefile
src/gallium/auxiliary/SConscript
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/util/u_blitter.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i965/brw_context.h
src/gallium/drivers/llvmpipe/lp_context.h
src/gallium/drivers/nv50/nv50_context.h
src/gallium/drivers/nv50/nv50_state_validate.c
src/gallium/drivers/nv50/nv50_tex.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_state.c
src/gallium/drivers/softpipe/sp_context.h
src/gallium/drivers/svga/svga_context.h
src/gallium/drivers/svga/svga_pipe_sampler.c
685340a53e1dcb2a888e634ee71ba24356befe69 09-Mar-2010 Roland Scheidegger <sroland@vmware.com> Merge branch 'gallium-vertexelementcso'

Conflicts:
src/gallium/auxiliary/cso_cache/cso_context.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/drivers/i915/i915_context.h
src/gallium/drivers/i965/brw_draw_upload.c
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_context.h
src/gallium/drivers/r300/r300_render.c
src/gallium/drivers/r300/r300_state_derived.c
src/mesa/state_tracker/st_cb_bitmap.c
src/mesa/state_tracker/st_cb_clear.c
f3365bceb881b7a5cdd47e6c102ca37454453ce9 09-Mar-2010 Marek Olšák <maraeo@gmail.com> draw: quads never provoke the first vertex
raw_pt_decompose.h
raw_pt_vcache_tmp.h
2998cad9ce0c2c60078a28e6a0f3f3bbda3a6535 02-Mar-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-format-cleanup'
4ca70c489baed3e23dbf5e5e5794385113e22252 02-Mar-2010 Michal Krol <michal@vmware.com> Merge branch 'gallium-no-rhw-position'

Conflicts:
src/gallium/drivers/r300/r300_blit.c
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_state_derived.c
7a61722f693a39cdeb4f5ab2e905f563f742d2e3 01-Mar-2010 José Fonseca <jfonseca@vmware.com> draw: Rename pipe formats.
raw_pipe_vbuf.c
raw_pt_emit.c
raw_vs_aos_io.c
6da07e45b3e5cb37b63afafb650569d3d275e608 23-Feb-2010 Vinson Lee <vlee@vmware.com> draw: Remove dead code.
raw_pipe_offset.c
c5c5cd7132e18f4aad8e73d8ee879f8823c4c1e7 23-Feb-2010 Zack Rusin <zackr@vmware.com> gallium/draw: initial code to properly support llvm in the draw module

code generate big chunks of the vertex pipeline in order to speed up
software vertex processing.
raw_context.c
raw_context.h
raw_llvm.c
raw_llvm.h
raw_llvm_translate.c
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_pipeline_llvm.c
raw_vs_llvm.c
63cb6f59eac91ba34cf80ff3736568e40b094fe1 22-Feb-2010 Michal Krol <michal@vmware.com> gallium: Remove bypass_vs_clip_and_viewport from rasteriser state.

Needs testing.
raw_context.c
raw_pt.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
d89de9c13fe6cd1f2f1a82d8bc0988d06e629def 21-Feb-2010 Vinson Lee <vlee@vmware.com> draw: Remove dead code.
raw_pipe_aapoint.c
464a72dd4154f314e08c9d0c4d07417e2bf255f0 17-Feb-2010 Roland Scheidegger <sroland@vmware.com> gallium: remove redundant nr_components field from pipe_vertex_element

This is a property of the associated src_format pipe format.
Hence use util_format_get_nr_components to query this when necessary instead.
raw_pt.c
6536cdf1836a302d334f7380d1723e8f0bc396be 15-Feb-2010 Vinson Lee <vlee@vmware.com> draw: Add assert to check input of memcpy.
raw_vs.c
13701aae40d8edb5b38be5fb04739f74c1fc8001 14-Feb-2010 José Fonseca <jfonseca@vmware.com> draw: Use util_format_name().
raw_pt.c
653a83445f94620673f747a4ace6847a2c7fdb4d 09-Feb-2010 Roland Scheidegger <sroland@vmware.com> Merge branch 'gallium-nopointsizeminmax'

Conflicts:
src/gallium/drivers/nv10/nv10_state.c
src/gallium/drivers/nv20/nv20_state.c
src/gallium/drivers/nv50/nv50_program.c
c61bf363937f40624a5632745630d4f2b9907082 09-Feb-2010 Zack Rusin <zackr@vmware.com> llvmpipe: export the tgsi translation code to a common layer

the llvmpipe tgsi translation is a lot more complete than what was in
gallivm so replacing the latter with the former. this is needed since
the draw llvm paths will use the same code. effectively the proven
llvmpipe code becomes gallivm.
raw_private.h
raw_vs_llvm.c
68f93ea3eb83cfad014b8ec93cec3564c1aa9833 04-Feb-2010 Roland Scheidegger <sroland@vmware.com> gallium: add point_quad_rasterization bit to rasterizer state

This determines if points should be rasterized according to GL point rules
or as normal quads (GL point sprites / d3d points / d3d point sprites).
raw_pipe_wide_point.c
45dac0d82a5a69166e86dce77c2550f7512c541e 03-Feb-2010 José Fonseca <jfonseca@vmware.com> Merge branch 'gallium-embedded'
4a4daa75a85db22cd37ebd533ebbccb427e07077 03-Feb-2010 Roland Scheidegger <sroland@vmware.com> gallium: clean up point sprite rasterizer state

Don't need sprite coord origin per coord.
Also, don't need separate sprite enable bit - if all coords have it diabled,
then there are no point sprites (technically, there's a distinction in pre-GL3,
but it only differs in having more leniency in clamping to max size, something
the state tracker would need to handle and the hardware won't bother anyway).
Also, use packed field for the per-coord enables.
All in all, should save 3 dwords in rasterizer state (from 10 down to 7).
raw_pipe_validate.c
raw_pipe_wide_point.c
6f2e9651a1a460a1f564d30844cb2c9bced71da5 03-Feb-2010 Brian Paul <brianp@vmware.com> draw: remove old hard-coded shader length limits
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
c173eb990a20611ac47c1727e1fb11d7fd3aa0c4 03-Feb-2010 Brian Paul <brianp@vmware.com> draw: re-implement free_bit() with ffs()
raw_pipe_aaline.c
raw_pipe_pstipple.c
3d5e26ebecd2cce4dd6ad7d479a968e1859e11df 03-Feb-2010 Brian Paul <brianp@vmware.com> draw: comments and var renaming
raw_pipe_aapoint.c
256f7f5ab2123bae9549e4f572276e200dc1ae76 03-Feb-2010 Brian Paul <brianp@vmware.com> draw: add const qualifiers, fix return types
raw_context.c
raw_private.h
c740a7da6142a9d7c4affddba519b75d47de24fd 03-Feb-2010 Brian Paul <brianp@vmware.com> draw: new, updated comments

Try to avoid future confusion between different, but similar functions.
raw_context.c
2aaca1df9df6980ec88180c8866c8987b31db91a 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: Move p_thread.h and p_atomic.h out of gallium interfaces.

Into os/os_thread.h and util/u_atomic.h respectively.
raw_pt_util.c
38f6f23fcf37247fd709d1c612d08bfa9b124e69 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: Make pipe_atomic a regular int32_t.
raw_pipe.c
28486880ca3ec39419ccee0cb1a3bedc9ef7117c 02-Feb-2010 José Fonseca <jfonseca@vmware.com> gallium: pipe/p_inlines.h -> util/u_inlines.h
raw_pipe_aaline.c
raw_pipe_pstipple.c
06f198285dd1de8aa122a33413f01b573d47b8b6 01-Feb-2010 José Fonseca <jfonseca@vmware.com> draw: Add missing includes.
raw_vertex.h
7c5f255201f42303188137f56ea8acc030444f0e 25-Jan-2010 Michal Krol <michal@vmware.com> gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS.
raw_context.c
raw_gs.c
raw_gs.h
raw_private.h
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_ppc.c
raw_vs_sse.c
9851644435f991a1a1bbb145333a97601627b37d 25-Jan-2010 Michal Krol <michal@vmware.com> gallium: Enable multiple constant buffers for vertex and geometry shaders.
raw_context.c
raw_context.h
raw_gs.c
raw_gs.h
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_machine.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_ppc.c
raw_vs_sse.c
raw_vs_varient.c
835bab0143e11ab98551a061043f944fd6eab456 19-Jan-2010 Michal Krol <michal@vmware.com> gallium: Implement 2D constant buffers for fragment shader in softpipe.
raw_gs.c
raw_vs_exec.c
83d2b4d4a65958172cf3e30b314d4bffdebefd0b 28-Jan-2010 Vinson Lee <vlee@vmware.com> gallium/draw: Remove unnecessary headers.
raw_context.c
raw_pt_fetch_shade_pipeline.c
cd8614b0287dc5a69725ec4ee0208fad61f7789e 22-Jan-2010 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_7_branch'

Conflicts:
src/gallium/auxiliary/draw/draw_context.c
src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
src/gallium/auxiliary/pipebuffer/Makefile
src/gallium/auxiliary/pipebuffer/SConscript
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
src/gallium/auxiliary/tgsi/tgsi_scan.c
src/gallium/drivers/i915/i915_surface.c
src/gallium/drivers/i915/i915_texture.c
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_tex_sample_c.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/softpipe/sp_prim_vbuf.c
src/gallium/state_trackers/xorg/xorg_dri2.c
src/gallium/winsys/drm/intel/gem/intel_drm_api.c
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
src/gallium/winsys/drm/radeon/core/radeon_drm.c
src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
src/mesa/state_tracker/st_cb_clear.c
64871747bb7b611ffe429fbf1724bd98ee25dd84 22-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: apply DRAW_PIPE_FLAG_MASK to all vertex elements

Depending on first/last provoking vertex either the first or last
element/index may have the extra DRAW_PIPE_x flags. Mask off those
bits for all vertex elements to be safe (esp. for the quad case).
This may be overly cautious, but it's a cheap operation.

Fixes a segfault caused by large/bogus vertex indexes otherwise.
raw_pipe.c
5ab0d49a07fb81b7545463310c91ada596e26e72 22-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: added comments, whitespace fixes
raw_pipe.c
5023a7f53f4b11cdea1ed90d7e856b6eda6dd68e 21-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: fix-up comments, whitespace
raw_pipe_cull.c
3c31b1b6d15dc5424babd5b4b54cd380d88be84a 21-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: replace int with boolean
raw_pipe_validate.c
dc544ad9c6e6e24fd2f19dfe83aa294d218f7310 22-Jan-2010 Vinson Lee <vlee@vmware.com> draw: Remove unnecessary headers.
raw_context.c
raw_pt.c
raw_pt_fetch.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
raw_vs_varient.c
dee52d5bd31c7bd70883fd7fe496445bb49aad1f 16-Jan-2010 Chia-I Wu <olvaffe@gmail.com> gallium: Fix uninitialized instance divisor and index.
raw_pt_fetch_shade_pipeline.c
a5c03bd6f16517bf35c273741080492d70d64c29 16-Jan-2010 Jakob Bornecrantz <jakob@vmware.com> draw: Fix memory leak in gs code
raw_context.c
raw_gs.c
raw_private.h
b96976cc7c74f601f60d90a23a099bb2605f2edb 15-Jan-2010 Michal Krol <michal@vmware.com> draw: Add missing header include.
raw_vs.c
f7748d72b46465d807cf4209892d73af62485738 15-Jan-2010 Luca Barbieri <luca@luca-barbieri.com> draw: Add GALLIUM_DUMP_VS environment variable.

Add GALLIUM_DUMP_VS to dump the vertex shader to the console like
GALLIUM_DUMP_FS in softpipe.
raw_private.h
raw_vs.c
5184b02b0793136a15b7edf309d79a1efe1bc73d 14-Jan-2010 Michal Krol <michal@vmware.com> Merge branch 'instanced-arrays'

Conflicts:
src/gallium/drivers/softpipe/sp_draw_arrays.c
bc1b38af71c312d4d109090c51c3fd507b115d81 14-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: s/clipper/clip_stage/ to be consistant with other stages
raw_pipe_clip.c
c87361340352850ba793a481c969081b6ecfc0c6 14-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: whitespace and comments
raw_pipe_clip.c
ee343feba126c0915983699f729c77891082df6a 14-Jan-2010 Brian Paul <brianp@vmware.com> gallium/draw: remove always-true conditional
raw_pipe_clip.c
a407636efb6c32cee81b9a1525dbc804aacd957b 12-Jan-2010 Roland Scheidegger <sroland@vmware.com> gallium: remove point_size_min and point_size_max from rasterizer state

The state tracker is responsible for clamping to any graphics API enforced
size min/max limits for both the static point_size setting as well as per
vertex point size (in the vertex shader).
Note that mesa state tracker didn't actually use these values.
raw_pipe_wide_point.c
5dfd5ed5e7d23d4ee8572669af2673c3a1315763 12-Jan-2010 José Fonseca <jfonseca@vmware.com> gallium: Simplify PIPE_ALIGN_VAR.

gcc allows pre-fix variable attributes.

Suggested by Ian Romanick.
raw_vs_ppc.c
86bfe974b880dc2cbf40b91ba0fde34e8a9c756e 10-Jan-2010 José Fonseca <jfonseca@vmware.com> gallium: Generalize the alignment macros to other compilers and any alignment.
raw_vs_ppc.c
76ff89d2de3807f316954aa97ffdbb51bb3b6966 05-Jan-2010 Michal Krol <michal@vmware.com> gallium: Handle InstanceID as a true 32-bit uint.
raw_pt_fetch.c
9b21b3c52a8a7d58d08151d1a6bf25c472dec213 05-Jan-2010 Michal Krol <michal@vmware.com> Merge branch 'master' into instanced-arrays

Conflicts:
src/gallium/auxiliary/tgsi/tgsi_dump.c
src/gallium/include/pipe/p_shader_tokens.h
c847a13d38d4e8c5f4c386d060dcc8ec09e491a3 01-Jan-2010 José Fonseca <jfonseca@vmware.com> gallium: Generate a single library for auxiliaries with Make too.
akefile
f8f4757d46627fb453f08dc63fde3d7f458eafe2 31-Dec-2009 José Fonseca <jfonseca@vmware.com> scons: Aggregate all tiny libraries in a single library.

Makes integration of gallium into out of tree components much easier. No
pratical change for components in this tree,
Conscript
543b9566bdaa48fea2df1866fa1310c1cdbcde27 30-Dec-2009 Michal Krol <michal@vmware.com> Add lame support for instanceID to draw module.

It's all screaming for integer support -- fake it with float for now.
raw_pipe_vbuf.c
raw_pt.h
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
raw_vs_varient.c
6481f40eec0a6c5dea4a74a11b83415478f2c814 30-Dec-2009 Michal Krol <michal@vmware.com> draw: Implement draw_arrays() in terms of draw_arrays_instanced().
raw_pt.c
5007e39f76c897b8f3aa4acf6086c8b7ac30bdef 30-Dec-2009 Michal Krol <michal@vmware.com> Implement instanced indexed draw.
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_vs_varient.c
7ca0ce38340144794267609646048b3820d594ab 29-Dec-2009 Michal Krol <michal@vmware.com> Implement draw_arrays_instanced() in softpipe.

Modify the translate module to respect instance divisors and accept
instance id as a parameter to calculate input vertex offset.
raw_context.h
raw_pipe_vbuf.c
raw_private.h
raw_pt.c
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_vs.h
raw_vs_varient.c
fb0a9aa5e0476d8ca332753f52a9e56f9cfa8dfa 24-Dec-2009 Zack Rusin <zackr@vmware.com> gallium: remove TGSI_SEMANTIC_VERTICES

it's a leftover from an early version of geometry shading support.
geometry shaders now encode the primitive size in the PROPERTY token
and don't need special input with their size.
raw_gs.c
b0bc582db761ea3f47580dd2908a227987177dc2 24-Dec-2009 Zack Rusin <zackr@vmware.com> draw: disable some debugging output coming from the geometry shaders
raw_gs.c
49155c3264d019869fadde50ff6167a369e966b6 24-Dec-2009 Zack Rusin <zackr@vmware.com> draw/tgsi: fix geometry shader input/output swizzling
raw_gs.c
89d8577fb3036547ef0b47498cc8dc5c77f886e0 14-Dec-2009 Zack Rusin <zackr@vmware.com> gallium: add geometry shader support to gallium
akefile
Conscript
raw_context.c
raw_context.h
raw_gs.c
raw_gs.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_offset.c
raw_pipe_stipple.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
raw_pt_util.c
raw_pt_varray_tmp_linear.h
raw_vs_varient.c
35e8283c69d80debb44b05ea79dc5f67303a7432 22-Dec-2009 Roland Scheidegger <sroland@vmware.com> Merge branch 'gallium-edgeflags'

Conflicts:
src/mesa/state_tracker/st_draw.c
16c6dce013f089d072256652f012b3b604781bfd 17-Dec-2009 Michal Krol <michal@vmware.com> Merge branch 'master' into pipe-format-simplify

Conflicts:
src/gallium/auxiliary/draw/draw_pipe_aaline.c
src/gallium/auxiliary/draw/draw_pipe_pstipple.c
src/gallium/auxiliary/util/u_blit.c
src/gallium/auxiliary/util/u_gen_mipmap.c
src/gallium/auxiliary/util/u_surface.c
src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c
src/gallium/drivers/cell/ppu/cell_texture.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/r300/r300_emit.c
src/gallium/drivers/r300/r300_texture.c
src/gallium/drivers/softpipe/sp_texture.c
src/gallium/drivers/softpipe/sp_tile_cache.c
src/gallium/drivers/svga/svga_state_vs.c
src/gallium/include/pipe/p_format.h
src/gallium/state_trackers/dri/dri_drawable.c
src/gallium/state_trackers/egl/egl_surface.c
src/gallium/state_trackers/python/p_device.i
src/gallium/state_trackers/python/st_softpipe_winsys.c
src/gallium/state_trackers/vega/api_filters.c
src/gallium/state_trackers/vega/image.c
src/gallium/state_trackers/vega/mask.c
src/gallium/state_trackers/vega/paint.c
src/gallium/state_trackers/vega/renderer.c
src/gallium/state_trackers/vega/vg_tracker.c
src/gallium/state_trackers/xorg/xorg_crtc.c
src/gallium/state_trackers/xorg/xorg_dri2.c
src/gallium/state_trackers/xorg/xorg_exa.c
src/gallium/state_trackers/xorg/xorg_renderer.c
src/gallium/state_trackers/xorg/xorg_xv.c
src/gallium/state_trackers/xorg/xvmc/surface.c
src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c
src/gallium/winsys/drm/radeon/core/radeon_buffer.c
src/gallium/winsys/egl_xlib/sw_winsys.c
src/gallium/winsys/g3dvl/xlib/xsp_winsys.c
src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c
src/gallium/winsys/gdi/gdi_softpipe_winsys.c
src/gallium/winsys/xlib/xlib_cell.c
src/gallium/winsys/xlib/xlib_llvmpipe.c
src/gallium/winsys/xlib/xlib_softpipe.c
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_texture.c
50caff5675888c0063c73fa64b88129db7aa11dd 16-Dec-2009 Roland Scheidegger <sroland@vmware.com> gallium: edgeflags change fixes

use correct number of vertex inputs
fix not running pipeline in case of edgeflags
changes to mesa to tgsi translation still very broken
raw_pt_post_vs.c
a0127b6ced257919180ba3a1bf534b68d9c750be 14-Dec-2009 Roland Scheidegger <sroland@vmware.com> gallium: more work for edgeflags changes

fixes, cleanups, etc.
not working yet
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
raw_vs.c
raw_vs.h
f6106566081978f663cf08e54bb8908cb58a5316 19-Feb-2010 Michal Krol <michal@vmware.com> gallium: WIP: Introduce sampler views.
raw_pipe_aaline.c
raw_pipe_pstipple.c
a08e348a84f57ed5e8bf5888f1ce13934d2ce8fa 09-Dec-2009 Keith Whitwell <keithw@vmware.com> gallium: first steps to treat edgeflags as regular vertex element

The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.

Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
raw_context.c
raw_context.h
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
9c6a9363ef96c00dd0ad63e340b32479e43fea45 04-Dec-2009 Roland Scheidegger <sroland@vmware.com> Merge branch 'gallium-noblocks'

Conflicts:
src/gallium/state_trackers/xorg/xorg_exa.c
6df42d80234d13676fc3207cf44f0e371e3372b5 03-Dec-2009 Michal Krol <michal@vmware.com> Move pf_get_block() to u_format auxiliary module.
raw_pipe_aaline.c
raw_pipe_pstipple.c
87eec80c1120d2cd9749ee360b77922feabf7f10 01-Dec-2009 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/tgsi-simplify-ext'

Conflicts:
src/gallium/drivers/r300/r300_vs.c
f33c064f32bf3635becd1b2019f670abe7a35ab3 01-Dec-2009 Michal Krol <michal@vmware.com> draw: Update for renamed sampler/texture state setters.
raw_pipe_aaline.c
raw_pipe_pstipple.c
ac400ffce62be47fc77e8d10cabcd39b92b6c627 30-Nov-2009 Roland Scheidegger <sroland@vmware.com> gallium: interface cleanups, remove nblocksx/y from pipe_texture and more

This patch removes nblocksx, nblocksy arrays from pipe_texture (can be
recalculated if needed). Furthermore, pipe_format_block struct is gone
completely (again, contains just derived state).
nblocksx, nblocksy, block are also removed from pipe_transfer, together with
the format enum (can be obtained from the texture associated with the transfer).
raw_pipe_aaline.c
raw_pipe_pstipple.c
c95cbd45c657ac47e908a4d99d118737034bde43 27-Nov-2009 Roland Scheidegger <sroland@vmware.com> Merge branch 'width0'

Conflicts:
src/gallium/drivers/r300/r300_texture.c
src/gallium/state_trackers/xorg/xorg_exa.c
src/mesa/state_tracker/st_cb_texture.c
3bae72e20493aeb683e16297d67648e59a817b76 26-Nov-2009 Keith Whitwell <keithw@vmware.com> draw: Fix max_index check.

We want to fallback to draw splitting when vertex element indices
might be too high for atomic draw path (currently limited to 4095).
raw_pt_vcache.c
91a4e6d53f83c45c1da9240b6325011d96b61386 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_src_register to reduce verbosity

SrcRegister -> Register
SrcRegisterInd -> Indirect
SrcRegisterDim -> Dimension
SrcRegisterDimInd -> DimIndirect
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
raw_vs_aos.c
5b0824dfe5eaf59fa87134e7482b3d147b262901 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_dst_register to reduce verbosity

DstRegister -> Register
DstRegisterInd -> Indirect
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
raw_vs_aos.c
fe2b31e4a896167a33d267822b36eb2de0ceecba 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_declaration to reduce verbosity

DeclarationRange -> Range
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
7d6c8f980d1e23ad6f557d650e89c715861a3b0c 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: rename fields of tgsi_full_instruction to avoid excessive verbosity

InstructionPredicate -> Predicate
InstructionLabel -> Label
InstructionTexture -> Texture
FullSrcRegisters -> Src
FullDstRegisters -> Dst
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
raw_vs_aos.c
763426a0256f0ab06f8af53947bd630f8600183a 24-Nov-2009 Keith Whitwell <keithw@vmware.com> tgsi: reduce repetition of structure name in its members

Rename Semantic.SemanticName to Semantic.Name. Similar for
SemanticIndex, and the members of the tgsi_version struct.
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
ba1ca28cc62fed71c77902b95ae4ed36c6bf25f8 24-Nov-2009 Keith Whitwell <keithw@vmware.com> gallium: simplify tgsi tokens further

Drop anonymous 'Extended' fields, have every optional token named
explicitly in its parent. Eg. there is now an Instruction.Label flag,
etc.

Drop destination modifiers and other functionality which cannot be
generated by tgsi_ureg.c, which is now the primary way of creating
shaders.

Pull source modifiers into the source register token, drop the second
negate flag. The source register token is now full - if we need to
expand it, probably best to move all of the modifiers to a new token
and have a single flag for it.
raw_pipe_aaline.c
raw_pipe_pstipple.c
ea98e9820d7117f7a187f355445796b1ef5d9e0c 21-Nov-2009 Vinson Lee <vlee@vmware.com> draw: Initialize variable in draw_pt.c.
raw_pt.c
683e35f726a182ed9fc6b6d5cb07146eebe14dea 19-Nov-2009 Keith Whitwell <keithw@vmware.com> gallium: don't use arrays for texture width,height,depth
raw_pipe_aaline.c
raw_pipe_pstipple.c
b7ab7d362764bfc646e7d801fdba5c7c79c7c04f 27-Oct-2009 Vinson Lee <vlee@vmware.com> draw: Fix memory leak.

This would only be hit if we got and invalid index_size.
raw_pt_vcache.c
b9cb74c7f826dfd320f5e5b54aa933898f7ddd3d 23-Oct-2009 Keith Whitwell <keithw@vmware.com> gallium: remove the swizzling parts of ExtSwizzle

These haven't been used by the mesa state tracker since the
conversion to tgsi_ureg, and it seems that none of the
other state trackers are using it either.

This helps simplify one of the biggest suprises when starting off with
TGSI shaders.
raw_vs_aos.c
55770d09c18c4d33403abb97dfef4f897efbbe2a 05-Oct-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_6_branch'

Conflicts:

src/gallium/auxiliary/util/u_cpu_detect.c
389021220d27c376b81a6221a31d0ee33c24e67f 02-Oct-2009 Brian Paul <brianp@vmware.com> gallium: replace // comments with /* */
raw_pt_post_vs.c
raw_vs_aos.c
337480e1f85844b7bd4a4d47cef93a217e3ad464 02-Oct-2009 Brian Paul <brianp@vmware.com> gallium: remove // comment and extra whitespace
raw_pt_fetch_shade_emit.c
cd362334adfee077faa3b7cb4e0d7994d5a5cf56 24-Sep-2009 Keith Whitwell <keithw@vmware.com> draw: fix warning
raw_pt_post_vs.c
5c5364a0f6ebcc0ff30baffdb6195be9f4ad7f83 13-Aug-2009 José Fonseca <jfonseca@vmware.com> draw: Remove unused variable.
raw_pipe.c
bf57eda0ecf1996bc2d188ef0b51a8f3ec993412 13-Aug-2009 Keith Whitwell <keithw@vmware.com> Merge branch 'mesa_7_5_branch'
1ce3f5a806f6efb29c231157987e3495c7b41022 13-Aug-2009 Keith Whitwell <keithw@vmware.com> draw: cope with more primitives in draw_pipeline_run

This previously was used only for decomposed (POINT/LINE/TRI) primitives,
but for some time a full range of primitives could end up in here.

Fixes trivial/lineloop-clip on softpipe, among others.
(cherry picked from commit 87cd8a3b8a2407b30916be418ff2f95dfea5d2ad)
raw_pipe.c
23c0e812bc27e6735f8e7dc48616d90a4b375b28 31-Jul-2009 Brian Paul <brianp@vmware.com> draw: fix-ups for point coord attribute

progs/glsl/pointcoord.c works again
raw_pipe_wide_point.c
aa99a765c15392d06e3a33d4eda377c58bc6afec 23-Jul-2009 Keith Whitwell <keithw@vmware.com> draw: correct address for machine struct in llvm path

This changed after a recent commit.
raw_vs_llvm.c
ede9f3b52ecb27ada81fee06a943bb595c60eaee 12-Jun-2009 Keith Whitwell <keithw@vmware.com> gallium: remove multiple aliases for TGSI opcodes

This is a source of ongoing confusion. TGSI has multiple names for
opcodes where the same semantics originate in multiple shader APIs.

For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for
opcodes with the same semantics, but aliases those names to the same
underlying opcode number.

This makes it very difficult to visually inspect two sets of opcodes
(eg in state tracker & driver) and check if they implement the same
functionality.

This patch arbitarily rips out the versions of the opcodes not currently
favoured by the mesa state tracker and leaves us with a single name
for each distinct operation.
raw_vs_aos.c
fd31f92cea0ce8613a22d8f4b3c75b340bcc5689 22-Jul-2009 Keith Whitwell <keithw@vmware.com> gallium: simplify tgsi_full_immediate struct

Remove the need to have a pointer in this struct by just including
the immediate data inline. Having a pointer in the struct introduces
complications like needing to alloc/free the data pointed to, uncertainty
about who owns the data, etc. There doesn't seem to be a need for it,
and it is unlikely to make much difference plus or minus to performance.

Added some asserts as we now will trip up on immediates with more
than four elements. There were actually already quite a few such asserts,
but the >4 case could be used in the future to specify indexable immediate
ranges, such as lookup tables.
raw_pipe_pstipple.c
raw_vs_aos.c
cad82cd0636b4b74597ae2c6bab83a3e94006bf8 20-Jul-2009 Keith Whitwell <keithw@vmware.com> tgsi: get texturing working in vertex shader sse2 path

Missing file from previous commit.
raw_vs_sse.c
04dd8b71b48f69fdcef9ad559b57e1e665695b64 16-Jul-2009 Keith Whitwell <keithw@vmware.com> draw: fix ppc build regression

Found by x.org tinderbox, reported by Chris Ball.
raw_vs_ppc.c
ebc4a9bf2eff7d2c0d89785e865a1df23733e64b 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> tgsi: reduce x86 reg usage in tgsi_sse generated programs

Pass the tgsi_exec_machine struct in directly and just hold a single
pointer to this struct, rather than keeping one for each of its
internal members.
raw_vs_sse.c
c202fe187cf7a08d60e23ce617a5820a8bc510fd 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> gallium: reduce recursive include of tgsi_exec.h

A lot of draw code no longer needs to see this header.
raw_private.h
raw_vs.c
raw_vs_exec.c
raw_vs_sse.c
6175653d0bceedba1f599d27111bab14f312f134 16-Jul-2009 Keith Whitwell <keith@tungstengraphics.com> gallium: proper constructor and destructor for tgsi_exec_machine

Centralize the creation, initialization and destruction of this struct.
Use align_malloc instead of home-brew alternatives.
raw_private.h
raw_vs.c
raw_vs_exec.c
raw_vs_sse.c
423f45d18a665423e319dcea08c11ff9f5646a80 29-Jun-2009 Brian Paul <brianp@vmware.com> gallium/draw: sketch out some missing pointcoord code

The gl_PointCoord attribute is currently expected to be in the fog coord
register's z/w components. This was never totally fleshed out though.
This is just some placeholder code.
raw_pipe_wide_point.c
21bfd0f4bdd4222346c7f2db956e7fc1645d2130 18-Jun-2009 José Fonseca <jfonseca@vmware.com> draw: Replace pointer arithmetic with cast.

Using uintptr_t as intermediate type for pointer -> integer conversions is
easier to understand and does not cause any size mismatch warnings.
uintptr_t is part of C99, and we already provide a suitable replacement
definition for all platforms we care about.
raw_pt_elts.c
a04af335a42ce3b28e59ff9b85b2bd433a9d7b12 24-Jun-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_5_branch'

Conflicts:

src/mesa/drivers/dri/i915/i915_tex_layout.c
src/mesa/drivers/dri/i965/brw_wm_glsl.c
src/mesa/drivers/dri/intel/intel_buffer_objects.c
src/mesa/drivers/dri/intel/intel_pixel_bitmap.c
src/mesa/drivers/dri/intel/intel_pixel_draw.c
src/mesa/main/enums.c
src/mesa/main/texstate.c
src/mesa/vbo/vbo_exec_array.c
d2e4643767ce2a1f30e6ef1c86c2aa225c025c32 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: use u_reduced_prim() function
raw_pt.c
raw_pt.h
raw_pt_util.c
raw_pt_vcache.c
9038b6c8bbda49c544d777c7cf7b107887421c77 19-Jun-2009 Brian Paul <brianp@vmware.com> Merge branch 'ext-provoking-vertex'

Conflicts:

docs/relnotes-7.6.html
progs/tests/Makefile
src/gallium/drivers/softpipe/sp_prim_vbuf.c
src/glx/x11/indirect.c
src/mesa/glapi/Makefile
src/mesa/glapi/dispatch.h
src/mesa/glapi/glapioffsets.h
src/mesa/glapi/glapitable.h
src/mesa/glapi/glapitemp.h
src/mesa/glapi/glprocs.h
src/mesa/main/dlist.c
src/mesa/main/enums.c
src/mesa/sparc/glapi_sparc.S
src/mesa/x86-64/glapi_x86-64.S
src/mesa/x86/glapi_x86.S
0ddc4dbe43422211e6f3fb3278e7b2f55a25976b 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: use flatfirst variable
raw_pt_decompose.h
9205a871e75f66de3501519018e76b6f49d2cce8 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: remove debug code
raw_pt_decompose.h
af5fff9c232d30a54b7a15c4a4c128f30afde751 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: fix first provoking vertex mode for quads, quad strips and polygons
raw_pt_vcache_tmp.h
950171be3c8032d590fde3247bf12992aa9139c8 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: fix first provoking vertex mode for unfilled quads
raw_pt_vcache.c
c70a529d7c8dfbb7fbb194261c60aeeb75f5ee35 19-Jun-2009 Brian Paul <brianp@vmware.com> draw: clean up indentation
raw_pipe.c
8b45c9ce6e17f9b74f49d308eda3da1c768bc726 10-Jun-2009 Brian Paul <brianp@vmware.com> draw: implement flatshade_first for drawing pipeline
raw_pipe_vbuf.c
raw_pt_decompose.h
9d58724c51c387c360d2423e29b80ddc0bfa66b7 04-Jun-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_5_branch'

Conflicts:

src/mesa/main/context.c
1aef032d438aaa40ec28bf279ad5c089370773f0 02-Jun-2009 Keith Whitwell <keithw@vmware.com> gallium/draw: Free specialized versions of driver shaders

The pstipple, aaline and aapoint code would create specialized versions
of shaders and upload them to the driver -- but never free them.
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
003cfd4dd2491675058c53a8f59553f2443be349 02-Jun-2009 Keith Whitwell <keithw@vmware.com> draw: free more token arrays

The AA line and point code also needs to free token arrays after
building driver shaders.
raw_pipe_aaline.c
raw_pipe_aapoint.c
69a765df1c3bf6acc549a5a6a047bbde16988721 02-Jun-2009 Keith Whitwell <keithw@vmware.com> draw: avoid leaking tokens when building pstipple fragment shader

Add missing FREE() after MALLOC().
raw_pipe_pstipple.c
9f6ec50f8c79283583eeebdebd16bf7dcd134816 01-Jun-2009 Brian Paul <brianp@vmware.com> Merge branch 'mesa_7_5_branch'
427554211b5b8ab2c6afcd5bd574ac97fb3457da 01-Jun-2009 Brian Paul <brianp@vmware.com> draw: reset extra_vp_outputs.slot to zero in widepoint_flush()

Fixes a crash when clearing the window with a quad after drawing large
points. We were asking the draw module how many vertex shader outputs
there were and got 3 instead of 2. This led to creating vertices with
too many attributes and trying to read invalid memory.

We reset extra_vp_outputs.slot to zero in the aaline/aapoint stage's
flush functions already.
This omission was just an oversight in the wide_point stage.
raw_pipe_wide_point.c
713b636a0e0356266b714548886b66864b830fff 28-May-2009 Mike Kaplinksiy <mike.kaplinskiy@gmail.com> draw: Fix assertion failure at fetch_emit_prepare
raw_pt_fetch_emit.c
af09ba96e9e2d783fb0538a82513716c1c9aed3b 30-Apr-2009 Keith Whitwell <keithw@vmware.com> gallium/draw: cope with unused vertex_elements
raw_pt.h
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
c6b3c2f34b5fdc30e679068d4e6130ba30efc1e4 30-Apr-2009 Keith Whitwell <keithw@vmware.com> gallium/draw: cope with unused vertex_elements
raw_pt.h
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
986d4a9ec60ee52067b2d6f81c05f8ec3b8dc8b1 02-May-2009 Brian Paul <brianp@vmware.com> draw: added some inf/nan debug code (disabled)
raw_vs_exec.c
eb979cef8535914f428d2462e78f713da558fc18 28-Apr-2009 Keith Whitwell <keithw@vmware.com> gallium/draw: add ability to print out active pipeline stages
raw_pipe.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_validate.c
raw_pipe_vbuf.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
13be57df3ac00a4bdfdafb10605c3be7056a21a5 10-Apr-2009 Michal Krol <michal@vmware.com> draw: Silence pointer-to-integer cast warning.
raw_pt_varray_tmp_linear.h
f4cc0692e6f285515e6a86367cf771be30665797 10-Apr-2009 Michal Krol <michal@vmware.com> draw: Fix vertex_header initialisation.
raw_pt_fetch.c
5f31890861981d431607b2361ecde04e19726f1e 09-Apr-2009 Michal Krol <michal@vmware.com> draw: Fix LIT instruction.
raw_vs_aos_machine.c
ef6f1027ff0b6027976a7467b8461ffdd53ce2a8 01-Apr-2009 Brian Paul <brianp@vmware.com> draw: added Nan/Inf assertion in debug code
raw_vs_exec.c
079be0fd3f1d0f52f26a95756809ac4a2325ccb1 25-Mar-2009 José Fonseca <jfonseca@vmware.com> draw: Use size_t (for x86_64).
raw_vertex.h
d0d5e6a22cca4aae487be6828d1dd87621929a7d 23-Mar-2009 Keith Whitwell <keithw@vmware.com> draw: update aa points shader comment
raw_pipe_aapoint.c
5488fe84f97b839287abc39727d60ef680f9dd5c 18-Mar-2009 Keith Whitwell <keithw@vmware.com> draw: use AOS_ERROR rather than clash-prone ERROR() macro
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
683e7091a953204c9aee1410ac44be3b69bae9fc 13-Mar-2009 Keith Whitwell <keithw@vmware.com> gallium: consolidate bypass_vs and bypass_clipping flags

The draw module provides a similar interface to the driver which
is retained as various bits of hardware may be able to take on
incremental parts of the vertex pipeline. However, there's no
need to advertise all this complexity to the state tracker.

There are basically two modes now - normal and passthrough/screen-coords.
raw_context.c
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
45bde75bd67e7e920f0113842d1fa58613ccc3ec 04-Mar-2009 Michel Dänzer <daenzer@vmware.com> gallium: Remove some superfluous instances of #include "p_inlines.h".
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
5e27cd46c04a9e7b5904cc014bffd0f4daae31fe 04-Mar-2009 Michel Dänzer <daenzer@vmware.com> gallium: Unify reference counting.

The core reference counting code is centralized in p_refcnt.h.

This has some consequences related to struct pipe_buffer:

* The screen member of struct pipe_buffer must be initialized, or
pipe_buffer_reference() will crash trying to destroy a buffer with reference
count 0. u_simple_screen takes care of this, but I may have missed some of
the drivers not using it.
* Except for rare exceptions deep in winsys code, buffers must always be
allocated via pipe_buffer_create() or via screen->*buffer_create() rather
than via winsys->*buffer_create().
raw_pipe_aaline.c
raw_pipe_pstipple.c
d9602e5144bc76b9791fa3382ca38c880df96198 20-Feb-2009 Jakob Bornecrantz <jakob@vmware.com> gallium: Improve makefiles for libraries

The template makefile that most libraries in
gallium included was based on dri and had a bunch
unrelevant junk in it.

Update it and improve the depending makefiles.
akefile
480bb4c2170790d6d04183be33004f83ed9aa630 14-Feb-2009 Jakob Bornecrantz <jakob@vmware.com> draw: Fix segfault if rast is null
raw_context.c
3bd7c5ceffc88a052c5e8e114df2f2c7549ddb4a 18-Feb-2009 Michel Dänzer <daenzer@vmware.com> Merge branch 'gallium-texture-transfer'

Conflicts:
src/gallium/drivers/softpipe/sp_tile_cache.c
76d8951fd3adbb91b2f71d461eec0f304619ca0b 18-Feb-2009 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/gallium-0.1'

Conflicts:

src/gallium/auxiliary/draw/draw_vs_aos.c
8ef377d76b721f2f62ca30a073fcfd312c155e95 17-Feb-2009 Keith Whitwell <keithw@vmware.com> draw: Reuse xmm registers.
raw_vs_aos.c
59d54334c96f44ed1d8bf660dc96221362a77d04 16-Feb-2009 Keith Whitwell <keithw@vmware.com> Merge branch 'master' into gallium-texture-transfer

Conflicts:

src/mesa/state_tracker/st_cb_accum.c
src/mesa/state_tracker/st_cb_drawpixels.c
89e2b9c6c24e1a0b7690b9a7502b0ea198069d10 18-Feb-2009 Keith Whitwell <keithw@vmware.com> Merge commit 'origin/draw-vbuf-interface'
ea4bf267e4b023b08043f91ac44592fed1736e7f 18-Feb-2009 José Fonseca <jfonseca@vmware.com> util: Move p_debug.h into util module.

The debug functions depend on several util function for os abstractions, and
these depend on debug functions, so a seperate module is not possible.
raw_pipe_vbuf.c
raw_vs_aos.c
c706ea4f454b5885d9dc71a605853ee21e527285 18-Feb-2009 Keith Whitwell <keithw@vmware.com> draw: Reuse xmm registers.
raw_vs_aos.c
b9de2089b1ffafd7d072d78f716c9e39bab06627 16-Feb-2009 Alan Hourihane <alanh@vmware.com> gallium: fix glean's vertProg1
RSQ test 2 (reciprocal square toot of negative value)
raw_vs_aos.c
1c4f67b980b6bec5788336a9cdd18c4fcec5e492 17-Feb-2009 Keith Whitwell <keith@tungstengraphics.com> draw: second argument to unmap is max, not count
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
befa4ff50ec4728de70c04532f8c7342fbd70147 17-Feb-2009 Keith Whitwell <keithw@vmware.com> draw: add map/unmap directives for swtnl driver interface

Previously draw module asked for a pointer into (mapped) vertex data,
which it would incrementally fill and emit draw commands against. This
was hard for the drivers to deal with, especially in the case where a
draw command would force a flush and thus an unmap of the vertex data.

With this change, the draw module explicitly maps & then unmaps vertex
data prior to emitting draw commands.
raw_pipe_vbuf.c
raw_pt.h
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_vbuf.h
874f364e9ea3a03d29ae4b6e1c7e2843ef8b9e79 11-Feb-2009 José Fonseca <jfonseca@vmware.com> draw: Cap max vertices instead of failing assert.
raw_pipe_vbuf.c
e3028baff2a313baac4a5aea494532605bb8f37a 10-Feb-2009 Michal Krol <michal@vmware.com> draw: Fix build -- rename Size to NrTokens.
raw_pipe_pstipple.c
raw_vs_aos.c
4617981ec72f7985941bee4b03c534d97ff96bc6 05-Feb-2009 Michel Dänzer <daenzer@vmware.com> gallium: No longer allow CPU mapping surfaces directly.

Instead, a new pipe_transfer object has to be created and mapped for
transferring data between the CPU and a texture. This gives the driver more
flexibility for textures in address spaces that aren't CPU accessible.

This is a first pass; softpipe/xlib builds and runs glxgears, but it only shows
a black window. Looks like something's off related to the Z buffer, so the
depth test always fails.
raw_pipe_aaline.c
raw_pipe_pstipple.c
872b515e8f0bb1be5bad85fd9d01529c71f07ba2 26-Jan-2009 Zack Rusin <zack@tungstengraphics.com> gallium: standardize on stride instead of pitch in the interface
raw_pt.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
27e5097e2aa6ee2b9cc8dbc5129fa7f4c8eb283c 27-Jan-2009 Keith Whitwell <keith@tungstengraphics.com> draw: silence some warnings
raw_vs_aos.c
f6759724281a46723d372ba0f73cb626b7f869f0 26-Jan-2009 Keith Whitwell <keith@tungstengraphics.com> draw: queiten compiler warnings
raw_vs_aos.c
2ebd969f0f0d0e45e6ac462059cf322f037775f1 10-Jan-2009 Brian Paul <brianp@vmware.com> gallium: code to dump/debug PPC code (disabled)
raw_vs_ppc.c
7844b4e730604e613a88f536c4aeee5c02d300fd 09-Jan-2009 José Fonseca <jfonseca@vmware.com> draw: Add missing include.
raw_vbuf.h
395edbc5151b2ce9dd77a22d104ce886e9326354 08-Jan-2009 José Fonseca <jfonseca@vmware.com> draw: Predeclare struct.
raw_vbuf.h
a3ee0aa1bb7c3f9dfc5b13b4e72522c10a22ad05 08-Jan-2009 José Fonseca <jfonseca@vmware.com> Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/drivers/cell/spu/spu_command.h
src/gallium/include/pipe/p_shader_tokens.h
src/mesa/main/config.h
src/mesa/main/mtypes.h
src/mesa/shader/prog_execute.c
src/mesa/shader/slang/slang_emit.c
src/mesa/state_tracker/st_program.c
src/mesa/state_tracker/wgl/stw_wgl.h
src/mesa/state_tracker/wgl/stw_wgl_pixelformat.h
2f24bc698412b4635422a52f9d7073ce7854dceb 30-Dec-2008 José Fonseca <jfonseca@vmware.com> draw: Avoid integer overflow converting pointers on 64bit archs.

Not really an error, as we only care for the lower 4 bits.
raw_vs.c
72f993b5b11174c2917af29ef7a86e7866d681fb 30-Dec-2008 José Fonseca <jfonseca@vmware.com> draw: Do not specify types in bitfields.

As advised by gcc -pedantic.
raw_vertex.h
f5d4274b4a8effc70c238060c3728aea629663df 23-Dec-2008 Keith Whitwell <keith@tungstengraphics.com> draw: allow driver-override of draw_need_pipeline()
raw_pipe_validate.c
raw_vbuf.h
d7e9b0e33a72d282e9326434daf01c61244d9ef1 16-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: fix some asserts
raw_pt_varray.c
8abc860bd46a6cd584f9a64cb4613be76f82db06 15-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/winsys/gdi/SConscript
9106a18f46cd83180b17f4b30f54bd2d5b437db1 11-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: catch vertex overflow higher up
raw_pt_vcache.c
401a18a0c64bf8995c2c888b155a711b6187eba5 11-Dec-2008 Michal Krol <michal@tungstengraphics.com> draw: Silencium compiler warnings on Windows.
raw_pipe_offset.c
ce3436795c0ddc110d83a5658e5ff10c202a4490 11-Dec-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added missing brace to fix broken build
raw_pt_fetch_emit.c
0c31661e73dd2979df22a275452efc71c7064f81 11-Dec-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2
d0bc5293d6e1e9c34fa822b7c2928932ed22462c 11-Dec-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added draw_set_mrd() function to fix polygon offset

The Minimum Resolvable Depth factor depends on the driver and can't just
be computed from the number of Z buffer bits.
Glean's polygon offset test now passes with softpipe.
Still need to determine the MRD factor for other gallium drivers, if they use
the draw module's polygon offset stage...
raw_context.c
raw_context.h
raw_pipe_offset.c
raw_private.h
b716de47798defa7d22b0f15b201af6fba27f0b9 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: change 65535 to UNDEFINED_VERTEX_ID
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
7519107a9787970f9b3b8ec317a2b4526e217290 09-Dec-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add const qualifiers
raw_context.c
raw_context.h
a8e7852b05f95cc695f3a05692a6ccd36298faf7 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: more vertex count checks
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
e3f5370d637f367dbfe7d21f726e84185ad1e07d 10-Dec-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: temporary check for > 65535 vertices
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
f2bccfd3c806a879abf0c40858806ec3825d0628 03-Dec-2008 Brian <brian.paul@tungstengraphics.com> gallium: added draw_texture_samplers() to support texture fetches from vertex shaders

This may only be practical for the softpipe driver at this time.
raw_context.c
raw_context.h
raw_private.h
raw_vs_exec.c
0ee92d6ed9c6aae47d990c9ac004034ded5003f1 12-Nov-2008 Michal Krol <michal@tungstengraphics.com> draw: Add missing include.
raw_pt.c
a983f2a6ac04edc2b3407b44c2a1b5bc970c4ce3 12-Nov-2008 Michal Krol <michal@tungstengraphics.com> draw: Add missing include.
raw_pt.c
399da3a337932c6074a69ac73e711138271308eb 09-Nov-2008 Brian <brian.paul@tungstengraphics.com> gallium: use PIPE_ARCH_SSE to protect use of SSE instrinsics only

This allows us to use SSE codegen with debug builds again.
When PIPE_ARCH_SSE is set (w/ gcc -msse -msse2) we will also use the
gcc SSE intrinsic functions.
raw_vs_sse.c
a7d9fde24cb8ecc59b0a6fc610135d851806295b 06-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2
6c3e7365d5245cfad597cd69e2f8f689e62546b9 06-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: debug code to print vertex array data (disabled)
raw_pt.c
80a718a63bf2fa817e346f0f5731ee9ef2e0e68b 05-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/auxiliary/rtasm/rtasm_execmem.c
src/mesa/shader/slang/slang_emit.c
src/mesa/shader/slang/slang_log.c
src/mesa/state_tracker/st_atom_framebuffer.c
f0debbb0bb951bfc6dc0ae467564b3b1230324cf 05-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: call tgsi_set_exec_mask() and use exec mask in SSE ARL code

This prevents vertex shaders from referencing invalid memory locations when
the shader is operating on less than four vertices or fragments.
raw_vs_exec.c
raw_vs_sse.c
05a17f83b0a6549fde41540f9075505e81ab08d3 05-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added some debug code (disabled)
raw_pt.c
fc3b361191c35d2b0b072c08e39b1e5b26d7e2a6 05-Nov-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: disable some debug output
raw_vs_aos.c
7115b79b77e541f3eb81db00f6f0c34a0f224feb 05-Nov-2008 michal <michal@quad.(none)> draw: Implement TGSI_OPCODE_TRUNC.
raw_vs_aos.c
5a0299875c7a4a9a0cb2cf55777c92c1b17d528b 05-Nov-2008 michal <michal@quad.(none)> draw: Implement TGSI_OPCODE_TRUNC.
raw_vs_aos.c
725ba94ce5701aa8690c7ab2ea792dda86cbbe7a 29-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: no longer pass max_inst to ppc_init_func()
raw_vs_ppc.c
75b92764a7820558fb2b6cd27a2ab0487ef2f9ba 29-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: clean-ups
raw_vs_ppc.c
a045b92511eb43ff89e9c0536464af7866956168 29-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: remove old code
raw_vs_ppc.c
f4e9526addc617dc78af9b1af781ffe09ce62504 29-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: ppc: don't replicate/smear immediate values, use vspltw instruction as with constants
raw_vs_ppc.c
6b69e3c71741d99a54c6f4dcb605a3c241239aeb 23-Oct-2008 Michel Dänzer <michel@tungstengraphics.com> scons: ppc support.
Conscript
abbbe876ac98596b143da295abf6887e0a4e50d2 23-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: new PPC built-in constants array

It's hard to form PPC vector immediates so load them from an array.
raw_vs_ppc.c
7b1d08738f30d0fec2f07568b16e08c4fdddeeac 22-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> cell: turn on PPC assembly vertex transform

gears runs with it now (3x faster FPS than before).
raw_vs_ppc.c
ba4faef7c07c47ad4f71f3e6ba94cb54217c56ed 22-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: temporarily disable PPC vertex shader until more things run
raw_vs_ppc.c
b7da4c3dc199ee382bb9924ac86a3485deccc62d 22-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: PPC vertex shader support

Works, but dead code lingering, debug code present, etc.
akefile
raw_vs.c
raw_vs.h
raw_vs_ppc.c
05a8f203cdea768466e5faf1dec4155e1e945c78 15-Oct-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix the test in vs_exec_prepare() to avoid redundant bindings

Fixes regressions seen in progs/samples/prim.c, progs/demos/ray.c
raw_vs_exec.c
13f46fa1b9c3009395a0d7f30ebef127f5937451 07-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't assume output buffer pointer is aligned
(cherry picked from commit 23cc303994eb630c56b1224dfdac51dcea41ed03)
raw_vs_aos_io.c
d7f1cb5b5a134b63227d5746a2dd1f05597c5c2f 10-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/gallium/auxiliary/gallivm/instructionssoa.cpp
src/gallium/auxiliary/gallivm/soabuiltins.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.c
src/gallium/auxiliary/rtasm/rtasm_x86sse.h
src/mesa/main/texenvprogram.c
src/mesa/shader/arbprogparse.c
src/mesa/shader/prog_statevars.c
src/mesa/state_tracker/st_draw.c
src/mesa/vbo/vbo_exec_draw.c
ca5224945ae11d3c2e80fd39b7e08464d019bbdd 10-Oct-2008 Alan Hourihane <alanh@tungstengraphics.com> gallium: silence warning
raw_private.h
23cc303994eb630c56b1224dfdac51dcea41ed03 07-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't assume output buffer pointer is aligned
raw_vs_aos_io.c
c48da7d78b4e7bdbe056b3c9668756d49019be06 06-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add switch for drivers to force vertex data passthrough
raw_context.c
raw_context.h
raw_private.h
raw_pt.c
4d7394f89292131323fc8e39efa511a2eeb8cc60 07-Oct-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Introduce PIPE_ARCH_SSE define for SSE support.

Besides meaning x86 and x86-64 architecture, it also depends on SSE2
support enabled on gcc.

This fixes the linux-debug build.
raw_vs_sse.c
9b827018133868e84ddc0998a5b5387584c7478c 06-Oct-2008 Michal Krol <michal@tungstengraphics.com> draw: Fix compiler errors on Windows.
raw_vertex.h
53d4706c6c0922160f310834daaec5718ff1c511 10-Sep-2008 Keith Whitwell <keith@tungstengraphics.com> make draw's vertex_info struct smaller/quicker to compare with memcmp()
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_vertex.c
raw_vertex.h
22eb067c8863cbd9078f136706effd5df3375dbb 02-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: modify prefetching slightly
raw_vs_aos_io.c
21f98ad30aaeab5085d12278830f485e61b47cc1 01-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't keep refetching constant inputs
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_varient.c
a15699c3f54edb5d5b42960e7568e587b752e407 01-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add streamlined paths for fetching linear verts
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
3f477e111a96493ff2863af06a98e8849ffbc6d8 28-Sep-2008 Stephane Marchesin <marchesin@icps.u-strasbg.fr> Gallivm: make it compile again, add some opcodes.
raw_vs_llvm.c
918a444913435bdee33214e25811875100f873b0 02-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: modify prefetching slightly
raw_vs_aos_io.c
af9cfea9cc80411351f9879d8eeb525bf7b4ca50 01-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't keep refetching constant inputs
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_varient.c
dd7e5a498066e4ebdb7ad40773de48e5bc993164 01-Oct-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add streamlined paths for fetching linear verts
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
ab74b8e3549838c0c480555134f5451949bac59f 28-Sep-2008 Stephane Marchesin <marchesin@icps.u-strasbg.fr> Gallivm: make it compile again, add some opcodes.
raw_vs_llvm.c
a8d1521f30766b6a4707aa9966e1f2f9c0b3ac00 18-Sep-2008 Keith Whitwell <keith@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.2

Conflicts:

src/mesa/shader/slang/slang_link.c
a06d38a74e865a0373a7314aad26b25c27ef8c57 18-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix wide point / point coord semantic info (generic, not fog)
raw_pipe_wide_point.c
e852232ebf256d1587ae0d456c366553749fd275 14-Sep-2008 Michal Krol <michal@tungstengraphics.com> draw: Silence compiler warnings on Windows.
raw_vs_exec.c
9defef29c59c580da1f6312f737822cd2efc9e28 12-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: avoid redundant tgsi_exec_machine_bind_shader() calls on draw exec path

tgsi_exec_machine_bind_shader() isn't cheap so avoiding unecessary calls
is a big win.
A similar change should be done for softpipe's fragment exec path but
extra care needs to be taken with the texture sampler state/params.
raw_vs_exec.c
82086f5d21295d5ceffb0fd9963de7de4112964b 03-Sep-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Describe the steps in emit_load_R32G32B32A32.
raw_vs_aos_io.c
feea0c9d958bc1645b09b288cd4d4756d0d6e61a 03-Sep-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix out of bounds array errors in SSE execution

1. #define MAX_INPUTS/OUTPUTS/TEMPS/etc with better values.
2. Add assertions in aos_get_x86() to check register file indexes
3. Assert that constant regs haven't changed after running SSE code.
raw_vs_aos.c
raw_vs_aos.h
f4d707b40e8dde8cdf68f5c4595b838c138fcf9b 31-Aug-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Put INLINES where appropriate.

In the hope of MSVC inline some more functions, but without much result.
raw_pt_vcache.c
e6887a5752774c18cf527477fdd3e57e4893ff3b 25-Aug-2008 Keith Whitwell <keith@tungstengraphics.com> draw: attempt atomic submit of large drawelements calls
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_vcache.c
raw_vbuf.h
60ac76175b6457ecc1cd8bd7a25cb79b2d529434 25-Aug-2008 Brian <brian.paul@tungstengraphics.com> gallium: added const qualifiers on some draw funcs
raw_context.c
raw_context.h
4f25420bdd834e81a3e22733304efc5261c2998a 25-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.h

Also, rename p_tile.[ch] to u_tile.[ch]
raw_context.c
raw_pipe.c
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_util.c
raw_pipe_validate.c
raw_pipe_vbuf.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_pt.c
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
raw_pt_util.c
raw_pt_varray.c
raw_pt_vcache.c
raw_vbuf.h
raw_vs.c
raw_vs_aos.c
raw_vs_aos_io.c
raw_vs_aos_machine.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
raw_vs_varient.c
a13475ff0057f1de8e3bc08d6ca42b9e135a3f5a 23-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: replace align_int() with align()

The two functions are identical. Removed align_int() from p_util.h
raw_pt_fetch_shade_pipeline.c
120270def74149b240926f827b80ca073536d462 22-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: stop using FABSF() macro
raw_pipe_offset.c
raw_pipe_wide_line.c
1c2ff4d9e65563c071747a9c3bd907bd24706da0 22-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: use new util_fast_exp2(), _log2(), pow() functions

New code surrounded with #if FAST_MATH to allow comparing against original
code if we need to debug.
raw_vs_aos.c
f6abdb20437b1b8d27d8c45c0787017dfcad3497 20-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix typo in LINE() macro (replace i+1 with i1 var)

We were sometimes referencing an invalid vertex.
Fixes progs/trivial/line-clip.c test among others.
raw_pipe.c
63c0970dca9c13ab83ea24f108b41f75f2a290a7 20-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix an assertion
raw_vs_varient.c
0c8f4c25ff1cdf8d4cad21789e0c73b41aa29c98 13-Aug-2008 Michal Krol <michal@tungstengraphics.com> draw: Use KIL instead of KILP.
raw_pipe_aapoint.c
raw_pipe_pstipple.c
22604727e469f4a9881f722be319670d5cde4519 11-Aug-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: emit sprite coords (gl_PointCoord)
raw_pipe_wide_point.c
c208a2c791fa24c7c5887fc496738cbddbfafc72 27-Jul-2008 José Fonseca <jrfonseca@tungstengraphics.com> Merge tgsi/exec and tgsi/util directories.
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
raw_private.h
raw_vs_aos.c
raw_vs_aos_io.c
raw_vs_aos_machine.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
92d711e9e6c1934e1cec774bfa4581869530cda6 13-Jul-2008 Stephane Marchesin <marchesin@icps.u-strasbg.fr> llvm: build fixes.
raw_vs_llvm.c
d25709df1d5d9dccdeb173b33a57018004fe849c 09-Jul-2008 Zack Rusin <zack@tungstengraphics.com> draw: remove some debug output
raw_vs_aos_io.c
ba9e6339028c36269cb50bb8535e415fa8e6e4c9 04-Jul-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix trim() function bug when count < first

If the user called glDrawArrays(GL_TRIANGLES, count=1), trim() returned a
very large integer because of the unsigned arithmetic.
raw_pt.c
cc31eecbcb90dabacabac3e6be7c01cfe3a7a2a6 02-Jul-2008 Michel Dänzer <michel@tungstengraphics.com> gallium: Allow draw module to work on non-x86 platforms again.
raw_vs.c
4ddd65967915ca4846f2831bc676c878a29dae4a 27-Jun-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Drop pipe_texture->cpp and pipe_surface->cpp.

The chars-per-pixel concept falls apart with compressed and yuv images,
where more than one pixel are coded in a single data block.
raw_pipe_aaline.c
raw_pipe_pstipple.c
e2c3f06e9649b5b87fc9adbca7d1f07841bba895 22-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix non-i386 builds
raw_vs_aos_machine.c
aa816d114ee90d0c5b861f622c0063b54f7eb612 12-Jun-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Fix MSVC integer size conversion warning.
raw_pt_varray.c
f1401385587882bb9d18a5f5b01dcbb71ddf0a2f 18-Jun-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: additional fixes to ensure even number of vertices per buffer
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
7d7f3e2c9451b2233c196d82d523c50b5d2616cc 18-Jun-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: split long prims into chunks with an even number of vertices

This fixes culling "parity" errors when splitting long tri strips. Splitting
strips into chunks with an odd number of vertices causes front/back-face
orientation to get reversed and upsets culling.
raw_pt_fetch_shade_emit.c
raw_pt_varray.c
20ee00754d432cf6c9aca2ba61e004a83795e160 13-Jun-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: disable the codegen for TGSI_OPCODE_EXPBASE2 for now.

The x86 code seems to fail for exponents of 4 or larger.
See glean's vertProg1/EX2 test.
raw_vs_aos.c
08f1b8ac709105d42ec34f8b8a81421e3b0fbc81 13-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: fix SSE codegen for instructions that use both a CONSTANT and IMMEDIATE

Fixes codegen for instructions like MUL dst, CONST[0], IMM[0]; the two operands
would up getting aliased in the x86/sse code.

Fixes glean/vertProg1/fogparams test.
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
2161b0fafcdc16703162dd489d2ec1e7114cce4c 12-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't assume vertex position is in data[0]
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_offset.c
raw_pipe_stipple.c
raw_pipe_vbuf.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_private.h
raw_pt_post_vs.c
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_varient.c
807f8f177b3a2833806d84a70e71019f8849239f 11-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: preserve specular alpha when flatshading -- may be FOGC
raw_pipe_flatshade.c
bd9264210097d08073a4ea3619ca25db56245280 11-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove another debug assert on failover to generic vs varient
raw_vs_aos.h
ab399b555c99c46958c421d900109f78901ddc99 11-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove debug assert on failover to generic vs varient
raw_vs_aos.c
aa7c21a45b90e6e502c4967f892f1691411d761f 10-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> Revert "draw: no need to rearrange most primitives in vcache for flatshade-first"

This reverts commit ad44e68706877ab06929747e7a82c718c1c27e02.
raw_pt_fetch.c
raw_pt_vcache_tmp.h
ad44e68706877ab06929747e7a82c718c1c27e02 10-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: no need to rearrange most primitives in vcache for flatshade-first

The driver/pipeline will still be applying flatshade-first state to the
triangles emitted from vcache, so there's no need to rotate the vertices
of most primitives. The only exception is POLYGON, as explained in the
code.
raw_pt_fetch.c
raw_pt_vcache_tmp.h
14a13e3767f080a48a4ae01f803dd0bc8754f441 10-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix edgeflags on clipped poly emit
raw_pipe_clip.c
061e1c6c57703a92ac17b553f592c0c6114cb227 10-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rework splitting of fan/loop prims in varray.c, fix flatshade issues
raw_pt_varray.c
raw_pt_varray_tmp_linear.h
a70684bf256c3d5bc3a729bf9e9cf1a64cb2064a 10-Jun-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Deprecate GETENV. Replace by debug_get_bool_option.

debug_get_bool_option will interpret "n", "no", "0", "f", or
"false" as FALSE; and everything else as TRUE. The default value
(used when the variable is not set) is received as a parameter.
raw_pt.c
1c316f1e824b094977059145a1abcdb50a391f1c 09-Jun-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: disable a tgsi_dump() call
raw_vs_aos.c
a47c222803483c208f720e3fb5015050d4d0eaf4 07-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix temp vs output buffer typo in vsvg_run_elts
raw_vs_varient.c
463a47bf59398e850d5a6537da1186d855bd2919 06-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix intermediate buffer confusion in draw_vs_varient.c

The final output buffer can't be used to hold intermediate results
as the intermediate vertex size may be greater than the final vertex
size, and in any case the output buffer may be uncached in hw drivers.
raw_pt_fetch_shade_emit.c
raw_pt_vcache_tmp.h
raw_vs_varient.c
0931b421d67b8ce471f17d43c183017f1eb92e31 06-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make sure middle-end primitive is uptodate in vcache
raw_pt_vcache.c
f27c7729a98937a761eacceabdfd03f9d694d257 06-Jun-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Compile draw_vs_aos only on x86.
raw_vs_aos.h
raw_vs_aos_machine.c
b98ac1d47257bf7b2661ae7c1a8904b7bc5d623c 04-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: init vsvg draw pointer
raw_vs_sse.c
raw_vs_varient.c
0a4aea0e86a897d9afb9f2a0ec27f03faf8f1b21 02-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: respect driver's max vertex buffer size
raw_pipe_vbuf.c
raw_private.h
raw_pt.h
raw_pt_emit.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_varray.c
raw_pt_varray_tmp_linear.h
raw_pt_vcache.c
5b6ea6bfc80fe96755ca4569048b59baa561f22a 03-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-tex-surfaces' into gallium-0.1
0a5df5bc7d711a766c9d0963fb2029d60cf70a8b 03-Jun-2008 Michal Krol <michal@ubuntu-vbox.(none)> draw: Use register names more consistently.
raw_vs_aos.c
183d490ab139483c88d0b0f541714919de86235c 03-Jun-2008 Michal Krol <michal@ubuntu-vbox.(none)> draw: Fix fetch_src(). Resurrect SSE version of DP3.
raw_vs_aos.c
58cccc8d6b49c75eeabe9b61055e69de824ff757 02-Jun-2008 Michal Krol <michal@ubuntu-vbox.(none)> draw: Fix DP3 implementation by replacing SSE with x87 version.
raw_vs_aos.c
6a39bcf3752df7c22cdd38b4645a885eb318add8 02-Jun-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fast element translate path without delta
raw_pt_vcache.c
e0860518dfb5a5c6ba6584e3c1b5d7b203277dac 02-Jun-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Replace XSTDCALL by PIPE_CDECL.
raw_vs_sse.c
5b86ae60fe339ae0b813d16ec328a68ccb2b9514 29-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Fix MSVC warnings.
raw_pipe.c
raw_pt_decompose.h
raw_pt_varray.c
raw_vs.c
raw_vs_aos.c
raw_vs_aos_io.c
c2ff3a66a1d9fe0b5303ded0503323a73a6a7391 31-May-2008 Michal Krol <michal@tungstengraphics.com> draw: Fix build after TGSI declaration interface changes.
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
a4abedc4f56e0442083aee9b39980900abf6ef40 31-May-2008 Michal Krol <michal@tungstengraphics.com> draw: Remove const qualifier.
raw_vs_sse.c
13581958bd99396ab8ec314f10cf61f717b18a9b 31-May-2008 Michal Krol <michal@tungstengraphics.com> draw: Remove const qualifier.
raw_private.h
3b77f391db7827d1fb19a5dc3d8e8d3d705185ae 31-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Eliminate stdio usage.
raw_vs_sse.c
1529a2c983f70ed7ff661ae6e8995cdfbca6d9cf 30-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: trim incoming primitives
raw_pt.c
3869c3c87a40d9f41414082ad8dd3d747e6b34d8 30-May-2008 Jakob Bornecrantz <jakob@tungstengraphics.com> Merge branch 'gallium-tex-surfaces' into gallium-0.1

Conflicts:

src/gallium/drivers/i915simple/i915_context.h
22be9ea4a63ff051604123de5e82cf4050792ef8 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: quieten some debug
raw_pt_vcache.c
807e7c4ccfdaebf8e568357fb1fd8090ccae638c 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add more switches to turn FSE on/off
raw_private.h
raw_pt.c
8808d62f608d1397ee75d0087301d0b0a0278244 29-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: MSVC warning fixes.

Conflicts:

src/gallium/auxiliary/draw/draw_pt_varray.c
src/gallium/auxiliary/draw/draw_pt_varray_tmp.h
src/gallium/auxiliary/draw/draw_pt_vcache.c
raw_pipe_vbuf.c
raw_pt_varray_tmp.h
raw_pt_vcache_tmp.h
4a7198fdcfe3256bdefff5d1d766327ae7f18b35 29-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> psb: Make msvc happy.

Conflicts:

src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c
raw_pt_fetch_shade_pipeline.c
8f887b4252208e60e7e86217ec3b72fb639a4e82 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: michal's patch for calling powf... teapot still not quite right
raw_vs_aos.c
raw_vs_aos.h
a233f65f9b79734498c120e8052aa8d6255586e4 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: better calculation of fetch_count
raw_pt_vcache.c
45eecb93920c5a33e71b3c152749273908cb62fd 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove printf
raw_pt_vcache.c
bb2e13b9e82b68ec3b9fc56a4c35e7ead8fd138f 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make sure constant buffer data is aligned before passing to aos.c
raw_context.c
raw_context.h
raw_private.h
raw_vs.c
raw_vs_aos.c
82605d7bcd533d7c96cc619c45970efd7229dc3b 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: draw_range_elements trial
raw_context.c
raw_context.h
raw_private.h
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_vcache.c
cb87d7e44a6d6b1b4239b4e38c76c6bb848d2ef6 29-May-2008 Michal Krol <michal@tungstengraphics.com> scons: Remove duplicate entry.
Conscript
6945bcb89370501e0a218bc656e68e30e4dadcda 29-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Put PIPE_CDECL in the right places.

MSVC seems picky about this.
raw_vs_aos.h
raw_vs_aos_machine.c
raw_vs_varient.c
62628c4d3d497cbca73fde869c9069fa90e6453e 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: share machine
akefile
Conscript
raw_context.c
raw_private.h
raw_pt_fetch_shade_emit.c
raw_vs.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_machine.c
raw_vs_varient.c
728d1f7f43b6db9f4f42c2d16ba223c492d1147d 29-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: enable FSE by default
raw_pt.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_sse.c
364f75d9dbc2b8e19c884b9cc74676ab6cbee60d 28-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> draw: Use PIPE_CDECL.
raw_vs_aos.c
raw_vs_aos.h
25cec212d05b613a83eb2bc2167e3dab88da0967 28-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> scons: Add new files.
Conscript
e407e83966f2d7d6d9751fc0069ebacd4808d89d 28-May-2008 Michal Krol <michal@tungstengraphics.com> scons: List missing files for draw module.
Conscript
ff44dd5cde47c81f90c5293b904e1c7edd006be5 28-May-2008 Michal Krol <michal@tungstengraphics.com> draw: Decorate callbacks with PIPE_CDECL.
raw_vs_varient.c
7fd6cd9af31a6b02564359f820d478ceb970fc7d 28-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-vertex-linear' into gallium-tex-surfaces
938d9d596324e411fde5312f2bb65b444c502c37 28-May-2008 Jakob Bornecrantz <jakob@tungstengraphics.com> Merge branch 'gallium-vertex-linear' into gallium-0.1

Conflicts:

src/gallium/auxiliary/draw/draw_pt_varray.c
55d29a8d48663982a1aeea414f69a5896b97d1ea 28-May-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Windows CE portability fixes.
raw_pt_elts.c
raw_pt_varray.c
raw_vs_sse.c
e38bb10824fc3dc194d7cc6987f3f4957784310e 28-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: reset stipple counter whenever non-line prim encountered
raw_pipe_stipple.c
7b85ea19de09d4e7e077ca147528e90e52683690 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: support psize in vs_varient paths

Preserve the vinfo "EMIT_*" format descriptors in the varient key,
and deal with PSIZE directly in each implementation.
raw_pt_fetch_shade_emit.c
raw_vertex.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_varient.c
fd20d1c7e8bbe2f40d73679b1514023772cfd8f6 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add disabled debug code
raw_pt_emit.c
raw_pt_fetch_shade_emit.c
660fee8351542dadc0d5550164e753f7c2d67261 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: ensure vs outputs mapped correctly to vinfo attribs
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_aos_io.c
2ec419d40dba43305c28fca9658ea00541f67821 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix ABS aliasing bug
raw_vs_aos.c
f8762ba5234fd1b44e11e76bb5f58d2305c90572 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: explicitly list nr_inputs, outputs in varient key
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos_io.c
raw_vs_varient.c
f64c44ad3e55467ce964871502445cf5a0fb46d6 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead file
raw_pt_middle_fse.c
9f9f6c21be105de41a58128605b911e679efe8f0 27-May-2008 Jakob Bornecrantz <jakob@tungstengraphics.com> draw: Fixed typo in draw_pt_varray and added comments
raw_pt_varray.c
9752ebd99e16646fed3c14712fc0af2c34c9e48f 27-May-2008 Jakob Bornecrantz <jakob@tungstengraphics.com> draw: Fix for EMIT_4UB case
raw_pt_fetch_shade_emit.c
a08c574bfcf72c7f7ffbeb35c10347b491ef87fb 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: hook up viewport / rhw emit to varient key state
raw_pt_fetch_shade_emit.c
raw_vs_aos.c
raw_vs_varient.c
50c1d329b95ad78e03ca4d537daee4d11f308c7a 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: restore extras path in draw_pt_vcache.c, keep pipeline flags out of non-pipeline elts
raw_pt_vcache.c
f7946bc7c0435ab2926cd729dfd8312222a3aa2a 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: dump individual instructions as they are processed
raw_vs_aos.c
5dc44184fa9f07465b7ff2be94394c55392ce5e9 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix writemask/shufps confusion
raw_vs_aos.c
4e2567f0ab6afd701bea4c35e388663e90f5cb6c 27-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: some possible fixes for spilling
raw_vs_aos.c
aa16e3a2750993afdba16c24237bb6d8d8e4d91a 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively flush pipeline backend when setting primitive
raw_pt_emit.c
93bfc94c351a2eafd43ac7a20b362d969f98d86a 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively reset render primitive some more
raw_pt_emit.c
d80c24a81a9a46c132fe877dde6919a57cacf8c0 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: defensively reset render primitive, which can get clobbered by clipping
raw_pt_emit.c
529762d5df6d9427f9fa0927e38b9886e412a6bc 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing break
raw_pt_emit.c
351eca365c0ba488000c3826d5093de6170381e4 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: extend precision in RSQ opcode
raw_vs_aos.c
raw_vs_aos.h
721fb5597e687fc1446119002ab03cc428104b29 26-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: more aos tweaks
raw_vs_aos.c
9c7568965c00dcc2e9403a2f94f1cd09dcd783ae 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: slight tweak for XPD opcode
raw_vs_aos.c
3afb7198e01516dba38bb3248d4c0161e54650fe 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove EXP & LOG from vs_aos.c

These don't get hit & look like bug magnets to me...
raw_vs_aos.c
ce331e3a5e2a0505e01637861bdd7f5e6cfbd041 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: special case for writing out scalar results
raw_vs_aos.c
caadc8d944c558e1fa9f23c3616d726337a19862 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: clean up some of the xmm register manipulation function names
raw_vs_aos.c
584a3dcf8e4042cc1a5d48d83ea63d0a3c9706c1 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add viewport support to generic vs varient code
raw_vs_varient.c
a6fca8acb5e8ce0e5e6ce91a524e2bb4c180d3ac 25-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix input vs output typo in emit
raw_vs_aos_io.c
86e529ad90411d21bca3d70984b2db202e7a0cd6 24-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: use lookup tables to avoid calling pow() in LIT opcode
raw_vs_aos.c
raw_vs_aos.h
6172f1295cf812108d8ceba15a83ba87880360d3 24-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add a debug-print which can be called from inside generated shaders
raw_vs_aos.c
raw_vs_aos.h
3b41d619a1b7cc8c356c32af777486461ddd7926 23-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: faster LIT(), incorrect though
raw_vs_aos.c
7106da136069f865747e03c30ca245bc030b241b 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: correct but slow LIT() in aos varient
raw_vs_aos.c
43df4642f1d2f3d2673a1d5e4f5126f5175fb899 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: tweak x87_emit_ex2 to avoid changing x87 fpu settings
raw_vs_aos.c
260001430bbd28ea17201f1980ab1ebed93b246f 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: use aligned movs within draw_vs_aos.c
raw_vs_aos.c
65cb09249e750b45ec3fc9a57670fc77250efc5e 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: for debug, do rhw divide in aos_sse viewport calcs
raw_vs_aos.c
6780a6dede31e7f2eb465e1d7b507b3e64fe6ec9 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: shortcircuit shuffle in aos_sse when possible
raw_vs_aos.c
7b25c1a4032960752d8a8e950bdf75740b2de2e8 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove FPU_MANIP ifdef
raw_vs_aos.c
05029c919d46299ca259ee8af880d0a65f95ce7c 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: clean up masked writes in aos sse, make some xmm function names clearer
raw_vs_aos.c
c684ffa02d8d43ee04b99ee63ccd1adb66e81c1a 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: clean up internal immediates in aos sse
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
a5c3b499fa40f46298389900e74f1db04f99166a 22-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fse works with elts, remove assert
raw_pt_fetch_shade_emit.c
5b1bd30f22ffa3955150ec008631d0f4754d340f 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: when preloading args to x87 stack, need to use reverse order
raw_vs_aos.c
083f3f5c32a28d2993a8a5a8b4f5ef81224a5ec3 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: avoid a pointless mov in many sse opcodes
raw_vs_aos.c
0a7a0d79f64de9794878c42bc5b79a04772d7ed8 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix x87_ex2 and partially fix lit insn
raw_vs_aos.c
2302a5d3c1ea2c682dfc034012a054b8327a81de 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix fpu control word manipulations
raw_vs_aos.c
194a7be28f6eed502f2475d9a637cb3610ca75f6 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix vs aos internal/machine state
raw_vs_aos.c
raw_vs_aos.h
889473b3f5a216bd753c357974d6bae29fe3c41d 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add viewport to varient state
raw_pt_fetch_shade_emit.c
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_sse.c
raw_vs_varient.c
1ba10e5ccf5cd0c990922e982e1e9bc6be48a5e4 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add aos vertex shader varient
akefile
raw_vs.h
raw_vs_aos.c
raw_vs_aos.h
raw_vs_aos_io.c
raw_vs_sse.c
ba738a3135415de8b381cd8845cd6c435d5747a8 21-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: mark varient functions as PIPE_CDECL
raw_vs.h
7c99d7fe60e7bb0b7cf103a851aeef4614278ca6 15-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: create specialized vs varients incorporating fetch & emit
akefile
raw_private.h
raw_pt_fetch_shade_emit.c
raw_vs.c
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
raw_vs_varient.c
2f0d1396e4c1626b3b1ac799bd29e86a9530369e 13-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move some state into a new 'vs' area
raw_context.c
raw_pipe.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_flatshade.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_wide_point.c
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_middle_fse.c
raw_vs.c
raw_vs_exec.c
raw_vs_sse.c
b23706454bb165a62888d264e95a98a2e4cf139c 13-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: get rid of fetch-shade-emit frontend hack

The code is now living in it's intended place as a pt middle end.
akefile
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_emit.c
8b25b5256fad23e8ea11c6931ecac658ca60c0b0 13-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove disabled non-sse swizzle code
raw_vs_sse.c
d00c8a52f37347fc72982611f910e85cbadca029 19-May-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
21e614eabc5e6a502504f307f3710b4dd0417923 19-May-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix some texture object leaks
raw_pipe_aaline.c
raw_pipe_pstipple.c
09900df42967a0ba61e78038304fd6c54934ad0d 19-May-2008 Zack Rusin <zack@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-vertex-linear
a846b156b8a0d2ef63de8f905af440f54e5668c7 19-May-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
59007a811de2d76ea00164e8f1cacb4a375d1458 19-May-2008 Brian Paul <brian.paul@tungstengraphics.com> if x86_get_func() returns NULL, handle it properly instead of aborting
raw_vs_sse.c
54fbd8bbd4e5a484d59907bae852908e3a8b8f3c 19-May-2008 Brian Paul <brian.paul@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
aeae57693b31bf42833a9d51844fe92e3ab61034 15-May-2008 Zack Rusin <zack@tungstengraphics.com> move the swizzling code to gallivm in preperation for code-generating it
also some minor cleanups
raw_vs_llvm.c
9671f7ae476cadb46f9f8f9d0363f24aabaf9f87 17-May-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: in drivers, make copy of tokens passed to pipe->create_vs/fs_state()

The caller can then free the token array immediately.
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
1c624846a81b0218b4a07328f485e295432c6312 13-May-2008 Zack Rusin <zack@tungstengraphics.com> decomposition from keith, adds decomposition of more prim to the pipeline
raw_pipe.c
raw_pt_decompose.h
raw_pt_varray.c
raw_pt_vcache.c
bbda45ec769120324f44febf00c6bb170f594f23 12-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: turn fse path into a middle end

Also add some util functions in pt_util.c
akefile
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_emit.c
raw_pt_middle_fse.c
raw_pt_util.c
raw_pt_varray.c
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
raw_pt_vcache.c
44463b2997826cd14def00abf724a7a65a4fc7cb 12-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: streamline the varray path

- drop support for running the pipeline (ie. don't populate the flags values)
- pass through all split-able primitives intact to the middle end
- only primitives that can't be split are shunted on the draw-element path
raw_pt.c
raw_pt_varray.c
raw_pt_varray_tmp_linear.h
b5e5369da5fc50d63a6ece931fac44b555eb0314 12-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add fetch-shade-emit path

Enable with TEST_FSE=t. Performs fetch from API-provided vertex buffers,
transformation with one of three (two working) hard-coded shaders, and
final emit to hardware vertices all in a single pass.

Currently only really useful for profiling in conjunction with SP_NO_RAST=t.
akefile
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_emit.c
7ddb925b8bc6c18eba953e34d2b630a3a6593f05 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: mimize cost of translate key compares, use cache universally
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
73c5505c13c42ba1ab95fa1d1003d5f9327428a5 09-May-2008 Michel Dänzer <michel@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
7462f0557f9cce73ff2d32e62ef110b5d8622f87 09-May-2008 Michel Dänzer <michel@tungstengraphics.com> draw: Fix number of vertices allocated in draw_pt_emit().
raw_pt_emit.c
501be9c7dd0cc5f985c708fa0e5f35d7fd20deb4 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix translate double-free, minor cleanups
raw_pipe_vbuf.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
5ee2b5bdcc62e844079829f4f4301aad5374c62e 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix translate double-free, minor cleanups
raw_pipe_vbuf.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
2f9b1b9cc20f079cb46bbbcc9db09880070e4de9 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-tex-surfaces
1a03812fb57e956b438cd42ac68978facb49a99d 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: mimize cost of translate key compares, use cache universally
raw_pipe_vbuf.c
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
36e1bc865b421be8919ce7d26eb4ae593a885372 09-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
cec016271ccf38d2f32e426f96e7d5d1fdf962f7 08-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-vertex-linear
b514f5f3ba4c9cf6c39cbcdf5bf0d2d8efb8d19b 08-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: only fill in / compare the part of the translate key we're using.

It's quite a big struct & we examine it a lot (too much). Reduce
the impact of this by just looking at the active part where possible.
raw_pt_emit.c
raw_pt_fetch.c
8ea6106f01f38853e9c0f1029da55eb449109aea 08-May-2008 Zack Rusin <zack@tungstengraphics.com> fix quad strips
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
8d709ae1595047b45a81f2fbd22850887fdbfea0 08-May-2008 Zack Rusin <zack@tungstengraphics.com> fix triangle strips
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
22323af525d00022a1fa06fab7ee84df5ef2d1f0 08-May-2008 Zack Rusin <zack@tungstengraphics.com> fix silly mistakes
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
fe586f8612dd517b9a1f0d87fbaf3a75e3caf588 07-May-2008 Zack Rusin <zack@tungstengraphics.com> redo the linear paths
raw_pipe.c
raw_private.h
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_varray.c
raw_pt_varray_tmp.h
raw_pt_varray_tmp_linear.h
e897fd6cd35c6b9e398e1903d2e79678fe85708a 05-May-2008 Zack Rusin <zack@tungstengraphics.com> fix the regressions
raw_pt_varray_tmp.h
66d72f176de2568f053c6dc54e93d423723ae8aa 04-May-2008 Zack Rusin <zack@tungstengraphics.com> silence debugging output
raw_pt_emit.c
a24cb269e1ba5434acf8c94abd03517c149b9c51 04-May-2008 Zack Rusin <zack@tungstengraphics.com> implement linear path for fetch_emit pipeline
raw_pt_fetch_emit.c
raw_pt_varray.c
ff1fee2cae9fabb47d6a2eb1f9f8094fec3c377f 04-May-2008 Zack Rusin <zack@tungstengraphics.com> don't fill in linear fetch_elts
raw_pt_varray.c
raw_pt_varray_tmp.h
abb08e9335b5d7cb004dc9e6cec390ab6968abe5 04-May-2008 Zack Rusin <zack@tungstengraphics.com> implement linear emition and fetching and plug it in the varray paths
raw_pt.h
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
raw_pt_varray.c
raw_pt_varray_tmp.h
90a46ed277cc887d49c8d8c627174c3bd693ecf7 02-May-2008 Zack Rusin <zack@tungstengraphics.com> split larger primitives in the simple varray pt
raw_pt.c
raw_pt_varray.c
raw_pt_varray_tmp.h
2abc1b3641e435e0b68490fa6b0a7ffa7c030c76 01-May-2008 Zack Rusin <zack@tungstengraphics.com> abstract fetching elts
raw_pt_varray.c
raw_pt_varray_tmp.h
c3a8a41faabed4c9b84a6fbaf7a86a089b8fcbba 02-May-2008 Keith Whitwell <keith@tungstengraphics.com> Merge branch 'gallium-0.1' into gallium-tex-surfaces
731e7b961cd081ac6a64b636937716ce3a623c2c 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> re-add pipe_surface map/unmap inlines
raw_vs_sse.c
bc4952987419d77fabbf4fa43913f6e488bdb211 01-May-2008 Brian Paul <brian.paul@tungstengraphics.com> added cast for MSVC
raw_pipe_pstipple.c
2004b8a769110456e66d040398eacf25c8592710 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: label fn args -- shouldn't this be defined where the fn is created?
raw_vs_sse.c
6980823da9120d8d8533f7a78eac2d63dece430f 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: avoid aliasing warning
raw_pipe_pstipple.c
be7e1297f4d5a2c2949968bea428b4c0e7c75d63 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: squash warnings
raw_pt_varray.c
raw_pt_vcache.c
4584c0efbd547559d30ba9a5e76549fc1b679619 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> draw: turn on SSE swizzle code
raw_vs_sse.c
c9ed86a96483063f3d6789ed16645a3dca77d726 01-May-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: tex surface checkpoint
raw_pipe_aaline.c
raw_pipe_pstipple.c
54f94a790e4488445347abcff9a636a9c440d7f9 01-May-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: use the newer PIPE_FORMAT_x_UNORM format names
raw_pipe_aaline.c
raw_pipe_pstipple.c
42fb48492e71016c5a2888cd3d2507a89dbd91f3 30-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: init hw_key with memset() to silence valgrind warnings

We shouldn't be hashing with keys that have uninitialized memory.
raw_pt_emit.c
b6d9666a420bd7c31a6696f94ba1025e5204d458 28-Apr-2008 Michal Krol <michal@tungstengraphics.com> gallium: Set SSE_SWIZZLES to 0 by default.
raw_vs_sse.c
58d3dff0d3115ddd5397b7f77b5bcf4f9ca616b6 28-Apr-2008 Michal Krol <michal@ubuntu-vbox.(none)> gallium: Generate SSE code to swizzle and unswizzle vs inputs and outputs.

Change SSE_SWIZZLES #define to 0 to disable it.
raw_pt_fetch_shade_pipeline.c
raw_vs_sse.c
1aedbf9efe4d1cf45be3c27fc3a0eb4a69a1b1b9 25-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: emit extra flags whenever pipeline is active

The assert was in fact over-sensitive, but emitting the extra flags
is pretty trivial & we may as well just do it whenever we know the
pipeline is running.
raw_pt_varray.c
raw_pt_vcache.c
96cfd804f6dcc0ec9f5e887ff1b402a55886fb0b 25-Apr-2008 Michel Dänzer <michel@tungstengraphics.com> gallium: Add draw_pt_varray.c to scons build.
Conscript
14cfcb18204233d3d4848ea8e579465983df3d75 25-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: no need to special-case elts/get_elts for varray frontend
raw_pt.c
4e46e6f52b88ca7df40a52cf994e6fe1e4b9870e 25-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove unused vars
raw_pipe_aaline.c
raw_pipe_pstipple.c
992d0b997f8f7e965e56852b81e01c290f8c13de 24-Apr-2008 Zack Rusin <zack@tungstengraphics.com> frontend for rendering without elts
akefile
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_varray.c
raw_pt_varray_tmp.h
2926e59e4ad604dedcb639b2961937841afcf005 25-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove old assignment of edgeflag value
raw_pt_post_vs.c
909894e34ca5e575ce21005e38dc0b5e98e4bcd6 24-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: comments
raw_pipe.c
da8312a1cf73d0777d51c63148ee090a9acace8b 24-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: default edgeflag should be one
raw_pt_fetch.c
f93332da5655a31b6c44a1079629a15360ff999b 24-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: handle edgeflags and reset-line-stipple again
raw_pipe.c
raw_pipe.h
raw_pipe_clip.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_private.h
raw_pt.h
raw_pt_fetch.c
raw_pt_vcache.c
raw_pt_vcache_tmp.h
bb4f8ae1f93d17c57fd8f62bea24b48131e02037 24-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: reorder code to fix a recursive flush
raw_pipe_pstipple.c
14d1ca8d867d6e44c756cb759f92421107118b2e 24-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix issues in recursive flushing

When flushing/rendering, some stages (like AA line/point) need to set
pipe/driver state. Those driver functions often call draw_flush().
That leads to recursion.

Use new draw->suspend_flush flag to explicitly prevent that in the key places.
Remove the draw->vcache_flushing field.
Reuse draw->flushing as a debug/assertion var.
raw_context.c
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_pstipple.c
raw_private.h
raw_pt_vcache.c
8437f5c763c1a1ac364d71426109c2b095bbcc72 24-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix comments
raw_pipe_aapoint.c
bff371c431b962c62d74800c543e09d258e67551 24-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix comments, whitespace changes
raw_pipe_pstipple.c
3f6242d3e4d3ee61884a91a3eef4be8dfaadee3c 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: passthrough tri, not point
raw_pipe_wide_line.c
95f8f8863a80ce1e584160d4d085213a9bbaef12 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Add translate cache to fetch_emit stage and add out of memory
checks to code creating the cache.
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
5fcd84ab39318a371253b1a7285bc657fb82efed 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Create a sharable translate_cache and use it.
raw_pt_emit.c
raw_pt_fetch.c
5d873c87186fd3a59b46b4e1e0c987120aa961a7 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: additional debug code
raw_pt_post_vs.c
e1180c2d694851ed12e86027aa406ee20546e6d3 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> fix the simple hash finding function and use it
raw_pt_emit.c
raw_pt_fetch.c
333976c90aafa602816defef3e4cc4a418601a51 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix broken hashing for vertex translation

It seems we get hash collisions fairly easily and the code as it was didn't
deal with that properly.

I think we need a simpler hashing interface...
raw_pt_fetch.c
43be7a4819ad342e1cb3f8e3fb966a8a78dc2c1b 23-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove stupid debug (Keith)
raw_pipe_vbuf.c
d6a965972b48fec95a2bcb778cf05d0468ba2573 23-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing break (Jakob)
raw_pipe_vbuf.c
72fd5b9c5a78792ad8c1fe7c8713a3583008c50a 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: added a flushing_vcache flag, test in draw_do_flush()

Fixes broken polygon stipple, aaline, aapoint stages
raw_context.c
raw_private.h
raw_pt_vcache.c
91e37b71404a83b5e4258e129a2753f7c8fd0706 23-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix bad logic in bind_pstip_fragment_shader(): use &&, not ||
raw_pipe_pstipple.c
d8f2e400cfe6e32e82d1656d3483905343124b97 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Fix a crash. Rasterizer can be null
raw_context.c
f088b53769aacbee20135d912c33d688b6002011 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Cache translate's structs for emits and fetches.

Results in a fair speed improvement.
raw_pt_emit.c
raw_pt_fetch.c
500c41b8ba3ad025c69e63a2c74da90674a8037d 23-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Fix reporting of clipped vertices.
raw_pt_post_vs.c
0588858702d1a5c9c08573ea6817e2e149473cf6 22-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: allow drivers to query pipeline state more easily

Also, provide a separate flag to say whether the driver can handle
clipping/rhw tasks, in addition to the API flag which indicates they
have already been done.
raw_context.c
raw_context.h
raw_pipe_validate.c
raw_private.h
raw_pt.c
raw_pt_fetch_shade_pipeline.c
raw_pt_post_vs.c
57987ea67320e79e4c2d7e66388806148ece09b5 22-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: disable broken edgeflag code - didn't work & was killing performance
raw_pt_vcache.c
e406ad5912985920a0d796f1ada58b40316590ed 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: squash a couple of memory leaks
raw_pt_fetch.c
raw_pt_fetch_emit.c
0824fb1d6afc651c0ab814e96f08326c706de216 21-Apr-2008 Zack Rusin <zack@tungstengraphics.com> actually write the results
raw_vs_llvm.c
30b4dc29091347252bc61d3be9370db0a45c16c3 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: more propogation -- pstipple stage.
raw_pipe_aaline.c
raw_pipe_pstipple.c
0d4ece4c5a243dc4b684331bad49f220311e5520 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: propogate lots of errors
raw_context.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_util.c
raw_pipe_validate.c
raw_pipe_vbuf.c
raw_pipe_wide_point.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_vcache.c
0cd90a917d289363a3edb5cfa40c391eb07aa97c 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: propogate errors out of aapoint stage
raw_context.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
69ecc2a577dc45451d56cee3e41cb6e7e542b097 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: propogate errors out of aaline stage
raw_context.h
raw_pipe_aaline.c
a918a9c744f656c8bf2e3fd2841732e01a5ccefc 21-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: consolidate all the passthrough line/tri/point funcs
akefile
Conscript
raw_pipe.c
raw_pipe.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_util.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
201ac414d4df00745e487a6ffbc9979a2e70f0c6 21-Apr-2008 Zack Rusin <zack@tungstengraphics.com> make llvm draw paths compile with the latest changes
switch the method of distribution of builtins (to get rid of the
llvm2cpp dependency)
raw_vs_llvm.c
40e0439db448a7d93ddb18faac7f14b47b1343c0 21-Apr-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Centralize SSE usage logic.
raw_context.c
raw_context.h
raw_private.h
raw_vs_sse.c
68a7cb21fa14eac9e38bf398623739a892cc0d52 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rearrange debug code
raw_pipe_vbuf.c
raw_pt_fetch_emit.c
raw_vertex.c
raw_vertex.h
bfd179776f5ded75c2134a54f0a57a1579118cd0 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing translate->set_buffer for fetch emit path
raw_pt_fetch_emit.c
d3cb62b8b3ea03bfb9800bf4b738d9814ef3c516 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix scons build
Conscript
7d72607e142c0412b88183b849fd701e698b8f79 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move incoming vertex state into draw->pt

This state is effectively private to the vertex processing part
of the draw module.
raw_context.c
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_elts.c
raw_pt_fetch.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
raw_pt_vcache.c
dcf6f776ce32b89b7ff784bb38030bd29698e005 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make draw_reset_vertex_ids private to the draw_pipe_* code
raw_pipe.c
raw_pipe.h
raw_private.h
2dae208fb19e79c7446a29ee5dee53e50283b57c 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make room for extra_vs_outputs
raw_pt_fetch_shade_pipeline.c
e7bac4276634ea1ee81ac71f6f6869f87e689872 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: put pipeline flushing behind a new interface
raw_context.c
raw_pipe.c
raw_private.h
bee1d31641674c67676de86fbb4b35ca5bf7f33f 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move pt_pipeline code to draw_pipe.c

This is now the drawing interface to the pipeline. No more
calling into pipeline.first->tri(), etc.
akefile
Conscript
raw_pipe.c
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_pt_pipeline.c
c898eae27221bd23b11327553c215a94369eeb99 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: always emit header in draw_pt_fetch.c
raw_pt.h
raw_pt_fetch.c
raw_pt_fetch_shade_pipeline.c
507fbe2d327efb8d608ce8e07436b97321560808 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move some pipeline-specific code & state to draw_pipe.[ch]
akefile
raw_context.c
raw_pipe.c
raw_pipe.h
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_validate.c
raw_pipe_vbuf.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_private.h
raw_pt.c
raw_pt_pipeline.c
raw_pt_post_vs.c
raw_vertex.c
0959f909ba585968f0408e78961e1c0ffc69a9f8 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead file pipe_wide_prims.c
raw_pipe_wide_prims.c
1246d06313f443c91dea07239b43a88ba2b86dde 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove named clipmask flags, tidy up pt middle ends
raw_context.h
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_post_vs.c
882e5d84dcb19c24b7b56cfe6049810023f3a17e 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead code
raw_vs.h
26831bdac594a11e51b6c4b09df78bb11444f5dd 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rename pipeline files to draw_pipe_*
akefile
Conscript
raw_aaline.c
raw_aapoint.c
raw_clip.c
raw_cull.c
raw_flatshade.c
raw_offset.c
raw_pipe_aaline.c
raw_pipe_aapoint.c
raw_pipe_clip.c
raw_pipe_cull.c
raw_pipe_flatshade.c
raw_pipe_offset.c
raw_pipe_pstipple.c
raw_pipe_stipple.c
raw_pipe_twoside.c
raw_pipe_unfilled.c
raw_pipe_validate.c
raw_pipe_vbuf.c
raw_pipe_wide_line.c
raw_pipe_wide_point.c
raw_pipe_wide_prims.c
raw_pstipple.c
raw_stipple.c
raw_twoside.c
raw_unfilled.c
raw_validate.c
raw_vbuf.c
raw_wide_line.c
raw_wide_point.c
raw_wide_prims.c
1b411f894369f6a55c6f11cf650511eaa18a8510 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: sort makefile sources
akefile
6c38c600ff1212699e2e8e0f2928cd9e69559ac5 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rename draw_vertex_shader.c -> draw_vs.c
akefile
Conscript
raw_vertex_shader.c
raw_vs.c
6494946db66b62d280e34a0486b83cca15f5b457 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_debug.c
akefile
Conscript
raw_debug.c
6d9132de04fc190fea56978849dfc427e5359912 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make draw_pt_fetch_emit use translate facility
raw_pt_fetch_emit.c
raw_vbuf.c
251ebcc175d479dda8d0d5b64fc42f44e747197e 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove more dead data structures
raw_private.h
6094e79f4e3350d123c7532b1c73faa60834a62d 19-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead data structures
raw_context.c
raw_private.h
415e8e039ba38716336e8de3d7b3cdc23b9a9d8e 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_vertex_fetch.c
akefile
Conscript
raw_vertex_fetch.c
raw_vs_llvm.c
raw_vs_sse.c
709e33cf0bfd552220e46f44e8cfa2063c3cef69 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove old draw_vertex_shader_queue_flush function
raw_context.c
raw_private.h
raw_vertex_shader.c
dd903d83b3ff8dd19f75ac7542b96bc8f1387fe6 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove old vertex_shader->run() functions
raw_vertex_shader.c
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
66891826421d5b774e081f7a2a85580cd0523fab 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_vertex_cache.c
akefile
raw_context.c
raw_prim.c
raw_vertex_cache.c
b11d89dc6d230f7f945f9eb420d39921c648ec20 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_prim.c
akefile
Conscript
raw_prim.c
raw_pt.c
a41c05b20a36d2160aa232d08ed57d3095438025 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: switch over to draw_pt paths, will remove old code shortly
raw_context.c
raw_private.h
raw_pt.c
cb9f0a589623397c3437911aeef39f189213527a 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove draw_vf code, use translate instead
akefile
Conscript
raw_pt_emit.c
raw_vbuf.c
raw_vf.c
raw_vf.h
raw_vf_generic.c
raw_vf_sse.c
26c27f6636069ca849a740c3969c577d841484e2 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove fetch_pipeline middle end -- just use the general path
akefile
Conscript
raw_pt.c
raw_pt.h
raw_pt_fetch_pipeline.c
7400bc4b6fb0c20a935cd108afa92814eeafec6d 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> translate: add sse version based on old draw_vf_sse.c
raw_pt_emit.c
raw_pt_fetch.c
da9079b936684f88da79425a810d7902e4d6e7ad 18-Apr-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Add missing files to scons.
Conscript
a773f06e969a3992451dd7fe6fd55ea96b2774fa 18-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: split off all the extra functionality in the vertex shader

This will at least allow us to make the initial gains to get decent
vertex performance much more quickly & with higher confidence of getting
it right.

At some later point can look again at code-generating all the
fetch/cliptest/viewport extras in the same block as the vertex shader.
For now, just need to get some decent baseline performance.
akefile
raw_context.c
raw_private.h
raw_pt.h
raw_pt_emit.c
raw_pt_fetch.c
raw_pt_fetch_pipeline.c
raw_pt_fetch_shade_pipeline.c
raw_pt_pipeline.c
raw_pt_post_vs.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
01b6354e72a84f8c3c22be1f77eab8d9c05920a3 17-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: tweak x/ybias values
raw_wide_point.c
4dcb09d48981f07a82d7f609fe492453c8fdbcf4 17-Apr-2008 Michel Dänzer <michel@tungstengraphics.com> gallium: Add new file to scons build.
Conscript
c503e55d74cf84f87f82b3dab3cb4d38b201d47a 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move hw vertex emit to a new module
akefile
raw_private.h
raw_pt.h
raw_pt_emit.c
raw_pt_fetch_shade_pipeline.c
fe8af141246bdfc0e98beec0089acdb92407bcfa 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't always run pipeline if clipping
raw_pt.c
280bcff1fa200b790d8712946a4ffbaa47a67433 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add vertex shader run_linear function
raw_aapoint.c
raw_clip.c
raw_context.c
raw_flatshade.c
raw_private.h
raw_pt_fetch_pipeline.c
raw_pt_fetch_shade_pipeline.c
raw_twoside.c
raw_vertex_fetch.c
raw_vertex_shader.c
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
raw_wide_point.c
49becd2d7c751e563ce6be9051dd8e6dad88d1f7 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add comment
raw_pt_fetch_emit.c
c96d565643de271c6bda066e892b25d0a97ea4d0 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: keep record of number of active vertex buffers
raw_context.c
raw_private.h
8abfcea690c66f75d61905f0ec5497b8fd7950d4 17-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove misleading comments
raw_pt_pipeline.c
3be453bf7fcffd945ee0238e66ff4247a4491f1c 16-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: allow pt paths to run without a vbuf render stage
raw_pt.c
raw_pt_fetch_shade_pipeline.c
d8c389171872b69af3c94ebab02ad5f4bcd2d4df 16-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove vbuf non-vf debug path, fix some failure modes in draw_vbuf_create()
raw_vbuf.c
909e8ce543a6c1e97d55791d2069cbdc56ea9db6 16-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: update debug code
raw_vbuf.c
a8582efaca35d09c8ca18918a243a9284583356d 16-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: make pt run pipeline when need_pipeline is true, not just when clipped
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_pipeline.c
raw_pt_fetch_shade_pipeline.c
raw_pt_vcache.c
a5a7dc24ba2dcf9bbdd73709c4c182e324bdc3a5 15-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: Switch one vertex path over to new translate module

Will eventually do this for all instances where we are converting vertices
from one format to another.
raw_pt_fetch_shade_pipeline.c
8cac6f3fcf9d6c08959efc20f8fce9eddbdcd0ef 15-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: increment output vertex properly
raw_pt_fetch_shade_pipeline.c
7eb6f130a1dfb8179ff371eb4e75b47d6ee45d2a 15-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix first glitch in vertex emit
raw_pt_fetch_shade_pipeline.c
6a26a9c58cc38ff636ee88ce01fed40eea500fc0 15-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fetch_shade_pipeline needs to translate to hw vertex format (from get_vertex_info)
raw_pt_fetch_shade_pipeline.c
01c7dd2629d161bf87af679a3045e1e2d54259fc 15-Apr-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Add draw_pt_fetch_shade_pipeline.c to scons build.
Conscript
983b6a73e1842b436d158dc1d018bd483a1c9929 14-Apr-2008 Zack Rusin <zack@tungstengraphics.com> use the new macro
raw_context.c
raw_pt_fetch_shade_pipeline.c
2ba6e1fa71be07a2d75abe2d085d485046c0932b 14-Apr-2008 Zack Rusin <zack@tungstengraphics.com> silence some warnings
raw_pt.c
raw_pt_fetch_emit.c
raw_pt_fetch_pipeline.c
raw_pt_fetch_shade_pipeline.c
e3309197855b5caf7c4c167d1e7beedf33ed2fdd 14-Apr-2008 Zack Rusin <zack@tungstengraphics.com> pass vertex size to shaders so that callee can decide on the size
of the vertices and not always have to use the maximum vertex
allocation size for them
raw_private.h
raw_pt_fetch_shade_pipeline.c
raw_vertex_cache.c
raw_vertex_shader.c
raw_vs_exec.c
raw_vs_sse.c
8cbda9f1088718e5dbb97b9a6ddcc43737f94351 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead code
raw_vf.h
36bacf97a6b10f7274f0d3fcf37bf7ebf9388161 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: always malloc verts for fetch_shade_pipeline
raw_pt_fetch_shade_pipeline.c
a82e4996a13ef3cae1497fef95c2fca7631cd889 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: flush pipeline before trying to allocate more hw vertices
raw_pt.c
raw_pt_fetch_emit.c
raw_pt_fetch_shade_pipeline.c
e106b2d3d65585b0aaa0e60afd541da020d9e220 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move vertex header init out of fetch_shade_pipeline.c
raw_pt_fetch_pipeline.c
raw_pt_fetch_shade_pipeline.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
caf293343fd236e97ce399533ac0ada3c7afee7a 14-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: hide passthrough shading paths behind an environment variable
raw_context.c
raw_private.h
raw_pt.c
0c1cb54923f3ab31caa2821e095685277174dd2f 13-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Implement fetch/shade/pipeline or emit vertex passthrough.
akefile
raw_pt.c
raw_pt.h
raw_pt_fetch_shade_pipeline.c
3f7a3dd58c0ce2719af83ff1d89a26185d08c04c 13-Apr-2008 Zack Rusin <zack@tungstengraphics.com> Make shaders operate on a block of memory instead of arrays of vertex_header's
raw_context.c
raw_private.h
raw_vertex_cache.c
raw_vertex_shader.c
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
808f968f3ad0cb32e86f517753d5715d00e9ec2c 12-Apr-2008 Zack Rusin <zack@tungstengraphics.com> return true if one of the vertices has been clipped
raw_private.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
aadbb1d7fbbaada6e378cb60194e5861cadf98d1 12-Apr-2008 Zack Rusin <zack@tungstengraphics.com> pass arbitrary number of vertices to the shader execution cycle
raw_private.h
raw_vertex_shader.c
raw_vs_exec.c
raw_vs_sse.c
4f550ab821f9aef9f19d9f1e10785f8c1f511ad4 08-Apr-2008 Zack Rusin <zack@tungstengraphics.com> introduce a define to maxout the processed vertices
raw_vertex_shader.c
2ebc99fcbc0c8fc6f6ce50e2ee674312e214ea2f 12-Apr-2008 Brian <brian.paul@tungstengraphics.com> gallium: move duplicated compute_clipmask() code to draw_vs.h
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
7c2416f06e518bc1491fe13e145dcc9487d75449 11-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: handle TGSI immediates in SSE code for vertex shaders
raw_vs_sse.c
c95dcc49629b72b95826e87e067d7a48753605fb 08-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> remove usage of vertex_header
raw_pt_fetch_emit.c
raw_vbuf.c
raw_vertex.c
raw_vertex.h
raw_vf.c
a8a5376406cabf5aa6a44f7d37f5f8abbb4adf56 07-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: strip edgeflags out of fetch-emit path
raw_pt_fetch_emit.c
5c19e47362c2d193850e98bd43a2bc2b783b0b5c 06-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix edgeflag handling on the pt paths

Encode edgeflags (and reset_stipple info) into the top two bits of the
fetch elements. This info could be moved elsewhere, but for now we
can live with a 1<<30 maximum element size...

Also use the primitive decomposition code from draw_prim.c verbatim, as
it includes all this stuff and is known to work.
raw_pt.h
raw_pt_fetch_pipeline.c
raw_pt_pipeline.c
raw_pt_vcache.c
a8ca54955322b34c77a7459246e5639d3f8610cd 05-Apr-2008 Michal Krol <michal@tungstengraphics.com> draw: Use debug_printf().
raw_clip.c
5ffc5cce1507fd407399911abefeea988a69394e 04-Apr-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: new debug code, disabled
raw_clip.c
84501e68f6294370d6f2f6aec4e7eab57bcc0e72 04-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: Handle client-supplied edgeflags.

Also, implement support in the draw module. We were hardwiring these
to one for quite a long time...

Currently using a draw_set_edgeflags() function, may be better to push
the argument into the draw_arrays() function. TBD.
raw_context.c
raw_context.h
raw_private.h
raw_pt_fetch_pipeline.c
raw_pt_pipeline.c
raw_vertex_cache.c
0b20d1b9b5e0514a68ab460d748753d29df2e70b 04-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: move code to run pipeline from pt to new file

Add facility for draw_vbuf.c to reset these vertex ids on flushes.
Pre-initialize vertex ids correctly.
akefile
Conscript
raw_context.c
raw_private.h
raw_pt_fetch_pipeline.c
raw_pt_pipeline.c
d2cb4ba0bb2388c784f145c59f3798f914dc7f39 03-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add passthrough path to the pipeline

This handles the case where bypass_vs is set, but vertices need to go
through the pipeline for some reason - eg unfilled polygon mode.

Demonstrates how to drive the pipeline from inside one of these things.
akefile
Conscript
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_fetch_pipeline.c
raw_vertex_fetch.c
add46fbc8cc04d3bce303815541a7bc5d0b33953 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add missing break statement
raw_pt_fetch_emit.c
ae3c91e98ce3355bca22738440f8ba313b3b8b23 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: Set the backend prim in the pt 'prepare' operation

Leaving it until 'run' is bad as the primitive is pretty much state
for some drivers and so needs to get set early. In some drivers
this is used to determine things like vertex format, etc -- by the
time we get to 'run', it's too late to change this.
raw_pt.c
raw_pt.h
raw_pt_fetch_emit.c
raw_pt_vcache.c
8e33194837dd206d920889851d9cf22190100c99 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: add a flag to turn on gl rasterization rules

Use this to set up hardware rasterization (if your hardware can
do it) or otherwise turn on various tweaks in the draw module.

Currently only hooked up to point biasing code.
raw_wide_point.c
bc739440c29c551fcc44e9e12d0d9c170d8d24fb 02-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: add temporary facility for rasterization-time clamping of point sizes
raw_wide_point.c
8f8b95ae58c6e51f3bf0bc6ed2fa5ac8b9e82f1e 01-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: remove dead code
raw_prim.c
edfa8201a50c47376b7aa0c05d7851e3e1353bde 01-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: more flatshade_first changes

- Reduce the number of changes to the normal vertex ordering
- Assume that the hardware knows how to do this in the standard case.
- Add support to the passthrough vcache path.
raw_prim.c
raw_pt.c
raw_pt.h
raw_pt_vcache.c
raw_validate.c
caa44763f7f7aa26ed0b0d1e5af0c410fba6bfe6 01-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: respect flatshade_first in flatshade stage
raw_flatshade.c
52f40dcc468039fc9cca45a4de20a5aa11228b67 01-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: associate rhw divide with clipping not viewport flag
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
4b1377b2403bcb34081f91991f1ffde06df17af1 01-Apr-2008 Keith Whitwell <keith@tungstengraphics.com> draw: flush between pt/non-pt modes
raw_pt.c
7139b8ef78adb8d08c13e439fc8add31a2d79f36 31-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: draw_passthrough.c is obsolete - removed
raw_passthrough.c
594dab4769533afaeb30a588e1731a6753a93f0d 31-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: move the test for bypass_vs into the vs_XXX_run() functions

Also:
1. Added an identity_viewport flag to skip viewport transformation when it
has no effect. Might also add an explicit bypass_viewport flag someday.
2. Separate the code for computing clip codes and doing the viewport transform.
Predicate them separately.
Note: even if bypass_vs is set, we still look at the shader to determine the
number of inputs and outputs.
raw_context.c
raw_prim.c
raw_private.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
9cbd8400433fb27da03f300b36495baef464cc6b 31-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: draw_passthrough.c is not used anymore
Conscript
499d8aaa476fb67b7355122dc6fbc641e1b44ed0 31-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: draw_passthrough.c is not used anymore
akefile
63950b11b6060e4e0d06e0d14548ff132a295067 30-Mar-2008 Michal Krol <michal@tungstengraphics.com> draw: Do not run full pipeline when flatshade_first for point primitives.
raw_prim.c
raw_pt.c
raw_validate.c
fc9888014470286d8d651c569aaadf9cd69d8282 30-Mar-2008 Michal Krol <michal@tungstengraphics.com> draw: Fix bypass_vs semantic misuse.
raw_prim.c
a52c0416d1f2105960b4646e2e268aed26814689 29-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: Set vertex state/buffers en-mass.
raw_context.c
raw_context.h
f10016b9a0639d7bc814c7b92a30d5b5b2cba5ad 25-Mar-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Fix some MSVC warnings.
raw_pt_vcache.c
39038c11699bbc9baab744542e96d54e91cb452a 28-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: replace PIPE_ATTRIB_MAX with PIPE_MAX_ATTRIBS

The later follows the naming scheme of other limits.
Keep the old definition until all possible usage is updated.
raw_context.c
raw_private.h
raw_pt_fetch_emit.c
raw_vf.c
raw_vf.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
df1744c0433f3f73ebf4b06567fefa946a29c3d8 27-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: remove temporary static var
raw_prim.c
raw_private.h
8cb85807d3bd42cb0e511970e4b409c542d2716b 26-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: as for aapoints, make the extra texcoord per-shader state
raw_aaline.c
e55dccd0bfc41dbcf306f864c01758f8e28fc660 26-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: the generic attrib we use for computing coverage is per-shader

Fixes a very tricky conformance failure.
raw_aapoint.c
e1543fa55c7972e3634f3f7ba297c010337dfb0d 25-Mar-2008 Michal Krol <michal@tungstengraphics.com> draw: Take flatshade_first rasterizer bit into account.
raw_prim.c
05a4ecdec2b5fc590eb09cc5a6b4208e0f739c5a 25-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: vertex fetch can be validated too early leading to an assertion... disable
raw_vertex_fetch.c
cbec00849186db11d77fd00822145e11e69cb07f 25-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't use fetch_and_store for bypass_vs mode, it's not quite right
raw_prim.c
4505acf3b28f0b88bf97838ed7898f10e9200b93 25-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: take primitive into account when deciding if the pipeline is active
raw_passthrough.c
raw_private.h
raw_pt.c
raw_validate.c
6579440ea98e61871fe781c1c9c681645ddcc075 25-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: be smarter about picking the sampler unit for pstipple, aaalines

Also, if the app really uses all available sampler/texture units, don't just
die. Just use the last sampler for the pstipple or aaline texture.
raw_aaline.c
raw_pstipple.c
d6af8fc51d0288f34b92b7249c565c382e83765a 25-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: move sampler_unit field to pstip_fragment_shader since it's per-shader

Also, fix another texture refcounting bug.
raw_pstipple.c
ae146e4bc86aeade59d018100e39e160f7553994 24-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: make a copy of the vertex shader's token array.

This solves problems when the state tracker frees the token array when the
draw module still needs it.
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
7f430293772f201a59bcf62edd1ed4f942f8be29 24-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: use pipe_texture_reference() in a few places (fixes refcounting bugs)
raw_aaline.c
raw_pstipple.c
e0a9ce10f4c30b1aec08c46b6a33885782d40dd0 24-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: pre-declare referenced structs
raw_pt.h
f4588c175280cd2b1f5341cd02bed7e9e7d1fd05 24-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> Revert "draw: Fix #include order to fix Linux build."

This reverts commit a6d17bf671d6bfbb187a62ba14b9ad08fb5dafe1.
raw_pt_elts.c
a6d17bf671d6bfbb187a62ba14b9ad08fb5dafe1 24-Mar-2008 Michel Dänzer <michel@tungstengraphics.com> draw: Fix #include order to fix Linux build.
raw_pt_elts.c
3b217c7fa77d397540e4b6299a35f586ad53a1a1 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: check need_pipeline() in passthrough
raw_pt.c
3e9b1bc1009ca1a2923f844d00bf478dc9d24644 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: tweak the definition of draw_need_pipeline, fix minor bug
raw_validate.c
e6ea786c003762143fdf4c63a6fc6a08f27e444e 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix crlf
raw_pt.h
raw_pt_elts.c
743e990831d74ff764f4677836b7bd9b044d39af 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: rename emit functions to match pipe_format names
raw_pt_fetch_emit.c
899fcde366646a3ab3e42ae819620e790161ac75 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: restructure fetch/emit as a pair of function calls
raw_pt_fetch_emit.c
301b187ca9a811b608894d20bab934af0a10b8ab 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: fix some unsigned vs ushort confusion

Middle-end elements are ushort, but prior to that have to treat all
elements as unsigned to avoid wrapping and/or overruns.
raw_pt.h
raw_pt_elts.c
raw_pt_vcache.c
f40357e25c0520ef1d64ffab03501da4c8b93529 23-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: beginnings of draw module vertex rework

Trying to put a structure in place that we can actually optimize.
Initially just implementing a passthrough mode, this will fairly soon
replace all the vertex_cache/prim_queue/shader_queue stuff that's so
hard to understand...

Split the vertex processing into a couple of distinct stages:
- Frontend
- Prepares two lists of elements (fetch and draw) to be processed
by the next stage. This stage doesn't fetch or draw vertices, but
makes the decision which to draw. Multiple implementations of this
will implement different strategies, currently just a vcache
implementation.
- MiddleEnd
- Takes the list of fetch elements, fetches them, runs the vertex
shader, cliptest, viewport transform on them to produce a
linear array of vertex_header vertices.
- Passes that list of vertices, plus the draw_elements (which index
into that list) onto the backend
- Backend
- Either the existing primitive/clipping pipeline, or the vbuf_render
hardware backend provided by the driver.

Currently, the middle-end is the old passthrough code, and it build hardware
vertices, not vertex_header vertices as above. It may be that passthrough
is a special case in this respect.
akefile
Conscript
raw_context.c
raw_passthrough.c
raw_prim.c
raw_private.h
raw_pt.c
raw_pt.h
raw_pt_elts.c
raw_pt_fetch_emit.c
raw_pt_vcache.c
dae7993afc56be1e71e600af60e01e51eab17eda 22-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: free samplers, textures in destroy()
raw_aaline.c
raw_pstipple.c
28b3b078959db8a1e60adfb66f35ceb04d4f414d 22-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: fix mem leak (fee pstipple stage)
raw_context.c
4984487bc3338fc351a0631eaa4515e4adbb86a9 20-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: add face, dirtyLevels params to pipe->texture_update()

This provides better information about which images in texture object have changed.
Also, call texture_update() from more places previously missed.
raw_aaline.c
raw_pstipple.c
9f50a6a24c922926904c215249c3a0426dd433aa 19-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added braces to silence warning
raw_prim.c
9425a702bef7d3f601e9ddc2b801f00a3d52dbb8 17-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: improvements, or extensions at least, to the passthrough path

Passthrough is actually more tricky than you'd think...
raw_passthrough.c
raw_vbuf.h
5a09ad8248ce452136ed96a3d46532b03c877618 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: add explicit control for point sprites (convert points to textured quads)

New draw_enable_point_sprites() function.
Fixes spriteblast.c demo
raw_context.c
raw_context.h
raw_private.h
raw_validate.c
raw_wide_point.c
2b8f31a6daf6a52086a3454a5dfd1f8bac046804 14-Mar-2008 Michal Krol <michal@tungstengraphics.com> scons: Remove second occurence of draw_passthrough.c.
Conscript
3088eb59497ec8621e003ce3bc87025f257c0a92 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added some debug code (disabled)
raw_vs_exec.c
e4cdce43cebe6a2b38f7ea5145474ca2b12c57bb 14-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: fix some compiler warnings
raw_prim.c
34be3969505d378c5a6734a134f03d094a865c56 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: fix EMIT_HEADER case in draw_vf_set_vertex_info()
raw_vf.c
d088d640fca415261a208d3cbede94a6522ebb6b 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: plug in vertex passthrough code

Based on a patch from Zack.
Basically, implement a new draw_arrays function that copies the incoming
user-vertices to the hardware vertex buffer, doing format/type conversion
as needed.
The vertex fetch/store code is totally temporary for now.
akefile
Conscript
raw_passthrough.c
raw_prim.c
ce49c4c24bf72ea642015d566ff687d512574fd5 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: fix bug in draw_num_vs_outputs()
raw_context.c
cf106789abd4a84e8f07dc6ca12d2261e9bf92cd 14-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added EMIT_HEADER case
raw_vf.c
13334c8dd2744402d43f8ea0a9d2c0e5e76ac28e 13-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added EMIT_HEADER case in emit_vertex()
raw_vbuf.c
b9518a4e39f739a31dd3f62d67563944f8c266a9 13-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added new EMIT_HEADER token

Used to emit the struct vertex_header info for softpipe.
Before we were using the EMIT_ALL token but that's insufficient for the
draw pass-through mode. EMIT_ALL might get removed soon...
raw_vertex.c
raw_vertex.h
3faf6230ff4b63833c072ac7afeb43c25d3cba22 13-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added draw_need_pipeline() predicate function

To test if we need any pipeline stage, or whether we can go into passthrough mode.
raw_validate.c
8b8c9acdb747499149e633179a8ad10b0e4206b1 13-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: added draw_enable_line_stipple() function

Allows drivers that implement line stipple to turn off this drawing stage.
raw_context.c
raw_context.h
raw_private.h
b12a28db96d3bc7f01b6cdc9ee909f95a8c9ccc2 13-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: remove dead code related to shader semantic input/output info
raw_aaline.c
raw_aapoint.c
raw_pstipple.c
7ffbaebce1da7fec36a38f424f266806a3a0fc6a 13-Mar-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix bug in stip_first_tri()

Need to compute num_samplers after binding/creating the fragment shader.
raw_pstipple.c
fa9e7e9a8debb68611909ac2ffab527c6c39a3e5 13-Mar-2008 Brian Paul <brianp@kemper.freedesktop.org> gallium: remove semantic info from pipe_shader_state

Brian's patch to clean up the shader interfaces.
raw_aaline.c
raw_aapoint.c
raw_pstipple.c
329c5431348117e5b99adf14936d2f57f2ef5f1f 13-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: fix polygon stipple

Was broken by commit 4528287e040415c2071012d02f20979ff995c754 (bind all
samplers/texures at once).
raw_pstipple.c
12ab5f97013e398b9f6485b97d6691c3c170447a 12-Mar-2008 Brian <brian@poulsbo.localnet.net> gallium: change draw_vertex_shader->state from pointer to struct

We were sometimes keeping a pointer to a stack-allocated object.
Now make a copy of the pipe_shader_state object.
This should fix some seemingly random memory errors/crashes.
raw_private.h
raw_vs_exec.c
raw_vs_sse.c
8fd633b5cfa36e0cf0acef096315c9250015aba7 12-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: reduce signed/unsigned warnings
raw_passthrough.c
339e7ec6805e6de8794514c0a935081b5d36d38f 12-Mar-2008 Brian <brian.paul@tungstengraphics.com> gallium: rework CSO-related code in state tracker

Use the code in cso_context.c rather than st_cache.c.
Basically, binding of state objects now goes through the CSO module.
But Vertex/fragment shaders go through pipe->bind_fs/vs_state() since they're
not cached by the CSO module at this time.

Also, update softpipe driver to handle NULL state objects in various places.
This happens during context destruction. May need to update other drivers...
raw_aaline.c
raw_aapoint.c
raw_pstipple.c
5038c20795cb2e49d72c1f43a8b705056592356c 11-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: don't free our copy of the render stage -- just borrowing it from vbuf stage
raw_context.c
ff3c7a3243e4f3fc60e6cfcfc6a2711e9ea5cf65 11-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: missing file
raw_passthrough.c
d9d2ca7a07469a7d5cdc183f2daa6cf9e30938fe 11-Mar-2008 Zack Rusin <zack@tungstengraphics.com> fix compilation
akefile
297b3be25a7f097fb9b1a79e332acddc12dcc3fe 10-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: placeholder/prototype code for a passthrough draw path
akefile
Conscript
raw_context.c
raw_context.h
raw_private.h
raw_vbuf.h
7375369fb32e203023fbacf948169aad3f4c3a1d 10-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: fix compiler warning
raw_pstipple.c
3f5b9f4ba49df57e7bbab04eab55a17a99bb5046 10-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: use the same bypass_clipping logic on all vs paths
raw_vs_llvm.c
raw_vs_sse.c
6d5ee6d9a4a705cce80117f90ee334986f5e5e26 10-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: enable bug workaround in draw_vertex_cache_invalidate
raw_vertex_cache.c
b721bc8792f6add71dede11924d7060bbce72f0e 10-Mar-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: WinCE portability fixes.
raw_unfilled.c
aff4cf19a753baf0428d2bf53614900e5afea8a3 09-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: cope with binding NULL vertex shader (on context delete, for instance)
raw_vertex_shader.c
4528287e040415c2071012d02f20979ff995c754 05-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> gallium: michel's patch to rework texture/sampler binding interface

Bind all the samplers/textures at once rather than piecemeal.
This is easier for drivers to understand.
raw_aaline.c
raw_pstipple.c
19cc2e363185b50d19e4f257dd3558896b9b49d3 04-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: dont' compute clipmask or apply viewport when not clipping (rename bypass_clipping to coords_in_window_space?
raw_vs_exec.c
800d13df726b9f82f796c86fe7ae6d18231820ec 03-Mar-2008 Keith Whitwell <keith@tungstengraphics.com> draw: add fetch for bgra ubyte surfaces
raw_vertex_fetch.c
5240cebb23f4862f4f7458a1b397957e4460b527 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: fix line emit order for unfilled tris

A tri drawn with GL_LINE_LOOP and GL_POLYGON w/ fillmode=GL_LINE should produce
the same results when line stipple is enabled. Results are correct now.
raw_unfilled.c
6da943d204eeb488895933c45e174042cb69c92d 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: point rast coord tweak
raw_wide_point.c
b8ee90e05a98d5a167c1fdb5a8fc3bc0cb4a6a78 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: need precalc_flat=1 for wide lines
raw_validate.c
2a121e8e2289d2ca136f511c5a6ef049f9c99ec4 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: tweak coords for wide lines
raw_wide_line.c
78220aea864c36038f8425ad9d8467d2a2bdea58 29-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: remove the ugly pipe->draw stage lookup code in aaline/point/pstipple stages

Added a void *draw ptr to pipe_context. Probably look for a better solution someday.
raw_aaline.c
raw_aapoint.c
raw_pstipple.c
b233b1e2dc2fca2f45b3cb5df167e3675b8cc1fb 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: new wide point/line stages (missed in prev commit)
raw_wide_line.c
raw_wide_point.c
a1a13954885cd469faab49633b5386e5c889e3df 29-Feb-2008 Brian Paul <brian.paul@tungstengraphics.com> gallium: split draw_wide_prim stage into separate point/line stages.

This fixes a validation/code-path problem. Enabling the stage for the sake
of wide points also inadvertantly caused wide lines to be converted to tris
when we actually want them passed through, such as for the AA line stage.
This is just cleaner now.
Also, replace draw_convert_wide_lines() with draw_wide_line_threshold() as
was done for points. Allows for 1-pixel lines to be converted too if needed.
akefile
Conscript
raw_context.c
raw_context.h
raw_private.h
raw_validate.c
1774b177b858f9f87d00e54b0bf00e9634e375e9 28-Feb-2008 Brian <brian@i915.localnet.net> gallium: added draw_num_vs_outputs() to query number of post-transform vertex attribs
raw_context.c
raw_context.h
cddeca51adf0d2b736a223e47b60f6ef3be85bff 28-Feb-2008 Brian <brian@i915.localnet.net> gallium: remove dependencies on pipe_shader_state's semantic info

Use tgsi_scan_shader() to populate a tgsi_shader_info struct and use that instead.
raw_aaline.c
raw_aapoint.c
raw_clip.c
raw_context.c
raw_flatshade.c
raw_private.h
raw_pstipple.c
raw_twoside.c
raw_vertex_fetch.c
raw_vertex_shader.c
raw_vs_exec.c
raw_vs_sse.c
raw_wide_prims.c
6f715dcc219071e574e363a9db4365c9c31ebbd3 27-Feb-2008 Brian <brian@i915.localnet.net> gallium: remove pipe_context->texture_create/release/get_tex_surface()

These functions are now per-screen, not per-context.
raw_aaline.c
raw_pstipple.c
d4a4bed6638e0156324ff9b270f2248c4b5275bb 26-Feb-2008 Brian <brian@poulsbo.localnet.net> gallium: updated prototype (missed in prev commit)
raw_context.h
5e29aab1752c3e07ae2ebde4cb00e6550dab0eb2 26-Feb-2008 Brian <brian@poulsbo.localnet.net> gallium: replace draw_convert_wide_points() with draw_wide_point_threshold()

Specifying a threshold size is a bit more flexible, and allows the option
of converting even 1-pixel points to triangles (set threshold=0).

Also, remove 0.25 pixel bias in wide_point().
raw_context.c
raw_private.h
raw_validate.c
raw_wide_prims.c
232a41e19faa860f083e414cb1eb38c0617e9241 26-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: disable debug code
raw_aapoint.c
08a5f49644c4bfc62291c49718f2d18e58527d1d 26-Feb-2008 Brian <brian@i915.localnet.net> gallium: rewrite AA point fragment shader to use a CMP instruction instead of IF/ELSE/ENDIF

Allows the shader to work on i915 hardware.
raw_aapoint.c
cc0cf1154b6288d49d7a9dfd18fb666331dd7334 25-Feb-2008 Brian <brian@i915.localnet.net> gallium: fix bad ptr assignment
raw_context.c
d6c7f7e314ee9f034402c919d142bf6ba9844ec9 25-Feb-2008 Brian <brian@i915.localnet.net> 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...
raw_context.c
fdcb9260eea8f9b9deaeeade2a46cffbf3dcaa59 24-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Add new files.
Conscript
7aadb475e58b91f3c17c2a70f6700225e9ef25ed 23-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: Fix MSVC warnings.
raw_pstipple.c
e9bb63c8e20361597463b2f7f88d84fe2770c8b9 23-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> gallium: MSVC fixes.
raw_aapoint.c
e9276efafe43219d7af548ce7f5d2440e19836b0 23-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: fix bug in which wide point stage overrode the aapoint stage

Also, simplify the logic a bit.
raw_validate.c
446bfc32a83008e0865ec869bc80b920c907f10f 22-Feb-2008 Brian <brian.paul@tungstengraphics.com> 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.
akefile
raw_context.h
raw_private.h
raw_pstipple.c
raw_validate.c
eb4dc2dd5ed62e6ccb55ccc2bc13f6a2f3fc1f76 22-Feb-2008 Brian <brian.paul@tungstengraphics.com> 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.
akefile
raw_aapoint.c
raw_context.c
raw_context.h
raw_private.h
raw_validate.c
30479ef11004c9498c4ef09048efc56227f104cc 15-Feb-2008 Keith Whitwell <keith@tungstengraphics.com> draw: vertex cache rework

Take a baby step to straightening out vertex paths.
raw_context.c
raw_prim.c
raw_private.h
raw_vertex_cache.c
raw_vertex_shader.c
228f6b978804268a482718e762ebfccbba784949 20-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: re-fix some msvc warnings
raw_aaline.c
b9da3791c934e05b82063a8c79c423a0a8e29a94 19-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Remove src/mesa and src/mesa/main from gallium source include paths.
raw_vf_sse.c
b0eef0dc2557febea7d425fee1f9c2da382898a6 19-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Add run-time cpu capabilities detection stubs.
raw_vf_sse.c
90b2beb661f630966788a6e909dc759c99e38973 19-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> 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.
akefile
f430d95a36d55141cd9ef911aab70364ce4a4108 18-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Use gallium's rtasm module.
raw_private.h
raw_vf.c
raw_vf_sse.c
raw_vs_sse.c
478c14453b33b20724bcdb70cf1f54f4addb71ab 19-Feb-2008 Brian <brian.paul@tungstengraphics.com> gallium: remove the prototype/unused wide_line_aa() function
raw_wide_prims.c
aceeb80d4f706980aaf71b8e098d4c6718d8ac90 19-Feb-2008 Brian <brian.paul@tungstengraphics.com> 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.
akefile
raw_aaline.c
raw_context.c
raw_context.h
raw_prim.c
raw_private.h
raw_validate.c
0448dbd64a2ef217349f4ada4777d432bc82e46d 18-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Update for llvm -> gallivm rename.
raw_vs_llvm.c
33ceb6716a2166db75659fa66d85fb4cfb9633c7 18-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Update scons build for new code layout.
Conscript
bfd5916eafb9a97ad10f1d4a8738e7dcb02e04f4 18-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> 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.
akefile
b08d3fa249c830d274dca362b8f824b75fe26945 15-Feb-2008 Ian Romanick <idr@us.ibm.com> Make this file build on non-SSE builds (e.g., Cell)
raw_vs_sse.c
b29d8d27292c2ad956d3f0a307603f00ee01af28 15-Feb-2008 Keith Whitwell <keith@tungstengraphics.com> draw: subclass vertex shaders according to execution method

Create new files for shaders compiled/executed with llvm, sse, exec
respectively
akefile
raw_private.h
raw_vertex_shader.c
raw_vs.h
raw_vs_exec.c
raw_vs_llvm.c
raw_vs_sse.c
30d0bacf7aecfb6013ddd665d7385209899eeebd 15-Feb-2008 Keith Whitwell <keith@tungstengraphics.com> Merge commit 'origin/gallium-0.1' into gallium-0.1
92fcbf6e7bc622dcace226bb70ff6d5cdbdbaecb 15-Feb-2008 José Fonseca <jrfonseca@tungstengraphics.com> Code reorganization: s/aux/auxiliary/.

"aux" is a reserved name on Windows (X_X)
akefile
raw_clip.c
raw_context.c
raw_context.h
raw_cull.c
raw_debug.c
raw_flatshade.c
raw_offset.c
raw_prim.c
raw_private.h
raw_stipple.c
raw_twoside.c
raw_unfilled.c
raw_validate.c
raw_vbuf.c
raw_vbuf.h
raw_vertex.c
raw_vertex.h
raw_vertex_cache.c
raw_vertex_fetch.c
raw_vertex_shader.c
raw_vf.c
raw_vf.h
raw_vf_generic.c
raw_vf_sse.c
raw_wide_prims.c