Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • gtk gtk
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 1.6k
    • Issues 1.6k
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 267
    • Merge requests 267
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • gtkgtk
  • Issues
  • #6085

Opacity reftest failures when using softpipe: a 1px high line with 1 RGBA level difference

If GTK's build-time tests are run with GALLIUM_DRIVER=softpipe, some recently-added reftests fail. This is non-architecture-specific (it happens on x86_64 just as much as any other architecture), but particularly affects CPU architectures where Mesa's llvmpipe is broken (like mips64el) or unavailable (like riscv64, because llvmpipe uses a deprecated JIT interface for which LLVM is not accepting new architecture support).

The cairo rendering seems to match the reference every time, it's only GL where it can differ.

The autobuilders used to build distribution packages generally do not have access to a GPU, so they will usually have to fall back to software rendering of some sort, either llvmpipe or softpipe.

In Debian, we're working around this by allowing small rendering differences in the affected tests (GSK opacity-overdraw and GTK opacity). I tried submitting a MR a while ago to add the infrastructure to be able to do this (!3195 (closed)) but it was rejected.

GSK opacity-overdraw

Expected:

opacity-overdraw

Actual:

opacity-overdraw.out

Emphasized difference (it seems to be the line where the outside top of the red square meets the inside of the blue square):

opacity-overdraw.diff

# 20 (out of 900) pixels differ from reference by up to 1 levels

In the flipped/repeated/rotated renderings (not attached here, our infrastructure to exfiltrate diffs via autobuilder logs doesn't yet know about the variant renderings) the difference is in 21, 80 or 39 pixels respectively, but again only by up to 1 level per RGBA channel per pixel.

GTK opacity

Expected:

opacity.ref

Actual:

opacity.out

Emphasized difference:

opacity.diff

# 40 (out of 1800) pixels differ from reference by up to 1 levels
Edited Sep 04, 2023 by Simon McVittie
Assignee
Assign to
Time tracking