Re: [Mesa-dev] [PATCH 07/13] linker: Use gl_shader_program::AttributeBindings for attrib locations

2011-10-09 Thread Marcin Slusarz
On Thu, Oct 06, 2011 at 06:54:38PM -0700, Stéphane Marchesin wrote:
 Hi Ian,
 
 This regresses Chrome GPU acceleration for all GPUs (I tested i915g,
 llvmpipe, i965).
 

FYI, I bisected black screen in OilRush (glretrace of OilRush trace
actually) to this commit too.

Marcin
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 0/9] Elminate redudnant Mesa IR references

2011-10-09 Thread Marcin Slusarz
On Tue, Oct 04, 2011 at 01:44:03PM -0700, Ian Romanick wrote:
 This is the next in my series of internal shader API cleaning.  The
 primary purpose of this series is to remove the extra tracking of Mesa
 IR shaders.  The gl_shader_program has a reference to the Mesa IR
 shader for each stage, and the entry in gl_shader_program::_LinkedShaders
 has a reference to the same Mesa IR.
 
 The first three patches eliminate the extra references, and the
 remaining six implement some refactors and clean-ups enabled by the
 first three.
 
  src/glsl/ir.cpp|8 ---
  src/glsl/ir.h  |8 ---
  src/mesa/drivers/dri/i965/brw_fs.cpp   |8 ++-
  src/mesa/drivers/dri/i965/brw_fs.h |3 +-
  src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |3 +-
  src/mesa/drivers/dri/i965/brw_vs.c |8 ++-
  src/mesa/drivers/dri/i965/brw_wm.c |2 +-
  src/mesa/main/context.c|8 +--
  src/mesa/main/ff_fragment_shader.cpp   |   10 ++--
  src/mesa/main/mtypes.h |3 -
  src/mesa/main/shaderapi.c  |   32 +--
  src/mesa/main/shaderobj.c  |4 -
  src/mesa/main/state.c  |   18 --
  src/mesa/main/texstate.c   |   18 +++---
  src/mesa/main/uniforms.c   |   42 +-
  src/mesa/program/ir_to_mesa.cpp|   37 
  src/mesa/program/prog_uniform.c|   74 
 
  src/mesa/program/prog_uniform.h|4 -
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   44 ---
  src/mesa/state_tracker/st_program.c|9 +--
  20 files changed, 111 insertions(+), 232 deletions(-)
 

Commits 1-5 are unbuildable and one of them introduces crashes in many
piglit tests on nv50, e.g. glx-shader-sharing, glsl-bindattriblocation.

glx-shader-sharing:
Program received signal SIGSEGV, Segmentation fault.
0x737b1dac in destroy_shader_program_variants_cb (userData=optimized 
out, data=optimized out, key=optimized out) at 
state_tracker/st_program.c:1157
warning: Source file is more recent than executable.
1157  
shProg-_LinkedShaders[MESA_SHADER_VERTEX]-Program);
(gdb) bt
#0  0x737b1dac in destroy_shader_program_variants_cb 
(userData=optimized out, data=optimized out, key=optimized out) at 
state_tracker/st_program.c:1157
#1  destroy_shader_program_variants_cb (key=optimized out, data=0x8e9ca0, 
userData=0x759320) at state_tracker/st_program.c:1141
#2  0x73735732 in _mesa_HashWalk (table=0x72fd70, 
callback=0x737b1d10 destroy_shader_program_variants_cb, 
userData=0x759320) at main/hash.c:334
#3  0x737ac84a in st_destroy_context (st=0x759320) at 
state_tracker/st_context.c:256
#4  0x73643f2d in dri_destroy_context (cPriv=optimized out) at 
dri_context.c:130
#5  0x7363fab0 in driDestroyContext (pcp=0x6b7330) at 
../common/dri_util.c:589
#6  0x77bc1575 in dri2_destroy_context () from 
/usr/lib64/opengl/xorg-x11/lib/libGL.so.1
#7  0x77b9b9dc in glXMakeCurrentReadSGI () from 
/usr/lib64/opengl/xorg-x11/lib/libGL.so.1
#8  0x0042c1c8 in draw (dpy=0x66e010) at 
/data1/gfx/piglit/tests/glx/glx-shader-sharing.c:136
#9  0x0042fbe0 in piglit_glx_event_loop (dpy=0x66e010, draw=0x42bec9 
draw) at /data1/gfx/piglit/tests/util/piglit-glx-util.c:159
#10 0x0042c468 in main (argc=2, argv=0x7fffd6d8) at 
/data1/gfx/piglit/tests/glx/glx-shader-sharing.c:192

