Age | Commit message (Collapse) | Author |
|
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
|
|
The clip extents for the stippled BLT missed applying the drawable
offset to the lower-right corner, so inevitably every operation ended up
being clipped.
Reported-by: Clemens Eisserer <linuxhippy@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62618
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Due to long standing ignored bugs in DRI2, we have to accept breakage
in the driver.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62614
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Better late than never? Interestingly only available from the BLT ring,
which makes accurate waiting for XVideo (which must use the render ring)
impossible in the current form - we need to render to a temporary then
do a vsynced blit in this case.
References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1156679
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If the update is only a couple of lines tall, any tear will not be
visible - so just ignore programming the wait into the GPU.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
We are not resetting sufficient state between operations as we presume
that all callers of Composite() currently pass in a blank state. In the
long run, we want to remove that burden and do a minimal initialisation.
References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1156387
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Along the slow path, skip all processing of glyphs that are not visible.
This is important as the slow path handles the per-glyph redirection
case, which is much more expensive.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
NB the back buffer is not associated with the Drawable and so has no
pixmap field set. Hence comparing the front->pixmap against the
back->pixmap was always rejecting the blit. All we can check is that
front->pixmap corresponds with the current Drawable and so reject stale
configuration.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=47597
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This flag is far too overload with meaning, but for now this prevents us
attempting to call free() on a SHM segment.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Fixes sanity checks that we do not leak the flushing status, nor
invoke an operation upon an unflushed bo.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As with LLC we do not actually need to track snoopable as a separate
cache state.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Without the casts, the division ends up as 0 rather than the fractional
offset into the texture.
The casts were missed in the claimed fix:
commit 89038ddb96aabc4bc1f04402b2aca0ce546e8bf3
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Feb 28 14:35:54 2013 +0000
sna/video: Correct scaling of source offsets
Reported-by: Roman Elshin <roman.elshin@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62343
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If the pixmap is not wholly damaged, but still contains the region to be
read, then use userptr (if available).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
i.e. make sure they don't end up in any caches.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The realisation dawns that it wasn't the ordering of points within the
triangle, but simply that I was replacing the wrong one.
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Confusing gcc with different flags for supposedly inlined functions is
not a good idea.
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
When intel_scrn_create creates a screen, it sets scrn->driverPrivate to
(void *)(match_data | 1). Normally, this is read by I830PreInit and then
replaced with a pointer to the intel_screen_private structure. However, it's
possible for the server to delete the screen before initializing it, which leads
to a crash in I830FreeScreen when it tries to interpret the unaligned match_data
pointer as a pointer to a intel_screen_private.
Fix this by checking the low bit of the pointer and skipping the teardown code
if it's set.
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
|
|
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
gen3_emit_composite_primitive_identity_gradient__sse2
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Prefer the slightly cheaper _sna_get_transformed_scaled().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Glamor requires that glamoregl is explicitly loaded via Section "Module"
or else it currently crashes.
Based on a patch by Michel Dänzer for xf86-video-ati.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Taking into account that we may not do a full synchronisation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This helps gen3 in particular as it uses the unique_id field of a bo to
detect changes in render target.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Otherwise pixman will apply the source transform to the offsets.
Reported-by: Ognian Tenchev <drJeckyll@Jeckyll.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=62198
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The handles of the bo are easier to track through the DBG as they are
more often printed than then their addresses.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This helps clarify some recent asserts.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Just in case we end up with bogus data, don't leak.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The assumption that the chained swaps are freed after the next vblank
turns out to be wrong, and in effect we would leak the bo if we
happened to submit the final swap faster than vrefresh and close the
window before the vblank.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Only try to dereference chain->draw after the check to see if it was
already destroyed.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Remember all the special cases where we can use a CPU mmap as a
temporary substitute for a GTT mapping.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
One level of indentation can be trivially removed with an earlier return.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
To catch bad reference counting and loss of flush.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
That is be very careful that we do not enlarge it past the aperture size
on early gen.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Should never actually affect any results.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
If we cannot fit the source/destination and a tile into the aperture,
then we cannot perform the copy and must do it using the CPU.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This is especially important with gen2 where we have no unmappable GTT
to utilise.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
sna_crtc_resize() operates upon the whole configuration rather than a
single crtc like the other sna_crtc_* so rename it to make it distinct.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Instead of reporting failure, just try to run headless.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Do not rely on a fully populated set of CRTCs, but merely note that the
GETRESOURCES ioctl returns an error if KMS is not enabled.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
There is still a lurking issue, so punt on the optimisation for now.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61628
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As the wakeup handler is called more frequently, we want to avoid any of
the more heavyweight processing. So trim the wakeup handler down to the
check to see if the GPU is idle and so we should immediately flush what
we have currently queued.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|