[Xorg-driver-geode] Bug of No icon on desktop

Huang, FrankR FrankR.Huang at amd.com
Thu Apr 1 20:40:01 PDT 2010


Tim,

	Maybe you missed my previous mail to reply to your wiki suggestion.
---------------------------------------------------------------------------
Do you have a wiki (preferred) or a SharePoint site? It might be helpful to collect some of these tips in one place.
[Frank] Good point. Otherwise, we need to search some items by mail. It's low efficient. Do you have one?
	  I have created one at www.pbwiki.com, the address is as below:
		http://geodevideodrv.pbworks.com/
	  If you have one, we can join it. Or use this place to share points.
---------------------------------------------------------------------------
     More, please see below.
     P.S.  After you see my comments below, please see my question back here:
		1)The most confusing thing is that, using the image viewer can display the icon. But no icon is displayed in all the Nautilus and menu bar. I am still assuming the windows manager will do some handle here because the eog and Display program will not rely on the WM.
		2)If using the pixmap data instead of the image(png, jpg), the icon can be displayed under WM. But it is white and black.

-----Original Message-----
From: Writer, Tim [mailto:Tim.Writer at amd.com] 
Sent: 2010年4月2日 2:30
To: Huang, FrankR
Cc: Torres, Rigo; Tanguay, Kevin; Cui, Hunk; Xie, Michael; Ni, John; Mart Raudsepp; q-funk at iki.fi
Subject: Re: Bug of No icon on desktop

Hi Frank,

See comments inline.

Tim

P.S. I would like to start moving discussions like this to the
xorg-driver-geode mailing list.

[Frank] Ok. I throw it to the xorg-driver-geode mail list. So You have joined the xorg-driver-geode mail list? If that is so, I will throw the topic like this to mail list instead of the mail.

On Wed, Mar 31 2010, "Huang, FrankR" <FrankR.Huang at amd.com> wrote:

> Include Mart and Martin in the bug trace.
>
> Tim,
>
>
>         I used a basic Xlib application to test the icon. Some
>         problems need to be discussed based on this application.
>
>         The source code is enclosed(basicwin.tgz).
>
>         This is a simple application provided by O'Reilly's book.

This application doesn't display a pixmap itself. It creates a pixmap
icon, notifies the window manager of it, and relies on the window
manager to draw the icon. Consequently, this application isn't really
useful for debugging. You need a simple application that draws a pixmap
itself to see if the problem is with the pixmap rendering code.

[Frank]Got it. Now that there is no window manager if I only start the Xorg program, no icon will be handled and displayed on the screen.

>         The application's result is just as the workstation.jpg. It
>         will use the Xmanager's server(I use ssh to connect to
>         geodeboard on my workstation) to display this client's
>         request. It's quite normal.
>
>         After that, I run this application on the geode board. There
>         are two cases:
>
>         1)One is with a windows manager. See geodeboard-wm.jpg. It is
>         run under gnome. Whatever using geode driver or vesa driver,
>         this application display the same with the icon.

OK, I see basicwin's icon (in its window decoration) but none in the
window decorations of the other windows. I also see that all the
Nautilus (file manager) icons are missing.

[Frank] Yes. The icons in all the Nautilus are missing. And the icons on the menu bar is also missing.

>         2)The other is with no window manager. Only Xorg+app
>         environment. You can see the geodeboard-no-wm.jpg. I use a
>         camera to take the photo. No icon will be displayed in this
>         environment.

That's expected with a window manager since it's the window manager's
responsibility to draw application icons.

[Frank]Got it.

I'm assuming that the bug report is not a problem with the window
manager but a problem with the pixmap rendering code. In other words,
I'm assuming the window manger (and/or the GNOME desktop managed by
Nautilus) uses pixmaps to render icons and that the problem is with the
generic pixmap rendering code. Thus, you want a test program that simply
displays a small pixmap so we can see if it's rendered properly. The
test program should display the pixmap itself, not rely on the window
manager to display its icon.
[Frank] What's the difference between using window manager to handle and the pixmap rendering code? If using the pixmap rendering code, Does it use some function from libxpm? And how about the code for geode driver? I give some prints sentence in the lx_exa.c file and found some functions are triggered here.

