visual effects

Asked by clcorne

I'm running ubuntu 8 on a dell latitude D810 laptop. I'm trying to enable my desktop effects I get a error message "Desktop effects could not be enable. How can I solve this problem.

This is a dual boot from xp to ubuntu. I have update my video drivers in xp from the dell website at this point I do not know what to do.

can someone help?

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu compiz Edit question
Assignee:
No assignee Edit question
Solved by:
clcorne
Solved:
Last query:
Last reply:
Revision history for this message
Gord Allott (gordallott) said :
#1

what is your graphics card?

you may need to enable your hardware drivers. goto system -> administration -> hardware drivers to see if you have any there you can enable.

Revision history for this message
clcorne (clcorne-yahoo) said :
#2

128MB ATI Mobility Radeon X600

Revision history for this message
Gord Allott (gordallott) said :
#3

it seems that graphcics chip is blacklisted for desktop effects, it causes problems with desktop effects.

you can manually override the 'blacklist' by editing /usr/bin/compiz with root privilages (type 'gksudo gedit /usr/bin/compiz' into a terminal) and adding the string "SKIP_CHECKS=yes" after the inital comments (comments are lines that start with a #)

after you have saved the file you can try enabling desktop effects again. i can't guarentee this will work however as im sure that the graphics chip is blacklisted for a reason.

Revision history for this message
clcorne (clcorne-yahoo) said :
#4

I did not see the information. this is what I see below.

#!/bin/sh
# Compiz Manager wrapper script
#
# Copyright (c) 2007 Kristian Lyngstøl <email address hidden>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
# Contributions by: Treviño (3v1n0) <email address hidden>, Ubuntu Packages
#
# Much of this code is based on Beryl code, also licensed under the GPL.
# This script will detect what options we need to pass to compiz to get it
# started, and start a default plugin and possibly window decorator.
#

COMPIZ_BIN_PATH="/usr/local/bin/" # For window decorators and compiz
PLUGIN_PATH="/usr/local/lib/compiz/"
GLXINFO="/usr/bin/glxinfo"
KWIN="/usr/bin/kwin"
METACITY="/usr/bin/metacity"
COMPIZ_NAME="compiz" # Final name for compiz (compiz.real)

# For Xgl LD_PRELOAD
LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa"
LIBGL_FGLRX="/usr/lib/fglrx/libGL.so.1.2.xlibmesa"

# Minimum amount of memory (in kilo bytes) that nVidia cards need
# to be allowed to start
# Set to 262144 to require 256MB
NVIDIA_MEMORY="65536" # 64MB
NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default

# For detecting what driver is in use, the + is for one or more /'s
XORG_DRIVER_PATH="/usr/lib/xorg/modules/drivers/+"

if [ -x $METACITY ]; then
 FALLBACKWM="${METACITY}"
elif [ -x $KWIN ]; then
 FALLBACKWM="${KWIN}"
else
 FALLBACKWM=true
fi
FALLBACKWM_OPTIONS="--replace $@"

# Driver whitelist
WHITELIST="nvidia intel ati radeon i810 fglrx"

# blacklist based on the pci ids
# See http://wiki.compiz-fusion.org/Hardware/Blacklist for details
#T=" 1002:5954 1002:5854 1002:5955" # ati rs480
#T="$T 1002:4153" # ATI Rv350
#T="$T 1002:3152 1002:3150 1002:5462 1002:5653 " # ati X300 X600,X600 X700
#T="8086:1132" # intel i815 (LP: #221920)
BLACKLIST_PCIIDS="$T"
unset T

COMPIZ_OPTIONS="--ignore-desktop-hints --replace"
COMPIZ_PLUGINS="core"
ENV=""

# Use emerald by default if it exist
USE_EMERALD="yes"

# No indirect by default
INDIRECT="no"

# Default X.org log if xset q doesn't reveal it
XORG_DEFAULT_LOG="/var/log/Xorg.0.log"

# Set to yes to enable verbose
VERBOSE="yes"

# Echos the arguments if verbose
verbose()
{
 if [ "x$VERBOSE" = "xyes" ]; then
  printf "$*"
 fi
}

# abort script and run fallback windowmanager
abort_with_fallback_wm()
{
 if [ "x$SKIP_CHECKS" = "xyes" ]; then
  verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
  return 0;
 fi

 if [ "x$CM_DRY" = "xyes" ]; then
  verbose "Dry run failed: Problems detected with 3D support.'n"
  exit 1;
 fi

 verbose "aborting and using fallback: $FALLBACKWM \n"

 if [ -x $FALLBACKWM ]; then
  exec $FALLBACKWM $FALLBACKWM_OPTIONS
 else
  printf "no $FALLBACKWM found, exiting\n"
  exit 1
 fi
}

# Check for non power of two texture support
check_npot_texture()
{
 verbose "Checking for non power of two support: "
 if glxinfo 2> /dev/null | egrep -q '(GL_ARB_texture_non_power_of_two|GL_NV_texture_rectangle|GL_EXT_texture_rectangle|GL_ARB_texture_rectangle)' ; then
  verbose "present. \n";
  return 0;
 else
  verbose "Not present. \n"
  return 1;
 fi

}

# Check for presence of FBConfig
check_fbconfig()
{
 verbose "Checking for FBConfig: "
 if [ "$INDIRECT" = "yes" ]; then
  $GLXINFO -i | grep -q GLX.*fbconfig
  FB=$?
 else
  $GLXINFO | grep -q GLX.*fbconfig
  FB=$?
 fi

 if [ $FB = "0" ]; then
  unset FB
  verbose "present. \n"
  return 0;
 else
  unset FB
  verbose "not present. \n"
  return 1;
 fi
}

# Check for TFP
check_tfp()
{
 verbose "Checking for texture_from_pixmap: "
 if [ $($GLXINFO 2>/dev/null | grep GLX_EXT_texture_from_pixmap -c) -gt 2 ] ; then
  verbose "present. \n"
  return 0;
 else
  verbose "not present. \n"
  if [ "$INDIRECT" = "yes" ]; then
   unset LIBGL_ALWAYS_INDIRECT
   INDIRECT="no"
   return 1;
  else
   verbose "Trying again with indirect rendering:\n";
   INDIRECT="yes"
   export LIBGL_ALWAYS_INDIRECT=1
   check_tfp;
   return $?
  fi
 fi
}

# Check wether the composite extension is present
check_composite()
{
 verbose "Checking for Composite extension: "
 if xdpyinfo -queryExtensions | grep -q Composite ; then
  verbose "present. \n";
  return 0;
 else
  verbose "not present. \n";
  return 1;
 fi
}

# Detects if Xgl is running
check_xgl()
{
 verbose "Checking for Xgl: "
 if xvinfo | grep -q Xgl ; then
  verbose "present. \n"
  return 0;
 else
  verbose "not present. \n"
  return 1;
 fi
}

# Check if the nVidia card has enough video ram to make sense
check_nvidia_memory()
{
    if [ ! -x "$NVIDIA_SETTINGS" ]; then
 return 0
    fi

 MEM=$(${NVIDIA_SETTINGS} -q VideoRam | egrep Attribute\ \'VideoRam\'\ .*: | cut -d: -f3 | sed 's/[^0-9]//g')
 if [ $MEM -lt $NVIDIA_MEMORY ]; then
  verbose "Less than ${NVIDIA_MEMORY}kb of memory and nVidia";
  return 1;
 fi
 return 0;
}

# Check for existence if NV-GLX
check_nvidia()
{
 if [ ! -z $NVIDIA_INTERNAL_TEST ]; then
  return $NVIDIA_INTERNAL_TEST;
 fi
 verbose "Checking for nVidia: "
 if xdpyinfo | grep -q NV-GLX ; then
  verbose "present. \n"
  NVIDIA_INTERNAL_TEST=0
  return 0;
 else
  verbose "not present. \n"
  NVIDIA_INTERNAL_TEST=1
  return 1;
 fi
}

# Check if the max texture size is large enough compared to the resolution
check_texture_size()
{
 TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')
 RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//')
 VRES=$(echo $RESOLUTION | sed 's/.*x//')
 HRES=$(echo $RESOLUTION | sed 's/x.*//')
 verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
 if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
  verbose "Failed.\n"
  return 1;
 fi
 verbose "Passed.\n"
 return 0
}

# check driver whitelist
running_under_whitelisted_driver()
{
 LOG=$(xset q|grep "Log file"|awk '{print $3}')
 if [ "$LOG" = "" ]; then
     verbose "xset q doesn't reveal the location of the log file. Using fallback $XORG_DEFAULT_LOG \n"
     LOG=$XORG_DEFAULT_LOG;
 fi
 if [ -z "$LOG" ];then
  verbose "AIEEEEH, no Log file found \n"
  verbose "$(xset q) \n"
 return 0
 fi

 #don't run on laptops using ati driver
 if laptop-detect; then
  for DRV in ati radeon; do
                 if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG &&
                    ! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG;
                 then
    verbose "Found laptop using ${DRV} driver. \n"
                         return 1
                 fi
  done
 fi

 for DRV in ${WHITELIST}; do
  if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG &&
     ! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG;
  then
   return 0
  fi
 done
 verbose "No whitelisted driver found\n"
 return 1
}

# check pciid blacklist
have_blacklisted_pciid()
{
 OUTPUT=$(lspci -n)
 for ID in ${BLACKLIST_PCIIDS}; do
  if echo "$OUTPUT" | egrep -q "$ID"; then
   verbose "Blacklisted PCIID '$ID' found \n"
   return 0
  fi
 done
 OUTPUT=$(lspci -vn | grep -i VGA)
 verbose "Detected PCI ID for VGA: $OUTPUT\n"
 return 1
}

build_env()
{
 if check_nvidia; then
  ENV="__GL_YIELD=NOTHING "
 fi
 if [ "$INDIRECT" = "yes" ]; then
  ENV="$ENV LIBGL_ALWAYS_INDIRECT=1 "
 fi
 if check_xgl; then
  if [ -f ${LIBGL_NVIDIA} ]; then
   ENV="$ENV LD_PRELOAD=${LIBGL_NVIDIA}"
   verbose "Enabling Xgl with nVidia drivers...\n"
  fi
  if [ -f ${LIBGL_FGLRX} ]; then
   ENV="$ENV LD_PRELOAD=${LIBGL_FGLRX}"
   verbose "Enabling Xgl with fglrx ATi drivers...\n"
  fi
 fi

 ENV="$ENV FROM_WRAPPER=yes"

 if [ -n "$ENV" ]; then
  export $ENV
 fi
}

build_args()
{
 if [ "x$INDIRECT" = "xyes" ]; then
  COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering "
 fi
 if check_nvidia; then
  if [ "x$INDIRECT" != "xyes" ]; then
   COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding"
  fi
 fi
}

####################
# Execution begins here.

# Read configuration from XDG paths
if [ -z "$XDG_CONFIG_DIRS" ]; then
 test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
else
 test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager
fi

if [ -z "$XDG_CONFIG_HOME" ]; then
 test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
else
 test -f $XDG_CONFIG_HOME/compiz/compiz-manager && . $XDG_CONFIG_HOME/compiz/compiz-manager
fi

# Don't use compiz when running the failsafe session
if [ "x$GNOME_DESKTOP_SESSION_ID" = "xFailsafe" ]; then
 abort_with_fallback_wm
fi

if [ "x$LIBGL_ALWAYS_INDIRECT" = "x1" ]; then
 INDIRECT="yes";
fi

# if we run under Xgl, we can skip some tests here
if ! check_xgl; then
 # if vesa or vga are in use, do not even try glxinfo (LP#119341)
 if ! running_under_whitelisted_driver || have_blacklisted_pciid; then
  abort_with_fallback_wm
 fi
 # check if we have the required bits to run compiz and if not,
 # fallback
 if ! check_tfp || ! check_npot_texture || ! check_composite || ! check_texture_size; then
  abort_with_fallback_wm
 fi

 if check_nvidia && ! check_nvidia_memory; then
  abort_with_fallback_wm
 fi

 if ! check_fbconfig; then
  abort_with_fallback_wm
 fi
fi

# load the ccp plugin if present and fallback to plain gconf if not
if [ -f ${PLUGIN_PATH}libccp.so ]; then
 COMPIZ_PLUGINS="$COMPIZ_PLUGINS ccp"
elif [ -f ${PLUGIN_PATH}libgconf.so ]; then
 COMPIZ_PLUGINS="$COMPIZ_PLUGINS glib gconf"
fi

# get environment
build_env
build_args

if [ "x$CM_DRY" = "xyes" ]; then
 verbose "Dry run finished: everything should work with regards to Compiz and 3D.\n"
 exit 0;
fi

${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS || exec $FALLBACKWM $FALLBACKWM_OPTIONS

Revision history for this message
Gord Allott (gordallott) said :
#5

after this bit add 'SKIP_CHECKS=yes' (without the quote marks)

#!/bin/sh
# Compiz Manager wrapper script
#
# Copyright (c) 2007 Kristian Lyngstøl <email address hidden>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
# Contributions by: Treviño (3v1n0) <email address hidden>, Ubuntu Packages
#
# Much of this code is based on Beryl code, also licensed under the GPL.
# This script will detect what options we need to pass to compiz to get it
# started, and start a default plugin and possibly window decorator.
#

Revision history for this message
clcorne (clcorne-yahoo) said :
#6

Thank you for all the help that you have given me. I entered that code and it still did not work and I restarted my computer.

Revision history for this message
Gord Allott (gordallott) said :
#7

i'm affraid that your graphics chip just doesn't work with desktop effects then unfortunatly

Revision history for this message
clcorne (clcorne-yahoo) said :
#8

I don't know what I did, but I installed my ubuntu and re stalled it and it just started working. thanx.