ElementW / Diggler

A game engine for cube games
GNU Affero General Public License v3.0
4 stars 1 forks source link

GL_INVALID_OPERATION error generated. <buffer> does not refer to an existing buffer object. #7

Closed ghost closed 7 years ago

ghost commented 7 years ago

Avec ma nouvelle carte graphique nvidia gt710 (OpenGL 4.5, l'ancienne gérait le 3.3) et les derniers pilotes ça crash.

Reading symbols from ./diggler...done.
(gdb) start
Temporary breakpoint 1 at 0x10829b: file /media/git_src/Clone/Jeux/Diggler/src/main.cpp, line 164.
Starting program: /media/git_src/Clone/Jeux/Diggler/Build/diggler 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Temporary breakpoint 1, main (argc=1, argv=0x7fffffffe288) at /media/git_src/Clone/Jeux/Diggler/src/main.cpp:164
164     return Diggler::main(argc, argv);
(gdb) continue
Continuing.
ENet linked 1.3.13, using 1.3.13
GLFW linked 3.2.1, using 3.2.1 X11 GLX EGL clock_gettime /dev/js Xf86vm shared
GLM 0.9.8 SSE2 -- Epoxy GL45
GL 4.5.0 NVIDIA 375.26 / GeForce GT 710/PCIe/SSE2
src/content/Registry.cpp:36 Registered block air with id 0
src/content/Registry.cpp:36 Registered block unknown with id 1
API OTH NT] Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
src/render/gl/Renderer.cpp:10 GLRenderer, using features: VAO
DSA_ARB
DSA_EXT
DSA
shader_image_load_store
FBO_ARB

src/Audio.cpp:36 OpenAL devices: "OpenAL Soft", 
[New Thread 0x7ffff0af6700 (LWP 8285)]
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
[Thread 0x7ffff0af6700 (LWP 8285) exited]
[New Thread 0x7fffe7fff700 (LWP 8286)]
[Thread 0x7fffe7fff700 (LWP 8286) exited]
[New Thread 0x7fffe7fff700 (LWP 8287)]
OpenAL 1.1 -- Device 'OpenAL Soft'
[New Thread 0x7fffec661700 (LWP 8288)]
API OTH NT] Buffer detailed info: Buffer object 3 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 1.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 2.
API OTH NT] Buffer detailed info: Buffer object 4 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 3.
API OTH NT] Buffer detailed info: Buffer object 6 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH NT] Buffer detailed info: Buffer object 5 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
[New Thread 0x7fffdf7fd700 (LWP 8289)]
API OTH NT] Buffer detailed info: Buffer object 7 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH NT] Buffer detailed info: Buffer object 8 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
src/network/Network.cpp:349 hello DH! 7b0a9e349e527e06823f328e2d100f425c68e78ecfdeb558db127bae84d50509
[Thread 0x7fffdf7fd700 (LWP 8289) exited]
[New Thread 0x7fffdf7fd700 (LWP 8290)]
[New Thread 0x7fffdeffc700 (LWP 8291)]
src/GameState.cpp:512 Joined as AWLK/595188695
API OTH NT] Buffer detailed info: Buffer object 9 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH NT] Buffer detailed info: Buffer object 10 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 3.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 1.
API OTH LO] Framebuffer detailed info: The driver allocated storage for renderbuffer 2.
API OTH NT] Buffer detailed info: Buffer object 7 (bound to NONE, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
API ERR HI] GL_INVALID_OPERATION error generated. <buffer> does not refer to an existing buffer object.

Thread 1 "diggler" received signal SIGSEGV, Segmentation fault.
0x00000000400a1e41 in ?? ()
(gdb) continue
Continuing.
Couldn't get registers: Aucun processus de ce type.
Couldn't get registers: Aucun processus de ce type.
Couldn't get registers: Aucun processus de ce type.
(gdb) [Thread 0x7fffdf7fd700 (LWP 8290) exited]
[Thread 0x7fffdeffc700 (LWP 8291) exited]
[Thread 0x7fffec661700 (LWP 8288) exited]
[Thread 0x7ffff7fc4dc0 (LWP 8281) exited]

Continuing.
Couldn't get registers: Aucun processus de ce type.
(gdb) continue
Continuing.
Couldn't get registers: Aucun processus de ce type.
(gdb) quit
A debugging session is active.

    Inferior 1 [process 8281] will be killed.

