Age | Commit message (Collapse) | Author |
|
Make sure we have up to date buffers before we start looking at
the tiling bits to determine how to clear.
|
|
|
|
Fixes piglit fbo-readdrawpix.
(cherry picked from commit 5782b2a968bb979b651e49bb5fc4162faa842050)
|
|
fixes piglit fbo-copypix.
(cherry picked from commit a589da14dee0c2a32e6e529f1a390b01a3ee4001)
|
|
Bug #26966: 945 miptree pitch disagreement with libdrm.
(cherry picked from commit da011faf48155a5c02ebc1fe1fa20a4f54b8c657)
|
|
(cherry picked from commit 32f143b4327521a058dc05f0ab9087a5696b9618)
|
|
If a non-zero src_y was used, this would break piglit
depth-level-clamp.
(cherry picked from commit e1e48ea15c1fe448f0b69e086b66c1123dc98bb7)
|
|
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.
|
|
Fixes #27213.
|
|
|
|
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.
|
|
|
|
This saves 6.6KB on the 965 driver, and appears to speed
firefox-talos-gfx up by 1-2%. Unlike many other asserts in the
driver, when we make a mistake that would trigger one of these it
generally shows up all the time for developers, so turning it off for
release seems fine.
|
|
This manages to cut down another 3800 bytes.
|
|
Cuts another 1800 bytes from the driver.
|
|
Shaves 800 bytes off the driver.
|
|
Acked-by: Brian Paul <brianp@vmware.com>
|
|
Implement support for purgeable objects by using the GEM madvise ioctl.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Shaves 60k off the driver from removing the broken spans code. This
means we now require 2.6.29, which seems fair given that it's a year
old and we've removed support for non-KMS already in the last release
of 2D.
|
|
Shaves 5.5k off of the driver.
|
|
This now passes piglit testcases, and shows performance improvements
on openarena. Blit-heavy apps may see degradation, but the
expectation is that the common case of 3D rendering will see
significant wins.
This regresses gen-teximage on my 855, and no piglit tests on my 945.
|
|
This improves tiled texture performance of OA on my 945 from 25.3fps
to 29.0fps, whereas untiled is 28.2fps, by avoiding stalls for fence
register changes.
|
|
This moves the logic for how to align pitches, heights, and sizes of
objects to one central location. Fixes rendering with texture tiling
on i915. Note that current libdrm is required for the change for
I915_TILING_NONE pitch alignment.
|
|
The weirdness that led to the bumping of pitch for those 512/1024
pixels is that in taking a 2x2 subspan or bilinear filtering we'd end
up hitting the same channel in 2 different pages, leading to lower
performance. With tiling, that doesn't occur, so we don't need to
waste the memory.
|
|
|
|
|
|
|
|
Previously we'd use the current renderbuffer.
|
|
This was accidentally (it seems) deleted in
5203b7227ccb6b618fa42f08434d4a3cf123dca2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This restores old behaviour, where we end up doing a DRI2GetBuffers()
call from intelMakeCurrent(). The idea was that we could do this
lazily, just before we start rendering. However, if we don't do the
DRI2GetBuffers() round-trip we don't get the drawable size and higher
level mesa ends up short-cutting a number of GL calls, such as glClear().
|
|
Tested with piglit glsl-arb-fragment-coord-conventions.
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
|
|
This way, if we get an invalidate as we update the buffers, we
don't clobber the drawable stamp and ignore the invalidate.
Pointed-out-by: Francisco Jerez
|
|
|
|
|
|
|
|
This uses a stamp mechanisms to mark the DRI drawable as invalid.
Instead of immediately updating the buffers we just bump the drawable
stamp and call out to DRI2GetBuffers "later".
"Later" used to be at LOCK_HARDWARE time, and this patch brings back
callouts at the points where we used to call LOCK_HARDWARE. A new function,
intel_prepare_render(), is called where we used to call LOCK_HARDWARE,
and if the buffers are invalid, we call out to DRI2GetBuffers there.
This lets us invalidate buffers only when notified instead of on
every glViewport() call. If the loader calls the DRI invalidate
entrypoint, we disable viewport triggered buffer invalidation.
Additionally, we can clean up the old viewport mechanism a bit,
since we can just invalidate the buffers and not worry about
reentrancy and whatnot.
|
|
When a buffer invalidation event is received from the X server, the
"invalidate" hook of the DRI2 flush extension is executed: A generic
implementation (dri2InvalidateDrawable) is provided that just bumps
the "pStamp" sequence number in __DRIdrawableRec.
For old servers not supporting buffer invalidation events, the
invalidate hook will be called before flushing the fake front/back
buffer (that's typically once per frame -- not a lot worse than the
situation we were in before).
No effort has been made on preserving backwards compatibility with
version 2 of the flush extension, but I think it's acceptable because
AFAIK no released stack is making use of it.
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
|
|
|
|
Now that we track the global name in struct intel_region, we can just
look it up there.
|
|
|