R300_PVS_MAX_CONST_ADDR field holds highest const addr, not
const count.
Fixes missing models and others rendering errors for vertex
program using 256 params.
It may happen that the vertex attribute we were going to stuff
the wpos/fog attrs in was already written by vertex program.
In such cases we need to remove instruction accessing these
attributes, so they don't overwrite the wpos/fog related
instructions.
This fixes non-textured models in many wine games.
We're still abusing the flags by putting them where our driver stores
ctx->NewState changes. Making them into more restricted state change
flags would be a project for later.
Fixes a failure where calling intel_draw_buffer() too often would trip
up Mesa assertions about when Mesa state could get changed, when it hadn't.
Bug #27034.
We had fast paths for PIPE_FUNC_LESS and LEQUAL before. To satisfy
OpenGL invariance rules, all depth compare modes should produce the
same fragment Z values.
Fixes progs/demos/singlebuffer.c
This can happen when an X window is destroyed behind our back. We use
DRI2CopyRegion behind the scenes in many places (like flushing the fake
front to the real front) so we have to ignore X errors triggered in that
case.
The glean test cases trigger this consistently as they don't destroy the
GLX drawable nicely, they just destroy the X window.
Flush in middle of rendering in KMS is not allowed because
buffers are discarded in flush.
Fixes crash when emiting split indices with RADEON_DEBUG=all.
Flush after transition would emit wrong state that could cause
wrong state emited for pending rendering operation.
Fixes wan once from extrement tuxracer that is using per vertex
materials.
vbo_split_copy was passing one past the max_index to draw function
which caused _tnl_draw_prims function to read uninitialized values
from copied array.
Bug was spoted in valgrind report of progs/tests/cva_huge.
When running this test case in valgrind report includes read of unitialized
value in _tnl_draw_prims. The bug doesn't cause any vissible errors.
Bug is caused by vbo_split_copy that is calling draw function with max_index
one past the end instead of the end.
The bug is triggered by 41a87a43e1.
glBlitFramebuffer, for example, is an alias to the non-static
glBlitFramebufferEXT. We should define glBlitFramebuffer as an alias to
_dispatch_stub_NNN.
The assertion is checking that the low-order bits of offset are not
set. It does this by anding the inverted offset mask with the
offset. This is clearly intended to be a bit-wise "invert".
Fixes bug #25984.
The assertion is checking that the low-order bits of offset are not
set. It does this by anding the inverted offset mask with the
offset. This is clearly intended to be a bit-wise "invert".
Fixes bug #25984.
The default viewport is the window rectangle, which is set up by
_mesa_make_current(). To be able to do that we need to get the
window dimension (and buffers) first, so we have to call
intel_prepare_render() before we can call into _mesa_make_current().
Fixes#26676 and #26678.
Use the _mesa_clip_readpixels() function to clip the src region against
the buffer's bounds. Neatly, the resulting pixel unpack object's
SkipPixels/SkipRows fields can be used to determine the position of the
region in the destination texture.
Fixes crash in progs/samples/copy.c and probably other cases.
We were doing it ad-hoc before, as instructions with potential
aliasing problems were identified. But thanks to swizzling basically
anything can have aliasing, so just do it generally at source reg
setup time. This is somewhat inefficient, because sometimes an
operation doesn't need unaliasing protection if the swizzling is safe,
but the unaliasing before didn't cover those cases either.
Fixes piglit glsl-fs-loop.
(cherry picked from commit 6b194dab6b)
We were patching up all the break and continues between the start of
our loop and the end of our loop, even if they were breaks/continues
for an inner loop. Avoiding patching already patched breaks/continues
fixes piglit glsl-vs-loop-nested.
(cherry picked from commit f6f547d87e)
The code was walking over the regs of pairs of attributes and checking
whether the attribute with a given reg index had point sprite enabled.
So the point sprite setup code was rarely even getting executed.
Instead, we need to determine which channels of a reg need point
sprite coordinate replacement. In addition, it was multiplying the
attribute by 1/w, when it's supposed to cover (0, 1) in each direction
regardless of w, and it wasn't filling in the Z and W components of
the texcoord as specified.
Fixes piglit point-sprite and the spriteblast demo. Bug #24431, #22245.
(cherry picked from commit bc632d0437)
This would be triggered by use of sqrt() along with control flow.
Fixes piglit-fs-sqrt-branch and a bug in Yo Frankie!.
(cherry picked from commit 48dca99feb)
The bad response length would hang the GPU with a masked sample in a
shader using control flow. For 8-wide, the response length is always
4, and masked slots are just not written to. brw_wm_glsl.c already
allocates registers in the right locations.
Fixes piglit glsl-fs-bug25902 (fd.o bug #25902).
(cherry picked from commit f6d210c284)
(cherry picked from commit dc8c035944)