summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-05-083D_STATE_VERTEX_BUFFERS takes four 32-bit values, not three.Keith Packard
The spec says this command takes an extra (mbz) 32-bit value, so let's provide it with one. Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit ed492131c13715b73c14d328d0668120acb58b40)
2009-05-08Fix crash with XV with large virtual displayAlbert Damen
If a virtual display with width > 2048 is used, the first time an XV buffer is needed will result in a BadAlloc error message, but the next time X would crash. Signed-off-by: Eric Anholt <eric@anholt.net> (cherry picked from commit d7ca870e1ce251d42e3689a8e1e7d080ab1325fb)
2009-05-06Split i915 textured video commands to fit into batch buffers.Carl Worth
i915 textured video commands are quite long, but must be contained in the same batch buffer as the 3D setup commands. When the number of clip rects for the video becomes too large for the associated commands to fit in the same batch buffer, this change breaks the sequence into pieces, ensuring that each batch contains the necessary setup sequence. Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit 8255cca2c9092f7ecb798944aa8f03fa3efcfa6c) Conflicts: src/i915_video.c
2009-05-06Hold reference to video binding table until all rects are painted.Carl Worth
The optimization of unreferencing the binding table when the relocation is posted causes the object to be dereferenced for each box in the clip list, causing general chaos in the buffer manager. It's easier to just hold a reference to the object until all of the boxes are painted and then drop it. Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit 11a853bd8e5d907fe7f5bd907453bcdac9032861) Conflicts: src/i965_video.c
2009-05-06intel_batch_start_atomic: fix size passed to intel_batch_require_space (*4)Keith Packard
intel_batch_start_atomic takes an argument in 32-bit units, and so it must multiply that by 4 before passing it to intel_batch_require_space, which takes an argument in bytes. We should figure out what units we want to use and use the same everywhere... Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit 1142353b487c155a31011923fbd08ec67e60f505)
2009-04-17KMS: hook up output properties for randrZhenyu Wang
This gets output properties from kernel, then hook them up for randr. So we can control output properties through randr like in UMS. Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
2009-04-15Clarify that the default acceleration is UXA if KMS is available.Carl Worth
Stale documentation considered harmful of course. (cherry picked from commit 506c810f8f3db89048dda9777902f142ffeb86aa)
2009-04-13Turn on front buffer tiling in KMS.Li Peng
This code disabled front buffer tiling in KMS. Turn it on since kernel handles all tiling now, this improves performance of x11perf -aa10text from 97k to 286k on my 945GME. Should help with #20761, if not totally fix it. Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Li Peng <peng.li@intel.com> (cherry picked from commit 9b615a52671aacf34666f90ecfff98651ce6afe2)
2009-04-13set broadcast RGB mode for integrated HDMI output.Ma Ling
(cherry picked from commit 62ba7211fe9b6aada125ebfe34cf7161e817ad6b)
2009-04-13set broadcast RGB mode for HDMI and TMDS from SDVOX outputMa Ling
Almost all digital TVs accept broadcast RGB values from 16 to 235 for each channel, otherwise for those uncompensated videos, when RGB values are set from 0 to 255, they will shows black and whiter clamping, which seriously degrades picture quality. The patch will enable the broadcast RGB mode for hdtv according to user's setting. It fixed bug #14486 (cherry picked from commit 69388953ce889080d5f014123d89bf3eb45f3d8d)
2009-04-08Don't enable kernel execbuf fencing w/EXAJesse Barnes
If we enable kernel execbuf fence register management, it's best if the kernel manages all fence registers. This works fine if the accel method is managing pixmaps or doesn't use offscreen pixmaps. However with EXA, pixmap accesses are done relative to the framebuffer BAR mapping (pI830->FbBase) and the Screen pixmap address. So if we try to set the screen pixmap to point at a GTT mapped (and therefore properly fenced) address, later calls to intel_get_pixmap_offset() will call into EXA, which will use the pseudo-random pixmap addr and the EXA offscreen base addr (which is really just FbBase) to calculate the offset. This will fail. So disable kernel fence reg management in the EXA case (this is easier than adding proper EXA pixmap management to xf86-video-intel, and makes more sense since we'll be removing EXA soon anyway). Fixes FDO #21027. Also happens to fix FDO #21029 (as tested by Carl Worth <cworth@cworth.org). (cherry picked from commit 620e97bbd6a811ad69b8ac94df1fe2c9edf65549)
2009-04-07Fix value for MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOWShuang He
Since the change to scan-line based video sync, (rather than vblank- based), we've only been getting tear-free video on one of the two pipes. This fixes that bug by using the correct constant for waiting on PIPEA. (cherry picked from commit 0a0731c11d10392cdc55ecc04e4e3575c8b3fe57)
2009-04-07Don't clip video to CRTC in the case of textured videoCarl Worth
Since we're not limited by a single overlay plane on a single pipe, we want to not clip at all, (so that the correct video appears on both pipes). This fixes bug #20980 which shows a video spanning two pipes being rendered incorrectly. (cherry picked from commit 940c2aad4d174b6609bdc49f8c99a4bc37926516)
2009-04-07quirk LVDS on ibase MB890 855GM boardZhenyu Wang
fix bug #19529 (cherry picked from commit 63b4b5efac936c674dedad8125a8dbac4f000908)
2009-04-06Fix new video sync-to-blank code for multi-headCarl Worth
We need to account for a non-zero Y offset for the CRTC. Without this, we don't sync to the correct region, so tearing becomes visible again. (cherry picked from commit 5d9d9a2e466474a0508a15b294a91507ccb3ccc1)
2009-04-06Use best PLL timing values for G4X platformMa Ling
construct function to find precise parameters from internal spreadsheet table on G4X platform. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit 7c94227dd4fa2164bebb36234958053bf1d26c12)
2009-04-06Define documented PLL timing limits for G4X platformMa Ling
These timings on G4X platform were specified by internal spreadsheet from the chipset group. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit 48db5bde9298f1126dfb42f4be8a3d61166abfd8)
2009-04-06Remove support for 'auto'(-1) value of XV_SYNC_TO_VBLANKCarl Worth
We previously had a heurstic here where we would only sync to vblank for windows that covered more than 25% of the screen. We don't need this anymore since the new approach to sync, (WAIT_FOR_SCANLINE_WINDOW), is not excessively costly for small windows. (cherry picked from commit 3d4ee3cac1d63dfdf7b54c8ba577f3b77637499f)
2009-04-06Use WAIT_FOR_SCAN_LINE instead of WAIT_FOR_VBLANKCarl Worth
Either way, the goal is tear-free video playing. But waiting for a scan-line window not only has the advantage of being cheaper for small windows, but also avoids hanging the GPU in the case of the pipe getting turned off, (by screensaver, for example), while a batch is waiting for a VBLANK that will never occur. This fixes that GPU hang. (cherry picked from commit bc3312fd7c03d09a231dfebfe390fe668ad15d1e)
2009-04-06Fix offset in begin_gtt_access caseJesse Barnes
Don't use bo->virtual in the begin_gtt_access case, use the framebuffer mapping and bo offset instead. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (cherry picked from commit 6cd914ef315036ce8e91c7b6492994353e8ed2d8)
2009-04-06SDVO: fix output flag dumping for unknown typeZhenyu Wang
Found by Hugo Jacques <hugo.jacques@verint.com> (cherry picked from commit fad714c40078d22fff82dc0692a344f66ddf9680)
2009-04-06SDVO: add composite TV out supportHugo Jacques
(cherry picked from commit 00de1757dd5776962bdd4c8968181878c2ebf4c9)
2009-03-31Match GTT unmap with map in KMS rotation caseJesse Barnes
Missed this when the GTT unmap call was added. If we don't do this we trigger an assertion in libdrm, since the buffer has never been mapped normally. Fixes bug #20943. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (cherry picked from commit 087f72e1f5d7d11b8795ba80a842874f5a9bb01d)
2009-03-31Disable LVDS detect methodsZhenyu Wang
Both methods ACPI lid and SWF bit have issues in LVDS detect from wider testing. Fallback to origin code. (cherry picked from commit 4f046af760b92c07f59664359453933fb5358e3d)
2009-03-31Non-GEM allocations incorrectly force TILE_NONE (bug 20797)Albert Damen
With -intel 2.6.3 performance was very bad when using a non gem enabled kernel (2.6.27) and EXA. For example sauerbraten ran with 4 fps and screensaver GLBlur with 1 fps. With -intel 2.6.1 performance was good using the same kernel. Git bisecting led me to commit f1ed73c1ef3e3daa9f695194dcc813167cbcb53d (in 2.6 branch) "Make i830_allocate_memory take tiling parameters" as first bad commit. Using gdb I found tiling was set exactly the same in 2.6.3 as in 2.6.1, so that was good (TILE_XMAJOR for front, back and depth buffers). Looking further I found the line mem->tiling = TILE_NONE; (line 961 in src/i830_memory.c) at the end of i830_allocate_memory suspicious, as mem->tiling now already gets set via i830_allocate_aperture and some buffers do have tiling. Removing that line indeed fixed the performance issue. Now sauerbraten runs with 30+ fps and GLBlur runs smoothly. (cherry picked from commit e964d4e53af3a47de6d09c884be1cc0044d03bea)
2009-03-31Tiling fixes, third setJesse Barnes
Hopefully this concludes the fixes necessary to deal with the various combinations of kernel and user level tiling. We have several cases to handle: 1) KMS (kernel handles all tiling) 2) UMS w/memory management + kexec fencing (kernel handles all tiling) 3) UMS w/memory mangement but no kexec fencing (userland handles tiling) 4) UMS w/o memory management (userland handles tiling) For cases (1) & (2) we can use GTT mapping, which will give us good performance and take care of allocating fence registers as needed. It's important *not* to have userland set up fence regs in this case, since the kernel will be using all of them. For case (3), we use the begin/end GTT map functions provided by libdrm, in combination with pinning and fence register setup in i830_memory.c to deal with tiled surfaces. This also gives us good performance and correctness. For case (4) we use the old style virtual mapping + offset for dealing with surfaces; note that UXA doesn't seem to work in this configuration regardless of these fixes. Fixes bug #20803. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> (cherry picked from commit 8dabcc40747bfd478f296728741240241698f165)
2009-03-31Disable LVDS config parsing from VBT for nowZhenyu Wang
As wider tests showed that this doesn't work for all VBIOS, so disable it for now and reenable it after we get reliable method. (cherry picked from commit 375b2e40fcb17e94538a75392950e2533c1bb031)
2009-03-31disable center mode for 965GM and G4X platformMa, Ling
When disabling VGA mode, usually we don't need to touch VGA center mode. However because of hardware reason, for Cresline, Cantiga & Eaglelake platform, we have to disable center mode as well. The patch fixed bug- TV Out strobing regression, reported by Robert Lowery in intel-gfx@lists.freedesktop.org mailing list. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit b5b377806422c9538fa9f846819ad253c1a50846)
2009-03-31Fix VT switch with XV overlay video enabled.Kalev Lember
drm_intel_bo_unpin() was called with NULL argument. Signed-off-by: Kalev Lember <kalev@smartlink.ee> (cherry picked from commit 74d0713e002a9781ed00fdd10eb6f75907ae796c)
2009-03-31clean up man page generation and remove all traces of the i810 driverRémi Cardona
The i810 compatibility symlink has been broken since libpciaccess, so just let it die. (cherry picked from commit b345b4e6adf00f8b2626e5c2563fc159e2295cc5)
2009-03-31Don't manage fences part twoJesse Barnes
Don't try to clear fences that were never installed. Missed this bit in the last fix for #20265. (cherry picked from commit 48b91e066878db63a1558e4cd3e6d12ff9c49197)
2009-03-19Don't install fences if the kernel is managing themJesse Barnes
If execbuffer is setting up fences, it also means that the kernel is managing them at pin time, so installing one in the 2D driver in that case is an error. The fence should stick around as long as the buffer is pinned (the kernel won't steal these), though it will be freed at leavevt and re-allocated at entervt. On 965+ chips, the pin ioctl will *not* install a fence reg, but that's also ok because all 965+ operations include tiling bits, and sw fallbacks will be protected by prepare/finish access hooks, which will either access the backing store or use the GTT, which will ensure proper fencing at fault time. Fixes #20265. Acked-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 636d252f3b1eac687f7b11952e949c383cb86ed4)
2009-03-19Drop Legacy3D option, only use fixed texture space with non-gem.Kristian Høgsberg
With this change, we always expect the 3D driver to use GEM textures when the 2D driver uses GEM. When GEM is not available or disabled, we fall back to legacy fixed textures. (cherry picked from commit 73db44e7ac524e84e5f0fda2d60069a9e954ad1b)
2009-03-19Set SSC frequency for 8xx chips correctlyMa Ling
All 8xx class chips have the 66/48 split, not just 855. Fixes #18358. (cherry picked from commit 85e6b528582c2397ee9eb2132cd0d05ce12eb43d)
2009-03-19Re-enable disabled outputs after rotationJesse Barnes
The server may have made a DPMS call before doing rotation, so after we do the mode set with the rotated framebuffer, we need to re-enable the corresponding output(s). Fixes bug #20573. (cherry picked from commit bedc894a565ce3c7a50990e3f78953fc2432ad40)
2009-03-19Create known output configuration at EnterVT timeJesse Barnes
Since we added the pipe A force quirk (leaving pipe A on all the time), DPMS calls to disable it have silently returned, leaving the pipe on. If another driver (like vesafb) has enabled it, we may end up with a bad configuration, leading to hangs or blank screens at VT switch time. Fixes bug #19603. (cherry picked from commit 6deb26ae7bd796e88a5dd90df5f6c35fbc44e798)
2009-03-16TV: fix contrast and saturation for 945GZhenyu Wang
Bug #20670. (cherry picked from commit 1a6e70cd98abc63f24f710819961c24601afb59b)
2009-03-16TV: force TV as connected with TV_Connector optionZhenyu Wang
In order to bypass failure in TV load detect, TV_Connector option will always force TV as connected with user specified connector type. (cherry picked from commit 4e95327323e3d081b565147f7738eb49c28542bc)
2009-03-16Fix Xv crash with overlay video.Kalev Lember
Bug #20585. (cherry picked from commit 2026c57cf0a352d9e6f9d208cfb7d4d550614477)
2009-03-16Use UXA when KMS is activeJesse Barnes
EXA doesn't support KMS, so force UXA on if KMS is detected. And warn the user if they've specified something other than UXA in their xorg.conf. Fixes bug #20620. (cherry picked from commit 3ef9d85371a97ea5baee0c47787b3bb3cdaf5135)
2009-03-16Revert "SDVO: Switch control bus only before DDC access"Zhenyu Wang
This reverts commit ddedf19f889da2ce6d69a3afce4665e2245682fa. After i2c STOP, control bus will return back to internal registers. So this brings back to origin code that we switch to DDC bus before START. But it's ideal to only issue DDC bus switch after STOP, not before every START, which might eliminate some complains from SDVO device, that will be another patch later. (cherry picked from commit dc3ff0b514b609448025680778f0e95e1980a5d8)
2009-03-16SDVO: reset privates before output setupZhenyu Wang
For multifunction encoder, forget to reset these values will cause wrong output type in later mode setting operations. (cherry picked from commit c6b0135d209bdad3dbc641d0e264596eaf6f99d3)
2009-03-11Fix dist of xvmc sourcesDan Nicholson
The XVMC AM_CONDITIONAL is only needed around the library expression. None of the other definitons will cause anything to be built without libXvMC, but they're needed for 'make dist'. Signed-off-by: Dan Nicholson <dbn.lists@gmail.com> (cherry picked from commit 28e7f0d71fa09e15a68ab4f0de169474b6235093)
2009-03-11SDVO: fix pixel multiplier setting for TVZhenyu Wang
We should use preferred input timing's clock for correct pixel multiplier setting, otherwise we might get inconsistent multiplier setting on pipe and SDVO device for some modes. (cherry picked from commit 2fcf4fcccfe7cfa1425985d21a144137eca07f4e)
2009-03-11Fix XV with non-GEM kernels by allocating a larger fake bufmgr.Eric Anholt
Ideally we'd not be using the EXA offscreen memory manager and just hand all that memory to the fake bufmgr for non-GEM, but the fake bufmgr's too slow for that, at least currently. So compromise and take enough memory that it will succeed at XV allocations but hopefully not anger tiny-aperture systems too much. Bug #20563. (cherry picked from commit fb6e00f40f713a87c760fc7603159ed11ea9b0d5)
2009-03-09Flip the update_dri_buffers test around to only run when DRI1 is active.Eric Anholt
Fixes segfaults at startup with DRI2 and load detection, or with DRI disabled entirely.
2009-03-06DRI1: Update sarea (and other information) when CRTC configuration changes.Eric Anholt
Bug #14423. Signed-off-by: Eric Anholt <eric@anholt.net>
2009-03-06Don't allocate the render power saving context in KMS mode.Eric Anholt
That would be the kernel's job if it chooses to do it. Signed-off-by: Eric Anholt <eric@anholt.net>
2009-03-06unused variable warning fix.Eric Anholt
Signed-off-by: Eric Anholt <eric@anholt.net>
2009-03-06clean up arguments to i830_allocate_framebuffer since zaphod removal.Eric Anholt
Signed-off-by: Eric Anholt <eric@anholt.net>