Bug 46376 - render error when run glsl demo or mesa demo without window manager
render error when run glsl demo or mesa demo without window manager
Status: VERIFIED NOTOURBUG
Product: Mesa
Classification: Unclassified
Component: Mesa core
git
All Linux (All)
: medium normal
Assigned To: mesa-dev
: regression
Depends on: 61640
Blocks:
  Show dependency treegraph
 
Reported: 2012-02-21 01:21 UTC by libo
Modified: 2013-03-10 04:28 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description libo 2012-02-21 01:21:38 UTC
System Environment:
--------------------------
Libdrm:(master)2.4.31
Mesa:  (8.0)fe77fd3983ba3da16ec53c58a790c381b07387ce
Xserver:(server-1.11-branch)xorg-server-1.11.4
Xf86_video_intel:(master)2.17.0-655-g95391b7312147760d8da01fce68b8398aa8e4e2f
Cairo:(master)01ea2d31cbbc12dafbe7831ef8c08a1bc78046a7
Libva:(master)bdbc9675fb2529b276bc3e8f720709e75beeae10
Kernel: 3.2.6 + IVB hang-fix patche


Bug detailed description:
-------------------------
Display window will be black when start X and run some mesa demos such as  gloss, drawpix, readpix, which is caused by mesa.
But it is good if  started gnome. 
This bug also exists with the latest master mesa.
By the way, 11.11 release has no this bug.
Such is a good mesa commit:
(7.11)4464ee1a9aa3745109cee23531e3fb2323234d07 


Reproduce steps:
-------------------------
1.xinit&
2../gloss
Comment 1 libo 2012-02-21 19:20:05 UTC
The bug also exists when run the case with LIBGL_ALWAYS_SOFTWARE=1.
Some  mesa xdemos and  EGL cases such as opengles2/es2_info also has this bug.
Comment 2 libo 2012-05-17 19:03:57 UTC
The issue still exists with the follow commits:
Libdrm:         (master)2.4.33-20-gd72a44c7c4f5eea9c1e5bb0c36cb9e0224b9ca22
Mesa:           (8.0)fa68a8bae3961808288cfd84d5a7843f6fc0f317
Xserver:             (server-1.12-branch)xorg-server-1.12.1
Xf86_video_intel:    (master)2.19.0-36-ga3d37fb29f8dffb0e370ad95783994aaa7eccfaf
Kernel:         (drm-intel-fixes) 2e7a44814d802c8ba479164b8924070cd908d6b5
Comment 3 libo 2012-10-31 01:21:45 UTC
This bugs still exists. GLSL demos and Mesa_demos all have render error with only "X" but run well with "gnome".
Comment 4 ye.tian 2013-02-22 03:08:32 UTC
The issue still exists with the follow commits:
---------------------------------
Kernel_version:     3.8
Libdrm:             2.4.42
Mesa:               (9.1)9.1-rc2
Xserver:            (server-1.13-branch)xorg-server-1.13.2
Xf86_video_intel:   (master)2.21.0
Cairo:              (master)1.12.12
Libva:              staging-20130205
Libva_intel_driver: staging-20130205
Comment 5 Kenneth Graunke 2013-02-27 21:17:27 UTC
I don't understand how to reproduce this bug.  What do you mean by "only X"?  GNOME uses X.  I've also verified that they work fine in KDE (also using X).

Can you provide some instructions on how to reproduce it?  (Like, are you creating an .xinitrc that just runs the demo, or...?)
Comment 6 libo 2013-02-28 01:42:15 UTC
Sorry for my ambiguous explanation.
"only X" mean that only execute command "xinit" but not start gnome or KDE before run the demo.
for example:
1.xinit&
2../gloss

To the contrary, for example,
1.xinit&
2.gnome
2../gloss
Comment 7 Kenneth Graunke 2013-03-01 00:16:59 UTC
I managed to bisect this down to:

commit 9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9
Author: José Fonseca <jfonseca@vmware.com>
Date:   Thu Jul 14 17:28:52 2011 +0100

    Squashed commit of the following:
    ...

which is the commit that removed Mark Kilgard's GLUT from the Mesa tree.  After that, building Mesa no longer built libglut.  This meant that the demos started running with your distro-provided libglut, which is typically freeglut (not Kilgard's GLUT).

With freeglut and no window manager, the Mesa demos never get their Reshape() function called, so their initial frustum and such never get set.  (Kilgard's GLUT did cause Reshape() to get called.)  However, I don't believe this is a bug; I believe freeglut's behavior is valid.

I've filed #61640 against Mesa demos; they should probably be enhanced to set up their initial state and not rely on Reshape() getting automatically called.  This is just generally a good idea.

In the meantime, I would just run with a window manager.  Closing this as NOTOURBUG as it's a bug in the demos (or possibly freeglut), but not an actual Mesa regression.
Comment 8 Brian Paul 2013-03-01 00:24:48 UTC
(In reply to comment #7)
> I managed to bisect this down to:
> 
> commit 9a7f84d6b28e180ef79349b36de9a5d58a1e2dc9
> Author: José Fonseca <jfonseca@vmware.com>
> Date:   Thu Jul 14 17:28:52 2011 +0100
> 
>     Squashed commit of the following:
>     ...
> 
> which is the commit that removed Mark Kilgard's GLUT from the Mesa tree. 
> After that, building Mesa no longer built libglut.  This meant that the
> demos started running with your distro-provided libglut, which is typically
> freeglut (not Kilgard's GLUT).
> 
> With freeglut and no window manager, the Mesa demos never get their
> Reshape() function called, so their initial frustum and such never get set. 
> (Kilgard's GLUT did cause Reshape() to get called.)  However, I don't
> believe this is a bug; I believe freeglut's behavior is valid.
> 
> I've filed #61640 against Mesa demos; they should probably be enhanced to
> set up their initial state and not rely on Reshape() getting automatically
> called.  This is just generally a good idea.

I believe this is a freeglut bug.  Kilgard's GLUT came first and the behaviour of window reshaping is documented here:
http://www.opengl.org/resources/libraries/glut/spec3/node48.html#SECTION00083000000000000000

according to that, the reshape function should always get called at least once when the window first appears.
Comment 9 Gordon Jin 2013-03-10 04:28:40 UTC
Ken, thanks for the investigation. I'm closing this on behalf of QA.