Commit Graph

2897 Commits

Author SHA1 Message Date
Eric Anholt 6bdab84176 uxa: Skip adjusting mask coordinates when no mask is present.
Quiets clang warnings about garbage variable usage.
2010-02-20 12:55:13 -05:00
Eric Anholt a86869e6c3 Fix an unused variable warning for !INTEL_XVMC. 2010-02-20 12:55:13 -05:00
Eric Anholt ec5deb2bcb Remove dead assignments noticed by clang. 2010-02-20 12:55:13 -05:00
Eric Anholt a4180eabfa Remove stale junk in VideoRam setup, noticed by clang. 2010-02-20 12:55:13 -05:00
Eric Anholt 03657d4a69 Remove dead UMS CRTC resize code. 2010-02-20 12:55:13 -05:00
Chris Wilson 1c3aaad09d dri2: Silence the compiler for an unused function with proto < 4
Move the unused function into the #if DRI2INFOREC_VERSION >= 4 block.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-02-17 17:49:48 +00:00
Jesse Barnes 00e7312dc4 DRI2: handle full height blits without tearing in CopyRegion
On 965 and up, if we detect a full height blit, we should just wait for
vblank, rather than try to do a scanline wait for the whole display.

On pre-965, doing a scanline wait followed by a blit works, but in the
full height case we need to give the blitter time to start up, so we
wait until the bottom line of the blit minus 2 padding scanlines to
accommodate.

Fixes FDO bug #22475.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-11 09:46:12 -08:00
Jesse Barnes f0d760bfd7 Disable bo reuse on shadow framebuffer
This keeps us from trying to set tiling on it while pinned, which also
keeps us from trying to unpin it in the kernel, causing an error.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-10 11:24:46 -08:00
Gaetan Nadon 41784e15d3 config: remove dead LINUXDOC macro usage
This module does not generate LINUXDOC documentation.

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2010-02-06 11:03:02 -05:00
Jesse Barnes 6610bcbac5 DRI2: only use version 4 APIs if kernel support exists
Check for page flipping support before enabling flip and vblank event
support needed for the new DRI2 APIs.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-02-05 17:18:50 -08:00
Keith Packard 1a76fa5574 Initialize DRI2 info rec version 4 list of driver names
With DRI2 supporting multiple subsystems, the video driver must
initialize the list of driver names instead of just passing the single
driver name used by Mesa. Without this, the X server will fail to
initialize DRI2 as the numDrivers field in this structure will be
uninitialized.

Signed-off-by: Keith Packard <keithp@keithp.com>
2010-01-31 18:08:23 -08:00
Chris Wilson 918151a795 uxa: Fix compatible_formats() for OVER
In separating the boolean logic out into a separate function, dc6522dd,
I reversed the sense of one particular test:

  src->format == dst->format

The OVER optimisation is only valid if the src and dst formats match,
but not always.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-27 20:35:45 +00:00
Chris Wilson 197cb08a2d Extract pixel value for all formats to avoid hitting fallbacks.
On failing to extract the pixel value for an alpha-only solid we
actually triggered a fallback. Since this path is commonly hitting
whilst fading in images, for example cairo_paint_with_alpha(), the
fallback was detected during the Moblin boot sequence where it was
adding a second to the overall boot time.

See
  fallback intel: Moblin startup is hitting a composite fallback, costing
                  a ton of performance
  https://bugs.freedesktop.org/show_bug.cgi?id=26189

Based on the initial patch by Arjan van de Van.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-25 15:49:38 +00:00
Chris Wilson 5f93d019dc uxa: Adjust uxa_get_color_for_pixmap to match prototype
The prototype says this function returns a Bool and not just an int, so
be pedantic and return TRUE/FALSE.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-25 15:48:48 +00:00
Chris Wilson dc6522dd49 uxa: Protect against a potential NULL src->Drawable reference
One of the convoluted if branches dereferenced Drawable when it is
potentially NULL. Avoid this by explicitly handling the NULL Drawable
cases earlier, and enabling solid fills for solid sources.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-24 09:37:23 +00:00
Chris Wilson 31bbd7f919 uxa/uxa-render: Always remove useless repeats during composite.
I added a jump if there was no src or mask Drawable, but we do actually
need to check for useless src repeats even if we have a source-only
mask.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-24 09:04:16 +00:00
Chris Wilson 326fe00df4 uxa: Increase amount of composite fallback verbage
The fallback log for http://bugs.freedesktop.org/show_bug.cgi?id=26189
does not actually state the reason why we actually fallback. This is
possibly because we need to fallback for reasons other than the
operation cannot be performed in hardware -- such as using an alpha map
or the screen is swapped out, so add this information to the fallback
log.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-24 09:02:05 +00:00
Eric Anholt 93cd943d41 intel: Use the compositing-aware colorkey filler instead of homebrew fail.
Of course, it's still fail since you can't correctly composite
colorkey overlay, but at least this doesn't spam colorkey to the root
window.

