Commit Graph

304 Commits

Author SHA1 Message Date
Adam Jackson
23b8ca8a37 RANDR 1.2: Only enable unknown outputs if there are no connected outputs.
Otherwise you end up with a confusing initial geometry, and xscreensaver
and friends get very angry.
2007-11-27 13:20:40 -05:00
Matthias Hopf
c6c284e64b Initialize Mode with 0 in xf86RandRModeConvert.
Asking for trouble if non-initialized values contain random data.
2007-11-26 15:39:42 +01:00
Matthias Hopf
f6401f944d Don't segfault if referring to a relative output where no modes survived. 2007-11-23 16:14:48 +01:00
Matthias Hopf
fa19e84714 Fix initial placement of LeftOf and Above. 2007-11-23 16:14:48 +01:00
Matthias Hopf
184e571957 Adjust offsets of modes that do not fit virtual screen size.
Fixes memory corruption if a too small "Virtual" was specified in xorg.conf
for the selected multi-monitor configuration.
2007-11-23 16:14:48 +01:00
Eamon Walsh
2d17f47cc7 Merge branch 'master' into XACE-SELINUX
Conflicts:

	hw/xnest/Pixmap.c
	include/dix.h
2007-11-19 18:10:46 -05:00
Michel Dänzer
ea9c63e93b DEFAULT_DPI was undefined here. 2007-11-19 15:53:49 +01:00
Tormod Volden
ee2d4626dc Bug #12932: Use DEFAULT_DPI in randr1.2 instead of hardcoded 96. 2007-11-18 11:56:31 -05:00
Peter Hutterer
0b729051c0 Merge branch 'master' into mpx
Conflicts:

	Xi/extinit.c
	Xi/grabdev.c
	Xi/setmode.c
	Xi/ungrdev.c
	dix/devices.c
	dix/events.c
	dix/getevents.c
	include/dix.h
	mi/midispcur.c
	mi/misprite.c
	xkb/xkbActions.c
	xkb/xkbEvents.c
	xkb/xkbPrKeyEv.c
2007-11-07 15:37:23 +10:30
Eamon Walsh
a52c9b2a59 Merge branch 'master' into XACE-SELINUX
Conflicts:

	dix/dispatch.c
	dix/property.c
	hw/xfree86/common/xf86VidMode.c
	include/xkbsrv.h
	render/glyph.c
	xkb/xkbActions.c
2007-11-05 19:08:36 -05:00
Daniel Stone
733d42065f XFree86: Remove usage of alloca
Replace with heap allocations.
2007-11-05 14:34:42 +00:00
Matthias Hopf
4d0f35c81d Always duplicate mode name when duplicating a mode.
If the originating mode didn't have a name, we would end up with the name of
the original mode being setup correctly, but with the name of the copy still
being NULL.
2007-11-02 19:27:32 +01:00
Matthias Hopf
27b13eeb56 Nuke superfluous ",", added missing include for xf86i2c.h. 2007-10-26 13:15:07 +02:00
Eamon Walsh
b633d54b94 Merge branch 'master' into XACE-SELINUX
Conflicts:

	GL/glx/glxscreens.c
	hw/xnest/Screen.c
	render/glyph.c
	render/glyphstr.h
	render/render.c
2007-10-25 12:19:30 -04:00
Matthias Hopf
48ca5961ca Prefer configured DisplaySize to probed DDC data, if available.
Based on patch by Hong Liu <hong.liu@intel.com>.
2007-10-24 20:31:51 +02:00
Keith Packard
29e0e18072 Leave hardware-specified preferred modes alone when user preference exists.
Instead of removing the preference bit marking the hardware declared mode
preference, leave it in place and just move the user preferred mode to the
front of the list while marking it with the USERPREF bit which will cause it
to be selected by the initial mode selection code.
2007-10-22 13:38:16 -07:00
Eric Anholt
ab4bce02a9 Add a quirk for Philips 107P5 which lacks the preferred bit on detailed timing.
Also fix the prefer-large-75 quirk if the prefer-first-detailed bit was set,
though it's not the case for the existing prefer-large-75 consumer.
2007-10-18 15:22:42 -07:00
Eamon Walsh
c3f7b86255 Merge branch 'master' into XACE-SELINUX
Conflicts:

	os/access.c
