You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support Making a way for users to upload CTS results #4622
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
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.
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.
Activity
kainino0x commentedon Apr 9, 2026
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 pastechrome://gpu/about:supportin 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.