Summary: | X server called SharePixmapBacking on a pixmap that was not created with the USAGE_SHARED flag | ||||||
---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Karen Pease <meme02> | ||||
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> | ||||
Status: | RESOLVED MOVED | QA Contact: | Xorg Project Team <xorg-team> | ||||
Severity: | blocker | ||||||
Priority: | medium | CC: | aplattner, hans | ||||
Version: | 7.7 (2012.06) | ||||||
Hardware: | x86-64 (AMD64) | ||||||
OS: | Linux (All) | ||||||
Whiteboard: | |||||||
i915 platform: | i915 features: | ||||||
Attachments: |
|
Description
Karen Pease
2014-12-07 03:21:22 UTC
reproduce with nouveau? I can't see any codepath in the X server where this is true, two places share pixmaps, and both places create them with the flag randr.c:rrCreateSharedPixmap mpix = master->CreatePixmap(master, width, height, depth, CREATE_PIXMAP_USAGE_SHARED); if (!mpix) return FALSE; spix = PixmapShareToSlave(mpix, crtc->pScreen); The other is DRI2UpdatePrime(), which may do: PixmapShareToSlave(GetDrawablePixmap(pDraw)) But that is allowed to fail. You don't know how happy I am to check in today and see two responses to this! :) I was beginning to lose hope. Tried to see if I could do my intensive graphics work on Windows the other day since I have no GLX in Linux, but Windows "thanked" me by deciding to overwrite and corrupt my boot sector, leaving me to waste the whole evening working on a restore. :( As for reproducing with nouveau: Do you mean with my current X config, or with an X config tailored for nouveau? I removed nouveau from my modprobe.conf blacklist and simply swapped out usage of the nvidia driver in the current X config, but it didn't work - perhaps it's not compatible with modesetting? -------- [ 118.301] (II) Loading /usr/lib64/xorg/modules/drivers/nouveau_drv.so [ 118.329] (II) Module nouveau: vendor="X.Org Foundation" [ 118.329] compiled for 1.16.1, module version = 1.0.11 [ 118.329] Module class: X.Org Video Driver [ 118.329] ABI class: X.Org Video Driver, version 18.0 [ 118.329] (II) LoadModule: "modesetting" [ 118.329] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so [ 118.336] (II) Module modesetting: vendor="X.Org Foundation" [ 118.336] compiled for 1.16.0, module version = 0.9.0 [ 118.336] Module class: X.Org Video Driver [ 118.336] ABI class: X.Org Video Driver, version 18.0 [ 118.336] (II) NOUVEAU driver [ 118.336] (II) NOUVEAU driver for NVIDIA chipset families : [ 118.336] RIVA TNT (NV04) [ 118.336] RIVA TNT2 (NV05) [ 118.336] GeForce 256 (NV10) [ 118.336] GeForce 2 (NV11, NV15) [ 118.336] GeForce 4MX (NV17, NV18) [ 118.336] GeForce 3 (NV20) [ 118.336] GeForce 4Ti (NV25, NV28) [ 118.336] GeForce FX (NV3x) [ 118.336] GeForce 6 (NV4x) [ 118.336] GeForce 7 (G7x) [ 118.336] GeForce 8 (G8x) [ 118.336] GeForce GTX 200 (NVA0) [ 118.336] GeForce GTX 400 (NVC0) [ 118.336] (II) modesetting: Driver for Modesetting Kernel Drivers: kms [ 118.336] (++) using VT number 5 [ 118.336] (--) controlling tty is VT number 5, auto-enabling KeepTty [ 118.337] (EE) [drm] KMS not enabled [ 118.337] (EE) [drm] KMS not enabled [ 118.337] (EE) [drm] KMS not enabled [ 118.337] (II) modesetting(0): using drv /dev/dri/card0 [ 118.337] (EE) Screen 0 deleted because of no matching config section. [ 118.337] (II) UnloadModule: "modesetting" [ 118.337] (EE) Device(s) detected, but none match those in the config file. [ 118.337] (EE) Fatal server error: [ 118.337] (EE) no screens found(EE) [ 118.337] (EE) Please consult the Fedora Project support at http://wiki.x.org for help. [ 118.337] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. [ 118.337] (EE) [ 118.341] (EE) Server terminated with error (1). Closing log file. -------- I don't have much experience with nouveau so if I'm making an obvious mistake, my apologies (I've spent little time on nouveau but I've spent maybe 8 hours on Bumblebee and maybe 40-50 on nvidia/modesetting). I could try a very simple xorg.conf with nouveau and without modesetting if yo think that would give you useful info, or maybe play around with my kernel boot parameters. ----------- two places share pixmaps, and both places create them with the flag ----------- The other is DRI2UpdatePrime() ----------- So, what's the next step for me here? Seriously I'm up to any and all options, even giving one of you a root shell if it'd help! :) Anyone? :( Ping? I am seeing a similar issue: Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) Backtrace: Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 0: /usr/libexec/Xorg.bin (OsLookupColor+0x119) [0x59c5f9] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 1: /lib64/libc.so.6 (__restore_rt+0x0) [0x7fa42887794f] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 2: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (nvidiaAddDrawableHandler+0x30e2e) [0x7fa42209f88e] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) unw_get_proc_name failed: no unwind info found [-10] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 3: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (?+0x30e2e) [0x7fa4220453ce] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 4: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (nvidiaAddDrawableHandler+0x9d4a) [0x7fa42205162a] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 5: /usr/lib64/xorg/modules/drivers/nvidia_drv.so (nvidiaAddDrawableHandler+0x5098d6) [0x7fa422a50db6] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 6: /usr/libexec/Xorg.bin (RRCrtcDetachScanoutPixmap+0x6a) [0x4fb4fa] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 7: /usr/libexec/Xorg.bin (xf86PruneDuplicateModes+0x1a78) [0x4bced8] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 8: /usr/libexec/Xorg.bin (xf86PruneDuplicateModes+0x1b4f) [0x4bd04f] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 9: /usr/libexec/Xorg.bin (ProcRRGetOutputProperty+0x4f2) [0x502b32] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 10: /usr/libexec/Xorg.bin (RegisterResourceName+0x232) [0x45c2f2] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 11: /usr/libexec/Xorg.bin (FreeClientResources+0x6c) [0x45d1ec] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 12: /usr/libexec/Xorg.bin (FreeAllResources+0x47) [0x45d297] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 13: /usr/libexec/Xorg.bin (remove_fs_handlers+0x449) [0x43d339] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 14: /lib64/libc.so.6 (__libc_start_main+0xf0) [0x7fa428862fe0] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 15: /usr/libexec/Xorg.bin (_start+0x29) [0x4276ee] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) 16: ? (?+0x29) [0x29] Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) Segmentation fault at address 0x30 Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: Fatal server error: Jan 30 08:59:31 hpomen gdm-Xorg-:0[1323]: (EE) Caught signal 11 (Segmentation fault). Server aborting Would be nice to get some acknowledgement that all of the Xorg developers haven't died in a tragic train accident or something, even if that acknowledgement is "sorry, you're on your own, we're too understaffed to deal with all bugs". Just saying... I speak for myself based on experience and not Xorg in that if the issue you're experiencing is not present when the nouveau open-source driver is used, the problem rests with nVidia. If it is found to be a problem even with the nouveau driver, then care will be taken to resolve the actual bug (being that both projects are open source). It is not the responsibility of Xorg developers to conform their code to nuances (whatever they may be) found in proprietary drivers. nVidia needs to fix their driver so it is compatible with Xorg, not the other way around. Backup your existing configs and start with a basic video configuration utilizing the nouveau driver instead. See if the issue can be duplicated that way. As you can see above, I already attempted this with nouveau. If you want me to do something different with nouveau, please tell me and I'll do it. But nouveau and nvidia do not work in the same manner, so it's unlikely that one is going to address the nvidia problem by messing around with nouveau. Just ran nouveau again in the same config: [ 1834.260] (II) NOUVEAU driver [ 1834.260] (II) NOUVEAU driver for NVIDIA chipset families : [ 1834.260] RIVA TNT (NV04) [ 1834.260] RIVA TNT2 (NV05) [ 1834.260] GeForce 256 (NV10) [ 1834.260] GeForce 2 (NV11, NV15) [ 1834.260] GeForce 4MX (NV17, NV18) [ 1834.260] GeForce 3 (NV20) [ 1834.260] GeForce 4Ti (NV25, NV28) [ 1834.260] GeForce FX (NV3x) [ 1834.260] GeForce 6 (NV4x) [ 1834.260] GeForce 7 (G7x) [ 1834.260] GeForce 8 (G8x) [ 1834.260] GeForce GTX 200 (NVA0) [ 1834.260] GeForce GTX 400 (NVC0) [ 1834.260] (II) modesetting: Driver for Modesetting Kernel Drivers: kms [ 1834.260] (++) using VT number 5 [ 1834.260] (II) modeset(0): using drv /dev/dri/card0 [ 1834.260] (EE) Screen 0 deleted because of no matching config section. [ 1834.260] (II) UnloadModule: "modesetting" [ 1834.260] (EE) Device(s) detected, but none match those in the config file. [ 1834.260] (EE) Fatal server error: [ 1834.260] (EE) no screens found(EE) But again, I don't see what any of this has to do with xrandr errors trying to set the screen size and Xorg trying to share a non-shareable pixmap. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/465. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.