Commit Graph

26437 Commits

Author SHA1 Message Date
Eric Anholt 22bbc97994 intel: Respect texture tiling when doing a PBO blit teximage upload.
Bug #26008.  Fixes piglit pbo-teximage-tiling-2.
2010-01-30 15:12:23 -08:00
Corbin Simpson a794c660d3 Revert "r300g: Don't handle SHADOW_AMBIENT."
This reverts commit 627a45848f.

I was wrong. Who could have known? :3
2010-01-30 14:30:13 -08:00
Eric Anholt a44219c554 intel: Fix inverting of inversion test for windows in glClear cleanup.
Bug #26290.
2010-01-30 12:38:31 -08:00
Corbin Simpson b6ac2403ac r300g: Independent blend enables only work on r500. 2010-01-30 12:33:44 -08:00
Corbin Simpson 627a45848f r300g: Don't handle SHADOW_AMBIENT.
Bisected so that only this commit has to be reverted if I'm wrong.

...Pfft, like I'm ever wrong. :3
2010-01-30 12:23:43 -08:00
Corbin Simpson f7467f7437 r300g: Fix comment on SHADOW_AMBIENT. 2010-01-30 12:23:24 -08:00
Corbin Simpson 268cc5ff38 gallium-docs: Fix missing PIPE_CAPs.
Hmm, need to cross-ref those TGSI things. My work is never done... :3
2010-01-30 12:16:10 -08:00
Corbin Simpson bfbec0818f r300g: Dual-source blending isn't possible, period. 2010-01-30 12:03:20 -08:00
Mathias Fröhlich 5a64bdaa01 r300g: Add alpha render targets.
Signed-off-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Tested-by: Mathias Fröhlich <Mathias.Froehlich@gmx.net>
2010-01-30 11:40:41 -08:00
Chia-I Wu 5714e674c7 st/egl: eglBindTexImage should bind to an OpenGL ES texture.
The spec says that it only works with OpenGL ES.
2010-01-30 23:15:21 +08:00
Chia-I Wu 2c3a23a96f egl: Remove my_strdup.
There is already _eglstrdup for the main library's use.
2010-01-30 23:02:45 +08:00
Chia-I Wu 6fc304456e egl: Remove unused VisibleRefCount. 2010-01-30 22:58:03 +08:00
Chia-I Wu 00e1790f32 egl: Rename Binding to CurrentContext in _EGLSurface.
A context can be bound to a surface just like it can be bound to a
thread.  CurrentContext is a more consistent name.
2010-01-30 22:57:18 +08:00
Chia-I Wu 94cb321b5d egl: Clean up header inclusions.
Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
2010-01-30 22:55:49 +08:00
Roland Scheidegger 847ac8ec5f gallium: fix blend state cso
if independent blend state was disabled, only the data from first rt was
stored, however the comparison used the full state, hence there never was
a match and always a new object was created.
Fixes a huge performance drop with llvmpipe due to recompilation.
2010-01-30 01:58:00 +01:00
Brian Paul 98f3f1c695 gallium: document pipe_context::get_query_result() 2010-01-29 14:01:34 -07:00
Keith Whitwell 3fc73c389a Merge commit 'lb2/arb_fragment_coord_conventions' 2010-01-29 20:24:26 +00:00
Brian Paul 6fea2be795 tnl: check that state is validated before drawing
(cherry picked from commit 9fd3c74724e557bc6ecc851d8552615ab3becfe2)

Conflicts:

	src/mesa/tnl/t_draw.c
2010-01-29 08:40:46 -07:00
Brian Paul 987dd63b90 st/mesa: check that state is validated before drawing
(cherry picked from commit 4d1234e22242529c8d85f5ef0cf826af41a91570)

Conflicts:

	src/mesa/state_tracker/st_draw.c
2010-01-29 08:39:47 -07:00
Brian Paul 5ce9183c1c vbo: fix missing state validation bugs
Commit 2708ddfb06 caused a few regressions.
We need to check/validate state after calling bind_arrays() because
it might set the _NEW_ARRAYS flag if the varying VP inputs change.

The symptom of this problem was some attribute arrays being ignored
(or interpreted as constant-valued) in glDrawRangeElements or
glMultiDrawElements.

A follow-on patch will add some additional asserts to try to catch
this kind of thing in the future.

