Skip to content

Instantly share code, notes, and snippets.

@gamedev44
Last active September 21, 2025 21:34
Show Gist options
  • Save gamedev44/19ed0787e29290cdf58d0913e43a6947 to your computer and use it in GitHub Desktop.
Save gamedev44/19ed0787e29290cdf58d0913e43a6947 to your computer and use it in GitHub Desktop.
methods behind disc optimizations

Console I/O Architecture Comparison

Feature PlayStation 5 (PS5) Xbox Series X/S
I/O Architecture Integrated I/O with custom SoC Xbox Velocity Architecture
Key Compression Kraken (general purpose) and Oodle Texture (texture optimization) LZ Decompressor (general purpose) and BCPack (texture-specific)
Decompression Hardware Dedicated, custom Kraken decompression block Hardware-accelerated decompression unit
Hardware Compression Kraken uses software pre-processing (Oodle Texture) to improve compressibility BCPack is lossless, optimized for already-lossy BCn texture data
Average Throughput 8–9 GB/s (compressed) + 5.5 GB/s raw SSD 4.8 GB/s (compressed) + 2.4 GB/s raw SSD
Peak Theoretical Speed Up to 22 GB/s (depending on data compressibility) Over 6 GB/s (Microsoft does not cite peak)
Streaming Efficiency Uses Partial Resident Textures (PRT), relies more on brute-force SSD speed Uses Sampler Feedback Streaming (SFS) for intelligent tile loading
Developer Tools Free Oodle suite licenses (Kraken + Oodle Texture) DirectX ecosystem + DirectStorage API
Workflow BCn textures preprocessed by Oodle Texture → Kraken compression BCn data compressed further with BCPack
Relative Strengths Higher decompression speed via integrated hardware Focused on texture streaming efficiency with SFS → reduced I/O & memory load

Conclusion

  • PRT (Partial Resident Textures): A broad concept for managing tiled textures.
  • SFS (Sampler Feedback Streaming): A refined, hardware-accelerated evolution of PRT.

Breakdown of the Distinction

Partial Resident Textures (PRT)

  • General technique: Divides textures into tiles/pages.

  • How it works (software-based): Engine predicts required tiles based on camera + objects in view.

  • Limitations:

    • Requires more CPU overhead.
    • Inefficient (may load unused tiles).
    • Prone to texture pop-in if predictions fail.

Sampler Feedback Streaming (SFS / PRT+)

  • Advanced technique: Builds on PRT + adds sampler feedback hardware.
  • Hardware integration: GPU records exact texels accessed.
  • Intelligent streaming: Loads only needed texture tiles.
  • Improved efficiency: Boosts RAM + I/O bandwidth usage.

Comparison: PRT vs SFS

Feature Standard PRT (no feedback) Sampler Feedback Streaming (SFS)
Feedback Mechanism Software-driven, predictive Hardware-driven, tracks actual usage
Hardware Requirement Minimal (older GPUs with tiled resources) Requires modern GPU with sampler feedback hardware
Efficiency May load unnecessary tiles Highly efficient, loads only visible tiles
CPU Overhead Higher (software logic) Very low (hardware handled)
Artifacts More prone to texture pop-in Greatly reduced pop-in

Final Takeaway

  • PRT = Framework for tiled texture streaming.
  • SFS = PRT + GPU feedback, making streaming smarter, faster, and more efficient.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment