Commit Graph

937 Commits

Author SHA1 Message Date
Wang Zhenyu ae6d3585a4 Merge branch 'modesetting' of git://proxy.ims.intel.com:9419/git/xorg/driver/xf86-video-intel into modesetting 2007-02-02 11:21:59 +08:00
Eric Anholt 1ba45a3fcd Improve register debugging output.
This includes not reporting some fields on hardware where those bits are
reserved, correcting one of the hardware error bit numbers, and reducing
the severity of the debugging output warnings.
2007-02-01 13:26:38 -08:00
Eric Anholt 9bfeadbd5b Remove some more dead options. 2007-02-01 12:06:10 -08:00
Eric Anholt d6bc03c379 Bug #9819: Add two headers that are apparently necessary on older X Servers. 2007-02-01 11:28:34 -08:00
Eric Anholt 351866b032 Sync before overwriting Render acceleration state on the 965. 2007-01-31 15:49:03 -08:00
Eric Anholt 96783a4589 Fix copy-and-paste-o in the render code cleanup that broke XAA. 2007-01-31 15:48:02 -08:00
Eric Anholt 5238ff9c80 Naming and formatting cleanup in Render acceleration code. 2007-01-31 14:01:41 -08:00
Eric Anholt c47210d94e Move the render code to non-EXA-specific filenames. 2007-01-31 12:50:31 -08:00
Eric Anholt 72ea0e514d Remove custom accelerated rotation code now that it's all done through Render. 2007-01-31 12:43:38 -08:00
Eric Anholt e62751db8b Add an accelerated path for rotation Render operations in XAA.
The now-generic (kind of) EXA code will be cleaned up and moved to generic
files in a later commit.
2007-01-31 12:15:38 -08:00
Eric Anholt 4cd552e8f4 Fix accelerated Render transformations.
Previously, we tried to use 2 points instead of 3 to describe the source
rectangles, which mostly just worked for scaling.
2007-01-30 16:34:50 -08:00
Eric Anholt 6a628ae12b Simplify EXA acceleration transform handling. 2007-01-30 16:25:27 -08:00
Keith Packard c8581254cb Merge branch 'modesetting-rotation' into modesetting
This adds reasonably driver-independent rotation support to the common
layer. The piece required in the driver is to allocate and redirect the crtc
to a shadow frame buffer. The driver uses Render to perform the actual
rotation operation (which leaves us free to do fun projective transforms at
some point in the future :-).
2007-01-29 21:25:13 -08:00
Eric Anholt 9da1791eec Restore a few important lines from 89ace3e81f
Typical results were failure to sync, and a black screen.
2007-01-29 17:10:39 -08:00
Eric Anholt 67c6a490e6 Remove dead code to undo the damage of xf86SetModeCrtc() blank limiting. 2007-01-29 09:53:58 -08:00
Eric Anholt 89ace3e81f Bug #9680: Remove bogus blank length limiting in xf86SetModeCrtc().
Our modes typically come from EDID or default modes, and when the monitor
asks for a specific mode, deciding to tweak it usually results in incorrect
display.  And if the user is specifying a mode by hand, tweaking it then is
still pretty rude.

Reviewed by: ajax
2007-01-29 09:43:35 -08:00
Dave Airlie 6eb69e7378 ch7xxx: actually power up the chip around connection detection 2007-01-29 20:27:20 +11:00
Keith Packard d329fa121b Fetch from root window instead of screen pixmap during rotation.
The XAA Composite wrapper doesn't check for sourcing from the root pixmap
when deciding whether to sync the hardware drawing. Fix the rotation code to
reference the root window in IncludeInferiors mode to avoid reading without
correct synchronization.
2007-01-27 18:36:15 -08:00
Keith Packard 20419d664c Paint ARGB cursor data to ARGB cursor memory space in frame buffer.
When converting from global cursor to per-crtc cursor, the ARGB cursor data
was accidentally painted to the wrong location, overwriting some critical
data and causing the hardware to lock up. (along with generating a garbage
cursor image from uninitialized data).
2007-01-27 18:34:12 -08:00
Krzysztof Halasa 00decd3b6c Don't zero out mode structure after setting name field.
Instead of using memset to zero the structure (at the wrong time, no less),
use xcalloc to gather pre-initialized memory.
2007-01-27 12:29:31 -08:00
Keith Packard 7a5f17087b Mark crtc region as damaged when rotation is set.
When shadow frame buffer is allocated for rotation, it needs to be
initialized by copying from the frame buffer. Do this by simply marking the
entire screen as damaged which will force an update.
2007-01-27 00:11:21 -08:00
Keith Packard 2d95cb6f04 Make rotated pixmap size of mode, not rotated mode. Update only damage.
Rotated pixmap should match size of displayed mode, not the rotated version
of that size.

Take damaged region, rotate each box and display them instead of displaying
the whole screen after each damage update. This exposes a bug where the
screen is not correctly damaged after rotation.
2007-01-27 00:04:13 -08:00
Eric Anholt 5c1e27cdd2 Make rotated shadow buffer allocation dynamic.
For EXA, this requires version 2.1 of EXA to do rotation, as the VT switching
issues were too complicated otherwise.
2007-01-25 15:31:22 -08:00
Nian Wu 6d549ed280 Merge branch 'modesetting' of git://proxy01.pd.intel.com:9419/git/xorg/driver/xf86-video-intel into modesetting
Conflicts:

	src/i830_driver.c