(cherry picked from commit 3cba779e16935f7c3a0bfd8af48bd5e015068e96)
2010-01-29 08:38:21 -07:00
Brian Paul a38859569d mesa: do state validation in _mesa_valid_to_render()
...rather than checking/validating before all the calls to
_mesa_valid_to_render() and valid_to_render().

The next patch will actually fix some bugs...

(cherry picked from commit 23eda89ec89e2bd5bc26077bd56e8d6b5d4040d4)
2010-01-29 08:38:11 -07:00
Brian Paul ee5e84eba6 windows: assorted build fixes
These changes were originally submitted by Karl Schultz for Mesa 7.7-rc2
but weren't applied.

(cherry picked from commit 82c76cd16f35f4d903f49761af7eb28a755ad299)
2010-01-29 08:37:15 -07:00
Rodolfo Ribeiro Gomes 81cca6d453 glx: fix possible memory leaks in dri2CreateScreen()
Original patch fixed up by Brian Paul.
2010-01-29 08:36:47 -07:00
Brian Paul 4886f677ec mesa: Warn when indices are out of bounds, but do not skip the draw in debug builds.
The driver (or preferably the hardware) should handle out of bounds
indices.

If there are problems then it's better to detect those in the debug
builds.

(cherry picked from commit e3257912e006120f6ab611e77005eed1a464030a)
2010-01-29 08:31:48 -07:00
Luca Barbieri b2299d80b4 softpipe: support all TGSI fragment coord conventions (v4)
Changes in v4:
- Rebase and modify for changes in previous patches

Changes in v3:
- Use positive caps instead of negative caps

Changes in v2:
- Now takes the fragment convention directly from the fragment shader

Adds internal support for all fragment coord conventions to softpipe.

This patch is not required for use with the current state trackers, but it
allows softpipe to run any TGSI program and enhances performance.
2010-01-29 14:14:29 +01:00
Luca Barbieri 62c673b6ac st/mesa: Gallium support for ARB_fragment_coord_conventions (v4)
Changes in v4;
- Implemented Brian Paul's style suggestions

Changes in v3:
- Use positive caps instead of negative ones

Changes in v2:
- Updated formatting

The state tracker will use the TGSI convention properties if the hardware
exposes the appropriate capability, and otherwise adjust WPOS itself.

This will also fix some drivers that were previously broken due to their
incorrect, inadvertent, use of conventions other than upper_left+half_integer.
2010-01-29 14:14:29 +01:00
Luca Barbieri 6c403750d6 tgsi: add caps for fragment coord conventions (v3)
Changes in v3:
- Renumber caps to accomodate caps to add to master in the meantime
- Document caps
- Add unsupported caps to *_screen.c too

Changes in v2:
- Split for properties patch
- Use positive caps instead of negative caps

This adds 4 caps to indicate support of each of the fragment coord
conventions.

All drivers are also modifed to add the appropriate caps.

Some drivers were incorrectly using non-Gallium-default conventions,
and caps for them have them set so that they will behave correctly
after the later state tracker patches.

This drivers are softpipe/llvmpipe (uses integer rather than half
integer) and pre-nv50 Nouveau (uses lower left rather than upper left).

Other drivers might be broken. With this patchset, fixing them is
only a matter of exposing the appropriate caps that match the behavior
of the existing code.

Drivers are encouraged to support all conventions themselves for better
performance, and this feature is added to softpipe in a later patch.
2010-01-29 14:13:14 +01:00
Luca Barbieri 73317139a4 tgsi: add properties for fragment coord conventions (v3)
Changes in v3:
- Documented the new properties
- Added comments for property values
- Rebased to current master

Changes in v2:
- Caps are added in a separate, subsequent patch

This adds two TGSI fragment program properties that indicate the
fragment coord conventions.

The properties behave as described in the extension spec for
GL_ARB_fragment_coord_conventions, but the default origin in
upper left instead of lower left as in OpenGL.

The syntax is:
PROPERTY FS_COORD_ORIGIN [UPPER_LEFT|LOWER_LEFT]
PROPERTY FS_COORD_PIXEL_CENTER [HALF_INTEGER|INTEGER]

The names have been chosen for consistency with the GS properties
and the OpenGL extension spec.