2007-10-17 15:00:54 -04:00
Keith Packard
feac075952 Make config file preferred mode override monitor preferred mode.
Add a new even-more-preferred bit to each mode which is used to make config
file preferences selected instead of the monitor preferred mode.
2007-10-17 11:42:28 +08:00
Eric Anholt
fc092334ac Bug #10304,12784,11603: Add quirks for several physical size issues.
A lot of EDID writers apparently end up stuffing centimeters (like the
maximum image size field) into the detailed timings, instead of millimeters.
Some of them only get it wrong in one direction.  Also, add a quirk to let
us mark the largest 75hz mode as preferred, which will often be used for
EDID 1.0 CRTs.
2007-10-11 16:55:44 -07:00
Matthias Hopf
45cc03726b Make mode checking more tolerant like in pre-RandR times. 2007-10-11 18:59:39 +02:00
Eamon Walsh
27612748e0 Merge branch 'master' into XACE-SELINUX
Conflicts:

	dix/devices.c
2007-09-26 07:47:29 -04:00
Alex Deucher
e1860f241b Document xf86_crtc_clip_video_helper better. 2007-09-22 17:54:51 -04:00
Alex Deucher
19d30c1c77 Revert "Fix possible crash if Xv window is outside of either crtc"
This reverts commit 9235531410.

This changes ABI.  False means there was a memory failure of some kind,
not that the video shouldn't be displayed
2007-09-22 17:51:27 -04:00
Michel Dänzer
9235531410 Fix possible crash if Xv window is outside of either crtc 2007-09-22 14:25:02 -04:00
Eamon Walsh
47ab4d648b devPrivates rework: convert CursorRec and CursorBits over to new interface. 2007-08-30 11:40:39 -04:00
Eamon Walsh
4017d31902 devPrivates rework: since API is already broken, switch everything
over to new system.

