Commit graph

24561 commits

Author SHA1 Message Date
Jakob Bornecrantz
c0d7502a2c trace: Add drm api integration
This is okay since drm_api.h doesn't have any external
	dependancies, one could make it only compile on platforms
	that support drm.
2009-07-02 14:57:55 +02:00
Keith Whitwell
798cd2a98d glapi: ensure _mesa_lookup_prim_by_nr() is not clobbered on regeneration
Propogate changes to enums.c back up to the python source.
2009-07-02 13:33:20 +01:00
Keith Whitwell
1668a679c4 Merge commit 'origin/dlist-statechange-shortcircuit' into mesa_7_5_branch
Conflicts:
	progs/trivial/Makefile

Pull in a minimal version of statechange shortcircuiting in display
list compilation.  This affects only glMaterial and glShadeModel state,
and includes quite a few tests to exercise various tricky cases.

If this goes well, will consider extending to all state in the future.
2009-07-02 13:29:46 +01:00
Dave Airlie
54ee188a00 radeon/r200/r300: drop radeon renderbuffer private width/height
half stealing the code without taking the intel regions
2009-07-02 20:57:45 +10:00
Dave Airlie
2ed3eddf9a radeon/r300: use base width/height.
I suspect this might break TFP in some way but it makes firecube run here
2009-07-02 20:45:19 +10:00
Keith Whitwell
b3e8e1cd4c mesa: ensure UsesFogFragCoord value is set for non-glsl shaders
With recent changes to support frontfacing in glsl, it is necessary
to ensure that the UsesFogFragCoord value is accurate in all shaders.
We were previously not setting it for fixed-function and ARB_fs shaders.
2009-07-02 11:28:56 +01:00
Cooper Yuan
c571395e5d R6xx/r7xx: Fix line width issue, ROUND_MODE and QUANT_MODE aren't bits of LINE_CNTL 2009-07-02 16:52:11 +08:00
Cooper Yuan
da88333671 R6xx/r7xx: Correct the indeices of DRAW_INDEX_IMMD 2009-07-02 16:49:19 +08:00
Xiang, Haihao
73137997e2 i965: fixes for JMPI
1. the data type of <src1> (JMPI offset) must be D
2. execution size must be 1
3. NoMask
4. instruction compression isn't allowed.
2009-07-02 16:32:19 +08:00
Corbin Simpson
96ef7aae1d r300g: Fix recursive Draw flush.
Also just noticed that demos/copypix walks around the overlapping blit rules.

Bad, bad Mesa. :3
2009-07-01 23:25:47 -07:00
Corbin Simpson
8799a9d24d r300g: Use floats for surface_copy texcoords, use correct src and dest.
This makes demos/copypix better-looking. Horizontal dimensions are right now.
2009-07-01 23:09:18 -07:00
Corbin Simpson
338db0af61 radeon-gallium: Adapt to drm_api changes.
Note that trace debugging is temporarily gone. I'll rework it later.
2009-07-01 22:33:17 -07:00
Alex Deucher
8bda0f1f4f r6xx/r7xx: rework aos setup
In theory this should fix the stride = 0 case,
but I can't seem to reproduce that anymore
with mesa master.
2009-07-01 14:41:57 -04:00
Alex Deucher
65cdf9c561 R6xx/R7xx: Fix number of temps used in fragment program
Spotted by Cooper.  This gets hello, aargb, smooth, etc.
working.
2009-07-01 11:10:10 -04:00
Eric Anholt
5e6b593d35 intel: Avoid pointer arithmetic on void *.
Bug #22000.
2009-06-30 22:57:56 -07:00
Eric Anholt
c3499f6c66 i965: Increase G4X default VS URB allocation to actually allow 32 threads.
This improves the performance of my GLSL demo by 30%.  It also fixes the
VS deadlock that ut2004 had, for reasons I can't explain. Bug #21330.
2009-06-30 17:55:23 -07:00
Ian Romanick
f359165a82 demos: Set the depth mask correctly to get the desired blending 2009-06-30 17:29:52 -07:00
Ben Skeggs
18a1c36c2d nouveau: return some supported zeta formats 2009-07-01 09:26:57 +10:00
Ben Skeggs
55e5ac17c1 nouveau: deal with PIPE_CAP_TGSI_CONT_SUPPORTED 2009-07-01 09:26:57 +10:00
Ben Skeggs
55fc63cd7d nouveau: fix build... 2009-07-01 09:26:56 +10:00
Jakob Bornecrantz
64849d1236 drm/st: Remove drm_api struct from drivers
Remove the drm_api from the functions in the softpipe and
	i915simple drivers. Create wrapper functions in the
	backends instead.
