Skip to content

Support Making a way for users to upload CTS results #4622

Open

Description

@greggman

Browser vendors do not have access to all GPUs. It would be nice if we could find a way to let users run the CTS and auto-upload their results. Some issues

  • The results can be often extremely large (gigabytes)
  • For some tests, they aren't that useful without debug=1 turned on
  • We need a server to upload them to - ideally semi-public so anyone can benefit from the data collected
  • Browser's don't provide detailed GPU info unless it's enabled
  • The CTS is very large and takes a long time to run - and is prone to crash from out-of-memory and other issues

I'm imagining a site you can send someone a URL like

https://gpuweb.github.io/gpuweb/cts/standalone/?q=<query>&runnow=1&upload=<url-enum>

As a short step - I would like to add filter= and a glob or regex that would filter the list of tests. Example: q=webgpu:shader,execution,expression,call,builtin,*&filter=texture*offset all texture builtins testing offsets but no other builtins. This would let people send a URL to subset of the test (like posting: please test immediates via <url>)

upload=<url-enum> could/would be hard coded to specific URLs in the code so it could not be used make PUT request to any random site. If people want to host a server they can make a PR.

A server would probably want to do some number of checks of the data.

Other ideas? Thoughts?

Activity

  1. kainino0x commented on Apr 9, 2026

    @kainino0x
    Collaborator

    We could potentially do without the logs (and even maybe without the individual case results)? They would be useful for looking at a report and seeing what kind of failure it is, but that's probably too much data to really look through unless we have a really good system for it (something like chrome's crash database). So maybe we just need to know what's failing where and try to reproduce it locally?

    One bit of GPU info we really need is the driver version. Maybe we add some special browser flag for this (like an about:flags entry similar to --unsafely-treat-insecure-origin-as-secure, like --unsafely-expose-precise-gpu-info-to-origin=https://gpuweb.github.io) that we ask people to set? Or maybe we just require users to paste chrome://gpu / about:support in before submitting?


    The other idea I had is to have the page run tests in random order and stream the results to the server, that way we get results for all tests even if the user doesn't leave it open long enough or the page crashes. (If the stream gets flushed on a crash, maybe we can even get data on crashes this way?)

    It can also save the list of completed tests to local storage so that when the page resumes, it doesn't rerun tests it already sent.

    Also we will need to make sure that if the page permanently loses GPU access, it stops sending results, otherwise we'll end up with a lot of incorrect failure results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions