Skip to content

[bug] Qt WebEngine GPU/OpenGL failure causes fullscreen and rendering issues on Linux (requestFullscreen not working) #14

@vamshikrishna781

Description

@vamshikrishna781

Summary

Hi,

I am using the Linux version of Safe Exam Browser (jvr2022/seb-linux), and I am facing issues related to GPU/OpenGL rendering which affect fullscreen functionality and overall stability.

Issue Summary

  • SEB fails to initialize OpenGL/Vulkan context
  • Browser rendering falls back or breaks
  • requestFullscreen() does not work (throws error: "Fullscreen is not supported")
  • This affects exam environments where fullscreen enforcement is required

Error Logs

QCommandLineParser: option not defined: "dev-bypass"
This plugin does not support createPlatformOpenGLContext!
QRhiGles2: Failed to create context
QVulkanInstance: Failed to initialize Vulkan
Unable to detect GPU vendor.
js: Uncaught (in promise) TypeError: Fullscreen is not supported

Steps to Reproduce

  1. Run SEB with a local .seb config or URL:
    safe-exam-browser file:///path/to/test.seb
  2. Load a page that uses:
    document.documentElement.requestFullscreen()
  3. Observe failure in fullscreen and console errors

Expected Behavior

  • SEB should support fullscreen via requestFullscreen()
  • Proper fallback to software rendering if GPU is unavailable

Actual Behavior

  • Fullscreen API fails
  • Rendering backend errors (OpenGL/Vulkan)
  • SEB UI partially works but lacks full functionality

Environment

  • OS: Linux (Kali / Ubuntu-based)
  • SEB Version: (mention your version)
  • Installation: GitHub repo (jvr2022/seb-linux)

Workarounds Tried

  • QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu"
  • QT_QUICK_BACKEND=software
  • LIBGL_ALWAYS_SOFTWARE=1

These reduce errors but do not fully fix fullscreen support.

Suggestion

  • Provide a stable software-rendering fallback
  • Ensure fullscreen API works even without GPU acceleration
  • Improve error handling/logging for graphics backend

This issue impacts the ability to simulate real exam environments on Linux.

Thanks!

Steps to reproduce

  1. Start a local server:
    python3 -m http.server 8000

  2. Launch Safe Exam Browser with a local .seb file or URL:
    safe-exam-browser file:///var/www/html/sebtest/test.seb
    OR
    safe-exam-browser http://127.0.0.1:8000/seb-test1.html

  3. Open a page that uses fullscreen API:
    document.documentElement.requestFullscreen()

  4. Observe that fullscreen does not activate and console shows errors.

Expected behavior

  • Fullscreen should work using requestFullscreen()
  • SEB should properly initialize rendering backend (OpenGL/Vulkan)
  • If GPU is unavailable, SEB should fallback to software rendering
  • Exam UI should run in fullscreen mode without errors

Actual behavior

  • Fullscreen API fails with error: "Fullscreen is not supported"
  • OpenGL/Vulkan initialization fails
  • Rendering backend errors appear in logs
  • SEB loads page but does not support fullscreen or proper rendering

Version

0.5.1

Linux distribution

Ubuntu

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions