ChangeLog | 536 ++++++++++++++++++++++ configure.ac | 2 man/nouveau.man | 18 src/drmmode_display.c | 325 +++++++++---- src/nouveau_class.h | 1171 ++++++++++++++++++++++++++++++++++++++++++++++---- src/nouveau_dri2.c | 311 ++++++++++++- src/nouveau_exa.c | 102 +--- src/nouveau_local.h | 11 src/nouveau_wfb.c | 2 src/nouveau_xv.c | 71 +-- src/nv04_exa.c | 43 + src/nv04_xv_blit.c | 13 src/nv10_exa.c | 1 src/nv30_exa.c | 3 src/nv30_shaders.c | 1 src/nv30_xv_tex.c | 20 src/nv40_exa.c | 3 src/nv40_xv_tex.c | 20 src/nv50_accel.c | 82 ++- src/nv50_accel.h | 12 src/nv50_exa.c | 23 src/nv50_xv.c | 188 ++++++-- src/nv_accel_common.c | 109 ++++ src/nv_const.h | 8 src/nv_dma.c | 24 - src/nv_driver.c | 150 +++--- src/nv_include.h | 4 src/nv_proto.h | 17 src/nv_type.h | 9 29 files changed, 2766 insertions(+), 513 deletions(-)
New commits: commit 8d2f1207d232c6c3ad3d0323b91434ad2bf8008e Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> Date: Wed Jan 26 13:00:35 2011 +1100 Imported Upstream version 0.0.16+git20110107+b795ca6e diff --git a/ChangeLog b/ChangeLog index 71b05d6..39fbc4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,484 @@ +commit 889629becd8ac2ea718c3a2fc1f8be29596a8ffa +Merge: b9f414c b795ca6 +Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> +Date: Wed Jan 26 12:56:27 2011 +1100 + + Merge commit 'b795ca6e97fae9' into upstream-ubuntu + +commit b795ca6e97fae9735843748585401098dae1c3e1 +Author: Ben Skeggs <bske...@redhat.com> +Date: Fri Jan 7 13:33:36 2011 +1000 + + nv50: fix pitch of linear scanout buffers + + Un-breaks NoAccel on these chipsets. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit dc89dac734167bcbc667b39ca6ee2043871a60bf +Author: Xavier Chantry <chantry.xav...@gmail.com> +Date: Sun Dec 19 23:17:34 2010 +0100 + + nv04/exa: kill useless WAIT_RING + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit b76b43928bf4dcf5ce3a4b58c7fefe780070c0d3 +Author: Ben Skeggs <bske...@redhat.com> +Date: Tue Dec 21 16:25:23 2010 +1000 + + add back generic include of nouveau_pushbuf.h + + So places that FIRE_RING() still work. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit c2092a458401377f421d9bdfe1d97ce580b99508 +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Dec 20 11:50:57 2010 +1000 + + include nv04_pushbuf.h for ring macros, rather than nouveau_pushbuf.h + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit aa2821a42706ac7b69703d1869e2d00a4ced9f4b +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Dec 20 11:53:53 2010 +1000 + + kill NVSync(), it's rather useless + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 1fc564fe3494cf0abcc848d0e90bf2232f8fd272 +Author: Ben Skeggs <bske...@redhat.com> +Date: Thu Dec 16 09:49:09 2010 +1000 + + nv50/xv: use mad in nv12 shader, rather than mul+add + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit b6cb21b91f7d0409794a14ddbdd606728d4d49e3 +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Feb 8 12:51:47 2010 +1000 + + set canDoBGNoneRoot if building against new enough server + +commit 11510f9ce8c9eab15e7f6d5962b83fc0052c8619 +Author: Ben Skeggs <bske...@redhat.com> +Date: Tue Dec 14 15:39:01 2010 +1000 + + nv50/xv: implement brightness/contrast/saturation/hue controls + + Adapted from the code in xf86-video-ati. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 214ea264cdb386520a1308a29f204e441f349cb1 +Author: Ben Skeggs <bske...@redhat.com> +Date: Tue Dec 14 14:42:24 2010 +1000 + + nv50/xv: kick csc parameters out into a constant buffer + + These were previously inlined into the shader, which is simple, but makes + implementing brightness/contrast adjustments impossible. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 8bb8231236a6b877895663aeaa9cef731d67fe68 +Author: Ben Skeggs <bske...@redhat.com> +Date: Tue Nov 30 15:27:36 2010 +1000 + + dri2: fix certain clients blocking forever when sync-to-vblank unavailable + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit f29afe65b67c9b89ceba421d9b3aee590f7ded20 +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Nov 29 09:23:35 2010 +1000 + + dri2: don't return failure from get_msc if sync-to-vblank isn't available + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 4b1d26578116f4d1745dd92a7c99413972a2bedf +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Nov 25 21:33:46 2010 +0100 + + dri2: Don't return failure from schedule_wait if sync-to-vblank is unavailable. + + Reported-by: Ben Skeggs <bske...@redhat.com> + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 1143e7a97dce1b741376e178b73b8b766e03849a +Author: Jesse Adkins <jesserayadk...@gmail.com> +Date: Tue Oct 26 16:05:32 2010 -0700 + + Purge cvs tags. + + Signed-off-by: Jesse Adkins <jesserayadk...@gmail.com> + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 22020457f43eceaf26532ecb50e46d743f4a691f +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue Oct 26 00:24:06 2010 +0200 + + dri2: Fix throttling on occluded drawables. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 9737a812aacbc544b93eeaa031cf1c2e8adbd661 +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Oct 25 10:37:08 2010 +1000 + + kms: initial pass at supporting zaphod-mode + + This works ok from some simple testing, there's undoubtedly things that + will need polishing still however. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit d40c16f5497739c0215f37566db1651a74cb20ba +Author: Francisco Jerez <curroje...@riseup.net> +Date: Sat Oct 23 02:20:30 2010 +0200 + + dri2: Fix build on X server 1.8. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit a4d580bf05d7aac1d486e5d1ba9a2201c026e5f5 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Fri Oct 22 23:09:30 2010 +0200 + + Bump the required X server version to 1.8. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit d0f2e16bc35660d01d3cd20a770cf8e613ab5323 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Fri Oct 22 23:06:28 2010 +0200 + + dri2: Report damage on page-flipped drawables. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit c61e8d03161adcfbba4162172153814accf9e86b +Author: Francisco Jerez <curroje...@riseup.net> +Date: Fri Oct 22 23:05:24 2010 +0200 + + Make the sync-to-vblank helpers take a box as argument. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit a685a5c3be12f3e95a6ec1140af115e7ef28fcaa +Author: Francisco Jerez <curroje...@riseup.net> +Date: Wed Oct 13 18:45:04 2010 +0200 + + dri2: Implement the ScheduleWaitMSC/GetMSC hooks. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit eb83c830c87bce345748edef3b50660246143db7 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 21 22:57:08 2010 +0200 + + dri2: Add pageflip/exchange support. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit c88f13e25b0040c1dd0f93e0ac40f62a6005ce59 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 14 22:25:50 2010 +0200 + + Allocate a tiled scanout on pre-nv50 too. + + Pageflip between tiled and non-tiled surfaces isn't such a good idea. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 4642d71bdffc04ce0dd458225541940c65f5443d +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 14 22:17:58 2010 +0200 + + dri2: Give out buffers ready for scanout. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 75daada678d03d2e162f8003a6f2edcbe0525f92 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 14 22:32:54 2010 +0200 + + Restructure tiled pixmap allocation in a single place. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 70f0d2c886ceaa965ca4864788f4dd8e8f757a92 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 21 22:55:02 2010 +0200 + + dri2: Add sync-to-vblank support. + + Note that you need a recent enough kernel for it to work. Use the + "GLXVBlank" option to enable it (it defaults to disabled for now). + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 72dd4899ff036b09e3680ed2e09b3dbae3a7ba71 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 21 22:31:45 2010 +0200 + + nv04-nv40/exa: Make the copy hook blit downwards for non-overlapping regions. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 21ed642d3f76f286f23cd64ca817038ec94a1bf6 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Wed Oct 13 18:22:22 2010 +0200 + + Make the sync-to-vblank helpers more consistent. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 258e483d47f0f63155be18981c1118261f7675a8 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Oct 21 22:41:24 2010 +0200 + + kms: Register a wakeup handler to poll vblank/pageflip/udev events. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 4f42708c26fa57bac7854701a6e757958c8d0654 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Sun Oct 10 04:39:27 2010 +0200 + + Update to the last libdrm API. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 8c8f15c9d3a31c35bf2ef20faf8c4133295a678f +Author: Francisco Jerez <curroje...@riseup.net> +Date: Sun Oct 10 04:36:17 2010 +0200 + + nv10-nv40/exa: Fix tiled pixmap pitch alignment calculation. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit a47c274f329b3b8bfbdcf155d6d832599d823dc8 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Sun Oct 10 04:43:25 2010 +0200 + + Fix for the last xserver ABI. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit 9a5142fae6e1a0a470352f511427916e6fa01b9c +Author: Maarten Maathuis <madman2...@gmail.com> +Date: Fri Aug 27 21:11:59 2010 +0200 + + nv50/exa: Stop using wfb by default, but add an option to enable it. + + - Some scenarios, such as those heavy in core font rendering might prefer wfb. + - Other (modern) situations are better of with wfb disabled. + + Signed-off-by: Maarten Maathuis <madman2...@gmail.com> + +commit d5a6f103113985c50bbe749ed341de34af1b47a5 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue Sep 28 21:49:48 2010 +0200 + + dri2: Throttle frontbuffer flushes. + + There was no need for throttling until the hardware interchannel sync + kernel changes because the pushbuf IOCTL blocked to sync the GL and X + channels anyway. + + Signed-off-by: Francisco Jerez <curroje...@riseup.net> + +commit f1ac413d1d3dec2ccf63d4a8c79b9bd9ea578dcf +Author: Ben Skeggs <bske...@redhat.com> +Date: Mon Sep 20 08:05:00 2010 +1000 + + nv50: use 0x8697 on NVAF + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 14c93acfc3fde04415e1c6a2a056465d15c86315 +Author: Ben Skeggs <bske...@redhat.com> +Date: Fri Sep 17 13:17:37 2010 +1000 + + noaccel: fix rotation, as well as an assert during server shutdown + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 065576d5df0df4da61050d789f548801656b62d5 +Author: Ben Skeggs <bske...@redhat.com> +Date: Thu Aug 26 13:22:33 2010 +1000 + + dri2: remove explit flush from copy_region() + + Unnecessary now that we kickoff from within the flush callback chain. + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 34025f0dc9284873d4bf7e4f547ed69fc562a3c9 +Author: Ben Skeggs <bske...@redhat.com> +Date: Thu Aug 26 13:19:39 2010 +1000 + + kickoff from the flush callback chain + + This is a port of intel commit: 69d65f9184006eac790efcff78a0e425160e95aa + + Submit batch buffers from flush callback chain + + There are a few cases where the server will flush client output buffers + but our block handler only catches the most common (before going into select + If the server flushes client buffers before we submit our batch buffer, + the client may receive a damage event for rendering that hasn't happened yet + + Instead, we can hook into the flush callback chain, which the server will + invoke just before flushing output. This lets us submit batch buffers + before sending out events, preserving ordering. + + Fixes 28438: [bisected] incorrect character in gnome-terminal under compiz + https://bugs.freedesktop.org/show_bug.cgi?id=28438 + + Signed-off-by: Kristian Høgsberg <k...@bitplanet.net> + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 390f1c86d9583f4ceabd407ee47410073c2a1b55 +Author: Ben Skeggs <bske...@redhat.com> +Date: Fri Aug 20 09:48:32 2010 +1000 + + nv50/xv: support UYVY + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit 00d390952c912d4e9fc2c962caaeb90bf563d5b1 +Author: Maarten Maathuis <madman2...@gmail.com> +Date: Fri Aug 13 22:24:26 2010 +0200 + + nv50/xv: Fix the uncommon codepath to use width/height variable. + + - The common codepath should be the correct one, because that is + triggered often, while the other is rare. + - This isn't neccesarily a problem, but let's be on the safe side. + + Signed-off-by: Maarten Maathuis <madman2...@gmail.com> + +commit f5b486dd237679aec1987985f9ecffc6a4fd3105 +Author: Maarten Maathuis <madman2...@gmail.com> +Date: Fri Aug 13 22:16:51 2010 +0200 + + nv50/xv: We have 18 relocs, not 16, adjust MARK_RING. + + Signed-off-by: Maarten Maathuis <madman2...@gmail.com> + +commit 1cb6c91a9afe88d73f8a1180b00f56a9150a16ed +Author: Roy Spliet <r.spl...@student.tudelft.nl> +Date: Sat Aug 7 20:59:06 2010 +0200 + + nouveau_exa.c: move line_count logic out of UTS/DFS loop + + Signed-off-by: Roy Spliet <r.spl...@student.tudelft.nl> + Signed-off-by: Maarten Maathuis <madman2...@gmail.com> + +commit 9f50b62229d5984ee5c16bc54953c7f8e2d5e575 +Author: Ben Skeggs <bske...@redhat.com> +Date: Fri Aug 6 08:28:34 2010 +1000 + + nvc0: recognise these chipsets, and allow NoAccel mode on them + + Signed-off-by: Ben Skeggs <bske...@redhat.com> + +commit b96170a4e51c1d3167601210ca31e98283c02885 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Thu Aug 5 00:40:40 2010 +0200 + + nv10/exa: Bump maxX/maxY to 4096/4096. + + This way we can do accelerated 2D on larger pixmaps, it will still + fall back to software when we hit the 2048x2048 texturing limit in a + composite operation. + +commit 321eb2df5c8b1da4d6469037dd1d8888b508fabd +Author: Francisco Jerez <curroje...@riseup.net> +Date: Wed Aug 4 13:11:24 2010 +0200 + + Revert "nv04-nv40/exa: Match the blob behavior more closely on PrepareCopy." + + This reverts commit 9de0d97bd2fc2ee8800d48b5340a3d495525ad3e. Unnecessary + after kernel commit "drm/nouveau: Ack the context switch interrupt before + switching contexts.". + +commit db98ad23633958e52f84501c5a2061d42d346b64 +Author: Francisco Jerez <curroje...@riseup.net> +Date: Tue Jun 15 15:32:36 2010 +0200 + + dri2: Fix for the last DRI2InfoRec ABI. + + Just pre-fill the whole structure with zeros to avoid future + segfaults. + +commit 9a3d0ab43f6335ab6cd48be4aa2f4f728386b386 +Author: Ben Skeggs <bske...@redhat.com> +Date: Fri Jun 11 21:58:38 2010 +1000 + + call NVEnterVT from CreateScreenResources + + We need to grab DRM master here for things to work, so we may as well call + NVEnterVT as we used to in NVScreenInit up until the previous commit. + + Fixes server regeneration. + +commit 964eeac6dc2209da6aa8861aa8b0bc028700ab3d +Author: Ben Skeggs <bske...@redhat.com> +Date: Thu Jun 10 09:38:19 2010 +1000 + + fix for server 1.9 + +commit c079408e287ad09e954fa3985f95912c02cf06bc +Author: Christoph Bumiller <e0425...@student.tuwien.ac.at> +Date: Thu Jun 10 01:07:49 2010 +0200 + + nv50/accel: fix perspective interps in YUV to RGB shader + +commit 65153490f7d74d45a92adbd9c5e2bbe11c884b00 +Author: Ben Skeggs <bske...@redhat.com> +Date: Wed Jun 9 16:12:28 2010 +1000 + + use libc directly for [cm]alloc/free + +commit 2958cf464dca9761f0fa21c8dd2d8fa8c8a96791 +Author: Ben Skeggs <bske...@redhat.com> +Date: Thu May 27 10:06:47 2010 +1000 + + nv50/exa: rip out compat defines, we depend on 1.7 anyway + +commit af40bf0af47ebcb7de2dc418429f0b56f8c04d15 +Author: Ben Skeggs <bske...@redhat.com> +Date: Wed May 26 16:11:01 2010 +1000 + + nv50/exa: new nouveau_class.h has correct blend func defines + +commit 8950c5b2a0d318e2568bec38a39d744b968c9b85 +Author: Ben Skeggs <bske...@redhat.com> +Date: Wed May 26 16:09:48 2010 +1000 + + update nouveau_class.h + +commit b9f414c589d89887722942463bcbf5f85191e71a +Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> +Date: Tue May 18 18:36:33 2010 +1000 + + Imported Upstream version 0.0.15+git20100518+4b8f1a0 + +commit 429576639e3d463e821505eaf45c6a2ec764b456 +Merge: 9dc12f0 4b8f1a0 +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Tue May 18 16:08:22 2010 +1000 + + Merge remote branch 'upstream/master' into upstream-ubuntu + commit 4b8f1a082069a17555d4142003213cf83d4e5464 Author: Lubomir Rintel <lkund...@v3.sk> Date: Mon May 10 09:25:55 2010 +0200 @@ -116,6 +597,19 @@ Date: Tue Feb 23 15:03:38 2010 +1000 Add connector name for eDP +commit 9dc12f0de18594c12301535bf89590671ef463f6 +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Fri Feb 19 20:33:58 2010 +1100 + + Imported Upstream version 0.0.15+git+20100219+9b4118d + +commit 9f2672351b2028ac78edaeadf012f968ae237f08 +Merge: d4fd2c0 9b4118d +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Fri Feb 19 20:20:45 2010 +1100 + + Merge remote branch 'upstream/master' into upstream-ubuntu + commit 29647021044463768cbfa3eead1416ef1cf27fa1 Author: Ben Skeggs <bske...@redhat.com> Date: Thu Feb 18 14:17:57 2010 +1000 @@ -229,6 +723,42 @@ Date: Sun Jan 31 17:43:54 2010 +0100 Signed-off-by: Francisco Jerez <curroje...@riseup.net> +commit d4fd2c0762967c985e219e16914ae63fea2a5718 +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Thu Jan 28 11:52:46 2010 +1100 + + Imported Upstream version 0.0.10~git+20100128+2630a15 + +commit b08689b2ed227df98429b9926276e78f791357b6 +Merge: 4162e08 2630a15 +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Thu Jan 28 10:45:16 2010 +1100 + + Merge remote branch 'upstream/master' into upstream-ubuntu + + * upstream/master: (31 commits) + Remove nv_dripriv.h, nv_local.h + xv: use nouveau_bo_new_tile() + Remove deprecated NV1 readme + exa: remove nouveau_pixmap_offset() + exa: remove nouveau_exa_pixmap_{map,unmap} + Check for drm+kms availability in NVPciProbe() + bump xorg-server requirement to 1.7 + remove more unused code + exa: Remove non-driver pixmaps path + Remove pNv->NVArch + Remove pNv->Chipset use + remove pNv->VRAMPhysical + dri1: remove DRI1 support + xv: ifdef out another problematic piece of overlay support for the moment + Initial pass at removal of non-KMS support. + exa: Some compat defines for new pixman formats. + start using BEGIN_RING_NI + nv50: always set semaphore handle and offset + nv50: upgrade nv50_texture.h + nv50/exa: add support for more color formats + ... + commit 2630a1553d560ce2c7391bc103d4a543f7d3d0da Author: Marcin Kościelnicki <koria...@0x04.net> Date: Wed Jan 20 07:46:32 2010 +0000 @@ -493,6 +1023,12 @@ Date: Mon Dec 7 15:31:53 2009 +1000 work actually, but that's not confirmed) rejects a GART DMA object, so the usefulness is a bit more limited than I'd hoped. +commit 4162e080f2922f8aac0606b216990666b1f6e006 +Author: Christopher James Halse Rogers <r...@ubuntu.com> +Date: Mon Dec 7 13:11:46 2009 +1100 + + Imported Upstream version 0.0.10+git20091207+60a3942 + commit 60a394222b410da8bb832935fc525132218b4d94 Author: Ben Skeggs <bske...@redhat.com> Date: Thu Dec 3 21:14:00 2009 +1000 commit b795ca6e97fae9735843748585401098dae1c3e1 Author: Ben Skeggs <bske...@redhat.com> Date: Fri Jan 7 13:33:36 2011 +1000 nv50: fix pitch of linear scanout buffers Un-breaks NoAccel on these chipsets. Signed-off-by: Ben Skeggs <bske...@redhat.com> diff --git a/src/nv_accel_common.c b/src/nv_accel_common.c index b1553f6..dc7215e 100644 --- a/src/nv_accel_common.c +++ b/src/nv_accel_common.c @@ -32,13 +32,26 @@ nouveau_allocate_surface(ScrnInfoPtr scrn, int width, int height, int bpp, Bool tiled = (usage_hint & NOUVEAU_CREATE_PIXMAP_TILED); int tile_mode = 0, tile_flags = 0; int flags = NOUVEAU_BO_MAP | (bpp >= 8 ? NOUVEAU_BO_VRAM : 0); - int ret; - - if ((scanout && pNv->tiled_scanout) || - (!scanout && pNv->Architecture >= NV_ARCH_50 && bpp >= 8)) - tiled = TRUE; - - *pitch = NOUVEAU_ALIGN(width * bpp, 512) / 8; + int cpp = bpp / 8, ret; + + if (pNv->Architecture >= NV_ARCH_50) { + if (scanout) { + if (pNv->tiled_scanout) { + tiled = TRUE; + *pitch = NOUVEAU_ALIGN(width * cpp, 64); + } else { + *pitch = NOUVEAU_ALIGN(width * cpp, 256); + } + } else { + if (bpp >= 8) + tiled = TRUE; + *pitch = NOUVEAU_ALIGN(width * cpp, 64); + } + } else { + if (scanout && pNv->tiled_scanout) + tiled = TRUE; + *pitch = NOUVEAU_ALIGN(width * cpp, 64); + } if (tiled) { if (pNv->Architecture >= NV_ARCH_50) { commit dc89dac734167bcbc667b39ca6ee2043871a60bf Author: Xavier Chantry <chantry.xav...@gmail.com> Date: Sun Dec 19 23:17:34 2010 +0100 nv04/exa: kill useless WAIT_RING Signed-off-by: Francisco Jerez <curroje...@riseup.net> diff --git a/src/nv04_exa.c b/src/nv04_exa.c index f2819d2..267c7b5 100644 --- a/src/nv04_exa.c +++ b/src/nv04_exa.c @@ -150,7 +150,6 @@ NV04EXASolid (PixmapPtr pPixmap, int x1, int y1, int x2, int y2) int width = x2-x1; int height = y2-y1; - WAIT_RING (chan, 3); BEGIN_RING(chan, rect, NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(0), 2); OUT_RING (chan, (x1 << 16) | y1); @@ -280,7 +279,6 @@ NV04EXACopy(PixmapPtr pDstPixmap, int srcX, int srcY, int dstX, int dstY, dstY = 0; } - WAIT_RING (chan, 4); BEGIN_RING(chan, blit, NV01_IMAGE_BLIT_POINT_IN, 3); OUT_RING (chan, (srcY << 16) | srcX); OUT_RING (chan, (dstY << 16) | dstX); commit b76b43928bf4dcf5ce3a4b58c7fefe780070c0d3 Author: Ben Skeggs <bske...@redhat.com> Date: Tue Dec 21 16:25:23 2010 +1000 add back generic include of nouveau_pushbuf.h So places that FIRE_RING() still work. Signed-off-by: Ben Skeggs <bske...@redhat.com> diff --git a/src/nv_include.h b/src/nv_include.h index 9cb697a..de76d92 100644 --- a/src/nv_include.h +++ b/src/nv_include.h @@ -79,5 +79,6 @@ #include "nouveau_grobj.h" #include "nouveau_notifier.h" #include "nouveau_local.h" +#include "nouveau_pushbuf.h" #endif /* __NV_INCLUDE_H__ */ commit c2092a458401377f421d9bdfe1d97ce580b99508 Author: Ben Skeggs <bske...@redhat.com> Date: Mon Dec 20 11:50:57 2010 +1000 include nv04_pushbuf.h for ring macros, rather than nouveau_pushbuf.h Signed-off-by: Ben Skeggs <bske...@redhat.com> diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c index 2dd6da4..45add0f 100644 --- a/src/nouveau_dri2.c +++ b/src/nouveau_dri2.c @@ -5,6 +5,7 @@ #include "xorg-server.h" #include "nv_include.h" +#include "nouveau_pushbuf.h" #ifdef DRI2 #include "dri2.h" #endif diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c index 4618994..4e9f946 100644 --- a/src/nouveau_exa.c +++ b/src/nouveau_exa.c @@ -21,6 +21,7 @@ */ #include "nv_include.h" +#include "nv04_pushbuf.h" #include "exa.h" static inline Bool diff --git a/src/nouveau_xv.c b/src/nouveau_xv.c index dba153c..c1d4ccb 100644 --- a/src/nouveau_xv.c +++ b/src/nouveau_xv.c @@ -35,6 +35,8 @@ #include "nv_include.h" #include "nv_dma.h" +#include "nv04_pushbuf.h" + #include "vl_hwmc.h" #define IMAGE_MAX_W 2046 diff --git a/src/nv04_exa.c b/src/nv04_exa.c index 2760d4b..f2819d2 100644 --- a/src/nv04_exa.c +++ b/src/nv04_exa.c @@ -23,6 +23,8 @@ #include "nv_include.h" #include "nv_rop.h" +#include "nv04_pushbuf.h" + static void NV04EXASetPattern(ScrnInfoPtr pScrn, CARD32 clr0, CARD32 clr1, CARD32 pat0, CARD32 pat1) diff --git a/src/nv04_xv_blit.c b/src/nv04_xv_blit.c index be39c0d..1b8de4f 100644 --- a/src/nv04_xv_blit.c +++ b/src/nv04_xv_blit.c @@ -34,6 +34,8 @@ #include "nv_include.h" #include "nv_dma.h" +#include "nv04_pushbuf.h" + #define FOURCC_RGB 0x0000003 #define VSYNC_POSSIBLE (pNv->dev->chipset >= 0x11) diff --git a/src/nv10_exa.c b/src/nv10_exa.c index 1acb583..1cf7a5b 100644 --- a/src/nv10_exa.c +++ b/src/nv10_exa.c @@ -28,6 +28,7 @@ #endif #include "nv_include.h" +#include "nv04_pushbuf.h" /* Texture/Render target formats. */ static struct pict_format { diff --git a/src/nv30_exa.c b/src/nv30_exa.c index b34b29c..a4dd37d 100644 --- a/src/nv30_exa.c +++ b/src/nv30_exa.c @@ -25,6 +25,7 @@ #include "nv_include.h" #include "nv30_shaders.h" +#include "nv04_pushbuf.h" typedef struct nv_pict_surface_format { int pict_fmt; diff --git a/src/nv30_shaders.c b/src/nv30_shaders.c index 7316082..fb93ef8 100644 --- a/src/nv30_shaders.c +++ b/src/nv30_shaders.c @@ -22,6 +22,7 @@ #include "nv30_shaders.h" +#include "nv04_pushbuf.h" void NV30_UploadFragProg(NVPtr pNv, nv_shader_t *shader, int *hw_offset) { diff --git a/src/nv30_xv_tex.c b/src/nv30_xv_tex.c index ffa68e4..6d4e089 100644 --- a/src/nv30_xv_tex.c +++ b/src/nv30_xv_tex.c @@ -37,6 +37,7 @@ #include "nv_dma.h" #include "nv30_shaders.h" +#include "nv04_pushbuf.h" extern Atom xvSyncToVBlank, xvSetDefaults; diff --git a/src/nv40_exa.c b/src/nv40_exa.c index ffee0e6..b14a829 100644 --- a/src/nv40_exa.c +++ b/src/nv40_exa.c @@ -22,6 +22,7 @@ #include "nv_include.h" #include "nv30_shaders.h" +#include "nv04_pushbuf.h" typedef struct nv_pict_surface_format { int pict_fmt; diff --git a/src/nv40_xv_tex.c b/src/nv40_xv_tex.c index e0444e8..0910e12 100644 --- a/src/nv40_xv_tex.c +++ b/src/nv40_xv_tex.c @@ -37,6 +37,7 @@ #include "nv_dma.h" #include "nv30_shaders.h" +#include "nv04_pushbuf.h" extern Atom xvSyncToVBlank, xvSetDefaults; diff --git a/src/nv50_accel.h b/src/nv50_accel.h index 9cdbbab..fac5cbb 100644 --- a/src/nv50_accel.h +++ b/src/nv50_accel.h @@ -1,6 +1,8 @@ #ifndef __NV50_ACCEL_H__ #define __NV50_ACCEL_H__ +#include "nv04_pushbuf.h" + /* "Tesla scratch buffer" offsets */ #define PVP_OFFSET 0x00000000 /* Vertex program */ #define PFP_OFFSET 0x00001000 /* Fragment program */ diff --git a/src/nv50_exa.c b/src/nv50_exa.c index e86f903..e8ff5aa 100644 --- a/src/nv50_exa.c +++ b/src/nv50_exa.c @@ -24,6 +24,7 @@ #include "nv_include.h" #include "nv_rop.h" +#include "nv04_pushbuf.h" #include "nv50_accel.h" #include "nv50_texture.h" diff --git a/src/nv_accel_common.c b/src/nv_accel_common.c index 1ade291..b1553f6 100644 --- a/src/nv_accel_common.c +++ b/src/nv_accel_common.c @@ -21,6 +21,7 @@ */ #include "nv_include.h" +#include "nv04_pushbuf.h" Bool nouveau_allocate_surface(ScrnInfoPtr scrn, int width, int height, int bpp, diff --git a/src/nv_driver.c b/src/nv_driver.c index e2df82e..f4aa2bc 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -24,6 +24,8 @@ #include "nv_include.h" +#include "nouveau_pushbuf.h" + #include "xorg-server.h" #include "xf86int10.h" #include "xf86drm.h" diff --git a/src/nv_include.h b/src/nv_include.h index 48f0b21..9cb697a 100644 --- a/src/nv_include.h +++ b/src/nv_include.h @@ -75,7 +75,6 @@ #include "nouveau_drmif.h" #include "nouveau_device.h" #include "nouveau_channel.h" -#include "nouveau_pushbuf.h" #include "nouveau_bo.h" #include "nouveau_grobj.h" #include "nouveau_notifier.h" commit aa2821a42706ac7b69703d1869e2d00a4ced9f4b Author: Ben Skeggs <bske...@redhat.com> Date: Mon Dec 20 11:53:53 2010 +1000 kill NVSync(), it's rather useless Signed-off-by: Ben Skeggs <bske...@redhat.com> diff --git a/src/nv_dma.c b/src/nv_dma.c index 409f42c..49ed40a 100644 --- a/src/nv_dma.c +++ b/src/nv_dma.c @@ -45,27 +45,6 @@ NVChannelHangNotify(struct nouveau_channel *chan) NVLockedUp(pScrn); } -void NVSync(ScrnInfoPtr pScrn) -{ - NVPtr pNv = NVPTR(pScrn); - struct nouveau_channel *chan = pNv->chan; - struct nouveau_grobj *gr = pNv->Nv2D ? pNv->Nv2D : pNv->NvImageBlit; - - if (pNv->NoAccel) - return; - - /* Wait for nvchannel to go completely idle */ - nouveau_notifier_reset(pNv->notify0, 0); - BEGIN_RING(chan, gr, 0x104, 1); - OUT_RING (chan, 0); - BEGIN_RING(chan, gr, 0x100, 1); - OUT_RING (chan, 0); - FIRE_RING (chan); - if (nouveau_notifier_wait_status(pNv->notify0, 0, - NV_NOTIFY_STATE_STATUS_COMPLETED, 2.0)) - NVLockedUp(pScrn); -} - Bool NVInitDma(ScrnInfoPtr pScrn) { diff --git a/src/nv_driver.c b/src/nv_driver.c index ed72194..e2df82e 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -356,8 +356,6 @@ NVLeaveVT(int scrnIndex, int flags) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVLeaveVT is called.\n"); - NVSync(pScrn); - ret = drmDropMaster(nouveau_device(pNv->dev)->fd); if (ret) ErrorF("Error dropping master: %d\n", ret); diff --git a/src/nv_proto.h b/src/nv_proto.h index ba8ca5e..775b094 100644 --- a/src/nv_proto.h +++ b/src/nv_proto.h @@ -36,7 +36,6 @@ void NVSetPortDefaults (ScrnInfoPtr pScrn, NVPortPrivPtr pPriv); unsigned int nv_window_belongs_to_crtc(ScrnInfoPtr, int, int, int, int); /* in nv_dma.c */ -void NVSync(ScrnInfoPtr pScrn); Bool NVInitDma(ScrnInfoPtr pScrn); void NVTakedownDma(ScrnInfoPtr pScrn); commit 1fc564fe3494cf0abcc848d0e90bf2232f8fd272 Author: Ben Skeggs <bske...@redhat.com> Date: Thu Dec 16 09:49:09 2010 +1000 nv50/xv: use mad in nv12 shader, rather than mul+add Signed-off-by: Ben Skeggs <bske...@redhat.com> diff --git a/src/nv50_accel.c b/src/nv50_accel.c index 0369839..d6c7528 100644 --- a/src/nv50_accel.c +++ b/src/nv50_accel.c @@ -352,7 +352,7 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn) OUT_RING (chan, (0 << NV50TCL_CB_DEF_SET_BUFFER_SHIFT) | 0x4000); BEGIN_RING(chan, tesla, NV50TCL_CB_ADDR, 1); OUT_RING (chan, 0); - BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 28); + BEGIN_RING_NI(chan, tesla, NV50TCL_CB_DATA(0), 24); OUT_RING (chan, 0x80000008); OUT_RING (chan, 0x90000408); OUT_RING (chan, 0x82010400); @@ -367,20 +367,17 @@ NVAccelInitNV50TCL(ScrnInfoPtr pScrn) OUT_RING (chan, 0x82040404); OUT_RING (chan, 0xf0400201); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1pidkl-0001hc...@alioth.debian.org