Did you have a look at the XPM utilities or another simple pixmap/image
viewer?
[Frank] the xpmutils is for Ubuntu, I will find corresponding one for Fedora. So give a try to use eog and display image viewer just as you advised.

>         So questions here:
>
>         1)It seems that the icon of application is still displayed on
>         the screen although other icons in the gnome can not be
>         displayed. The icon difference is what?

It's black and white?
[Frank] Correct. It is black and white. No color on this icon. No render on this icon??

It's a pixmap rather than an image? I'm unsure of whether the icons are
typically rendered using X images or pixmaps.

[Frank] The basicwin program use a pixmap rather than an image. The difference is what for a pixmap from data and from an image?

The GNOME icons are typically png or svg files, so they're colour, but I
don't know how they are rendered.

What happens if you run:

    eog /usr/share/icons/Human/24x24/places/folder.png

Here, `eog' is Eye of GNOME, the GNOME image viewer and the path given
to `folder.png' is the path on Ubuntu. It might be different on Fedora
but it shouldn't be too difficult to locate the icon files.

[Frank] I find the Fedora icon on /usr/share/icons/Fedora/24x24/places. There is an standard icon which will be displayed on the menu bar. It can be displayed on the screen using geode driver with two environments(with gnome(Window Manager) and with only "X").

