Age | Commit message (Collapse) | Author |
|
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>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Nothing suspicious in this set, just an extra dab of paranoia.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As we may choose to force the stall as we would be doing a read-back in
any event...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
One last minute refactor too far, combining the too if(priv->gpu_bo)
blocks forgot that the first block tried to free gpu_bo...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
By moving the test into the common function for creating a mappable GPU
bo, we can also consider recreating that bo when desirable.
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>
|
|
After swapping the bo for the screen pixmap, we need to make sure that
we don't chase any dangling pointers.
References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1133490
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Otherwise we will fail to map it into the GTT. In theory, this should
just result in the same fallback paths, but pushing that knowledge up
further should help us make better decisions.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
This is required for copying from depth-15 surfaces onto other depths.
Reported-by: Reinis Danne
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Reported-by: Reinis Danne
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|