Run Nvidia shader workaround earlier
We need to do it before utils.opengl_vendor(), and it fits better there anyway. This was a regression in v1.0. See #2554, #3106
This commit is contained in:
parent
d411ec1eba
commit
b3f395453b
@ -28,8 +28,6 @@ Module attributes:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import ctypes
|
|
||||||
import ctypes.util
|
|
||||||
|
|
||||||
from PyQt5.QtGui import QFont
|
from PyQt5.QtGui import QFont
|
||||||
from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile,
|
from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile,
|
||||||
@ -231,11 +229,6 @@ def init(args):
|
|||||||
if args.enable_webengine_inspector:
|
if args.enable_webengine_inspector:
|
||||||
os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = str(utils.random_port())
|
os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = str(utils.random_port())
|
||||||
|
|
||||||
# WORKAROUND for
|
|
||||||
# https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826
|
|
||||||
if utils.is_linux:
|
|
||||||
ctypes.CDLL(ctypes.util.find_library("GL"), mode=ctypes.RTLD_GLOBAL)
|
|
||||||
|
|
||||||
_init_profiles()
|
_init_profiles()
|
||||||
|
|
||||||
# We need to do this here as a WORKAROUND for
|
# We need to do this here as a WORKAROUND for
|
||||||
|
@ -23,6 +23,8 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import functools
|
import functools
|
||||||
import html
|
import html
|
||||||
|
import ctypes
|
||||||
|
import ctypes.util
|
||||||
|
|
||||||
import attr
|
import attr
|
||||||
from PyQt5.QtCore import Qt
|
from PyQt5.QtCore import Qt
|
||||||
@ -31,7 +33,7 @@ from PyQt5.QtWidgets import (QApplication, QDialog, QPushButton, QHBoxLayout,
|
|||||||
from PyQt5.QtNetwork import QSslSocket
|
from PyQt5.QtNetwork import QSslSocket
|
||||||
|
|
||||||
from qutebrowser.config import config
|
from qutebrowser.config import config
|
||||||
from qutebrowser.utils import usertypes, objreg, version, qtutils, log
|
from qutebrowser.utils import usertypes, objreg, version, qtutils, log, utils
|
||||||
from qutebrowser.misc import objects, msgbox
|
from qutebrowser.misc import objects, msgbox
|
||||||
|
|
||||||
|
|
||||||
@ -154,6 +156,19 @@ def _show_dialog(*args, **kwargs):
|
|||||||
sys.exit(usertypes.Exit.err_init)
|
sys.exit(usertypes.Exit.err_init)
|
||||||
|
|
||||||
|
|
||||||
|
def _nvidia_shader_workaround():
|
||||||
|
"""Work around QOpenGLShaderProgram issues.
|
||||||
|
|
||||||
|
NOTE: This needs to be called before _handle_nouveau_graphics, or some
|
||||||
|
setups will segfault in version.opengl_vendor().
|
||||||
|
|
||||||
|
See https://bugs.launchpad.net/ubuntu/+source/python-qt4/+bug/941826
|
||||||
|
"""
|
||||||
|
assert objects.backend == usertypes.Backend.QtWebEngine, objects.backend
|
||||||
|
if utils.is_linux:
|
||||||
|
ctypes.CDLL(ctypes.util.find_library("GL"), mode=ctypes.RTLD_GLOBAL)
|
||||||
|
|
||||||
|
|
||||||
def _handle_nouveau_graphics():
|
def _handle_nouveau_graphics():
|
||||||
assert objects.backend == usertypes.Backend.QtWebEngine, objects.backend
|
assert objects.backend == usertypes.Backend.QtWebEngine, objects.backend
|
||||||
|
|
||||||
@ -352,6 +367,7 @@ def init():
|
|||||||
if objects.backend == usertypes.Backend.QtWebEngine:
|
if objects.backend == usertypes.Backend.QtWebEngine:
|
||||||
_handle_ssl_support()
|
_handle_ssl_support()
|
||||||
_handle_wayland()
|
_handle_wayland()
|
||||||
|
_nvidia_shader_workaround()
|
||||||
_handle_nouveau_graphics()
|
_handle_nouveau_graphics()
|
||||||
else:
|
else:
|
||||||
assert objects.backend == usertypes.Backend.QtWebKit, objects.backend
|
assert objects.backend == usertypes.Backend.QtWebKit, objects.backend
|
||||||
|
Loading…
Reference in New Issue
Block a user