Google and Qualcomm: Pixel-Perfect?

Looking at Android graphics driver reliability for Google’s Pixel phones

The Pixel 2’s newer Qualcomm Adreno 540 driver introduces new issues, and trades issues of one kind for another, when compared with the Galaxy S8’s older driver.
Try out our web app — the GraphicsFuzz benchmark — on your Android device and let us know what issues it finds!
Click the table image to go to an interactive version where you rank the devices according to issue type.

The Details

Check out our full results tables.

Pixel 1 vs. Pixel 2

The drivers for the two Pixel phones behave very similarly on our tests. There are a few differences, though:

  • Two crashes on the Pixel 2 that render fine on the Pixel 1 — variant 073 of shader family 006 and variant 122 of shader family 009
  • A Pixel 1 crash that instead gives a compilation error on the Pixel 2 — variant 065 of shader family 008. The compiler error string is empty, however.
  • A compilation timeout on the Pixel 1 for variant 046 of shader family 005; this renders fine on the Pixel 2.
  • A bad image on the Pixel 1 that shows up as a crash on the Pixel 2 — variant 051 of shader family 008; however, we have observed this variant to fluctuate nondeterministically between crashing and misrendering on Qualcomm drivers:
For variant 051 of shader family 008, the Pixel 1 renders the unexpected image on the right; the expected image from the reference shader is shown on the left. However, we have also found that Qualcomm drivers fluctuate between crashing and rendering a bad image for this test.
  • A fix: a shader that gives bad images on both the Pixel 1 and the Galaxy S8, but gives the right image on the Pixel 2; variant 050 of shader family 009:
The left image is the expected image for variant 050 of shader family 009, and the newer Qualcomm drivers on the Pixel 2 yield this image. The unexpected image on the right is rendered on the Pixel 1, as well as on the Galaxy S8.

Pixel 2 vs. S8

Comparing the Pixel 2 and S8 results in more detail, there are a number of apparent fixes in the more recent Pixel 2 Qualcomm driver, including variant 050 of shader family 009 (see above), and variant 228 of shader family 007, which gives a link error on the S8 but renders fine on the Pixel 2.

The reference image (left) is rendered by the S8 drivers for variant 092 of shader family 009, but the unexpected image (right) is rendered with the more recent Qualcomm drivers in the Pixel 2.

Next time…

…we’ll look at a Nexus device with a PowerVR GPU from Imagination Technologies.

See also

Our original series of Medium stories describing the underlying technology.

--

--

Computer Scientist

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store