Resources

Links about developing for the PSP

Useful reporting links

These are links to report.ppsspp.org, where we collect automatic bug reports.

General programming resources

This is just a collection of interesting things.

Floating point tricks

Software optimization

Rasterization

Meshes

SIMD resources

SSE gap filling

AVX2 and AVX-512

NEON tricks

When can you start require feature X?

x86-64 CPUs that do not support SSSE3

SSSE3 has the nice instruction pshufb, which is useful for various format conversion operations and a lot more. There are very few x86-64 CPUs left that do not support SSSE3.

Vendor Models Lacking SSSE3 Notes
AMD K8 family only (first-gen AMD64):
• Athlon 64
• Opteron 1xx/2xx/8xx
• Turion 64
• Sempron (AMD64 variants)
Produced ~2003–2007. All Phenom (K10) and later support SSSE3.
Intel Pre-Penryn Core era:
• Early Core Solo/Duo (Yonah – mostly 32-bit)
• Some first-gen Core 2 (early Merom/Conroe steppings)
SSSE3 widely deployed starting with Core 2 refresh / Penryn (~2006–2007).
Via Early VIA Nano Very rare in the wild.

SSE4.2 is also useful, but there are still some CPUs around that don't support it, so we probably don't want to require it.

x86-64 CPUs that do not support SSE4.2

(latest non-supporting generations)

Vendor Last Generation Without SSE4.2 Models / Examples Notes
Intel Penryn (Core 2 Refresh, ~2007) Core 2 Duo E8xxx / T9xxx, Core 2 Quad Q9xxx, Xeon 51xx / 53xx Penryn has SSE4.1 only, no SSE4.2. SSE4.2 starts with Nehalem (Core i7-900 series, 2008).
AMD Phenom II / K10 (~2008–2010) Phenom II X4/X6, Athlon II, Opteron 23xx/83xx K10 supports SSE4a only (not SSE4.1/4.2). Proper SSE4.2 starts with Bulldozer (FX-8000 / Opteron 6200, 2011).
VIA Early VIA Nano VIA Nano 2000-series Later Nano C-series implements SSE4.2-like crypto/string ops; early ones do not.
Su