Age | Commit message (Collapse) | Author |
|
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.
|
|
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).
|
|
Instead of using memset to zero the structure (at the wrong time, no less),
use xcalloc to gather pre-initialized memory.
|
|
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.
|
|
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.
|
|
For EXA, this requires version 2.1 of EXA to do rotation, as the VT switching
issues were too complicated otherwise.
|
|
|
|
git://proxy01.pd.intel.com:9419/git/xorg/driver/xf86-video-intel into crestline
|
|
git://proxy01.pd.intel.com:9419/git/xorg/driver/xf86-video-intel into modesetting
Conflicts:
src/i830_driver.c
|
|
|
|
|
|
|
|
|
|
With this, additional power saving occurs with the core screensaver, for
example by turning off LVDS backlight.
|
|
tell DRI we are smashing the context state.
|
|
Also, add bind/unbind of the shadow rotate buffers, which was missed in a
previous commit.
|
|
The remaining issue is having a cursor image per CRTC so that the cursors can
be rotated on the independently rotated CRTCs.
|
|
|
|
With this, the screen now gets rotated, though there are major issues.
|
|
|
|
Also, add a bit more error checking.
|
|
|
|
|
|
It currently displays garbage.
|
|
|
|
|
|
|
|
|
|
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).
|
|
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.
|
|
|
|
|
|
A side effect is the reduction in vertex dispatch, which is nice.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
Several new global functions were not put into the header file leading to
potential mismatches between declaration and definition.
|
|
|
|
RandR 1.2 requires a new rotation structure for per-CRTC rotation.
|
|
|