Performance

As we've come to expect from Samsung, there are two versions of the Galaxy S8: the "International" version with an Exynos processor, and the US version, which is the first phone to market in the US to use Qualcomm's new Snapdragon 835 SoC. We're going to focus on the Qualcomm version of the Galaxy S8. This is the more interesting version anyway, since we're about to see the Snapdragon 835 in every new flagship going forward.

Over the past year, we've grown very used to the Snapdragon 820/821. That chip was a quad-core 14nm SoC and used Qualcomm's custom "Kryo" CPU cores, the company's first in-house 64-bit chip design.

The Snapdragon 835 moves to Samsung's 10nm FinFet process (Samsung is the exclusive manufacturer of the Snapdragon 835 for Qualcomm), making the package 35 percent smaller than the Snapdragon 820. The Snapdragon 835 is back to being an eight-core chip, packing a bunch of "Kryo 280" CPU cores. The Snapdragon 820 represented a move from an ARM design to Qualcomm's custom-designed 64-bit "Kryo" CPU cores, but despite sharing a name, the Kryo 280 isn't related to the custom Qualcomm CPU architecture. Qualcomm is back to using ARM core designs, but this time they are "semi-custom," using ARMs new "Built on ARM Cortex Technology" license.

We're still on a big.LITTLE design, where the fast, power-hungry "big" cores handle the heavy lifting and the slower, lower-power "little" cores handle everything else. The 835 has four 2.45GHz Kryo 280 "Performance" cores and four 1.9GHz Kryo 280 "Efficiency" cores.

We also taking this opportunity to update our CPU benchmark to Geekbench 4.1. A few bugs have been fixed and workloads have been tweaked, so these scores are not comparable to Geekbench 4.0 or any previous version of Geekbench. The results show that single core performance has not moved much in the upgrade from an 821 to an 835, but the switch from four to eight cores means a big boost in the multi-core test. Apple's A10 Fusion SoC continues to lean on fewer, larger cores to do most of the heavy lifting (it includes two "little" cores designed to save power, but only two cores can be active at a time). For now, that means Apple's single-core performance is still way ahead of anything with a Snapdragon in it.





















GPU performance versus the resolution settings

GPU testing gets a bit more complicated. The Galaxy S8 plays around with the screen resolution a lot, which adds a wrinkle (OK, several wrinkles) to testing it. The native resolution of the screen is 2960×1440. Out of the box, the resolution's primary function seems to be looking good on a spec sheet, because by default, the Galaxy S8 GPU only renders at 2220×1080. That's 56 percent of the native pixel count. If you dig into the display settings (Settings -> Display -> Screen resolution), you can change the resolution the GPU renders at. This is a system-wide setting, and you get three options: 1480×720, 2220×1080 (default), and 2960×1440 (native).

The Galaxy S8 also likes to automatically stick apps into a letterboxed mode that slaps black bars on the top and bottom of the screen. Extra tall aspect ratios are quickly becoming the norm this year, but Samsung apparently didn't feel comfortable letting every app run wild on the 18.5:9 display. The letterbox mode is almost 16:9—it's 16.7333:9. The Galaxy S8 somehow tries to detect whether or not an app should run in full-screen mode (possibly using the android:resizeableActivity flag) with the end result being that some apps (mostly games) end up in the letter box mode, while others get to be full-screen by default. This is another setting users can change, both in the display settings (Settings -> Display -> Full screen apps) and as a toggle button that sits on top of each thumbnail in the Recent Apps screen.







The letterbox mode adds another three resolutions to the Galaxy S8, bringing the total to six different resolutions that can be reported to apps:

1339×720 (Letterboxed)

1480×720 (Full screen)

2008×1080 (Letterboxed)

2220×1080 (Full screen)

2678×1440 (Letterboxed)

2960×1440 (Full screen)

That all seems very complicated, but no more so than what PC gamers are used to dealing with. The aspect ratio controls do seem a little like overkill, though. If Android is good at anything, it's hardware fragmentation. Android devices come in so many screen shapes and sizes, and the hardware fragmentation problem has been known about for so long, that any competently written app can adjust to just about any screen size. There's also the resizable app framework introduced in Android 7.0 Nougat, which demands that apps be adjustable to any aspect ratio. Even with the funky 18.5:9 aspect ratio, everything should still "just work." For the most part, it does.

After the Xiaomi Mi Mix and LG G6, the Galaxy S8 is the third extra-tall display on the market, and every 2D app I've tried works perfectly. Apps usually have some kind of vertically scrolling list view, and the list just gets a bit taller. Almost every game I've tried works just fine, too, with one exception: Super Mario Run . Nintendo didn't extend the ground artwork down far enough, so it abruptly stops, exposing a black background. Samsung's aspect ratio controls were useful here, but the default of "every game gets letterboxed" seems way too conservative. In our testing, 99 percent of the time the defaults were wrong, and the game ran fine in full-screen mode.

Six different resolution options complicates things for our GPU benchmarks, but we tackled it by testing two configurations. First, the default setup, which launches GFXbench at 2008×1080. That's the 16:9-ish aspect ratio with black bars at the top of the screen and a non-native "1080p" resolution. Second, we tested the "native resolution" setup, which runs full-screen at 2960×1440.





The performance difference between "default" and "native resolution" is significant. Samsung's default 2008×1080 setup is only rendering about half the pixels of the display's native 2960×1440 resolution—2.17 million versus 4.26 million, respectively. GFXBench scores respond intuitively to this resolution jump: doubling the pixels gets you about half the FPS (frames per second) in each test.

While the on-screen benchmark performance at full resolution is similar to flagship devices from last year, Samsung apparently feels its GPU isn't powerful enough to do 3D games at the full 2960×1440 resolution. It has a resolution-reducing "Game mode" that promises users it will "enhance your gaming experience by making games run more smoothly."

Actual in-app performance on the Galaxy S8 is not great. The Google Pixel raised the bar for what smooth Android performance looks like, and the Galaxy S8 just can't keep up. In the above picture you see Android's built-in GPU profiler mode. Each vertical line is the time it takes to draw a single frame, with the horizontal green bar representing 60FPS. Bars under the green line rendered in time, resulting in smooth 60FPS scrolling. Bars that overshoot the line took too long to render, resulting in a stutter in the UI animation.

Even in the lowest resolution possible—1480×720—the Galaxy S8 still drops a ton of frames when scrolling complicated apps like the Play Store. The highly optimized Google Pixel—at its full 2560×1440 resolution—is easily getting frames in on time. And even if things do slow down, there's a sizable amount of render time still.

No matter what resolution you pick on the Galaxy S8, scrolling (especially scrolling slowly) has this weird stutter to it and a slight ghosting effect. Not everyone is sensitive to small performance issue like this, but if you are, you'll find the S8 a little unpleasant to use. I wish Samsung focused more on optimizing the whole display and GPU stack to hit 60FPS and run more smoothly, rather than adopting the raw benchmark focus the company seems to have now.