glsl-bindattriblocation:
Program received signal SIGSEGV, Segmentation fault.
0x737b1dac in destroy_shader_program_variants_cb (userData=optimized 
out, data=optimized out, key=optimized out) at 
state_tracker/st_program.c:1157
warning: Source file is more recent than executable.
1157  
shProg-_LinkedShaders[MESA_SHADER_VERTEX]-Program);
(gdb) bt
#0  0x737b1dac in destroy_shader_program_variants_cb 
(userData=optimized out, data=optimized out, key=optimized out) at 
state_tracker/st_program.c:1157
#1  destroy_shader_program_variants_cb (key=optimized out, data=0x765db0, 
userData=0x75a6f0) at state_tracker/st_program.c:1141
#2  0x73735732 in _mesa_HashWalk (table=0x7312f0, 
callback=0x737b1d10 destroy_shader_program_variants_cb, 
userData=0x75a6f0) at main/hash.c:334
#3  0x737ac84a in st_destroy_context (st=0x75a6f0) at 
state_tracker/st_context.c:256
#4  0x73643f2d in dri_destroy_context (cPriv=optimized out) at 
dri_context.c:130
#5  0x7363fab0 in driDestroyContext (pcp=0x67e8c0) at 
../common/dri_util.c:589
#6  0x77bc1575 in dri2_destroy_context () from 
/usr/lib64/opengl/xorg-x11/lib/libGL.so.1
#7  0x776e95cb in __glutDestroyWindow (window=0x67bd80, 
initialWindow=0x67bd80) at glut_win.c:831
#8  

Re: [Mesa-dev] [PATCH 0/9] Elminate redudnant Mesa IR references

2011-10-09 Thread Marcin Slusarz
On Sun, Oct 09, 2011 at 04:41:43PM +0200, Marcin Slusarz wrote:
 On Tue, Oct 04, 2011 at 01:44:03PM -0700, Ian Romanick wrote:
  This is the next in my series of internal shader API cleaning.  The
  primary purpose of this series is to remove the extra tracking of Mesa
  IR shaders.  The gl_shader_program has a reference to the Mesa IR
  shader for each stage, and the entry in gl_shader_program::_LinkedShaders
  has a reference to the same Mesa IR.
  
  The first three patches eliminate the extra references, and the
  remaining six implement some refactors and clean-ups enabled by the
  first three.
  
   src/glsl/ir.cpp|8 ---
   src/glsl/ir.h  |8 ---
   src/mesa/drivers/dri/i965/brw_fs.cpp   |8 ++-
   src/mesa/drivers/dri/i965/brw_fs.h |3 +-
   src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp |3 +-
   src/mesa/drivers/dri/i965/brw_vs.c |8 ++-
   src/mesa/drivers/dri/i965/brw_wm.c |2 +-
   src/mesa/main/context.c|8 +--
   src/mesa/main/ff_fragment_shader.cpp   |   10 ++--
   src/mesa/main/mtypes.h |3 -
   src/mesa/main/shaderapi.c  |   32 +--
   src/mesa/main/shaderobj.c  |4 -
   src/mesa/main/state.c  |   18 --
   src/mesa/main/texstate.c   |   18 +++---
   src/mesa/main/uniforms.c   |   42 +-
   src/mesa/program/ir_to_mesa.cpp|   37 
   src/mesa/program/prog_uniform.c|   74 
  
   src/mesa/program/prog_uniform.h|4 -
   src/mesa/state_tracker/st_glsl_to_tgsi.cpp |   44 ---
   src/mesa/state_tracker/st_program.c|9 +--
   20 files changed, 111 insertions(+), 232 deletions(-)
  
 
 Commits 1-5 are unbuildable and one of them introduces crashes in many
 piglit tests on nv50, e.g. glx-shader-sharing, glsl-bindattriblocation.

