The HTC 10 Reviewby Joshua Ho on September 19, 2016 8:00 AM EST
System Performance Cont'd
Now that we've discussed how the HTC 10 performs in general purpose task we can turn our attention to tests that attempt to better test how a device performs in 3D gaming and other tasks that more strongly emphasize GPU and 3D API performance.
In the on-screen tests we can see the impact that the extra resolution has on GPU performance. Despite Adreno 530 providing a significant performance uplift the HTC 10 can actually give less GPU performance at native resolution depending upon the workload. Car Chase is fairly tesselation-intensive and uses ES 3.1, while ES 2 and ES 3 tests like Manhattan and T-Rex see parity between the two.
In 1080p off-screen rendering we see performance similar to applications that would render at non-native resolutions. Here the HTC 10 significantly outperforms the One M9 across the board and is in line with other Snapdragon 820 devices which is probably not a surprise.
Performance here shows an uplift over the One M9, but this is primarily because the scores are based upon the off-screen results where resolution is equalized.
As 3DMark relies on off-screen rendering again we can see the benefit of Adreno 530 over Adreno 430 but this can only be achieved if you use the game optimization settings in the Boost+ application. Overall this isn't particularly notable outside of simple verification that nothing is seriously wrong with the software and hardware on the HTC 10.
Storage performance, while decidedly difficult to test well in the mobile space and generally not all that well covered remains a fairly critical component of overall system performance. It’s definitely possible to hide memory performance issues with caching, but if you’ve ever taken a course on these things you can see that there is an upper bound to performance when it comes to caching. As a result, being able to improve performance at each step of the memory mountain is critical to having low latency and high throughput for data in the system. In order to test storage performance on mobile devices, we continue to rely on AndroBench 4 for Android devices. In order to properly test storage performance in a somewhat realistic manner we elect to test with only one I/O thread and a 100 MB test set with 4KB and 256KB block sizes for random and sequential rather than the strange settings of 8 threads and a 32MB sequential test which seems to be geared towards generating the largest numbers humanly possible rather than any meaningful throughput figure.
In the case of the HTC 10 it’s probably not a surprise at this point but it uses iNAND 7232 from SanDisk, seemingly as a single source supplier. This uses the SLC/TLC hybrid configuration seen in devices like the LG V10, iPhone 6, 6s, and 7 as well. The SLC storage is on the order of a few hundred megabytes, so sequential writes that exceed this size will see a drop-off in performance.
These results are probably not a surprise if you’ve been following our recent coverage but it’s still worth noting how the use of eMMC 5.1 is not guaranteed to be a huge impediment, although I would say this is probably the last generation where it’s acceptable to ship eMMC in a flagship device as the eMMC spec doesn’t seem to be progressing much further and UFS/NVMe solutions really seem to be the way forward as far as the industry is concerned. The HTC 10 is not really that far off from the UFS solutions we’ve seen in phones like the Galaxy S7 and from the Discomark results you can see that the eMMC 5.1 solution used here isn’t really causing a huge difference in performance, but I suspect anything that can actually take advantage of UFS’ more sophisticated controller will really start to highlight the weakness of eMMC and SDIO. At this point the industry already has UFS as a fairly widespread standard so HTC could take this route for a future flagship or NVMe storage depending upon their logistics. It's really important to emphasize here how UFS and NVMe are not necessarily better one way or another, as these things only matter when the storage or storage controller isn't the bottleneck.