2007-01-25 13:36:33 -08:00
Eric Anholt 83cc4601b2 Fix a possible failure to misalign video allocation in XAA. 2007-01-24 16:52:22 +08:00
Eric Anholt e213324195 Warning fix. 2007-01-24 12:32:38 +08:00
Dave Airlie effe579e69 ch7xxx: fix output detection as per datasheet, have no DVI to test this. 2007-01-23 16:10:53 +11:00
Dave Airlie c68dae2705 fix building with 7.1 server by hiding stuff inside RANDR_12_INTERFACE 2007-01-23 16:10:25 +11:00
Eric Anholt 8eb861fb61 Replace the custom SaveScreen function with a generic function calling DPMS.
With this, additional power saving occurs with the core screensaver, for
example by turning off LVDS backlight.
2007-01-22 15:50:14 +08:00
Wang Zhenyu 7161e824e8 Fix DRI issue when EXA enabled
tell DRI we are smashing the context state.
2007-01-19 15:15:19 +08:00
Eric Anholt 74ebff6732 Allocate separate cursor memory per CRTC and rotate cursors appropriately.
Also, add bind/unbind of the shadow rotate buffers, which was missed in a
previous commit.
2007-01-18 14:26:21 -08:00
Eric Anholt 8759f4d89a Partially deal with cursor rotation.
The remaining issue is having a cursor image per CRTC so that the cursors can
be rotated on the independently rotated CRTCs.
2007-01-18 13:13:46 -08:00
Eric Anholt b296cd9b8f Fix transformation matrices for rotation at 90 and 270 degrees. 2007-01-18 13:02:26 -08:00
Eric Anholt d2ae2e2ccc Update CRTC values first so they can be used by the driver in mode setting.
With this, the screen now gets rotated, though there are major issues.
2007-01-18 11:37:14 -08:00
Eric Anholt 92b0f3d201 Disable the clipping for now, since it won't work. 2007-01-18 11:23:22 -08:00
Eric Anholt 14d265a023 Store fixed values, not integers, in the transformation matrix.
Also, add a bit more error checking.
2007-01-18 11:22:47 -08:00
Eric Anholt cc09dc3efe Merge branch 'modesetting' into modesetting-rotation 2007-01-18 10:20:36 -08:00
Eric Anholt 53e765d1cf Fix broken last-minute change in determining whether we're rotated or not. 2007-01-17 16:56:06 -08:00
Eric Anholt f256243fff Allocate per-crtc rotation buffers and hook up RandR 1.2 per-CRTC rotation.
It currently displays garbage.
2007-01-17 16:05:55 -08:00
Eric Anholt d17c386aee Fix some segfaults: crtc->rotatedPixmap not set and dangling damage pointer. 2007-01-17 16:02:30 -08:00
Eric Anholt 67a152c43c Set all CRTCs' allowable rotations when xf86RandR12SetRotations() is called. 2007-01-17 16:02:30 -08:00
Gary Wong 3094100cdd Bug #9550: Add a quirk for too-high clock from EDID on the EN-7100e. 2007-01-16 13:25:24 -08:00
Eric Anholt 66c6427cc8 Add a settable backlight property for LVDS.
This extends the output funcs to have a callback for when it's time to
configure properties, and another for when the server has changed a property
whose value isn't pending a mode set. (Pending properties are to be picked up
by the driver at mode_set time).
2007-01-16 12:54:29 -08:00
Keith Packard a52df90ffc Merge branch 'modesetting' into modesetting-rotation
Conflicts:

	src/i830_driver.c
	src/i830_randr.c

Just a few sync changes.
2007-01-16 12:20:26 +11:00
Keith Packard 37946c9c8a Interim work on rotation support with new xf86 code.
Yes, there are lots of bits tied together here, and we should split this
patch apart.

Move I830 mode setting to xf86 mode setting.

Make mode setting function also set the base address. This should fix
problems where the base gets set incorrectly at times.

Add driver-independent rotation support, requires driver-specific hooks for
shadow pixmap allocation, otherwise it uses Render for painting.
2007-01-16 12:14:55 +11:00
Keith Packard bfeda3bfc5 Convert I830PipeSetMode to xf86CrtcSetMode. Add rotation structures.
Makes the mode setting logic device independent.
Magic rename hooks allow multiple drivers to provide the
generic code without name conflicts.
Rotation code requires special pixmap creation hook, and uses
Render to perform the actual rotation.
2007-01-15 08:05:32 +11:00
Eric Anholt 45696aa291 EXA: Use PRIM3D_RECTLIST instead of TRIFAN so we don't get diagonal tearing.
A side effect is the reduction in vertex dispatch, which is nice.
2007-01-11 17:19:54 -08:00
Eric Anholt 6874a6f25a Restore legacy overlay size limits, due to card hangs at larger sizes. 2007-01-11 12:38:29 -08:00
Eric Anholt c288aea407 Bug #8845: Unify all our XV ports to 1920x1088 maximum size.
This increases the "legacy" size, but that was checked against the 845
documentation which claims support for 2048x2048 as well.  It decreases the
textured video size, which was running into the limits of the bigrequests
extension.  The new limits should fit within bigrequests while still supporting
HD videos.
2007-01-11 11:04:29 -08:00
Eric Anholt f5d528f8ea Don't limit cachelines to a vertical of 2048, and increase default allocation.
The cachelines are used for two things: XAA pixmap cache and XV memory.
Only XAA pixmap cache is referred to using an offset pointing at the
beginning of the front buffer in rendering, and XAA only uses the 2d BLT
engine, which actually has a vertical limit of 65536.  So, pixmap cache is now
limited to that much vertical.

Additionally, the previous cachelines allocation was too small for our
advertised XV limits, so video at the limits would fail with BadAlloc.  Now,
XAA allocates the same approximate amount of offscreen memory as EXA:
3 times the screen size, plus one packed HD video.
2007-01-11 11:03:13 -08:00