Commits 1-5 are unbuildable, but first bad commit is 6th, so there are
6 commits to look at.

Marcin
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: kill instruction if writemask=0 in eliminate_dead_code_advanced()

2011-10-09 Thread Bryan Cain
I don't think there's any reason we can't eliminate a dead instruction
when the writemask is zero.  I do wonder, though, why this patch
actually makes a difference.  There's an if (!inst-dead_mask ||
!inst-dst.writemask) three lines before the code visible in the patch
that makes it not kill the instruction if the writemask is zero.  I
don't remember why that's there, but if it weren't there, and the
writemask is zero, the dead_mask should also be zero, so it should be
handled by the else if block.

In short, I think that entire if/else if/else statement could use a look.

Bryan

On 10/07/2011 10:40 AM, Brian Paul wrote:
 From: Brian Paul bri...@vmware.com

 This fixes a bug where we'd wind up emitting an invalid instruction like
 MOVE R[0]., R[1];  - note the empty/zero writemask.  If we don't write to
 any dest register channels, cull the instruction.
 ---
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |8 +++-
  1 files changed, 7 insertions(+), 1 deletions(-)

 diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
 b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 index d8ef8a3..44b1149 100644
 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 @@ -3776,8 +3776,14 @@ 
 glsl_to_tgsi_visitor::eliminate_dead_code_advanced(void)
   iter.remove();
   delete inst;
   removed++;
 -  } else
 +  } else {
   inst-dst.writemask = ~(inst-dead_mask);
 + if (inst-dst.writemask == 0) {
 +iter.remove();
 +delete inst;
 +removed++;
 + }
 +  }
 }
  
 ralloc_free(write_level);
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: kill instruction if writemask=0 in eliminate_dead_code_advanced()

2011-10-09 Thread Bryan Cain
What does it do if there's no destination register?  In any case, I
don't think glsl_to_tgsi emits any ARLs of that form, so it shouldn't be
a problem.

Bryan

On 10/07/2011 01:06 PM, Marek Olšák wrote:
 I think ARL is allowed to have no destination register, right? In that
 case, there should be a special case not to eliminate ARLs.

 Marek

 On Fri, Oct 7, 2011 at 5:40 PM, Brian Paul brian.e.p...@gmail.com wrote:
 From: Brian Paul bri...@vmware.com

 This fixes a bug where we'd wind up emitting an invalid instruction like
 MOVE R[0]., R[1];  - note the empty/zero writemask.  If we don't write to
 any dest register channels, cull the instruction.
 ---
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |8 +++-
  1 files changed, 7 insertions(+), 1 deletions(-)

 diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
 b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 index d8ef8a3..44b1149 100644
 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 @@ -3776,8 +3776,14 @@ 
 glsl_to_tgsi_visitor::eliminate_dead_code_advanced(void)
  iter.remove();
  delete inst;
  removed++;
 -  } else
 +  } else {
  inst-dst.writemask = ~(inst-dead_mask);
 + if (inst-dst.writemask == 0) {
 +iter.remove();
 +delete inst;
 +removed++;
 + }
 +  }
}

ralloc_free(write_level);
 --
 1.7.3.4

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] st/mesa: kill instruction if writemask=0 in eliminate_dead_code_advanced()

2011-10-09 Thread Marek Olšák
Correct.

The thing was: even though we have an addressing register in TGSI
(e.g. tgsi_full_dst|src_register::Indirect), everybody except nv50 and
partially svga doesn't use it now. They expect the indirect register
file is always TGSI_FILE_ADDRESS and the index is 0, making the
destination of ARL irrelevant. This is probably a bug in those drivers
and that's what made me think that ARL doesn't need a destination
register. Sorry for the noise.

