Commit graph

31360 commits

Author SHA1 Message Date
Chia-I Wu
7d1237bc71 egl: Remove unused _EGL_SKIP_HANDLE_CHECK.
It was added to skip checking EGLDisplay, EGLSurface, and etc.  It is
never defined and the spec does not allow the checks to be skipped.
Remove it for good.
2010-02-23 22:42:46 +08:00
Chia-I Wu
58a72cd65e st/egl: Unify surface creation.
Add a new function egl_g3d_create_surface and use it to create window,
pixmap, buffer, and screen surfaces.
2010-02-23 22:42:41 +08:00
Vinson Lee
abcb6b6d01 mesa: Assert that array index is not negative. 2010-02-23 00:19:30 -08:00
Vinson Lee
83a5b7e468 glsl/apps: Assert that ftell does not return an error. 2010-02-22 23:49:50 -08:00
Vinson Lee
a0fe36a39b i965g: Add fallthrough comments in switch statement.
Silences warnings about missing break statements in static analysis.
2010-02-22 23:32:43 -08:00
Vinson Lee
6da07e45b3 draw: Remove dead code. 2010-02-22 23:23:57 -08:00
Marek Olšák
902ccfcb40 r300g: fix draw_elements for "start" != 0
Reported-by: Andre Maasikas <amaasikas@gmail.com>
2010-02-23 03:33:24 +01:00
José Fonseca
b330928549 svga: Upload user buffers only once. 2010-02-22 21:47:22 +00:00
José Fonseca
8ea7d8412c svga: Fix the guest offset of piecewise buffer DMAs.
It was being erroneously set equal to the host offset, but it should be
zero.
2010-02-22 21:47:19 +00:00
José Fonseca
066fd70639 svga: Emit a scalar rcp in shadow maps.
Small improvement in Lightsmark 2008.
2010-02-22 21:47:18 +00:00
José Fonseca
7384cdf651 svga: Don't emit zero writemasks.
This fixes a regression with Lightsmark, where more compact TGSI from Mesa
was causing a zero mask MOV to be emitted for shadow map compare, causing
problems in some backends.

Add a few more assertions to catch cases like this.
2010-02-22 21:47:15 +00:00
José Fonseca
28e80aa0b8 tgsi: Report an error when a destination has an empty writemask. 2010-02-22 21:47:07 +00:00
José Fonseca
d1a0225371 svga: Upload the dirty ranges instead of the whole buffer. 2010-02-22 21:46:42 +00:00
José Fonseca
2452921e5a svga: Break uploads of big buffers into smaller pieces.
Fixes crash in Homeworld2 which tries to create a 14MB buffer, because we
now avoid creating GMR buffers larger than 8MB to ensure progress given
we have only a 16MB pool.
2010-02-22 21:46:40 +00:00
José Fonseca
3a6e581f2f svga: Note ranges even when there is no hardware buffer around.
Not having a hardware buffer around doesn't change the fact that the
range is dirty and needs to be uploaded eventually.
2010-02-22 21:46:37 +00:00
José Fonseca
cf861335a4 svga: Further cleanup/comment svga buffer code.
Just cosmetic changes -- no behavior change.
2010-02-22 21:46:34 +00:00
José Fonseca
6390dbb373 svga: Temporarily create a sw vertex buf when failed to create a hw buf.
Many apps don't check the return of map buffer so it is better not to
fail.
2010-02-22 21:46:30 +00:00
José Fonseca
21480fb9e4 svga: Remove unused buffer download code.
Unnecessary now that we never destroy buffer storage.
2010-02-22 21:46:22 +00:00
José Fonseca
935929595c pipebuffer: Don't synchronize when checking for buffer overflows.
To avoid masking synchronization issues in debug builds.
2010-02-22 21:46:19 +00:00
José Fonseca
e9ac0fbe9b python/retrace: Dump all vertices for verbosity level 3. 2010-02-22 21:46:12 +00:00
José Fonseca
422167a9b0 svga: Prevent buffer overflow in buffer ranges.
Do this by extending the nearest range to cover the new range.

This fixes an access fault in Call of Duty which was doing many disjoint
glBufferSubData calls.
2010-02-22 21:46:09 +00:00
José Fonseca
12d5203bb3 svga: Fix PIPE_LOGICOP_INVERT.
Actually the current XOR implementation is an INVERT.

This fixes rectangle selection in Maya.
2010-02-22 21:46:00 +00:00
Keith Packard
edd85bcd6b bin/mklib: Clear CDPATH to avoid damaging expand_archive output
The bash 'cd' command tends to emit random stuff to stdout when the
CDPATH variable is set, so clear it to keep extra filenames from being
emitted from the expand_archive function, which would otherwise cause
mklib to fail.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
2010-02-22 09:56:58 -08:00
Brian Paul
52cc3b03c3 glxinfo: Fix User error in glGetProgramivARB
glxinfo needed fixing after commit 4bccd69.

Move fragment program only parameters into their own list
so that they are not queried for a vertex program.

Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>

