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).
On Saturday, May 11, 2013 6:02:50 PM UTC-4, Isaac Freeman wrote: > > 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 >> >> >> -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/pyglet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