Quit anyway? (y or n) y
ElementW commented 7 years ago

Pourrais-tu reproduire le bug, et lors du SEGV taper bt, regarder la pile d'appel et trouver le premier (en partant du haut) faisant partie de mes sources, faire f <n> où n est le numéro de cette ligne, puis dump les variables locales avec info locals s'il-te-plait ?

ghost commented 7 years ago
Thread 1 "diggler" received signal SIGSEGV, Segmentation fault.
0x00000000400a1e41 in ?? ()
(gdb) bt
#0  0x00000000400a1e41 in ?? ()
#1  0x00007ffff2228464 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.375.26
#2  0x00007ffff222d728 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.375.26
#3  0x00007ffff1e013a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.375.26
#4  0x000055555565ac6b in Diggler::LocalPlayer::render (this=0x555555b61f30, transform=...) at /media/git_src/Clone/Jeux/Diggler/src/LocalPlayer.cpp:217
#5  0x0000555555651258 in Diggler::GameState::gameLoop (this=0x555555c203e0) at /media/git_src/Clone/Jeux/Diggler/src/GameState.cpp:625
#6  0x000055555564f966 in Diggler::GameState::run (this=0x555555c203e0) at /media/git_src/Clone/Jeux/Diggler/src/GameState.cpp:410
#7  0x0000555555655522 in Diggler::GameWindow::run (this=0x7fffffffde10) at /media/git_src/Clone/Jeux/Diggler/src/GameWindow.cpp:266
#8  0x000055555565bf5c in Diggler::main (argc=1, argv=0x7fffffffe288) at /media/git_src/Clone/Jeux/Diggler/src/main.cpp:142
#9  0x000055555565c39d in main (argc=1, argv=0x7fffffffe288) at /media/git_src/Clone/Jeux/Diggler/src/main.cpp:164
(gdb) f 4
#4  0x000055555565ac6b in Diggler::LocalPlayer::render (this=0x555555b61f30, transform=...) at /media/git_src/Clone/Jeux/Diggler/src/LocalPlayer.cpp:217
217   glDrawArrays(GL_LINES, 0, sizeof(pts)/sizeof(Coord));
(gdb) info locals
min = {{{x = -3, y = 1, z = -3}, {r = -3, g = 1, b = -3}, {s = -3, t = 1, p = -3}}}
max = {{{x = -1, y = 3, z = -1}, {r = -1, g = 3, b = -1}, {s = -1, t = 3, p = -1}}}
pts = {{x = -3, y = 1, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 1, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 1, z = -3, r = 0 '\000', 
    g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 1, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 1, z = -1, 
    r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 1, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 3, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, 
    y = 1, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 1, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -3, r = 0 '\000', g = 1 '\001', 
    b = 0 '\000'}, {x = -1, y = 3, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 3, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -1, r = 0 '\000', 
    g = 1 '\001', b = 0 '\000'}, {x = -1, y = 3, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 1, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 3, z = -1, 
    r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -1, y = 3, z = -3, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, 
    y = 1, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 3, z = -3, r = 0 '\000', g = 1 '\001', 
    b = 0 '\000'}, {x = -1, y = 1, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}, {x = -3, y = 1, z = -1, r = 0 '\000', g = 1 '\001', b = 0 '\000'}}
P = @0x555555ca5bb0: {vsh = 0x555555cae670, fsh = 0x555555caef80, id = 36, linked = 1, mustDestroy = true, fshPath = "/media/git_src/Clone/Jeux/Diggler/Build/assets/3d.f.glsl", 
  vshPath = "/media/git_src/Clone/Jeux/Diggler/Build/assets/3d.v.glsl"}
(gdb) 
ghost commented 7 years ago

J'ai testé avec les derniers commit et ça fonctionne. EDIT:je précise avec les commit de la semaine dernière, parceque là je vient de voir des commit mais ça compile plus, il manque gl/VBO.cpp mais tu n'a peut être pas encore fini de commit.

ElementW commented 7 years ago

Mince alors, il manquait VBO.cpp... J'ai fix e3c76940a029aa504f408df4d66e5d9c11c96cba

Étrange, j'avais fais une compilation "à vide" il y a pas si longtemps et ça passait...