Age | Commit message (Collapse) | Author |
|
|
|
|
|
emit_adjusted_wpos() needs separate x,y translation values. If we
invert Y, we don't want to effect X.
Part of the fix for http://bugs.freedesktop.org/show_bug.cgi?id=26795
NOTE: This is a candidate for the 7.9 and 7.10 branches.
|
|
Conflicts:
src/gallium/auxiliary/draw/draw_llvm.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/glsl/ir_set_program_inouts.cpp
src/mesa/tnl/t_vb_program.c
|
|
|
|
gl_FragCoord.y needs to be flipped upside down if a FBO is bound.
This fixes:
- piglit/fbo-fragcoord
- https://bugs.freedesktop.org/show_bug.cgi?id=29420
Here I add a new program state STATE_FB_WPOS_Y_TRANSFORM, which is set based
on whether a FBO is bound. The state contains a pair of transformations.
It can be either (XY=identity, ZW=transformY) if a FBO is bound,
or (XY=transformY, ZW=identity) otherwise, where identity = (1, 0),
transformY = (-1, height-1).
A classic driver (or st/mesa) may, based on some other state, choose whether
to use XY or ZW, thus negate the conditional "if (is a FBO bound) ...".
The reason for this is that a Gallium driver is allowed to only support WPOS
relative to either the lower left or the upper left corner, so we must flip
the Y axis accordingly again. (the "invert" parameter in emit_wpos_inversion)
NOTE: This is a candidate for the 7.9 branch.
Signed-off-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
|
|
If the pipe driver has shader stencil export we can accelerate DrawPixels
using it. It tries to pick an S8 texture and works its way to X24S8 and S8X24
if that isn't supported.
|
|
Include p_screen.h for complete type to pipe_screen.
|
|
mtypes.h does not use any symbols from compiler.h.
Also add the required headers for files that depended on symbols from
compiler.h but were indirectly including compiler.h through mtypes.h.
|
|
With gl_program::IndirectRegisterFiles we can distinguish between indirect
addressing of constants vs. temporaries. In the case of temporaries,
declare all temps up front sequentially.
Fixes fd.o bug 29305.
|
|
|
|
If we bias x,y we still need to pass through z,w in case the shader
reads gl_FragCoord.z or .w.
Fixes fd.o bug 29183 (piglit glsl-bug-22603).
NOTE: This is a candidate for the 7.8 branch.
|
|
|
|
first working version of arb_geometry_shader4
|
|
just like in Gallium it's a basic functionality needed by a lot
of modern graphcis extensions
|
|
|
|
laying down the foundation for everything and implementing most of the
stuff.
linking, gl_VerticesIn and multidimensional inputs are left.
|
|
|
|
This fixes an issue that was missed with commit
9f544394c1d059ce09c8bb2b5e11f5e871c7915f.
Fixes piglit glsl-texcoord-array.shader_test
|
|
|
|
|
|
|
|
This fixes FDO bug #27343.
|
|
|
|
|
|
|
|
|
|
Conflicts:
src/gallium/drivers/nv10/nv10_state.c
src/gallium/drivers/nv20/nv20_state.c
src/gallium/drivers/nv50/nv50_program.c
|
|
|
|
The piglit vp-address-01 test uses negative address-relative
offsets. In this test we're indexing into PROGRAM_STATE_VAR
which, in turn, contains references to ENV vars.
We previously fixed this issue for PROGRAM_CONSTANT.
piglit/vp-address-01 (the version from Feb 5) passes now.
(cherry picked from commit 64be837b0b171c44f47a3c0b83f566d292ffff50)
|
|
The point size min/max registers (unused by mesa state tracker) were removed
since most hardware couldn't do much with them. However, we don't want to have
to rely on hw to do point size clamping correctly to implementation
dependent limits, hence have to do that in the vertex shader. This should also
solve a potential problem with (non-AA) points smaller than 1.0 which according
to OGL still have size 1.0.
Note that OGL point rendering is odd, in particular point sprites are rasterized
differently to points. Some hardware might support those different modes, but in
any case the different clamping values used for smooth/multisampled/sprite
enabled points might help a bit for hw which rasterizes points the same as point
sprites.
Also tweak mesa's ff to vertex shader translation so don't have to clamp twice in
case of point attenuation.
|
|
|
|
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.
|
|
|
|
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
Conflicts:
configs/default
src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
src/mesa/main/version.h
|
|
A src register's index can be negative if we're doing indirect
addressing into the constant buffer. Ex: MOV OUT[1], CONST[ADDR[0].x-3]
This fixes the piglit vp-arl-neg-array.vpfp test.
Before this change we were going out of bounds of the t->constants[]
array and getting garbage that later triggered an assertion.
|
|
Fixes piglit vpfp-generic arl.vpfp failure when using gallium.
|
|
|
|
test apps (progs/trivial/tri-edgeflags and similar) seem to work now
|
|
fixes, cleanups, etc.
not working yet
|
|
The idea here is to eliminate the set_edgeflags() call in pipe_context
by treating edgeflags as a regular vertex element.
Edgeflags provoke special treatment in hardware, which means we need to
label them in some way, in this case we'll be passing them through the
vertex shader and labelling the vertex shader output with a new TGSI
semantic (TGSI_SEMANTIC_EDGEFLAG).
|
|
|
|
This fixes the regression from commit 884007546c98b1779bf266ec5111b1e7e2b68b2e
Fixes bug 25456 (piglit derivs regression).
|
|
|
|
|
|
Fixes progs/glsl/twoside.c demo.
|
|
|
|
|