Marek

On Sun, Oct 9, 2011 at 8:51 PM, Bryan Cain bryanca...@gmail.com wrote:
 What does it do if there's no destination register?  In any case, I
 don't think glsl_to_tgsi emits any ARLs of that form, so it shouldn't be
 a problem.

 Bryan

 On 10/07/2011 01:06 PM, Marek Olšák wrote:
 I think ARL is allowed to have no destination register, right? In that
 case, there should be a special case not to eliminate ARLs.

 Marek

 On Fri, Oct 7, 2011 at 5:40 PM, Brian Paul brian.e.p...@gmail.com wrote:
 From: Brian Paul bri...@vmware.com

 This fixes a bug where we'd wind up emitting an invalid instruction like
 MOVE R[0]., R[1];  - note the empty/zero writemask.  If we don't write to
 any dest register channels, cull the instruction.
 ---
  src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    8 +++-
  1 files changed, 7 insertions(+), 1 deletions(-)

 diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
 b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 index d8ef8a3..44b1149 100644
 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
 @@ -3776,8 +3776,14 @@ 
 glsl_to_tgsi_visitor::eliminate_dead_code_advanced(void)
          iter.remove();
          delete inst;
          removed++;
 -      } else
 +      } else {
          inst-dst.writemask = ~(inst-dead_mask);
 +         if (inst-dst.writemask == 0) {
 +            iter.remove();
 +            delete inst;
 +            removed++;
 +         }
 +      }
    }

    ralloc_free(write_level);
 --
 1.7.3.4

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev

 ___
 mesa-dev mailing list
 mesa-dev@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/mesa-dev


___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 41630] New: r600g nexuiz segfault on quit since recent LinkedShaders changes

2011-10-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=41630

   Summary: r600g nexuiz segfault on quit since recent
LinkedShaders changes
   Product: Mesa
   Version: git
  Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
  Severity: normal
  Priority: medium
 Component: Mesa core
AssignedTo: mesa-dev@lists.freedesktop.org
ReportedBy: li...@andyfurniss.entadsl.com


Couldn't bisect properly as too many build fails see log below.

The game nexuiz is segfaulting on quit with current master.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb746f9b0 (LWP 13291)]
destroy_shader_program_variants_cb (key=1, data=0xc0195a0, userData=0xc008fe8)
at state_tracker/st_program.c:1157
1157destroy_program_variants(st,
shProg-_LinkedShaders[i]-Program);
(gdb) bt
#0  destroy_shader_program_variants_cb (key=1, data=0xc0195a0,
userData=0xc008fe8) at state_tracker/st_program.c:1157
#1  0xb5cf4299 in _mesa_HashWalk (table=0xbfe9698, callback=0xb5d5dd40
destroy_shader_program_variants_cb, userData=0xc008fe8) at main/hash.c:334
#2  0xb5d5da49 in st_destroy_program_variants (st=0xc008fe8) at
state_tracker/st_program.c:1200
#3  0xb5d58277 in st_destroy_context (st=0xc008fe8) at
state_tracker/st_context.c:256
#4  0xb5cb085d in st_context_destroy (stctxi=0xc008fe8) at
state_tracker/st_manager.c:651
#5  0xb5c9ba2c in dri_destroy_context (cPriv=0xbe9ad40) at dri_context.c:130
#6  0xb5c6ec17 in driDestroyContext (pcp=0xbe9ad40) at ../common/dri_util.c:589
#7  0xb6277c40 in dri2_destroy_context (context=0xbea4e50) at dri2_glx.c:128
#8  0xb62509b4 in glXDestroyContext (dpy=0xbdba9e0, ctx=0xbea4e50) at
glxcmds.c:426
#9  0xb76ea256 in X11_GL_Shutdown (this=0xbdaf018) at
./src/video/x11/SDL_x11gl.c:322
#10 0xb76eead7 in X11_DestroyWindow (this=0xbdaf018, screen=0x0) at
./src/video/x11/SDL_x11video.c:709
#11 0xb76eed09 in X11_VideoQuit (this=0xbdaf018) at
./src/video/x11/SDL_x11video.c:1488
#12 0xb76db630 in SDL_VideoQuit () at ./src/video/SDL_video.c:1352
#13 0xb76b02f4 in SDL_QuitSubSystem (flags=32) at ./src/SDL.c:202

