← Back to team overview

desktop-packages team mailing list archive

[Bug 1072206] Re: [nvidia] Window content is black or transparent

 

We at NVIDIA have investigated the problem and found out that it is an application bug.
Our interpretation of the specification is that creating two GLX pixmaps pointing at the same drawable is not allowed,  because it can lead to poorly defined behavior if the properties of both GLX drawables don't match. Our driver prevents this, but Compiz appears to try to do this.
Tracing the calls done by Compiz shows that in certain cases (subject to a potential race condition on the minimize animation, more reliably happening on unminimize), it will obtain an X pixmap through XCompositeNameWindowPixmap(), then call glXCreatePixmap() and use the created GLX pixmap normally, but never call glXDestroyPixmap() on it. Subsequently, it will call XCompositeNameWindowPixmap() again, while the window's pixmap hasn't changed. This isn't a bug by itself, but subsequently calling glXCreatePixmap() will fail because there already is a GLX pixmap pointing at the drawable (the one that wasn't deleted before).
The fix would be to ensure that the pre-existing GLX pixmap is destroyed before attempting to create a new one.

Here is a short trace showing the events I'm describing:

XCompositeNameWindowPixmap@xxxxxxxxxxxxxxxx.1(0x18f0790, 0x120029a, 0, 0x18fca20)             = 0x12002c4
glXCreatePixmap(0x18f0790, 0x14c, 0x12002c4);
// glXCreatePixmap returns 0x12002c5
glBindTexture(GL_TEXTURE_2D, 127);
glXBindTexImageEXT(0x18f0790, 0x12002c5, 8414, (nil));
[...]
--->Draw calls are made.
--->glXDestroyPixmap for 0x12002c5 is never called.
[...]
XCompositeNameWindowPixmap@xxxxxxxxxxxxxxxx.1(0x18f0790, 0x120029a, 0, 0x18fca20)             = 0x1200303
glXCreatePixmap(0x18f0790, 0x14c, 0x1200303);
// glXCreatePixmap returns 0x1200304
glGenTextures(1, 0x1fbf098);
// returns: 
glBindTexture(GL_TEXTURE_2D, 129);
glXBindTexImageEXT(0x18f0790, 0x1200304, 8414, (nil));
---> 0x1200304 pixmap creation fails because another (0x12002c5) points at the same drawable
---> Compiz proceeds normally and makes draw calls, but the texture it thinks it's drawing from isn't there


-- 
Arthur Huillet
NVIDIA Linux graphics

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to compiz in Ubuntu.
https://bugs.launchpad.net/bugs/1072206

Title:
  [nvidia] Window content is black or transparent

Status in Compiz:
  Confirmed
Status in NVIDIA Drivers Ubuntu:
  Confirmed
Status in Unity:
  Confirmed
Status in compiz package in Ubuntu:
  Triaged
Status in unity package in Ubuntu:
  Confirmed