2009-07-01 01:20:04 +02:00
Brian Paul
119eb40942 i965: first attempt at handling URB overflow when there's too many vs outputs
If we can't fit all the VS outputs into the MRF, we need to overflow into
temporary GRF registers, then use some MOVs and a second brw_urb_WRITE()
instruction to place the overflow vertex results into the URB.

This is hit when a vertex/fragment shader pair has a large number of varying
variables (12 or more).

There's still something broken here, but it seems close...
2009-06-30 17:12:44 -06:00
Brian Paul
1b6ae2e004 i965: use BRW_MAX_MRF 2009-06-30 17:12:44 -06:00
Brian Paul
76a5a5dace i965: use BRW_MAX_GRF, BRW_MAX_MRF 2009-06-30 17:12:44 -06:00
Brian Paul
0fe19bc91d i965: move BRW_MAX_GRF, define BRW_MAX_MRF 2009-06-30 17:12:44 -06:00
Brian Paul
0b7b8c8ddf i965: defined BRW_MAX_MRF 2009-06-30 17:12:44 -06:00
Brian Paul
6eb2ca500d i965: comments and a new assertion 2009-06-30 17:12:44 -06:00
Alex Deucher
d10006e67f R6xx/r7xx: fix locking for clear
this allows redbook hello to render correctly mostly.
2009-06-30 18:40:48 -04:00
Keith Whitwell
1fa4cde757 mesa/vbo: fix compile and replay of nodes ending in a FALLBACK
Where vbo save nodes are terminated with a call to DO_FALLBACK(), as in
the case of a recursive CallList which is itself within a Begin/End pair,
there two problems:
1) The display list node's primitive information was incorrect, stating
the cut-off prim had zero vertices
2) On replay, we would get confused by a primitive that started in a
node, but was terminated by individual opcodes.

This change fixes the first problem by correctly terminating the last
primitive on fallback, and the second by forcing the display list to
use the Loopback path, converting all nodes into immediate-mode rendering.

The loopback fix is a performance hit, but avoiding this would require
a fairly large rework of this code.
2009-06-30 19:52:44 +01:00
Eric Anholt
57a06d3a48 i915: Fix assertion failure on remapping a non-BO-backed VBO.
Failure to set the obj->Pointer back to null tripped up the assertion.
Bug #22428.
2009-06-30 10:41:18 -07:00
Keith Whitwell
70ae7ba818 mesa/dlist: fixes and improvements for material caching
Only short-circuit material call if *all* statechanges from this call
are cached.  Some material calls (eg with FRONT_AND_BACK) change more
than one piece of state -- need to check all of them before returning.

Also, Material calls are legal inside begin/end pairs, so don't need
to be as careful about begin/end state as with regular statechanges
(like ShadeModel) when caching.  Take advantage of this and do better
caching.
2009-06-30 18:40:20 +01:00
Keith Whitwell
c48c01c9e7 progs/trivial: add dlist-mat-tri.c 2009-06-30 18:37:34 +01:00
Keith Whitwell
1ca836f0de progs/trivial: add test case for short-circuiting material changes
Similar to dlist-tri-flat-tri, but using glMaterial calls, which
have the extra property of being legal within Begin/End calls.
2009-06-30 18:17:39 +01:00
Keith Whitwell
d6c2347d79 mesa/dlist: don't cache state which may not be replayed on CallList
Statechanges which occur before the first End in a display list may
not be replayed when the list is called, in particular if it is called
from within a begin/end pair.

