| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Dissolve between two images using a random pattern in the stencil
buffer and a varying stencil ref value.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Brian, feel free to split/revert if you disagree.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
(cherry picked from commit 9fd3c74724e557bc6ecc851d8552615ab3becfe2)
Conflicts:
src/mesa/tnl/t_draw.c
|
| |
| |
| |
| |
| |
| |
| |
| | |
(cherry picked from commit 4d1234e22242529c8d85f5ef0cf826af41a91570)
Conflicts:
src/mesa/state_tracker/st_draw.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 2708ddfb06a36d8568e2aa130bf1f7d551fcd309 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)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
...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)
|
| |
| |
| |
| | |
(cherry picked from commit a0518e66b2960d3bab386985e24ccbc9c51abf97)
|
| |
| |
| |
| |
| |
| |
| | |
These changes were originally submitted by Karl Schultz for Mesa 7.7-rc2
but weren't applied.
(cherry picked from commit 82c76cd16f35f4d903f49761af7eb28a755ad299)
|
| |
| |
| |
| | |
Original patch fixed up by Brian Paul.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
progs/tests/drawbuffers should work, except I can't test it. GG new
shader parser. GG.
|
| |
|
|
|
|
|
| |
Hmm, does this belong in context, next to set_constant_buffer? Maybe
a paragraph in shaders might be useful.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/gallium/drivers/softpipe/sp_screen.c
src/gallium/include/pipe/p_defines.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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).
|
| | |
|
| |
| |
| |
| | |
some drivers will complain if they don't know the cap bit
|
| | |
|
| |
| |
| |
| | |
minor code changes, style and comment fixes
|
| |
| |
| |
| | |
works with tests/drawbuffers2
|
| |
| |
| |
| | |
uses the new gallium per-rt blend functionality
|
| |
| |
| |
| |
| | |
In some places blending was enabled even though it wasn't necessary.
Also remove a (bogus) reenabling of color writes, which wasn't really used.
|
| | |
|
| | |
|