Bug description:
  Ubuntu 12.10 64bit (updated from 12.04) / NVIDIA GeForce 8 proprietary
  driver.

  This bug happens to me from 12.04 from some update I think.
  It appears mostly when I open a new application and only ocassionally.
  As temporary "solution" creating some other event like opening Unity dash or opening some next window, etc. fix it. Then window content is refreshed and I can see all correctly.
  Same with stable and experimental nvidia drivers.

  Screenshot of this bug is attached.

  ProblemType: Bug
  DistroRelease: Ubuntu 12.10
  Package: unity 6.8.0-0ubuntu2
  ProcVersionSignature: Ubuntu 3.5.0-17.28-generic 3.5.5
  Uname: Linux 3.5.0-17-generic x86_64
  NonfreeKernelModules: nvidia
  .proc.driver.nvidia.gpus.0: Error: [Errno 21] je adresářem: '/proc/driver/nvidia/gpus/0'
  .proc.driver.nvidia.registry: Binary: ""
  .proc.driver.nvidia.version:
   NVRM version: NVIDIA UNIX x86_64 Kernel Module  304.48  Sun Sep  9 20:22:27 PDT 2012
   GCC version:  gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
  .proc.driver.nvidia.warnings.fbdev:
   Your system is not currently configured to drive a VGA console
   on the primary VGA device. The NVIDIA Linux graphics driver
   requires the use of a text-mode VGA console. Use of other console
   drivers including, but not limited to, vesafb, may result in
   corruption and stability problems, and is not supported.
  .tmp.unity.support.test.0:
   
  ApportVersion: 2.6.1-0ubuntu6
  Architecture: amd64
  CompizPlugins: [core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
  CompositorRunning: compiz
  Date: Sat Oct 27 23:00:14 2012
  DistUpgraded: 2012-10-23 19:34:29,842 DEBUG enabling apt cron job
  DistroCodename: quantal
  DistroVariant: ubuntu
  DkmsStatus:
   nvidia-experimental-304, 304.48, 3.5.0-17-generic, x86_64: installed
   virtualbox, 4.1.18, 3.2.0-32-generic, x86_64: installed
   virtualbox, 4.1.18, 3.5.0-17-generic, x86_64: installed
  GraphicsCard:
   NVIDIA Corporation G92 [GeForce 8800 GT] [10de:0611] (rev a2) (prog-if 00 [VGA controller])
     Subsystem: Giga-byte Technology Device [1458:3468]
  InstallationDate: Installed on 2012-08-29 (59 days ago)
  InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Beta amd64 (20120328)
  JockeyStatus:
   kmod:nvidia_experimental_304 - nvidia_experimental_304 (Proprietary, Enabled, Not in use)
   kmod:nvidia_173 - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
   kmod:nvidia_current - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
   kmod:nvidia_173_updates - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
   kmod:nvidia_current_updates - NVIDIA binary Xorg driver, kernel module and VDPAU library (Proprietary, Disabled, Not in use)
  MachineType: System manufacturer System Product Name
  MarkForUpload: True
  ProcEnviron:
   TERM=xterm
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=cs_CZ.UTF-8
   SHELL=/bin/bash
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.5.0-17-generic root=UUID=3ae94b68-4a0c-4633-aec7-b4ed25a23003 ro quiet splash vt.handoff=7
  SourcePackage: unity
  UpgradeStatus: Upgraded to quantal on 2012-10-23 (4 days ago)
  XorgConf:
   Section "Device"
   	Identifier	"Default Device"
   	Option	"NoLogo"	"True"
   EndSection
  dmi.bios.date: 05/26/2011
  dmi.bios.vendor: American Megatrends Inc.
  dmi.bios.version: 0208
  dmi.board.asset.tag: To be filled by O.E.M.
  dmi.board.name: P8H61-M LX
  dmi.board.vendor: ASUSTeK Computer INC.
  dmi.board.version: Rev x.0x
  dmi.chassis.asset.tag: Asset-1234567890
  dmi.chassis.type: 3
  dmi.chassis.vendor: Chassis Manufacture
  dmi.chassis.version: Chassis Version
  dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr0208:bd05/26/2011:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnP8H61-MLX:rvrRevx.0x:cvnChassisManufacture:ct3:cvrChassisVersion:
  dmi.product.name: System Product Name
  dmi.product.version: System Version
  dmi.sys.vendor: System manufacturer
  version.compiz: compiz 1:0.9.8.4-0ubuntu3
  version.ia32-libs: ia32-libs 20090808ubuntu36
  version.libdrm2: libdrm2 2.4.39-0ubuntu1
  version.libgl1-mesa-dri: libgl1-mesa-dri 9.0-0ubuntu1
  version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
  version.libgl1-mesa-glx: libgl1-mesa-glx 9.0-0ubuntu1
  version.nvidia-graphics-drivers: nvidia-graphics-drivers N/A
  version.xserver-xorg-core: xserver-xorg-core 2:1.13.0-0ubuntu6
  version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.3-0ubuntu2
  version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.99.99~git20120913.8637f772-0ubuntu1
  version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.20.9-0ubuntu2
  version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.2-0ubuntu3

To manage notifications about this bug go to:
https://bugs.launchpad.net/compiz/+bug/1072206/+subscriptions