Recognize vulnerable statechanges and do not use them to fill in the
state cache.
2009-06-30 17:10:56 +01:00
Keith Whitwell
09a3a28fc8 progs/trivial: add dlist-flat-tri.c
State-change functions which precede the first call to glEnd() in
a compiled list are vulnerable to not being executed when that list
is called.

In particular this can happen if a list is invoked from within a
begin/end pair, as in this example.
2009-06-30 17:06:50 +01:00
Keith Whitwell
7e91d035b9 mesa/dlist: invalidate cached dlist compile state after CallList
When compiling a display list containing a CallList, it is necessary to
invalidate any assumption about the GL state after the recursive call
completes.
2009-06-30 17:04:11 +01:00
Keith Whitwell
2e570be852 progs/trivial: add dlist-recursive-call
When one display list calls another display list, it is possible
that the calling display list makes state-changes or other actions which
invalidate any attempt at caching or state-change elimination in the
calling list.

This test exercises one such case, where the called list consists of just
a single glShadeModel() call.
2009-06-30 17:02:16 +01:00
Keith Whitwell
1730eaa2a2 dlist-tri-flat-tri: make tri render differently if flatshade not enabled
When testing flat-shading, it helps to specify per-vertex colors so
that you can distinguish between flat & smooth shading.
2009-06-30 16:57:21 +01:00
Keith Whitwell
4147bb24d4 Merge branch 'mesa_7_5_branch' into dlist-statechange-shortcircuit
Need this to pick up fixes for per-vertex materials.
2009-06-30 16:28:54 +01:00
Keith Whitwell
6af783bea0 progs/trivial: add test case for lighting plus per-vertex materials
Exercise material-within-begin/end case.
2009-06-30 16:19:23 +01:00
Keith Whitwell
a9ae89d104 progs/isosurf: add materials mode for glVertex + TRISTRIP 2009-06-30 16:14:08 +01:00
Keith Whitwell
6dfb89e4a0 mesa: remove whitespace 2009-06-30 16:14:05 +01:00
Keith Whitwell
cea259f039 mesa: remove dead constant pointsize code from ffvertex_prog.c 2009-06-30 16:13:58 +01:00
Keith Whitwell
79047cc1dd mesa: remove dead vertex fog code from ffvertex_prog.c 2009-06-30 16:13:53 +01:00
Keith Whitwell
f6c8ca06f6 mesa: fix material inputs in ffvertex_prog.c
Varying material inputs were not being picked up from the same slots
where the VBO code is currently placing them (GENERIC0 and above).
Most often they were just being ignored.
2009-06-30 16:13:22 +01:00
Brian Paul
b40dc7e7fc Merge branch 'mesa_7_5_branch'
Conflicts:

	src/mesa/vbo/vbo_exec_draw.c
2009-06-30 08:56:53 -06:00
Brian Paul
b750b9fc3d gallium: remove the pipe_sampler_state::shadow_ambient field
This was only present for the sake of GL_ARB_shadow_ambient which we
never implemented in Gallium.  If we someday want GL_ARB_shadow_ambient
we can implement it in the state tracker by adding a MAD after the
relevant TEX instructions.
2009-06-30 08:51:32 -06:00
Arthur HUILLET
4c31632817 mesa: fix transform_points_3d_no_rot using undefined values in %xmm0
Signed-off-by: Arthur HUILLET <arthur.huillet@free.fr>
2009-06-30 08:43:23 -06:00
Kristof Ralovich
fa5b0364f9 glx: plug a leak
Swrast was missing a free for the culmination of driConcatConfigs.

Use free(), not _mesa_free() since we shouldn't be calling any Mesa
functions from the GLX code.  driConcatConfigs() should probably use
regular malloc/free to be consistant but the Mesa functions just wrap
the libc functions anyway.
2009-06-30 08:43:22 -06:00
Brian Paul
52f895df51 glx: fix null pointer dereference segfault (bug 22546) 2009-06-30 08:43:22 -06:00