Tested-by: Daniel Vetter <daniel@ffwll.ch>
2010-01-17 12:36:13 -08:00
Alan Coopersmith 6e61de896b Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2010-01-15 15:51:28 -08:00
Jesse Barnes 96f45c66ee DRI2: if the swap condition is satisfied, complete it immediately
If we get to the point where we check the divisor/remainder equation and
it's satisfied, we should complete the swap immediately.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-01-13 13:25:45 -05:00
Jesse Barnes 51c7590632 DRI2: support new DRI2 APIs
The new interfaces allow for improved buffer swap, and support for the
SGI_swap_control, SGI_video_sync and OML_sync_control GLX extensions.

The Intel implementation allows page flipping to occur for swaps that
are full screen and not rotated.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-01-13 13:25:45 -05:00
Chris Wilson 4902f546be i965: Ensure that URB_FENCE is aligned to 64-bytes
The PRM (Vol 1, p32) specifies that the URB_FENCE command must not cross
a cache-line boundary (64-bytes) in order to workaround a silicon issue.
Ensure that it does not by inserting an alignment point before the atomic
section.

This is a slightly too large hammer, but the easiest method to work with
the current BEGIN_BATCH/ADVANCE_BATCH protections.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-08 19:21:31 +00:00
Chris Wilson 83626aba35 uxa-glyphs: Enable TILING_X on glyph caches.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-08 19:21:31 +00:00
Chris Wilson 50e07da809 i830: Do not use vtSema when chosing mapping type.
The mapping type to use is determined by the tiling of the underlying
object, not by whether or not not we control the vt. This was a
left-over wart that was intended to mean that we had GEM and so could
use GTT mappings.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-08 19:21:31 +00:00
Chris Wilson 7a2b7cfab5 Consolidate determining maximum sizes for use with GEM
Add a small wrapper function so that the callsites need only call the
single function when checking the available aperture size for
determining the maximum viable size for operations. This will allow us
to easily extend this set in the future by only needing to adding the
check to a single location.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-01-08 19:21:31 +00:00
Daniel Vetter 229d23fb18 Xv: don't enable XVMC port on unsupported configs
This just makes it _really_ clear, what's supported. No other changes.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:26:01 -08:00
Daniel Vetter ce7ba18f57 Xv: consolidate xmvc passthrough handling
It's now all in I830PutImageTextured. Also kill some leftovers
from XVMC-on-overlay support and ums-XVMC-on-i915 support. Plus
a small comment as a reminder for where to add i915 xvmc support
back in.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Daniel Vetter 1ac7c94083 Xv: hide ugly semantics in i830_clip_video_helper
I'm still curious as to why fixed-point semantics are necessary
for this generic XV helper function that's been causing all this.
Can modern X really run on hw without floating-point support?

Anyway, the ugliness is now all nicely under the carpet (in
i830_clip_video_helper).

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Daniel Vetter 31f13fa8a0 Xv: move users of x1, x2, y1, y2 to PutImage
After this there are no other external users of these strange variables,
so we can nicely hide them somewhere in the next changeset.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Daniel Vetter ce6526b9b4 Xv: kill unnecessary parameters for hw PutImage functions
This is the first part of my small crusade to rip out x1, x2, y1, y2
from I830PutImage*. These variables have strange semantics (they
change from simple integers to fixed-point values somewhere in
the middle) and don't really seem to be what we actually need.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Daniel Vetter cf74caaa91 Xv: kill an unnecessary if
We always pass a non-null pointer for crtc_ret, no point to check
for this.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Daniel Vetter d8353c737b Xv: split up I830PutImage into textured and !textured case
This wasn't making much sense anymore, and further cleanups will
make this even more apparent. This change just makes two copies of
I830PutImage and kills the not-applicable if-clauses in both
versions.

There is one small functional change in here: The textured video
path doesn't munch around with adaptor_priv->videoStatus anymore,
which is only used by the overlay. This could prevent the overlay
from being switched off if someone would use textured video at the
same time.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-01-07 10:25:07 -08:00
Carl Worth 0910351464 configure.ac: Bump version to 2.10.0.
In preparation for the 2.10.0 release.
2010-01-04 14:20:11 -08:00
Carl Worth 01f7d0307b NEWS: Add final release notes for the 2.10.0 release.
Mentioning that it's functionally identical to our most recent release
candidate.
2010-01-04 14:19:17 -08:00
Zhenyu Wang e966bca3a9 Take note for Pineview support in README and manpage
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2010-01-04 14:15:41 -08:00
Carl Worth 6137791e9f man page: Remove section describing BACKLIGHT_CONTROL property.
This apparently no longer exists in a KMS world, so remove it from the
documentation.
2010-01-04 14:11:48 -08:00
Carl Worth 7f36a43924 man page: Rename PANEL_FITTING to "scaling mode".
The old UMS name was PANEL_FITTING while the new KMS name is "scaling mode".

