Re: Segfault on glDrawArrays

140 views
Skip to first unread message

Isaac Freeman

unread,
May 11, 2013, 6:02:50 PM5/11/13
to pyglet...@googlegroups.com
Ohh yeah, here's some system info if that helps:

Linux Mint 14

$ uname -a
Linux daetonis 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ apt-cache policy python python-pyglet
python:
  Installed: 2.7.3-0ubuntu7
  Candidate: 2.7.3-0ubuntu7
  Version table:
 *** 2.7.3-0ubuntu7 0
        500 http://archive.ubuntu.com/ubuntu/ quantal/main amd64 Packages
        100 /var/lib/dpkg/status
python-pyglet:
  Installed: 1.1.4.dfsg-2build1
  Candidate: 1.1.4.dfsg-2build1
  Version table:
 *** 1.1.4.dfsg-2build1 0
        500 http://archive.ubuntu.com/ubuntu/ quantal/universe amd64 Packages
        100 /var/lib/dpkg/status

>>> pyglet.__file__
'/usr/lib/pymodules/python2.7/pyglet/__init__.pyc'

01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670]

$ apt-cache policy fglrx-updates
fglrx-updates:
  Installed: 2:9.000-0ubuntu3
  Candidate: 2:9.000-0ubuntu3
  Version table:
 *** 2:9.000-0ubuntu3 0
        500 http://archive.ubuntu.com/ubuntu/ quantal/restricted amd64 Packages
        100 /var/lib/dpkg/status

On Saturday, May 11, 2013 1:47:23 PM UTC-4, Isaac Freeman wrote:
I'm getting a strange segfault using VBOs/VAOs when I call glDraw array.... I've run out of ideas how to fix it.. Any suggestions would be greatly appreciated.

the code is here:

http://dpaste.com/1141633/

The debug log says:

libGL: AtiGetClientDriverName: 9.0.2 fglrx (screen 0)
libGL: OpenDriver: trying /usr/lib/fglrx/dri/fglrx_dri.so
ukiDynamicMajor: found major device number 250
ukiDynamicMajor: found major device number 250
ukiOpenByBusid: Searching for BusID PCI:1:0:0
ukiOpenDevice: node name is /dev/ati/card0
ukiOpenDevice: open result is 10, (OK)
ukiOpenByBusid: ukiOpenMinor returns 10
ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
glGetString(7936)
glGetString(7937)
glGetString(7939)
glGetString(7938)
glGetString(7936)
glGetString(7937)
glGetString(7939)
glGetString(7938)
gluGetString(100801)
gluGetString(100800)
glEnable(2884)
glEnable(2929)
glGenBuffers(1, <pyglet.gl.gl.LP_c_u)
glGetString(7936)
glGetString(7937)
glGetString(7939)
glGetString(7938)
glClearColor(0.0, 0.0, 0.0, 1.0)
 * Converting cverts to GLfloat data
 * Creating VBO
glGenBuffers(1, c_uint(2L))
glPushClientAttrib(2)
glBindBuffer(34962, 2L)
glBufferData(34962, 768, None, 35040)
glPopClientAttrib()
 * Creating VAO
 * Compiling shaders
glCreateProgram()
glCreateShader(35633)
glShaderSource(2L, 1, <pyglet.gl.glext_arb, None)
glCompileShader(2L)
glGetShaderiv(2L, 35713, <cparam 'P' (0x7f750)
glAttachShader(1L, 2L)
glCreateShader(35632)
glShaderSource(3L, 1, <pyglet.gl.glext_arb, None)
glCompileShader(3L)
glGetShaderiv(3L, 35713, <cparam 'P' (0x19f32)
glAttachShader(1L, 3L)
glLinkProgram(1L)
glGetProgramiv(1L, 35714, <cparam 'P' (0x19f32)
 * Binding shaders
glUseProgram(1L)
 * Starting app loop
glViewport(0, 0, 800, 800)
glMatrixMode(5889)
glLoadIdentity()
glOrtho(0, 800, 0, 800, -1, 1)
glMatrixMode(5888)
 * update called
glBindBuffer(34962, 2L)
glPushClientAttrib(2)
glBindBuffer(34962, 2L)
glBufferData(34962, 768, <__main__.c_float_Ar, 35040)
glPopClientAttrib()
glBindBuffer(34962, 0)
 * on_draw called
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(16384)
   * binding verts
glBindBuffer(34962, 2L)
   * binding attrs
glEnableClientState(32884)
   * drawing arrays
Segmentation fault


Isaac Freeman

unread,
May 12, 2013, 1:49:54 AM5/12/13
to pyglet...@googlegroups.com
Doing some experimentation, if I remove the create_attribute/attrs.enable lines and replace them with direct calls to glEnableVertexAttribArray/glVertexAttribPointer it works (well, it doesn't crash; it did reveal some problems in my understanding of how array buffers work, but... :P). So, either I'm using the create_attribute/etc stuff wrong (likely), or it's incompatible with my openGL or there is some kind of bug in pyglet... If I have some time soon I'll try to dig down in to the pyglet code to figure out what's going on (although, my experience with ctypes and interacting with C code is a bit thin... which is likely the source of my problem).

Anna Mária Nagy

unread,
May 12, 2013, 2:18:29 PM5/12/13
to pyglet...@googlegroups.com

--
You received this message because you are subscribed to the Google Groups "pyglet-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pyglet-users...@googlegroups.com.
To post to this group, send email to pyglet...@googlegroups.com.
Visit this group at http://groups.google.com/group/pyglet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Anna Mária Nagy

unread,
May 13, 2013, 6:06:07 AM5/13/13
to pyglet...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages