我有下面的代碼開始一個框架:段錯誤的glBlendFunc
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
沒有最後一行,程序運行(但顯然不混合),但它也出現segfaults。 GDB是不是一個很大的幫助,因爲它看起來像堆損壞,和段錯誤後,運行:
set $pc = *(void**)$rsp
set $rsp = $rsp+8
指向函數的最後一幀的結束括號。
我有一個小懷疑,這是一個驅動程序中的錯誤,但無法找到他們的跟蹤器的錯誤報告。驅動程序是在Ubuntu上運行的flgrx-updates。 GLXInfo給出:
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon R9 200 Series
OpenGL core profile version string: 4.3.13399 Core Profile Context 15.201.1151
OpenGL core profile shading language version string: 4.40
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
你看過'glGetError()'在調用'glEnable(GL_BLEND)'後會返回什麼?您是否嘗試過其他混合模式'glBlendFunc(GL_DST_COLOR,GL_ONE_MINUS_SRC_ALPHA)'? –
你有最新版本的視頻驅動程序嗎? – Unick
@AntonMalyshev在啓用後,'glGetError()'返回'0'。更改混合模式仍然會導致崩潰 –