What about a different image viewer, e.g. `display' from Image Magick?
Run it like this:

    display /usr/share/icons/Human/24x24/places/folder.png
[Frank] The display application is also same as the eog. It can display the icon normally on the screen and the color is also right under two environments.

You need to find a simple pixmap/image viewer that illustrates the
problem, without a window manager, then drill down on that.
[Frank] I'll find one that does not need the WM and it can reproduce the no icon issue. Find that in utilxpm.

>         2)For the no window manager environment, how to let the icon
>         display? Must need a window manager to handle this?

You can't. The window manager is responsible for displaying application
icons.

> Thanks,
> Frank
>
> -----Original Message-----
> From: Writer, Tim [mailto:Tim.Writer at amd.com]
> Sent: 2010年3月30日 23:13
> To: Huang, FrankR
> Cc: Torres, Rigo; Tanguay, Kevin; Cui, Hunk; Xie, Michael; Ni, John
> Subject: Re: Bug of No icon on desktop
>
> Hi Frank,
>
> Thanks for the info.
>
> Regarding DISPLAY, it's critical. Every X application starts by calling
> `XOpenDisplay' which uses the DISPLAY environment variable to identify
> the display.
>
> Tim
>
> On Tue, Mar 30 2010, "Huang, FrankR" <FrankR.Huang at amd.com> wrote:
>
>> Tim,
>>
>>      Got the answer for my question. Clarify here.
>>
>>         The ssh tool I use is Xmanager. It has s X server in its
>>         internal tool. So when I type command "gnome-session"(or other
>>         client' application), actually this command is executed on the
>>         geode board and use the Xmanager as the X server. So at this
>>         environment, the geode board is the client and the
>>         Xmanager(seems ssh) is the X server.
>>
>>         I have done another experiment on the geode board. Set its
>>         DISPLAY to "localhost:11.0", and run "gnome-session". The
>>         result is the same as I type the command in the ssh.
>>
>>         And another experiment is using another ssh only tool and type
>>         the "gnome-session". It fails with the reply "Error: Can't
>>         open display". That proves again.
>>
>>         Actually, for which is the server and which is the client, the
>>         DISPLAY parameter is a quite key factor to decide. It has no
>>         relationship with which machine is more strong:).
>>
>>         Thanks for your explanation here.
>>
>> Thanks,
>> Frank
>>
>> -----Original Message-----
>> From: Huang, FrankR
>> Sent: 2010年3月30日 9:39
>> To: Writer, Tim
>> Cc: Torres, Rigo; Tanguay, Kevin; Cui, Hunk; Xie, Michael; Ni, John
>> Subject: RE: Bug of No icon on desktop
>>
>> Tim,
>>
>>         It is quite clear of your explain. Got it.
>>         Actually the $DISPLAY parameter is a key factor to decide which is the server.
>>         But my question is that my workstation does not has a X server(for example, Xorg), how does it to do the rendering? It's just a WindowsXP OS and I don't know how it handles client's requirement.
>>
>> Thanks,
>> Frank
>>
>> -----Original Message-----
>> From: Writer, Tim [mailto:Tim.Writer at amd.com]
>> Sent: 2010年3月29日 23:47
>> To: Huang, FrankR
>> Cc: Torres, Rigo; Tanguay, Kevin; Cui, Hunk; Xie, Michael; Ni, John
>> Subject: Re: Bug of No icon on desktop
>>
>> Hi Frank,
>>
>> The difference between these two methods is that one (when DISPLAY is
>> :0.0) is using the Geode LX for display and the other (when DISPLAY is
>> set to e.g. localhost:10.0 to forward the X protocal over your SSH
>> session) is using your workstation for display. Unless your workstation
>> is also a Geode LX, the second scenario isn't using the Geode LX driver
>> so doesn't exhibit the bug.
>>
>> When your DISPLAY is set to a remote host (either directly or when
>> forwarded over SSH as in your example), Xlib simply encodes the drawing
>> request and ships it across the network to the remote X server which
>> decodes it and renders it to the local display. This transport mechanism
>> is independent of the rendering. Rendering is (almost) always done on
>> the X server using its native drivers. So, if you're local workstation
>> is an ATI Radeon using fglrx, your second scenario is using the fglrx
>> drivers for rendering.
>>
>> Some people find the X client/server terminology confusing because we
>> think of clients as the system we're sitting at and servers as being
>> large machines in a data centre. If you think of the X server as a
>> display server, it's clear that the X client is the application that
>> issues the drawing requests and the X server is the display that renders
>> those requests. A concrete example. If I run firefox on my local system:
>>
>>     local% echo $DISPLAY
>>     :0.0
>>     local% firefox
>>
>> firefox is the X client and my local system is the X server. So my local
>> system is acting as the client and server. If I login to a remote system
>> and run firefox:
>>
>>     local% ssh remote
>>     remote% echo $DISPLAY
>>     localhost:10.0
>>     remote% firefox
>>
>> firefox is still the X client and my local system is still the X
>> server. However, in this case, since firefox is running on the remote
>> system, the remote system (which might be a large machine in a data
>> center) is acting as the client and my local system is the server.
>>
>> Hope this helps,
>>
>> Tim
>>
>> On Sat, Mar 27 2010, "Huang, FrankR" <FrankR.Huang at amd.com> wrote:
>>
>>> Tim,
>>>
>>>         A phenomena to share.
>>>
>>>         I use SSH to connect the geode board.
>>>
>>>         After the Xorg is started, I start the gnome-session via SSH
>>>         on my workstation. The icons can be displayed on my screen.
>>>
>>>         After that, export the parameter DISPLAY to :0.0 and restart
>>>         gnome-session, the icons will be lost on the target
>>>         board.(just as we know)
>>>
>>>         The Xserver protocol is based on network. So I can not
>>>         understand the difference between display on the target board
>>>         and my workstation. The network only transfer the information
>>>         from the server to client. I don't think these two methods has
>>>         great difference.
>>>
>>>         By the way, We have begun learn the Xlib application work and
>>>         successfully give a simple try on the board.
>>>
>>>         And Hunk and I made the gdb work(ddd: graphics gdb) on our
>>>         environment. We can share more on next week's con-call.
>>>
>>> All,
>>>
>>>         Share a book for Xlib programming.
>>>                 http://www.amazon.com/Programming-Manual-Definitive-Guides-Window/dp/1565920023
>>>
>>>
>>> Thanks,
>>> Frank



More information about the Xorg-driver-geode mailing list