There are only 'skip'ped commits left to test.
The first bad commit could be any of:
de772c402215b956ab3aa0875330fc1bf7cdf95b
39348bf79fb247eec895c93e52f23afe138be46a
5a4279f80d80fd30452ee6cc7cdfaffb12b1d605
010cc547ca8c1fb2107106b0ad0de560780ce9aa
77d67a44cc9788072090e3f1000cfe1cec0a6807
e2bdef53807d0f23c2a1ff326ea8190cb57aa90a
We cannot bisect more!

bash-3.2$ git bisect log 
git bisect start
# bad: [0f55f133f1e5b72e463441d2d388a1ec4deac1da] u_blitter: query vertex
shader caps instead of geometry for int vertices
git bisect bad 0f55f133f1e5b72e463441d2d388a1ec4deac1da
# good: [53f858637319f0efa47dd9acdb547e7913f3f86b] i915,i830: Remove dead HiZ
assertions in *update_draw_buffer()
git bisect good 53f858637319f0efa47dd9acdb547e7913f3f86b
# bad: [a441feb757b1be4845ba378f0207dcdc5cc1a407] gallium: add initial pure
integer support (v2)
git bisect bad a441feb757b1be4845ba378f0207dcdc5cc1a407
# skip: [77d67a44cc9788072090e3f1000cfe1cec0a6807] mesa: Simplify
destroy_shader_program_variants_cb after previous refactors
git bisect skip 77d67a44cc9788072090e3f1000cfe1cec0a6807
# bad: [61285c6cfa9ce6086d62fa08bc9e3813f0b30d3d] u_format: add inline helper
to find first non void channel
git bisect bad 61285c6cfa9ce6086d62fa08bc9e3813f0b30d3d
# skip: [5a4279f80d80fd30452ee6cc7cdfaffb12b1d605] mesa: Simplify
validate_shader_program after previous refactors
git bisect skip 5a4279f80d80fd30452ee6cc7cdfaffb12b1d605
# bad: [93c26d8baf5294b77e019b90d9995b5da565ea3c] glsl: Remove unused method
ir_variable::component_slots
git bisect bad 93c26d8baf5294b77e019b90d9995b5da565ea3c
# skip: [39348bf79fb247eec895c93e52f23afe138be46a] mesa: Use
gl_shader_program::_LinkedShaders instead of GeometryProgram
git bisect skip 39348bf79fb247eec895c93e52f23afe138be46a
# bad: [e2bdef53807d0f23c2a1ff326ea8190cb57aa90a] mesa: Simplify calling
Driver.ProgramStringNotify after previous refactors
git bisect bad e2bdef53807d0f23c2a1ff326ea8190cb57aa90a
# skip: [010cc547ca8c1fb2107106b0ad0de560780ce9aa] mesa: Use
gl_shader_program::_LinkedShaders instead of VertexProgram
git bisect skip 010cc547ca8c1fb2107106b0ad0de560780ce9aa
# skip: [de772c402215b956ab3aa0875330fc1bf7cdf95b] mesa: Use
gl_shader_program::_LinkedShaders instead of FragmentProgram
git bisect skip de772c402215b956ab3aa0875330fc1bf7cdf95b
# good: [2fae55666e298525fe3b5550aa2a2ebeea437710] mesa: Close Doxygen group
git bisect good 2fae55666e298525fe3b5550aa2a2ebeea437710

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 41595] Hi10P videos produce improper output in gl unless yv12 is used.

2011-10-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=41595

--- Comment #1 from Tobias Jakobi liquid.a...@gmx.net 2011-10-09 13:28:33 PDT 
---
Ahh, another anime fan :)

I already posted this problem here:
https://bugs.freedesktop.org/show_bug.cgi?id=41461

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] mesa/st: Check for a NULL _LinkedShader[i] before using it.

