summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-10-09sna: Steal the current mode nameChris Wilson
Rather than duplicating a string, we can simply transfer ownership from the temporary mode to the mode list. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-09sna: Append the current mode to the output list if not foundChris Wilson
If for some reason the current mode on the CRTC (inherited most likely from fastboot) doesn't match any of the modes reported by the output, we end up with a stray mode that the client cannot control. Reported-by: Jiri Slaby <jirislaby@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70132 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-09sna/gen3+: Flush vertex buffer after computing resizeChris Wilson
Upon aligning the buffer, we may enlarge the vbo to accomodate the vertex alignment and push the current index past the end of the buffer. Move the space check from before the alignment computation to afterwards. 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>
2013-10-08sna: Emit DBG for when we fallback to xf86InitialConfig detectionChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-08sna: Rework the num_threads refinement to avoid the divisionChris Wilson
We can replace the division by a multiplication. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-08sna/trapezoids: Recompute num_threads to match rangeChris Wilson
We need to be careful not to execute threads past the end of the alloted buffer by making sure the clip extents correctly align. Reported-by: Joseph Yasi <joe.yasi@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70204 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna: Trim color cache allocation to a single pageChris Wilson
Instead trying to allocate 4100 bytes, fix the logic to only require a maximum of 4096 bytes in the cache buffer. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna/trapezoids: Only use a single thread to emit rectilinear spansChris Wilson
If the trapezoids are rectilinear, they should hit a fast path through the span compositors and so threading them seems pointless. Expect possibily for inplace pixman operations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna/gen7: Rename debug option ALWAYS_FLUSH to ALWAYS_INVALIDATEChris Wilson
This allows us to distinguish between the texture cache invalidation stage versus the opportunistic flushing, and test either. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna/gen7: Tweak flushingChris Wilson
We pre-emptively flush the render cache before reads as that seems to improve performance. Now try not flushing if we don't subsequently need to read from the render cache. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna/trapezoids: Restore overflow checkChris Wilson
The range can indeed overflow, so promote the assertion back into a check. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-07sna/trapezoids: Fix overstepping vertical edgesChris Wilson
Regression from commit c98b770a87a5ec5ed9dc0aa375ad173b0e98322e Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Fri Oct 4 18:37:01 2013 +0100 sna/trapezoids: Add a precise scan converter Reported-by: Joseph Yasi <joe.yasi@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70204 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-06sna/gen7: Add a always-stall debug optionChris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=68410 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-05intel: Filter out the control bit from the device minorChris Wilson
When computing the render node for the device, filter out the potential control node. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-05compat-api: Map changes of DamageUnregister API in 1.14.99.2Chris Wilson
Reported-by: Emmanuel Benisty <benisty.e@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-05sna/trapezoids: Do not pass invalid trapezoids to pixmanChris Wilson
Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1197921 Link: http://lists.x.org/archives/xorg-devel/2013-October/037996.html Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-05sna/trapezoids: Add a precise scan converterChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna: Start splitting the trapezoids megafile into parseable blocksChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna: Fix FillRectangles intersection with complex clipChris Wilson
Lesson 2: Use the right variables. Reported-by: Clemens Eisserer <linuxhippy@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70137 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna: Tidy up FillRectangles intersection with complex clipChris Wilson
Lesson 1: do not accidentally overwrite the loop count inside the loop. Reported-by: Clemens Eisserer <linuxhippy@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70137 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna/dri: Only move the scanout to the flip cache if destroyedChris Wilson
Under certain circumstances, we can retire the pageflip before the client has updated its back buffers. This leads us to pre-emptively moving the scanout to the cache, when all we need to do (and will do) is report the same back buffer back to the client. Reported-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna: Add a few more DBG to track refcntsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna/gen5: Replace pipe-control with full MI_FLUSH for required CS stallChris Wilson
It appears that we need top-of-pipe synchronisation for changing of certain state, and that the gen5 pipecontrol instruction is insufficient. So we have to fall back on the good old MI_FLUSH in order to make sure that the GPU invalidates its state correctly. Reported-by: Clemens Eisserer <linuxhippy@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51422 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04sna: The device fd is marked as non-blocking so beware the busy-waitChris Wilson
During redisplay we wait for the pageflip result. If the fd is marked as non-blocking this results in a busy-wait, so insert a poll first to remove the busy-wait. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04intel-virtual-overlay: Error out if no X11 SHM header is definedChris Wilson
Make the error explicit rather than dieing later with unknown constants. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-04configure: Disable building tools if prerequisite headers not foundChris Wilson
After the pkg-config checks, we then probe the headers. If those probes fail, we obviously wish to prevent building the tools as the build will fail. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: Allow opening the device only through platform informationChris Wilson
Only fail to open the device based on the PCI address, if and only if we do not have sufficient platform information to find the correct system device. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: Handle fallback probing without match_dataChris Wilson
One extreme fallback path through the xf86PlatformProbe results in a call without any match data. As we have a device by this point, we can simply do a reverse match. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: Remove dependence upon having PciInfoChris Wilson
After some probing mechanisms, we may end up with a valid device without knowing its PCI address a priori. Having a valid device, we can just query it for the correct device id, and can safely abort any path that requires PCI information that we don't have. (Those paths are not valid under such hosting anyway - if it may be required, we could reconstruct the address.) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: And restore PlatformProbe to working orderChris Wilson
In the saga of the untested WIP patches for hosted device probing, was the failure in logic to detect a valid device during probing. Yikes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: Querying device attributes must be non-NULLChris Wilson
Check first for a NULL platform device before querying the attributes or else suffer a segfault during PCI probing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03intel: Fix fallout from accident push of ODEV_ATTRIB_FDChris Wilson
This is WIP for passing along a hosted fd. It wasn't meant to be pushed along with the bug fix this morning. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-03sna: Restart timer evaluations if the BlockHandler takes too longChris Wilson
Rather than passing a negative timeout to select, if we detect that we expired our timeout during the processing of the BlockHandler, restart. More worrying is that something in the BlockHandler took longer than 3ms to process. Reported-by: Felipe Contreras <felipe.contreras@gmail.com> Link: http://article.gmane.org/gmane.comp.freedesktop.xorg.devel/37388 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-02intel: Query platform fdChris Wilson
Under a compositor, we wish to use the pre-authorized fd passed to us by the host, stashed away in the platform device. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-02intel: Pass the platform device along to the open routinesChris Wilson
This allows us to pass along more metadata along with the platform device in future. Currently we pass the device path, but in a hosted environment we should be passing along the authorized fd from the host. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-02configure: Error out if glamor request but UXA is disabledChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-02sna: Only delete unused io buffersChris Wilson
Before deleting the io buffer, we need to check that it is not active. Currently we check that it is not pending use in the current batch, but we also need to double check that it does not have outstanding use by the GPU. Failing to do so could mean overwriting the data prior to it being read by the GPU, a very small race but often hit! Reported-by: Vedran Rodic <vrodic@gmail.com> # and many others Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66990 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-02sna: Add a few more asserts around handling of buffersChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-10-01sna/trapezoids: Fix clipping on the far leftChris Wilson
Edges that extend past the left hand side of the clip box cannot simply be ignored (since they contribute to the scanline to their right, our region of interest) but they need to calculated separately rather than merged into the first cell. Reported-by: Pavel Ondračka <pavel.ondracka@email.cz> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69469 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna: Honour Option "AccelMethod" "none"Chris Wilson
If the user requests that acceleration be disabled either through AccelMethod or NoAccel, do so. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna: Only reduce Over to Src if the rects do not overlapChris Wilson
Similar to the previous commit, we have to allow overlapping OVER rectangles to be drawn one after another. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna: Do not reduce overdrawn rectangles for XRenderCompositeRectsChris Wilson
The specification is that each is drawn in sequence (so over top of earlier rectangles), so do not cheat by using the computed region. Reported-by: Clemens Eisserer <linuxhippy@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66313 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna: Unmap cow bo when recreating the source boChris Wilson
When we destroy the original source and copy it to a new bo, we also need to make sure that any mappings of the original bo in the clones are undone. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-30sna/gen3: Tidy up fallback handling from fill-boxesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna: Use the bo allocation cache for converting buffersChris Wilson
Since we have a malloc cache for the bo, we may as well use it when converting from an upload buffer to a bo. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna: Whitespace fixesChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna: Apply the non-relaxed fencing partial paranoia everywhereChris Wilson
This is required to ensure that the tiled offsets are tile-row aligned. Bugzilla: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1232546 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna/video: The sprite framebuffer also encodes its formatChris Wilson
So we need to check whether the cached framebuffer matches the requested format, or else recreate. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna: Resize an existing framebuffer if possibleChris Wilson
Sometimes we may have a compatible scanout cached, but of the wrong size. Instead of throwing away the memory and creating a new scanout from scratch, allow us to just resize the old scanout by destroying and recreating its associated framebuffer. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-09-29sna/video: Don't allow caching of yuv scanoutsChris Wilson
We only want scanouts capable of being used for the front buffer in our cache, so make sure that YUV formatted fb are destroyed upon release. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>