There has been much in the news regarding the optimizations Microsoft have pushed on the Xbox One regarding either drivers, SDK or the OS. But it’s important to remember that Microsoft aren’t the only ones working on their hardware. Sony too are busy optimizing and improving their tools. Sony’s “ICE Team” are a talented group who specialize in creating the core graphics technology for the Playstation 4 (previously the PS3) platform.
Cort Stratton is a senior programmer for Sony’s ICE Team and took to Twitter to proclaim his teams recent success “Finally wrote that ASM I was looking forward to. Early results: PS4 surface tiling/detiling on the CPU is ~10-100x faster now. SIMDlicious!.”
He pointed out that the previous code the team were using wasn’t great, and was basically little more than reference hardware code and not even slightly optimized for the PS4 hardware. “It was pretty bad. Pretty much a copy of the reference code from HW docs, evaluated in full per fragment with a memcpy at the end,” came Cort’s second tweet. He concluded with “(plus an awful memory access pattern; I needed to restructure things to write full cache lines).”
Remember that Cort Stratton was instrumental in the creation of much of the rendering code for the Playstation 3’s SPU (Synergistic Processing Units) which were notoriously difficult to utilize on the consoles release. It’s also worth noting that he pointed out that this latest iteration is still early code, and there will be further improvements to come. Of course, this doesn’t mean that frame rates (or graphics) will become 10-100x better on the PS4, but it does mean that the cost for certain tricks (particularly involving tiling) will be far lower.
Regarding the SIMDilicious comment, this is a pun on “Single Instruction Multi Data. Check wiki for more. It’s worth noting that the tiling in this case isn’t tiled resources, which of course is texture related. Indeed, the developer is likely referring to the subdivision of geometry. Geometry in graphics is the basic building blocks for ‘stuff’.
Furthering to the discussion, “No idea; I do very little CPU-side SIMD work on the PS4 CPU. This tiling code has to run on the host as well, so it’s just SSE2.” he said replying to a user questioning AVX/AVX2 in the AMD Jaguar. “I think they serve different needs / job sizes. Smaller jobs with tighter latency requirements are a better fit for CPU SIMD.”
Cort also pointed out that the PS4’s GPU doesn’t have a problem with AF: “No hardware/SDK issues that I’m aware of. Sounds like a question for the developer.” This is in regards to a question a user posed Stratton, likely due to recent news certain titles (such as Thief) were missing AFx16 and instead using the rather less impressive Trilinear filtering. Anisotropic Filtering is a texture filtering technique that’s extremely important for improving the visual quality of textures. The quality of textures without AF can degrade significantly, particularly when viewed at sharp angles.