summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-04-08Tell users to grab i915_error_state on gpu hangsfor-masterDaniel Vetter1-0/+1
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-04-07Revert "i965: Convert to relative relocations for state"Chris Wilson3-378/+451
This reverts commit d2106384be6f9df498392127c3ff64d0a2b17457. Breaks compiz (but not mutter/gnome-shell) on gen6. Not sure if this is not seem deep interaction issue with multiple clients sharing the GPU or just with compiz, but for now we have to revert and suffer the inane performance hit. It looks suspiciously like another deferred damage issue... Bugzilla: 51a27e88b073cff229fff4362cb6ac22835c4044 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-07gen6: Invalidate texture cacheChris Wilson2-0/+2
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-07i965: Avoid transform overheads for vertex emit where possibleChris Wilson3-139/+255
Minor improvement as the bottlenecks lie elsewhere. But it was annoying me. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-07i965: Refactor to use constant sampler_state offsetsChris Wilson2-139/+146
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04i965: Reset vertex_id after every batchChris Wilson2-12/+7
So that we always remember to re-emit the initial vertex elements state. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04i965: Always update last_floats_per_vertexChris Wilson1-2/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04Take advantage of the kernel flush for dirty bo in the busy ioctlChris Wilson8-31/+27
Rather than just creating and submitting a batch that simply contains a flush in order to periodically ensure that rendering reaches the scanout, we can simply ask the kernel whether the scanout is busy. The kernel will then submit a flush on our behalf if it is dirty, which takes advantage of the kernel's dirty state tracking. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04Remove unused function 'intel_bo_alloc_for_data'Chris Wilson1-16/+0
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04Remove the unnecessary MI_FLUSH from the flush handlerChris Wilson1-11/+2
The kernel will emit any required flushes between the dri client and the ddx, and we do not rely on the MI_FLUSH here for scanout. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04i965: segregate each vertex element into its own bufferChris Wilson3-147/+171
Reduce the number of relocations emitted by only emitting one relocation per vertex element per vertex buffer. References: https://bugs.freedesktop.org/show_bug.cgi?id=35733 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04i965: Convert to relative relocations for stateChris Wilson3-627/+455
References: https://bugs.freedesktop.org/show_bug.cgi?id=35733 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-04MI_LOAD_SCAN_LINES_INCL are inclusive and range [0, display height-1]Chris Wilson2-4/+4
We have seen GPU hangs with: batchbuffer at 0x0f9b4000: 0x0f9b4000: 0x09000000: MI_LOAD_SCAN_LINES_INCL 0x0f9b4004: 0x00000300: dword 1 0x0f9b4008: 0x09000000: MI_LOAD_SCAN_LINES_INCL 0x0f9b400c: 0x00000300: dword 1 0x0f9b4010: 0x01820000: MI_WAIT_FOR_EVENT 0x0f9b4014: HEAD 0x02000006: MI_FLUSH on a 1366x768 display. That according to the specs an invalid command for the pipe. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35576 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-04-01946GZ is a 965G!Chris Wilson1-1/+1
Sales & Marketing score another victory in confusing me. Bugzila: https://bugs.freedesktop.org/show_bug.cgi?id=35854 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-30Add a DRI2SwapEventPtr typedef for retro xserversChris Wilson1-0/+5
Because people are still trying to build upon our solid historical foundations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-29Cleanup gen2 tiling confusionDaniel Vetter1-4/+3
A tile on gen2 has a size of 2kb, stride of 128 bytes and 16 rows. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-03-29configure: version bump for 2.14.902 snapshotChris Wilson1-1/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-29NEWS: Entry for 2.14.902 snapshotChris Wilson1-0/+21
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-24Recover from i830_dri2_add_frame_event out-of-memory conditionKeith Packard1-4/+14
If adding either the frame or client resources fails, we need to clean up afterwards properly. First, add_frame_event needs to internally clean up after itself by undoing any partial execution. Second, the callers need to look at the return value and free the swap/flip info structure when necessary. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Julien Cristau <jcristau@debian.org>
2011-03-24Use the per-generation batch context switch for atomic sequencesChris Wilson1-2/+4
A modest boost to throughput and reduction in CPU overhead from not flushing the batch on every transition from BLT to RENDER. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-23Skip client and drawable resource delete calls when deleting frame eventKeith Packard1-2/+2
As the frame_event is about to be freed, there's no point in cleaning up references to the drawable and client. Signed-off-by: Keith Packard <keithp@keithp.com>
2011-03-23Handle drawable/client destruction in pending swaps/flipsKeith Packard3-38/+134
A pending swap or flip holds references to drawables and clients which become invalid when destroyed. Add suitable resources to the database to track those lifetimes and clean up the pending data structure then. Later, when the pending swap or flip occurs, handle a missing drawable by just discarding the flip or swap. Handle a missing client by not sending an event or reply. Signed-off-by: Keith Packard <keithp@keithp.com>
2011-03-23dri2: Make DRI2FrameEvent public and use instead of void *Keith Packard3-32/+31
Instead of using void * for all of the flip_info and swap_info pointers, just make the underlying structure a public data type and use that. Signed-off-by: Keith Packard <keithp@keithp.com>
2011-03-16i915/video: Clip indirect Xv outputChris Wilson1-1/+2
In the case of a singular clip box and rendering onto the front buffer larger than 2048, the clip extents were being ignored. Here we can simply reduce the size of the indirect pixmap to the clip extents. Reported-by: Michael Chang <mchang@novell.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=35346 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-09dri: Disable page-flip between a tiled buffer and a linear scanoutChris Wilson1-0/+6
Keith Packard pointed out a loophole that could cause the DDX to end up with a tiled scanout even if the user required a linear framebuffer; that is by using page-flipping we could replace the scanout pixmap with another of our choosing, and not necessarily tiled. Close that loophole by only allowing an exchange of buffers between identical tiling modes. For the common case, this is fine since they will indeed be allocated with the same tiling. For the linear framebuffer case with mesa using a tiled pixmap, we force it to blit onto the scanout instead. Reported-by: Keith Packard <keith.packard@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-09Give each user of tiling separate xorg.conf optionsChris Wilson6-16/+34
So that you can indeed allocate a linear framebuffer if you so desire without breaking mesa. Adds: Section "Driver" Option "LinearFramebuffer" "False|True" # default false EndSection to xorg.conf Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-09Update priv->stride after bo reallocationChris Wilson1-3/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-02configure: Bump for 2.14.901 snapshotChris Wilson1-1/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-02NEWS: Add entry for 2.14.901 snapshotChris Wilson1-0/+31
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-27dri: Protect against destroying a foreign DRI drawableChris Wilson1-3/+3
I have no clue as to how such an alien drawable reached us, but we have the evidence of a segfault to say it can happen. Reported-by: Bernie Innocenti <bernie@codewiz.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34787 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-22Fix relaxed tiling on gen2Daniel Vetter1-3/+7
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-02-19Quell excessively verbose vblank counter failed error messagesBryce Harrington1-16/+32
Certain error situations can result in the following printed to Xorg.0.log at a high enough rate to make log file size a problem. (WW) intel(0): I830DRI2GetMSC:1062 get vblank counter failed: Invalid argument (WW) intel(0): I830DRI2ScheduleWaitMSC:1118 get vblank counter failed: Invalid argument Following in the tradition of commit 0ad6d6e1, limit the warnings to be output 5 times, then quell the remainder. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34322 Ref.: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/710594 Signed-off-by: Bryce Harrington <bryce@canonical.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-17Fix IGD and IGDNG constants to be comprehensibleAdam Jackson6-57/+57
Since, with GPU-on-package, it's hard to talk about a model number for a specific chipset like 855GM, just use the platform names. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-17uxa: Fallback if the temporary is too largeChris Wilson1-16/+21
If the render operation requires a temporary source Picture and the operation is large, larger than the maximum permitted bo, then we will fail to allocate the bo. In this case, we need to fallback and perform the operation on the CPU rather than dereference a NULL bo. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34399 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-12i965: Remove broken maximum base addresses from videoChris Wilson1-5/+5
WRONG. The hardware was never limited to 0x1000000 and the kernel can quite rightly place objects above that limit. Specifying such had no relation to reality, so why did we do it? TWICE! Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=34017 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-09Update autotools configurationJavier Jardón4-16/+22
Use new libtool syntax and silent-rules to silent the build output a bit (linux-like)
2011-02-04Check return value of uxa_acquire_solid() since it can return NULLBryce Harrington2-0/+10
uxa_acquire_solid returns NULL under OOM. Thus the value of solid must be checked before dereferencing it in the uxa_get_offscreen() call. Signed-off-by: Bryce Harrington <bryce@canonical.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-03uxa: Undo damage translation before appendingChris Wilson1-0/+1
The region is used to paint onto the backing pixmap (and thus translated) prior to being passed to the damage layer (wrt to the drawable). So the local translation needs to be undone first. Identified by Christopher James Halse Rogers. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33650 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31Rename 'intel' backlight to match upstream name in 2.6.38Chris Wilson1-1/+1
(Just waiting for libbacklight to bring sanity...) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31xvmc: Stop using uninitialized variable.Cyril Brulebois1-3/+1
The actual code was removed in 5f64122551, where the get_surface_status driver callback was dropped. Just return Success if there were no issues with the parameter. Get rid of the following with CFLAGS="-Wall -Werror": | CC intel_xvmc.lo | cc1: warnings being treated as errors | intel_xvmc.c: In function ‘XvMCSyncSurface’: | intel_xvmc.c:677: error: ‘ret’ may be used uninitialized in this function | intel_xvmc.c:672: note: ‘ret’ was declared here Signed-off-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31xvmc: Silence gcc, adding a cast to work around signedness issues.Cyril Brulebois1-2/+2
Both exported XvMCPutSlice/XvMCPutSlice2 functions have a prototype with a parameter whose signedness differs from the one in the put_slice/put_slice2 functions they call. Make it unsigned through a cast. Get rid of this accordingly with CFLAGS="-Wall -Werror": | CC intel_xvmc.lo | cc1: warnings being treated as errors | intel_xvmc.c: In function ‘XvMCSyncSurface’: | intel_xvmc.c:677: error: ‘ret’ may be used uninitialized in this function | intel_xvmc.c:672: note: ‘ret’ was declared here Signed-off-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31xvmc: Silence gcc, add parentheses around arithmetic.Cyril Brulebois1-1/+1
Get rid of those accordingly with CFLAGS="-Wall -Werror": | CC i915_xvmc.lo | cc1: warnings being treated as errors | i915_xvmc.c: In function ‘i915_mc_one_time_state_emit’: | i915_xvmc.c:369: error: suggest parentheses around arithmetic in operand of ‘|’ | i915_xvmc.c:374: error: suggest parentheses around arithmetic in operand of ‘|’ | i915_xvmc.c:379: error: suggest parentheses around arithmetic in operand of ‘|’ | i915_xvmc.c: In function ‘i915_mc_load_indirect_render_emit’: | i915_xvmc.c:708: error: suggest parentheses around arithmetic in operand of ‘|’ | i915_xvmc.c:713: error: suggest parentheses around arithmetic in operand of ‘|’ Signed-off-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31xvmc: Silence gcc, add parentheses around assignment.Cyril Brulebois1-1/+1
Get rid of the following with CFLAGS="-Wall -Werror": | CC intel_xvmc_dump.lo | cc1: warnings being treated as errors | intel_xvmc_dump.c: In function ‘intel_xvmc_dump_open’: | intel_xvmc_dump.c:41: error: suggest parentheses around assignment used as truth value Signed-off-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-31xvmc: Get rid of unused variables.Cyril Brulebois4-18/+1
Signed-off-by: Cyril Brulebois <kibi@debian.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-29Enable conditional compilation of assertsChris Wilson1-2/+12
With '--disable-debug' we define NDEBUG and so disable the asserts, that is we continue to default to compiling asserts into the code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-28i915: Remove unused 'w' and 'h'Chris Wilson1-3/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-28i915: Remove unused 'num_floats' variableChris Wilson1-3/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-24uxa: Only recreate the glyph cache on *generational* updatesChris Wilson2-11/+10
The screen resources are recreated when the screen is rotated as well, without being finalized. In this case, we do not need to reconstuct the cache (or if we did, we would need to tear it down first). Reported-by: Till Matthiesen <entropy@everymail.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33412 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-21Fix an error in 4c4ad555564a80311df1a4b762eb1e119c6d95fb.Xiang, Haihao1-2/+2
See the original patch at https://bugs.freedesktop.org/show_bug.cgi?id=24767 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2011-01-20Create the UXA generational resources during screen createChris Wilson3-6/+9
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>