The defaults are of course the previously assumed conventions:
UPPER_LEFT and HALF_INTEGER.
2010-01-29 14:13:14 +01:00
Luca Barbieri 3cea5525d0 mesa: don't expose GL_ARB_fragment_coord_conventions until the GLSL part is done
Exposing it was incorrect, as the GLSL part of the extension is
missing.

We still keep the ARB_fragment_coord_conventions field, so that the
ARBfp parser can know whether to accept or reject the keywords.
2010-01-29 14:13:13 +01:00
Vinson Lee df8273494e glu/sgi: Remove unnecessary headers. 2010-01-28 18:07:04 -08:00
Vinson Lee 548b9c4ece svga: Remove unnecessary headers. 2010-01-28 17:32:33 -08:00
Vinson Lee 7280c4c9fe softpipe: Remove unnecessary header. 2010-01-28 15:56:50 -08:00
Vinson Lee 1a2f9d722e llvmpipe: Remove unnecessary header. 2010-01-28 15:54:57 -08:00
Vinson Lee fc4939bff9 egl: Remove unnecessary headers. 2010-01-28 15:39:11 -08:00
Corbin Simpson 0087322729 r300g: Clean up blend masks, change caps.
progs/tests/drawbuffers should work, except I can't test it. GG new
shader parser. GG.
2010-01-28 13:39:47 -08:00
Corbin Simpson 2e481e9fad gallium-docs: Minor grammar, need to talk about dual-source blends. 2010-01-28 13:37:09 -08:00
Corbin Simpson 505a43aff2 gallium-docs: Clean up constantbuf info a bit.
Hmm, does this belong in context, next to set_constant_buffer? Maybe
a paragraph in shaders might be useful.
2010-01-28 12:35:12 -08:00
Corbin Simpson a5f7c63fc0 gallium-docs: Add PIPE_CAP info. 2010-01-28 12:22:51 -08:00
Eric Anholt f20e83210e intel: Set the region's tiling to none when attaching a PBO to a region.
Note that when detaching the PBO from the region and making a new BO
for the region, we don't make it tiled even if the region originally
was.

Fixes piglit pbo-teximage-tiling.
2010-01-28 10:55:25 -08:00
Eric Anholt c9886d535e i915: Remove unused initial and current state, now that there's nothing else. 2010-01-28 10:55:25 -08:00
Eric Anholt f9439e4a46 intel: Remove long-disabled meta readpixels, and associated meta support. 2010-01-28 10:55:25 -08:00
Jakob Bornecrantz c75e238434 st/xorg: Update to new libkms interface but be backwards compatible 2010-01-28 18:37:54 +00:00
Roland Scheidegger 9b346f83a7 Merge commit 'origin/perrtblend'
Conflicts:
	src/gallium/drivers/softpipe/sp_screen.c
	src/gallium/include/pipe/p_defines.h
2010-01-28 17:23:58 +01:00
Roland Scheidegger 2fa34bf44c gallium: remove PIPE_CAP_S3TC, and add PIPE_CAP_DUAL_SOURCE_BLEND
there's no point in keeping deprecated PIPE_CAPS around since there's no
stable interface (yet).
Reuse the enum for PIPE_CAP_DUAL_SOURCE_BLEND. Drivers advertizing this
will accept the pipe blendfactors with SRC1 in them and be able to do dual
source blending (src color from pixel shader output 0, and blendfactor with
SRC1 will come from output 1, only one render target may be bound when using
any of these blend factors).
2010-01-28 17:11:49 +01:00
Michal Krol 9e895831bc tgsi: Constants declared with ureg_DECL_constant() are one-dimensional.
This is to maintain backward compatibility with drivers
that don't support arrays of constant buffers.
2010-01-28 14:08:22 +01:00
Michal Krol 3ba2ab3a23 tgsi: Add ureg_property_gs_output_prim/max_vertices(). 2010-01-28 14:08:19 +01:00
Michal Krol 6522804cb3 docs: Implement constant buffer CAPs. 2010-01-28 14:08:16 +01:00
Michal Krol 3320acb67d softpipe: Report some sane values for constant buffer CAP queries. 2010-01-28 14:08:12 +01:00
Michal Krol 25123e0c88 gallium: Add CAPs for constant buffers. 2010-01-28 14:08:08 +01:00
Michal Krol 7c5f255201 gallium: Rename PIPE_MAX_CONSTANT to PIPE_MAX_CONSTANT_BUFFERS. 2010-01-28 14:08:03 +01:00