(cherry picked from commit b0e5dcb859)
2010-02-22 08:56:18 -07:00
Brian Paul
2467354842 i965g: added missing texture cap queries 2010-02-22 08:14:14 -07:00
Brian Paul
98e2f6c38b i915g: added missing texture cap queries 2010-02-22 08:14:05 -07:00
Brian Paul
cfdd1ca695 st/mesa: change viewport Z scale/bias for glBitmap/glDrawPixels
This fixes incorrect Z position of glBitmap, glDraw/CopyPixels for the
svga driver.  Now we use 0.5, 0.5 as is typical for ordinary 3D rendering.

(cherry picked from commit bcd561c667)
2010-02-22 08:04:53 -07:00
Brian Paul
504e297a2c st/mesa: Add checks for ST_SURFACE_x vs MESA_BUFFER_x
The ST_SURFACE_x values should match the Mesa BUFFER_x values.
Added some assertions to prevent future mix-ups.

(cherry picked from commit 13cbb5fff6)
2010-02-22 08:04:39 -07:00
Brian Paul
6ce5b5e115 mesa/st: Make ST_SURFACE_DEPTH index consistent with mesa's BUFFER_DEPTH.
Some st functions assume that they are identical.

(cherry picked from commit 9d17ad2891)
2010-02-22 08:04:16 -07:00
Chris Wilson
15904c057b intel: assert that we do not overflow the batch buffer.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-22 09:55:41 +00:00
Chris Wilson
415b7c7775 i915: Fix logic !gen >= 3
The effect of this was that all objects were aligned to 128 bytes
on all generations, rather than just gen2.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-22 09:55:41 +00:00
Chris Wilson
ac6ce53af7 i915: Remove superfluous MI_NOOP from vertex emission
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-22 09:55:33 +00:00
Chris Wilson
5abee283d3 intel: Check that we have a bufmgr or bail out when initializing the context.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-22 09:53:56 +00:00
Dave Airlie
b14548ea32 Revert "r300g: rebuild winsys/pipe buffer handling and add buffer map"
This reverts commit fff5be8e7b.

Probably went too soon with this, dileX reported OA not working for him
it works here fine, but the optimisations I wanted aren't working properly
yet so I'll fix that now.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-22 17:26:35 +10:00
Dave Airlie
fff5be8e7b r300g: rebuild winsys/pipe buffer handling and add buffer map
This creates a cleaner winsys and drop the simple screen stuff.

It makes r300g use pb_bufmgr structs and adds usage of the cached
bufmgr for vertex/index buffers.

It also avoids mapping too often.

I'm not 100% sure this is perfect but it won't find its own bugs.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-22 16:23:44 +10:00
Marek Olšák
233290f203 r3OOg: support rendering of more than 65535 vertices per draw call (almost)
The path for VAP_ALT_NUM_VERTICES is also in place (and tested)
but not enabled by default due to the missing support of this reg
in the upstream kernel.

Also, a non-zero BUFFER_BASE in the INDX_BUFFER packet3 hangs the machine.
Am I missing something? Because of this, only draw_arrays can render
more than 65535 vertices without the use of VAP_ALT_NUM_VERTICES.
2010-02-22 03:12:13 +01:00
Vinson Lee
c786df2caf i965g: Fix memory leak. 2010-02-21 15:15:52 -08:00
Vinson Lee
b7eed19efe st/mesa: Fix memory leak on out-of-memory error path. 2010-02-21 15:10:50 -08:00
Vinson Lee
8ff6790afb r300g: Remove unnecessary header. 2010-02-21 14:26:53 -08:00
Ray Kohler
701ac58a0c Link egl progs to libm as necessary.
Signed-off-by: Ray Kohler <ataraxia937@gmail.com>
2010-02-22 01:26:12 +08:00
Marek Olšák
3c244dac47 r300g: precompute framebuffer register values 2010-02-21 14:24:13 +01:00
Marek Olšák
7a087e1d6f r300g: add all missing colorbuffer formats 2010-02-21 14:24:13 +01:00
Marek Olšák
5c14fd1743 r300g: make r300_translate_texformat private
Unlikely to increase performance from inlining.

And partially expose it through r300_is_sampler_format_supported.
2010-02-21 14:24:12 +01:00
Marek Olšák
2a30c268bd r300g: re-enable SRGB formats
Ouch.
2010-02-21 14:24:12 +01:00
Vinson Lee
7da9da190f mesa: Add assert to check for null pointer dereference. 2010-02-21 02:13:15 -08:00
Vinson Lee
d89de9c13f draw: Remove dead code. 2010-02-21 01:57:16 -08:00
Vinson Lee
3194197efd i965g: Remove dead code. 2010-02-21 01:30:35 -08:00
Vinson Lee
0b83f48e82 i965g: Fix assertions that were always true.
The surface_format field is 9 bits wide which has a maximum value
of 511. BRW_SURFACEFORMAT_INVALID has a value of 4095 which exceeds
the width of the surface_format field.

This patch asserts that the format is not BRW_SURFACEFORMAT_INVALID
before assignment to the surface_format field.
2010-02-21 01:19:47 -08:00
Vinson Lee
d1aafb33b5 glsl/cl: Prevent possible buffer overflow. 2010-02-21 00:36:50 -08:00
Vinson Lee
f56c9c2b19 i965g: Fix use of out-of-scope variable. 2010-02-21 00:24:05 -08:00