Commit graph

30931 commits

Author SHA1 Message Date
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 23eda89ec8)
2010-01-29 08:38:11 -07:00
Brian Paul
364b008d18 docs: Fixed Windows build for 7.7.1
(cherry picked from commit a0518e66b2)
2010-01-29 08:37:31 -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 82c76cd16f)
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 e3257912e0)
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
Alan Hourihane
7683271e63 another gcc 4.2.x check for mstackrealign 2010-01-29 10:22:50 +00: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
Vinson Lee
d40070029f progs/tests: Remove unnecessary headers. 2010-01-28 15:11:39 -08:00
Vinson Lee
bbb41153c2 progs/glsl: Fix bump GLSL compilation error on Mac OS. 2010-01-28 14:58:24 -08:00
Vinson Lee
77b1f2fbcf progs/glsl: Remove unused variable in bump.c. 2010-01-28 14:54:10 -08:00
Vinson Lee
07fb52bcf6 progs/glsl: Remove unnecessary header from samplers.c. 2010-01-28 14:22:15 -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
Alan Hourihane
32e6043150 define own embedded target and cleanup previous commit. 2010-01-28 17:26:05 +00:00
Alan Hourihane
75cd6f3ece Don't define HAVE_POSIX_MEMALIGN for embedded target. 2010-01-28 17:23:31 +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
Alan Hourihane
bd60e6cd5c add PIPE_SUBSYSTEM_EMBEDDED when embedded platform used 2010-01-28 15:34:10 +00: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
Michal Krol
333c035a51 regress: Add vertex shaders tests for constant buffers. 2010-01-28 14:07:58 +01:00
Michal Krol
9851644435 gallium: Enable multiple constant buffers for vertex and geometry shaders. 2010-01-28 14:07:53 +01:00
Michal Krol
44ac4c4e2c regress: Add fragment shader test for one-dimensional constant buffers. 2010-01-28 14:07:48 +01:00
Michal Krol
4771e536e1 regress: Add two-dimension constant buffer test. 2010-01-28 14:07:45 +01:00
Michal Krol
91d58c3520 python: Link to ws2_32 on windows. 2010-01-28 14:07:42 +01:00
Michal Krol
dcf8543ab3 tgsi: Handle two-dimensional constants in text parser. 2010-01-28 14:07:38 +01:00
Michal Krol
d96bb01d2d regress: Fix shader header. 2010-01-28 14:07:34 +01:00
Michal Krol
835bab0143 gallium: Implement 2D constant buffers for fragment shader in softpipe. 2010-01-28 14:07:29 +01:00
Michal Krol
4367de152c tgsi: Handle 2-D declarations. 2010-01-28 14:07:24 +01:00
Michal Krol
0adfdaeaa1 gallium: Add tgsi_declaration_dimension token.
This will allow us to declare two-dimensional constant buffers.
2010-01-28 14:07:19 +01:00
Corbin Simpson
241a0b8cf3 radeong: Slight improvement to buffer creation. 2010-01-28 03:05:46 -08:00