Age | Commit message (Collapse) | Author |
|
|
|
Conflicts:
src/i830_dri.c
|
|
|
|
With the new mode setting code, rotation is handled outside of the driver,
so the old usage of the 'shadow' module is no longer needed. Code to
initialize the crtc structures has been moved out of the driver and into the
modes code.
|
|
|
|
|
|
This is a partial revert of 7358642e64ab6d13bc1dc1a44703ee66d715ff61
If we don't allocate it now, when the DRM version is too low there won't be any
memory allocated and DRI will fail. Instead, waste the memory in the i915tex
case for now, and leave fixing it right (check DRM version up front and decide
which memory manager to set up) to later.
|
|
pI830->mmSize is in kB.
|
|
Conflicts:
src/i830_display.c
src/i830_driver.c
|
|
Make the application of crtc desiredModes generic code instead of
per-driver by creating xf86SetDesiredModes from the code that was in EnterVT
and calling it.
Also, move the frame buffer clear until just before mode setting to make
sure things are mapped correctly.
|
|
Conflicts:
src/i830.h
src/i830_dri.c
src/i830_dri.h
src/i830_driver.c
src/i830_memory.c
src/i830_xaa.c
|
|
It takes the offset and size in pages, not bytes.
|
|
Only one of them can be active.
|
|
|
|
Conflicts:
configure.ac
src/i830_driver.c
src/i830_modes.c
src/i830_video.c
|
|
|
|
Add xf86CrtcConfigFuncs to xf86CrtcConfigInit
Add canGrow option to xf86InitialConfiguration
|
|
|
|
Previously, the structures would get allocated unnecessarily once, and
wouldn't get reallocated in time at server regen.
|
|
|
|
This fixes a crash with initial rotation and EXA due to EXA not being
initialized in time for the shadow pixmap setup.
|
|
|
|
|
|
This lets us do memory allocation just once rather than having several passes
(as long as things succeed), avoids trouble with zaphod mode, and will let us
do better automatic sizing of allocations soon.
|
|
The previous allocator worked in multiple passes, with (at least) one of
setting up allocations, another to attempt to adjust those for tiling, and
then a pass to set up the offsets and fix them in memory.
The new allocator is simpler, allocating memory immediately if possible,
setting up tiling up front, and choosing offsets immediately. AGP memory
is only allocated to back actual memory used, saving some memory that would
have been allocated for padding previous. It will also allow dynamic freeing
and reallocation of memory, which will be useful for framebuffer resizing.
|
|
This eliminates an unsightly flash of the hardware cursor during X server
startup.
|
|
Need to bump the DRI DDX version minor for the added SAREA fields.
|
|
Start time rotation requires that the pixmap be created after the server has
initialized the screens. Delay the pixmap creation until the first block
handler invocation.
|
|
As RandR needs to poke at DGA code, and we want the RandR code to be
driver-independent, it seemed easier to just make the DGA code
driver-independent as well.
|
|
|
|
Use the damage layer directly instead of via shadowfb.
|
|
These two sources are placed in higher priority to the BIOS data when
available, since the BIOS data has proven unreliable. The BIOS data is still
read, and warnings printed if it doesn't match what we probe. The BIOS data
remains useful for the situation where we want to turn on LVDS but there is no
EDID available and no current mode programmed (i.e. booting with VGA or TV
connected).
|
|
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.
|
|
|
|
|
|
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 :-).
|
|
|
|
For EXA, this requires version 2.1 of EXA to do rotation, as the VT switching
issues were too complicated otherwise.
|
|
With this, additional power saving occurs with the core screensaver, for
example by turning off LVDS backlight.
|
|
Also, add bind/unbind of the shadow rotate buffers, which was missed in a
previous commit.
|
|
Conflicts:
src/i830_driver.c
src/i830_randr.c
Just a few sync changes.
|
|
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.
|
|
|
|
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.
|
|
This reduces max framebuffer width and increases max framebuffer height on
965, reduces max X/Y on pre-965 EXA (could have caused mis-rendering), and
increases max X/Y on 965 EXA (would have prevented acceleration).
|
|
We should just call i830MarkSync/i830WaitSync in places we need,
which care for both XAA and EXA.
|
|
|
|
I830EntityIndex is shared between 810 and newer driver.
Move most EXA rendering state into I830 structure.
Declare shared variables in shared header files rather than .c.
|
|
|
|
Signed-off-by: Keith Packard <keithp@neko.keithp.com>
|