2011-10-09 Thread Stéphane Marchesin
The rest of the linker/glsl translation code checks for NULL, so I suppose we 
should check here too. Fixes crash on exit with i915g instanced drawing.
---
 src/mesa/state_tracker/st_program.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_program.c 
b/src/mesa/state_tracker/st_program.c
index acd3b56..c419c40 100644
--- a/src/mesa/state_tracker/st_program.c
+++ b/src/mesa/state_tracker/st_program.c
@@ -1154,7 +1154,8 @@ destroy_shader_program_variants_cb(GLuint key, void 
*data, void *userData)
  }
 
 for (i = 0; i  Elements(shProg-_LinkedShaders); i++) {
-   destroy_program_variants(st, shProg-_LinkedShaders[i]-Program);
+   if (shProg-_LinkedShaders[i])
+   destroy_program_variants(st, 
shProg-_LinkedShaders[i]-Program);
 }
   }
   break;
-- 
1.7.5.4

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [Bug 41636] New: glXMakeCurrent() can SIGSEGV due to XGetVisualInfo failure in xvfb

2011-10-09 Thread bugzilla-daemon
https://bugs.freedesktop.org/show_bug.cgi?id=41636

   Summary: glXMakeCurrent() can SIGSEGV due to XGetVisualInfo
failure in xvfb
   Product: Mesa
   Version: unspecified
  Platform: Other
OS/Version: All
Status: NEW
  Severity: normal
  Priority: medium
 Component: GLX
AssignedTo: mesa-dev@lists.freedesktop.org
ReportedBy: jerem...@freedesktop.org


While trying to figure out another bug, I ran into this segfault in GLX

$ xvfb-run --server-args=-screen 10 1024x768x24 -pixdepths 32 gdb --args
/usr/bin/glxinfo
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type show copying
and show warranty for details.
This GDB was configured as i686-linux-gnu.
For bug reporting instructions, please see:
http://bugs.launchpad.net/gdb-linaro/...
Reading symbols from /usr/bin/glxinfo...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/glxinfo 
[Thread debugging using libthread_db enabled]
name of display: :99
Error: couldn't find RGB GLX visual or fbconfig

180 GLXFBConfigs:
visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat

... a ton of output snipped

(gdb) bt
#0  0x0016d775 in XCreateDrawable (visualid=optimized out, drawable=2097165,
dpy=0x804f008, pdp=0x8257680) at drisw_glx.c:96
#1  driswCreateDrawable (base=0x80e7bc8, xDrawable=2097165, drawable=2097165,
modes=0x8103bd8) at drisw_glx.c:443
#2  0x0016df17 in driFetchDrawable (gc=0x806c778, glxDrawable=2097165) at
dri_common.c:377
#3  0x0016d035 in drisw_bind_context (context=0x806c778, old=0x1971c0,
draw=2097165, read=2097165) at drisw_glx.c:275
#4  0x0014afd0 in MakeContextCurrent (dpy=0x804f008, draw=2097165,
read=2097165, gc_user=0x806c778) at glxcurrent.c:269
#5  0x0014b153 in glXMakeCurrent (dpy=0x804f008, draw=2097165, gc=0x806c778) at
glxcurrent.c:303
#6  0x0804a2c5 in ?? ()
#7  0x002ea113 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#8  0x08048d31 in ?? ()
Backtrace stopped: Not enough registers or memory available to unwind further
(gdb) list 100
95   /* create XImage */
96   pdp-ximage = XCreateImage(dpy,
97  pdp-visinfo-visual,
98  pdp-visinfo-depth,
99  ZPixmap, 0, /* format, offset
*/
100  NULL,   /* data */
101  0, 0,   /* width, height
*/
102  32, /* bitmap_pad */
103  0); /* bytes_per_line
*/
104
(gdb) print pdp
$1 = (struct drisw_drawable *) 0x8257680
(gdb) print pdp-visinfo
$2 = (XVisualInfo *) 0x0

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev