Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use libepoxy #1189

Merged
merged 4 commits into from
Feb 11, 2024
Merged

Use libepoxy #1189

merged 4 commits into from
Feb 11, 2024

Commits on Feb 10, 2024

  1. build: add libepoxy

    Add libepoxy dependency to CI manifest and Nix.
    
    For Nix, we need to set shellHook to workaround a NixOS limitation, see:
    
    NixOS/nixpkgs#287763
    
    Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
    yshui committed Feb 10, 2024
    Configuration menu
    Copy the full SHA
    fcd51e7 View commit details
    Browse the repository at this point in the history
  2. backend: gl: use libepoxy

    There is actually no specification what symbols are exported from a
    libGL implementation. The (extremely outdated) OpenGL ABI specification
    says only GL 1.2 functions are guaranteed. Don't know how relevant that
    is now, but different libGL implementations do export different set of
    symbols. On Linux we are most likely to be linked with libglvnd, which
    has everything we need. But on other platforms this is not necessarily
    the case, for example on OpenBSD we are missing glGetQueryObjectui64v.
    
    Use libepoxy so we can outsource this problem and never worry about it
    ever again. Plus it also saves us from calling GetProcAddress ourselves.
    
    Changes other than trivial build fixes I have to make:
    
    1. Can't use eglCreatePlatformWindowSurface/eglGetPlatformDisplay.
       libepoxy checks for EGL 1.5 when resolving these functions. But
       without a current context, libepoxy assumes we only have EGL 1.4.
       This creates a chicken and egg problem - we need a display to call
       eglGetPlatformDisplay. We have to use the *EXT version instead.
    
    Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
    yshui committed Feb 10, 2024
    Configuration menu
    Copy the full SHA
    eb723ee View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2024

  1. backend: gl: use libepoxy's has_*_extension

    So we don't need maintain our own version.
    
    Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
    yshui committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    755996a View commit details
    Browse the repository at this point in the history
  2. Update README.md and CHANGELOG.md

    Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
    yshui committed Feb 11, 2024
    Configuration menu
    Copy the full SHA
    642a43a View commit details
    Browse the repository at this point in the history