From aab40ee9e8dbe3ba8d0cb69ff37f298c29a9d7a3 Mon Sep 17 00:00:00 2001 From: Tomasz Wlostowski Date: Thu, 16 Aug 2018 14:34:25 +0200 Subject: [PATCH] OPENGL_GAL: don't use glCopyBuffer() on faulty Intel GL drivers Fixes: lp:1787221 * https://bugs.launchpad.net/kicad/+bug/1787221 --- common/gal/opengl/cached_container_gpu.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/common/gal/opengl/cached_container_gpu.cpp b/common/gal/opengl/cached_container_gpu.cpp index e183c7f957..bca5e078ac 100644 --- a/common/gal/opengl/cached_container_gpu.cpp +++ b/common/gal/opengl/cached_container_gpu.cpp @@ -42,6 +42,16 @@ CACHED_CONTAINER_GPU::CACHED_CONTAINER_GPU( unsigned int aSize ) : { m_useCopyBuffer = GLEW_ARB_copy_buffer; + wxString vendor( glGetString(GL_VENDOR) ); + + // workaround for intel GPU drivers: diable glCopyBuffer, causes crashes/freezes on certain driver versions + if( vendor.Contains ( "Intel ") ) + { + wxLogDebug("Disabling glCopyBuffer() on intel GPU\n"); + m_useCopyBuffer = false; + } + + glGenBuffers( 1, &m_glBufferHandle ); glBindBuffer( GL_ARRAY_BUFFER, m_glBufferHandle ); glBufferData( GL_ARRAY_BUFFER, m_currentSize * VERTEX_SIZE, NULL, GL_DYNAMIC_DRAW );