Fixes bug #25606.
2010-01-04 14:11:18 -08:00
Carl Worth a6fb71e6e2 man page: Add additional indentation for some output configuration options.
The BACKLIGHT_CONTROL and PANEL_FITTING options appear in a list, and
then each contain a sub-list of sub-options. Use indentation to make
this structure more apparent to the reader.
2010-01-04 14:05:27 -08:00
Gaetan Nadon 25a6c8dfae configure.ac: use backticks rather than $() for cmd subs
Use "$PKG_CONFIG" rather than hard coded "pkg-config"

Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Daniel Stone <daniel@fooishbar.org>

Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2009-12-28 15:17:11 -05:00
Carl Worth 2c142e421e Update version to 2.9.99.902.
For the second release-candidate snapshot in preparation for 2.10.
2009-12-10 15:25:44 -08:00
Carl Worth 8ecf70ea55 NEWS: Add notes for 2.9.99.902 (and preliminary notes for 2.10)
This comes from my cursory glance over the commit log from 2.9.1
to master.
2009-12-10 15:17:57 -08:00
Carl Worth 88b2209a75 Document the DebugFlushBatches, DebugFlushCaches, and DebugWait options.
These were added in 3c0815abf2 . The
documentation added here comes straight from that commit message.
2009-12-10 14:52:46 -08:00
Tobias Doerffel 8d6faf7dc5 Fix compiler warning in i830_copy_video_data() if XvMC is disabled
The variable "intel" is unused when building i830_video.c without XvMC
support which results in a compiler warning:

  i830_video.c: In function 'i830_copy_video_data':
  i830_video.c:1443: warning: unused variable `intel'

Trivial fix via #ifdef.
2009-12-10 14:07:30 -08:00
Daniel Vetter bd81734465 Xv: enable drmmode overlay
Now that libdrm 2.4.16 is released (and already required) we can
unconditionally enable this.

Please add something like this to the release-notes/NEWS file:

* Overlay support for kernel modesetting. This needs at least kernel
  v2.6.33 to work. A backport to 2.6.32 is available at:

  http://gitorious.org/daniel-s-linux-stuff/linux-kernel/commits/intel-kms-overlay-for-2.6.32

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2009-12-10 13:54:11 -08:00
Chris Wilson 37f631d669 Revert "uxa-glyphs: Enable TILING_X on glyph caches."
This reverts commit 3f11bbec42.

For unknown reasons, enabling tiling for the glyph cache is causing
glyph corruption both across suspend and resume and VT switching, on a
wide range of chipsets (reports include both i8xx and gm45)

This strongly suggests that we are handling tiling, or updates to tiled
buffers, incorrectly across i915_gem_idle(). However, until we can find
the root cause, we want to fix this regression before the next stable
release, so simply revert this patch. :(

Fixes:
  [Bug 25406] fonts garbled after resuming from suspend since 6729b508
  http://bugs.freedesktop.org/show_bug.cgi?id=25406

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-10 08:54:46 +00:00
Chris Wilson 093bb9ebe6 i965: Only use the affine kernels if both src and mask are affine
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08 23:45:28 +00:00
Chris Wilson 0cf04ea4d7 i965: Set src_filter before testing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08 23:44:45 +00:00
Chris Wilson 417ad2712e Assert that we only call OUT_BATCH() inside a BATCH
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08 23:43:57 +00:00
Chris Wilson 47416b1eea i965: Maximum number of vertices per composite is 24, not 18
Beware the potential buffer overflow.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-08 13:48:48 +00:00
Chris Wilson c1afc831c8 uxa: Cache solid fills.
Maintain a small cache of pixmaps to hold SolidFill pictures. Currently
we create a pixmap the size of the damaged region and fill that using
pixman before downloading it to the GPU and compositing. Needless to say
this is extremely expensive compared to simply emitting the solid
colour. To mitigate this cost, we maintain a small cache of 1x1R
pictures which is recognised by the driver as being a solid, but at the
very least is maintained as a GPU ready pixmap.

This gives a good boost to cairo-xcb (which uses solid fills) on a gm45:

Before:
  gnome-terminal-vim: 41.9s
After:
  gnome-terminal-vim: 31.7s

Compare with using a cache of 1x1R pixmaps in cairo-xcb:
  gnome-terminal-vim: 31.6s

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-12-07 21:37:31 +00:00