Age | Commit message (Collapse) | Author |
|
In non-DRM mode, the driver waits for the hardware by checking the ring
pointers; when the ring is empty, it assumes the hardware is idle. However,
the hardware updates the ring pointers before executing a command, so if the
MI_BATCH_BUFFER_START is the last command in the ring, the driver will think
the hardware is idle while it may still be processing the contents of the
batch buffer. Placing NOOPs after the BATCH_BUFFER_START allows the driver
to know that the hardware has completed the batch buffer.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
The ring commands to insert a batch buffer to the ring in i830 form were not
terminated by a call to ADVANCE_LP_RING(). This surely would have caused
chaos.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
We haven't found a way to make FBC work reliably with GM965 yet,
(it often fails to notice CPU writes). This appears to be a
specific problem with this device, (as we haven't gotten similar
bug reports for subsequent devices such as GM45). So FBC is
now disabled by default for GM965 but can still be enabled with
the FrameBufferCompression option for experimenting/debugging.
This resolves bug #16257:
[GM965 EXA] Frame-buffer compression broken for CPU writes (XPutImage)
https://bugs.freedesktop.org/show_bug.cgi?id=16257
|
|
BIOS already says no integrated TV, and this quirk blocks TV
on R61i which has the same subdevice id as T61.
|
|
i830_bios_init() is called too late after output init, which
makes bios data mostly useless, and caused all TV init fail as
tv_present flag is not set.
|
|
Broken by 3a4151b69daa478ac6edf042d604ee41e8429c0d
|
|
This disables UXA and DRM modesetting pre-1.5, due to privates handling
issues.
|
|
The server's pci_device structure ends up conflicting with libpciaccess's.
Just don't include the server structure for this non-server tool.
|
|
|
|
ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel
|
|
Document a few more VBT structures and comment on VBIOS communication a
bit. There should be enough there now for a sufficiently motivated
developer to start implementing support for hotkeys and other features
on pre-IGD OpRegion machines.
|
|
It's very convenient that the hardware supports this non-default
mode since it's exactly what is specified by the Render extension.
This provides a more efficient means of fixing bug #16820:
[EXA] Composition result in black for areas outside of source-surface bo
https://bugs.freedesktop.org/show_bug.cgi?id=16820
without the software fallback we had in the earlier fix,
(commit 76c9ece36e6400fd10f364ee330faea470e2da64 ).
|
|
This is consistent with the documentation, (and just plain makes
more sense).
|
|
This reverts commit 76c9ece36e6400fd10f364ee330faea470e2da64.
We've learned a new technique that should let us avoid this fallback
to software. See following commit.
|
|
|
|
We wish it wouldn't, but the hardware ignores the alpha in the
BorderColor we set when the source picture format has no alpha
in it, (and it uses alpha of 1.0 where we want 0.0). For now,
fallback for these cases. This gives a correct result, but
obviously is not as fast as we would like.
This fixes bug #16820:
[EXA] Composition result in black for areas outside of source-surface bounds
https://bugs.freedesktop.org/show_bug.cgi?id=16820
|
|
I required the following patch on top of this to work around libpciaccess
brokenness. libpciaccess reports 0 rom size if there's no rom resource,
even if the rom file exists in sysfs.
|
|
libpciaccess (and the old X server PCI code as well) provides a function to
get the ROM contents. Code to use that was already present in the driver and
used if the INT10 function failed. Skip the INT10 and just use libpciaccess
as that eliminates several module loads and scary use of vm86.
Signed-off-by: Keith Packard <keithp@keithp.com>
|
|
Eric informed me that the repeat field exists only for backwards
compatibility with old drivers that weren't prepared for values
other than 0 or 1 here. Since we are, we can just ignore that
field and examine only repeatType. So the code's a (tiny) bit
simpler this way.
|
|
It's quite simple to support these modes---we simply need to
turn on the support for them in the hardware.
These changes have been verified with the extend-pad and
extend-reflect tests in cairo's test suite. However, this
currently required using a custom-modified version of cairo.
The issue is that released versions of cairo, (and even
cairo master so far), don't pass RepeatPad and RepeatReflect
to Render, (due to various bugs and workarounds in cairo
and pixman). I do plan to fix those issues in cairo, so that
in a future release of cairo, (1.8.2 perhaps?), the cairo
test suite will usefully test these new repeat modes in our
driver.
|
|
The existing switch statement was switching on the Boolean
repeat field rather than the correct repeatType field. This
had not caused any problem before as only two possible repeat
values were supported (RepeatNone = 0 and RepeatNormal = 1)
so they were always the same as the repeat field.
Soon, however, we'll be supporting more repeat types, so we'll
need to switch on the correct value.
|
|
From the Intel 965 Programmer’s Reference Manual, volume 3,
chapter 2.2.2 "Mode Switch Programming Sequence".
The disable sequence should be:
- Disable planes (VGA or hires)
- Disable pipe
- Disable VGA display in 0x71400 bit 31
This patch implements that order plus waits for a vblank at the end.
Fixes bug #17756.
|
|
Dump more panel data, including number of expected entries. Had to
refactor things a bit, but now each function should get size information
so further checking can be added more easily.
|
|
On some machines it appears that the LFP info pointers give us more
accurate panel info than if we index into the LFP data table using the
panel type index. Early reports indicate that using the pointers
doesn't cause regressions, so switch to them by default to help 8xx
machines.
Fixes bug 17310 (and hopefully 17658 too).
|
|
GCC isn't smart enough to analyze the control flow and figure out that
these are false positives, but initializing them shouldn't hurt, so work
around it.
|
|
|
|
|
|
Some ADD2 card doesn't get SDVO detect status setup right,
which disabled outputs on those cards. This adds a new
option "ForceSDVODetect" to probe all SDVO ports anyway.
|
|
|
|
|
|
On DVI, centered VGA mode is used instead of native mode VGA, and
PLL on pipe is used instead of VGA PLL setting. So make sure PLL
settled down in restore time.
|
|
|
|
|
|
Adds a TV out quirk for HP Compaq nx6110. Fixes bz #17683.
|
|
This reverts commit 6a46022df57d09109fc119fedce99c156715a4d4. It should have
been attributed to Bryce.
|
|
Hopefully we can fix the VBT parsing code so we don't need this, but for the
time being it seems necessary. Fixes bz #17683.
|
|
Looks like this platform might contain VBTs that indicate an LFP is present
even though it isn't. Intended to fix bz #11368.
|
|
For CRT this trys to probe all possible port for EDID and
detects got confirmed by EDID's d/a type bit.
For HDMI/DVI, also using EDID d/a type bit to ensure it should
handle the connect or not.
|
|
Oh duh (i830_video.c):
/* Clamp dst width & height to 7x of src (overlay limit) */
if(drw_w > (src_w * 7))
drw_w = src_w * 7;
if(drw_h > (src_h * 7))
drw_h = src_h * 7;
The condition I see in the documentation appears to be src_h/drw_h < 8, that
is, src_h < 8*drw_h. It appears this was "fixed" incorrectly in e784e152.
It seems difficult to believe that this limitation would exist at all for the
texture unit.
|
|
|
|
Fixes a crash with non-GEM mode. Bug #17540.
|
|
Fixes crashes on non-GEM systems with physical hardware status page.
Bug #17540
|
|
We'll probably end up doing this differently, but avoid this path for now.
|
|
The old code had a directRendering boolean, the new one has an enum. A bunch
of the merges failed to remove the '!' in front of the old name, breaking a
bunch of 'we don't have DRI' tests.
|
|
|
|
G41 is another 4 series chipset like G45/43.
|
|
Render standby is known to cause possible hang issue on some
mobile chips, so always disable it.
|
|
Conflicts:
src/i830_batchbuffer.c
src/i830_display.c
|
|
|
|
|