具体的には、2つのスレッドがあります。
最初の1つ:
ev_wait_vsync = CreateEvent(NULL, FALSE, FALSE, "wait_vsync");
...
printf("paint\n");
sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
SetEvent(ev_wait_vsync);
そして、最初のものによって作成された2番目のもの:
WaitForSingleObject(ev_wait_vsync, INFINITE);
printf("start vsync\n");
glClientWaitSync(sync, GL_SYNC_FLUSH_COMMANDS_BIT, UINT64_MAX);
printf("end sync\n");
これにより、セグメンテーション違反が発生します。出力は次のとおりです。
paint
start vsync
問題はにありglClientWaitSync
ますが、なぜですか?