Need to update documentation and address some remaining vestiges of
old system such as CursorRec structure, fb "offman" structure, and
FontRec privates.
2007-08-28 09:28:25 -04:00
Dave Airlie
76bf3cd7b8 randr: fixup crtc and output destroy
if you are moving pointers, you want to move the pointers not just a byte
2007-08-23 16:22:03 +10:00
Alex Deucher
81f8b652d9 Add _X_EXPORT to exported functions in hw/xfree86/modes/*
Also add missing exports to hw/xfree86/loader/xf86sym.c
2007-08-22 19:26:34 -04:00
Keith Packard
265a633cf1 Screen size changing should leave FB alone when X is inactive.
xf86RandR12ScreenSetSize must protect calls to EnableDisableFBAccess with
suitable vtSema checks to avoid invoking driver code while the X server is
inactive.
2007-08-20 23:24:22 -07:00
Keith Packard
7dc8531548 Ref count cursors used in hw/xfree86/modes code.
The multi-crtc cursor code in hw/xfree86/modes holds a reference to the
current cursor. This reference must be correctly ref counted so the cursor
is not freed out from underneath this code.
2007-08-20 23:24:12 -07:00
Alex Deucher
53c04351c4 move intel crtc xv clipping helper to the xserver
The code is generic and can be used by any overlay-based card when
adding randr 1.2 support.  Tested on radeon.
2007-08-20 19:47:55 -04:00
Peter Hutterer
f367285fd5 Merge branch 'master' into mpx
Conflicts:

	Xi/exevents.c
	dix/devices.c
	dix/getevents.c
	include/dix.h
	mi/mieq.c
2007-08-12 15:31:10 +09:30
Eric Anholt
ff4bd3addb Fix the swapped decode of the EDID DTD h/v sync polarity fields.
As a result, we can remove the quirks that existed to flip the bits back around
for us.  This is not confirmed in all cases due to lack of bugs containing EDID
blocks associated with the quirks, but is likely true.
2007-08-08 14:39:27 -07:00
Gustavo Pichorim Boiko
2926cf1da7 [PATCH] Allocate the right number of entries for saving crtcs 2007-08-08 12:31:11 -07:00
Dave Airlie
722d73a0ef Revert "Fix RandR 1.2 conversion of two colour to ARGB cursor on MSB first platforms."
This reverts commit 0f057ebb27.

This screws my cursor up just starting a bare X server on Intel,
I get the X more like <> than ><..
2007-07-31 10:34:56 +10:00
Aaron Plattner
cec793ef7a Include picturestr.h in xf86Crtc.h to pick up definition of PictTransform. 2007-07-26 11:49:46 -07:00
Michel Dänzer
0f057ebb27 Fix RandR 1.2 conversion of two colour to ARGB cursor on MSB first platforms.
Doesn't seem necessary to do anything here...
2007-07-25 17:04:04 +02:00
Gustavo Pichorim Boiko
5b424b562e Set the crtc before the output change is notified
Set the new randr crtc of the output before the output change notification is
delivered to the clients.
Remove RROutputSetCrtc as it is not really necessary. All we have to do is set
the output's crtc on RRCrtcNotify
2007-07-23 14:47:45 -07:00
Keith Packard
dc9c519628 Make PreferredMode option in config file override EDID mode preferences.
When the PreferredMode option is selected in the config file, remove the
M_T_PREFERRED bit from all other preferred modes to force the config file
mode to be selected.
2007-07-19 13:31:07 -07:00
Keith Packard
73a93c5a6b Query modes on disabled (but not ignored) outputs.
Code that disabled mode detection on disabled outputs would confuse
applications by listing said outputs as connected but without any modes.
This makes the disabled state in the config file affect only the initial
configuration and not subsequent modifications by RandR.
2007-07-19 13:31:00 -07:00
Keith Packard
9fc36a391c Make pending property changes trigger mode setting.
The DDX code was ignoring pending properties for computing when mode setting
was required. This meant that configurations differing only in property
values would not cause the mode to be set.
2007-07-19 13:30:51 -07:00
Keith Packard
ac979c1651 MakeAtom needs length without trailing NUL. sizeof("string") includes NUL.
I made a mistake in some new code using MakeAtom, passing the size of the
string instead of the length of the string. Figuring there might be other
such mistakes, I reviewed the server code and found four bugs of the same
form.
2007-07-14 12:13:17 -07:00
Keith Packard
393171034c Add RandR reflection support.
Replace the ad-hoc transformation mechanisms with matrices.
Prepares for more general transformation as well.
2007-07-14 09:03:47 -07:00
Adam Jackson
e316fa59fe Add per-monitor config file option for maximum pixel clock. 2007-07-10 14:20:55 -04:00
Gero Mudersbach
00e8295b7e Bug #10814: Add needed quirk for Samsung 225BW like the 226BW. 2007-07-02 11:40:11 -07:00
Eric Anholt
667e95f2e8 Correct the xf86EdidModes.c file description. 2007-07-02 11:36:11 -07:00
Adam Jackson
4d76075dbb Death to RCS tags. 2007-06-29 14:06:52 -04:00
Keith Packard
d2177c8091 Skip driver mode detection/configuration when !vtSema.
When the server is not active, make sure the driver functions related to
mode setting are not called.
2007-06-22 02:12:58 +01:00
Peter Hutterer
1f97a76476 Merge branch 'master' into mpx
Conflicts:

	dix/devices.c
	hw/xfree86/common/xf86Xinput.c
	hw/xfree86/loader/xf86sym.c
	mi/mieq.c
2007-06-19 17:20:52 +09:30
Daniel Ciocea
c079cce9d8 Fix sync polarity on Samsung SyncMaster 205BW monitor.
need to use standard VESA sync polarity instead of the
EDID provided -hsync -vsync values.
2007-06-08 18:12:21 -07:00
Alan Hourihane
fa877d7ff2 Fix mode validation against the maximum X/Y values configured
at server startup, and not against the virtual X/Y parameters
as they can change.

This fixes an issue when canGrow is TRUE and modes get dropped
when using the virtual X/Y parameters.
2007-05-30 13:06:45 +01:00
Keith Packard
076d070e18 Use Screen block handler for rotation to draw under DRI lock.
DRI uses a non-screen block/wakeup handler which will be executed after the
screen block handler finishes. To ensure that the rotation block handler is
executed under the DRI lock, dynamically wrap the screen block handler for
rotation.
2007-05-17 20:24:18 -07:00
Keith Packard
915563eba5 Disable all outputs and crtcs at startup.
Leaving devices enabled during server startup can cause problems during the
initial mode setting in the server, especially when they are used for
different purposes by the X server than by the BIOS. Disabling all of them
before any mode setting is attempted provides a stable base upon which the
remaining mode setting operations can be built.
2007-05-17 20:22:43 -07:00
Peter Hutterer
f28eea0647 Merge branch 'master' into mpx
Conflicts:

	dix/devices.c
	dix/events.c
2007-04-27 16:34:36 +09:30
Aaron Plattner
3ba1e8ab6d Include xf86Rename.h in xf86RandR12.h. 2007-04-24 17:20:14 -07:00
Aaron Plattner
38d14e8589 Adjust the screen pixmap's dimensions in xf86RandR12ScreenSetSize. 2007-04-22 18:04:27 -07:00
Aaron Plattner
39bc8bb0fd Don't call xf86RandR12TellChanged if it doesn't exist. Add some exports to xf86Rename.h. 2007-04-20 14:23:38 -07:00
Keith Packard
96ef0f7843 Disable SourceValidate in rotation to capture cursor.
SourceValidate is used exclusively by the software cursor code to pull the
cursor off of the screen before using the screen as a source operand. This
eliminates the software cursor from the frame buffer while painting the
rotated image though. Disabling this function by temporarily setting the
screen function pointer to NULL causes the cursor image to be captured.
(cherry picked from commit 05e1c45ade)
2007-04-19 17:49:55 -07:00
Keith Packard
7ca4baffb5 Was accidentally disabling rotation updates in mode set.
Setting a mode on an unrotated CRTC was causing all of the rotation updates
to be disabled; the loop looking for active rotation wasn't actually looking
at each crtc, it was looking at the modified crtc many times.
(cherry picked from commit 8b217dee3a)
2007-04-19 17:49:48 -07:00
Keith Packard
806a537e64 Revert "Suppress software cursor removal during rotated shadow buffer drawing."
This reverts commit 999b681cf3.
Replacing this with simpler code that just disables SourceValidate
during rotation redisplay.
2007-04-19 17:49:34 -07:00
Eric Anholt
999b681cf3 Suppress software cursor removal during rotated shadow buffer drawing. 2007-04-18 14:33:27 -07:00
Erik Andrén
53fb42e65c Syncmaster 226 monitor needs 60Hz refresh (#10545).
I've managed to solve my own bug (#10545) by applying the following
patch to the xserver.

Please apply.

<Conspiracy mode on>
This monitor is "Vista Certified". I wonder if this is a pure coincidence...
<Conspiracy mode off>

With kind regards
Erik Andrén
(cherry picked from commit a63704f14a)
2007-04-17 21:38:10 -07:00
Keith Packard
fc162c6cfa Allow outputs to be explicitly enabled in config, overriding detect.
Option "Enable" "True" will force the server to enable an output at startup
time, even if the output is not connected. This also causes the default
modes to be added for this output, allowing even sync ranges to be used to
pick out standard modes.
(cherry picked from commit a3d73ba2cb)
2007-04-16 11:52:59 -07:00
Keith Packard
c41e3bd713 Use default screen monitor for one of the outputs.
By default, use the screen monitor section for output 0, however, a driver
can change which output gets the screen monitor by calling
xf86OutputUseScreenMonitor.
(cherry picked from commit f4a8e54caf)
2007-04-16 11:52:58 -07:00
Keith Packard
cc4eb1c7ea Add quirk for Acer AL1706 monitor to force 60hz refresh.
This Acer monitor reports support for 75hz refresh via EDID, and yet when
that rate is delivered, the monitor does not sync and reports out of range.
Use the existing 60hz quirk for this monitor.
(cherry picked from commit 1328a288e9)
2007-04-16 08:11:30 -03:00
Peter Hutterer
d4dad6f84f Merge branch 'master' into mpx
Conflicts:

	configure.ac
	dix/events.c
	hw/xfree86/common/xf86Xinput.c
2007-04-12 11:11:03 +09:30
Keith Packard
bcf17df69a Disable CRTC when SetSingleMode has no matching mode. Update RandR as well.
xf86SetSingleMode tries to resize all crtcs to match the selected mode. When
a CRTC has no matching mode, it now disables the CRTC (instead of crashing).

Also, poke the RandR extension when xf86SetSingleMode is done so that
appropriate events can be delivered, and so that future RandR queries return
correct information.
(cherry picked from commit dc6c4f6989)
2007-04-10 12:36:45 -07:00
Keith Packard
a39f297ada Don't erase current crtc for outputs on CloseScreen
Erasing this variable causes some outputs (SDVO on intel) to fail
to be correctly reset at server reset time.
(cherry picked from commit 56262a4ee9)
2007-04-02 19:12:44 -07:00
Eric Anholt
11797ffdcc Move modes/ debugging output under Option "ModeDebug" in the Device section. 2007-04-02 18:21:58 -07:00
Peter Hutterer
e8777a91f3 Merge branch 'master' into mpx
Conflicts:

	Xi/closedev.c
	Xi/exevents.c
	Xi/extinit.c
	Xi/listdev.c
	dix/window.c
	hw/xfree86/common/xf86Xinput.c
	include/extinit.h
	mi/mipointer.c
2007-04-02 15:36:26 +09:30
Adam Jackson
5ba4d9eedf Refuse to create tiny modes from EDID detailed timing. 2007-03-28 12:03:19 -04:00
Keith Packard
804080a709 Make pending properties force mode set. And, remove AttachScreen calls.
Yes, two changes in one commit. Sorry 'bout that.

The first change ensures that when pending property values have been
changed, a mode set to the current mode will actually do something, rather
than being identified as a no-op. In addition, the driver no longer needs to
manage the migration of pending to current values, that is handled both
within the xf86 mode setting code (to deal with non-RandR changes) as well
as within the RandR extension itself.

The second change eliminates the two-call Create/AttachScreen stuff that was
done in a failed attempt to create RandR resources before the screen
structures were allocated. Merging these back into the Create function is
cleaner.
(cherry picked from commit 57e87e0d00)

Conflicts:

	randr/randrstr.h
	randr/rrcrtc.c

I think master and server-1.3-branch are more in sync now.
2007-03-24 00:01:47 -07:00
Keith Packard
1f77120775 Ensure that crtc desired values track most recent mode.
desiredX and desiredY were not recorded during xf86InitialConfiguration.
desiredX, desiredY and desiredRotation were not recorded during
xf86SetSingleMode.
(cherry picked from commit 36e5227215)
2007-03-23 23:44:34 -07:00
Keith Packard
7093367c39 Fix Pending property API, adding RRPostPendingProperty.
Pending Properties take effect when the driver says they do, so provide an
API to tell DIX when a property effect is made. Also, allow driver
to reject property values in RRChangeOutputProperty.
(cherry picked from commit 8eb288fbd6)
2007-03-23 01:32:34 -07:00
Keith Packard
510eaa346e Clean up xf86CrtcRec and xf86OutputRec objects at CloseScreen.
Erase pointers to structures which are freed at server reset time.
(cherry picked from commit 492c768065)
2007-03-23 01:30:24 -07:00
Keith Packard
b63e0d2545 Clean up Rotate state on server reset.
The rotation state is stored in the xf86_config structure which is not
re-initialized at server reset time. Clean it up at CloseScreen time.
(cherry picked from commit f8db7665dc)
2007-03-23 01:30:00 -07:00
Peter Hutterer
015d728bcd Merge branch 'master' into mpx
Conflicts:

	dix/devices.c
	dix/events.c
	mi/misprite.c
2007-03-19 09:42:56 +10:30
Keith Packard
9d0c3b52f2 Eliminate RRModeRec devPrivate field.
The xf86 mode setting code was mis-using this field to try and store a
pointer to a DisplayModeRec, however, each output has its own copy of every
DisplayModeRec leaving the one in in the RRModeRec devPrivate field pointing
at a random DisplayModeRec.

Instead of attempting to rectify this, eliminating the devPrivate entirely
turned out to be very easy; the DDX code now accepts an arbitrary RRModeRec
structure and set that to the hardware, converting it on the fly to a
DisplayModeRec as needed.
(cherry picked from commit 3506b9376c)
2007-03-17 23:34:58 -07:00
Keith Packard
2c93083edd Add support for user-defined modelines in RandR.
The RandR protocol spec has several requests in support of user-defined
modes, but the implementation was stubbed out inside the X server. Fill out
the DIX portion and start on the xf86 DDX portion. It might be necessary to
add more code to the DDX to insert the user-defined modes into the output
mode list.
(cherry picked from commit 63cc2a51ef)

Conflicts:

	randr/randrstr.h

Updated code to work in master with recent security API changes.
2007-03-17 23:20:07 -07:00
Keith Packard
3bffb28126 Don't wedge when rotating more than one CRTC.
Rotation block handler was re-registering the rotation damage structure,
creating an infinite loop in the damage code. Track registration of the
damage structure to avoid this.
(cherry picked from commit b14f003b0e)
2007-03-15 19:32:58 -07:00
Keith Packard
9562b6abe1 Allow xf86_reload_cursors during server init.
xf86_reload_cursors is supposed to be called from the crtc mode setting
commit hook; as that happens during server initialization, check for this
case.
(cherry picked from commit 5b77bf2d02)
2007-03-15 19:32:48 -07:00
Keith Packard
ae75019ccf Create driver-independent CRTC-based cursor layer.
This moves most of the cursor management code out of the intel driver and
into the general server code. Of course, the hope is that this code will be
useful for other driver writers as well.

Check out xf86Crtc.h for the usage information, making sure you add the
needed hooks to the crtc funcs structure for your driver.
(cherry picked from commit 4d81c99a46)
2007-03-15 00:02:40 -07:00
Keith Packard
40ae4f246d Remove stale monitor data when output becomes disconnected.
Remove parsed EDID and EDID property from disconnected outputs.
(cherry picked from commit ae9d5aa479)
2007-03-07 20:53:16 -08:00
Keith Packard
72a23d88d7 Add xf86CrtcScreenInit to share initialization across drivers.
xf86CrtcScreenInit performs initialization that needs to happen at
ScreenInit time.
(cherry picked from commit 558a4f5588)
2007-03-06 23:20:59 -08:00
Keith Packard
9b6bb06f13 Allow relative positions to use output names or monitor identifiers.
Previous version used monitor identifiers if present, otherwise output
names. That caused existing working configurations to break when additional
information was added to the configuration file.
(cherry picked from commit 3f5cedf00a)
2007-03-05 23:50:37 -08:00
Keith Packard
bed76caa6c Use EDID data to set screen physical size at server startup.
Screen physical size is set to a random value before the RandR code gets
control, override that and reset it to a value based on the compat_output
physical size (if available). If that output has no physical size, just use
96dpi as the default resolution and set the physical size as appropriate.
(cherry picked from commit 843077f23a)
2007-03-05 23:37:11 -08:00
Keith Packard
47f8361c3a Add xf86SetDesiredModes to apply desired modes to crtcs.
xf86SetDesiredModes applies the desired modes to each crtc (as selected by
xf86InitialConfiguration initially and modified by successful mode settings
afterwards). For crtcs without a desired mode, pScrn->currentMode is used to
select something workable.
(cherry picked from commit bcade98cca)
2007-03-05 22:23:19 -08:00
Keith Packard
33d2cf93fb Move xf86SetSingleMode into X server from intel driver.
This function applies a single mode to the screen (as from RandR 1.1,
XFree86-VidModeExtension or XFree86-DGA) using a policy that selects one
output to reconfigure to the requested mode and then makes all other outputs
fit within that size.
(cherry picked from commit 5a595c1f76)
2007-03-05 20:18:56 -08:00
Dave Airlie
8ba5e8d820 add a standard connector type and name for us as an output property 2007-03-05 13:46:41 +11:00
Dave Airlie
2e31872e05 modes: add commit/prepare hooks 2007-03-05 13:44:21 +11:00
Peter Hutterer
1f0075786f Merge branch 'master' into mpx
Conflicts:

	configure.ac
	dix/getevents.c
	hw/xfree86/ramdac/xf86Cursor.c
	mi/mipointer.c
	xkb/xkbUtils.c
2007-03-05 12:37:17 +10:30
Keith Packard
06b01186f6 Remove debugging ErrorF from rotation code.
(cherry picked from commit e6af7569f2)
2007-03-04 17:35:04 -08:00
Keith Packard
c14507b683 Handle non-zero origin rotated crtc. Damage crtc area on re-rotate.
Box transformation from source to dest area was broken, leaving the wrong
areas painted when the crtc origin was non-zero.

When rotating from left to right, the pixmap doesn't get reallocated, and so
no damage was left in the pixmap from xf86RotatePrepare. Separately damage
the whole crtc area when this occurs to repaint the area.
(cherry picked from commit 2a50ca2160)
2007-03-04 17:34:54 -08:00
Aaron Plattner
ea1a72946d Add a canGrow argument to xf86InitialConfiguration.
canGrow indicates to the DDX that the driver can enlarge the desktop via the
xf86_config->funcs->resize hook.  If so, xf86InitialConfiguration will set
virtual[XY] to match the configuration it chooses and will leave the crtc config
size ranges alone.  If FALSE, it will bloat the screen to fit the largest probed
mode and also set the crtc config max size to limit the desktop to the initial
virtual[XY] size.
2007-03-02 12:06:54 -08:00
Aaron Plattner
04d15da95d Add a screen resize hook to xf86CrtcConfigRec.
This hook is called when the DDX needs to resize the screen.  The driver is
responsible for changing virtualX and virtualY, along with any other related
screen properties (devPrivate.ptr, devKind, displayWidth, etc.).

Use the size range from the crtc config instead of randrp->virtual[XY] when
reporting the min and max screen sizes to the DDX.
2007-03-02 12:06:54 -08:00
Keith Packard
5631a67f64 Don't set subpixel order during startup; the screen won't be ready.
in xf86CrtcSetMode, scrn->pScreen will be NULL during server startup time,
so don't try to set the subpixel order. subpixel order will be set in the
randr initialization anyways.
(cherry picked from commit 5f6f8616d8)
2007-02-17 17:40:35 -08:00
Keith Packard
096965ec9c Ensure drivers can use new modes header files.
New modes header files required a few minor changes to be used by external
drivers, the most notable of which is the publication of the config file
parser header files.
2007-02-17 15:16:44 -08:00
Keith Packard
55797dd252 Respect rotation in initial screen size computation. 2007-02-17 15:16:34 -08:00
Keith Packard
e4507825bf Enable startup-time rotation; change rotation pixmap creation API.
Add monitor "Rotate" option taking one of "normal", "left", "inverted" or
"right". However, because initial mode selection is made before the screen
is completely initialized, we cannot create the shadow pixmap object at this
point. Pend the shadow pixmap creation until the block handler.

Note that this code is not completely functional yet.
2007-02-17 15:16:20 -08:00
Keith Packard
f350909d16 Kludge around duplicate code added in hw/xfree86/modes.
Code added in hw/xfree86/modes came from the server-1.3-branch.
Portions of this code had previously been integrated into xf86Mode.c
and edid_modes.c.

To preserve hw/xfree86/modes as much as possible, the duplicate code from
the other files has been disabled; a more careful review would figure out
where that code actually belonged.
2007-02-15 21:50:48 -08:00
Keith Packard
258beebc77 Report correct RandR 1.0 sizeID. Report correct subpixel order.
RandR 1.0 sizeID must be computed the same way every time, so when reporting
it in the ScreenChangeNotify event, just construct the usual 1.0 data block
and use that.

subpixel geometry information can be computed by looking at the connected
outputs and finding any with subpixel geometry and using one of those for
the global screen subpixel geometry. This might be improved by reporting
None if more than one screen has information and they conflict.
2007-02-15 20:37:44 -08:00
Keith Packard
ef6b1235fd Allow new modes code to build inside drivers as well as server.
Use config.h for driver builds where xorg-config.h isn't available.
2007-02-15 20:37:19 -08:00
Keith Packard
d4eb4d0650 Merge crtc/output-based mode selection code.
This code comes from the intel driver, so there's no history in this tree.

As the crtc/output-based mode selection code uses ddc, the ddc and i2c
modules have been merged into the server. Attempts to load them are safely
ignored now.
2007-02-15 20:36:20 -08:00