Xbox 360/Hardware information/Xenos (GPU): Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Create initial page)
 
(Texture format table update)
Line 41: Line 41:
| Uncompressed || Bitmap || No || Not recommended due to high VRAM use
| Uncompressed || Bitmap || No || Not recommended due to high VRAM use
|-
|-
| DXT1/BC1 ||  || No ||  
| DXT1/BC1 || 4x4 pixels packed into 64 bits
c0 16-bit color (ARRRRRGGGGGGBBBBB)
 
c1 16-bit color (ARRRRRGGGGGGBBBBB)
 
pixelIndex[16] 2-bit indices, c0 = 00, c1 = 01, c2 = 10, c3 = 11
 
c0 < c1: c3 rather than representing a middle point between the two colors, represents full transparency
|| No ||  
|-
|-
| DXT2/BC2 ||  || No ||  
| DXT2/BC2 ||  || No ||  

Revision as of 16:08, 16 April 2024

A repository for ROMhacking relevant info for Xenos.

Basic Specifications

  • ATI Xenos @ 500MHz
    • World's first unified shading GPU
    • TeraScale uarch
    • 3 "SIMD cores" (predecessor to CUs)
    • 8 ROPS
    • 16 TMUs
    • 240 shaders
    • Direct3D Feature Level 9_0c, with some things from higher feature levels (mainly FL 10)
    • MEMEXPORT allows for GPGPU compute
    • Connected to 10MB of eDRAM framebuffer
      • eDRAM has extremely high bandwidth and PIM for free MSAA at 720p and low-cost at 1080p

Things to note: If using data from MEMEXPORT on CPU, you must enable both d3d12_readback_memexport and d3d12_readback_resolve in Xenia's options or use HW!

ucode Programming

Xenos, like other Xbox consoles, is able to directly ingest and execute ucode without having to be compiled by the driver first, allowing programmers to squeeze out more performance by relying on the fixed HW spec.

Xenos ucode
Instruction Hex Description
exec 0x10 0x2A 0x11 0x** Start executing code
(Unknown) 0xFF 0xFF 0x03 0x** NOP, end of program


Texture Formats

Xenos Supported Texture Formats
Format Description Xenos Specific Other
Uncompressed Bitmap No Not recommended due to high VRAM use
DXT1/BC1 4x4 pixels packed into 64 bits

c0 16-bit color (ARRRRRGGGGGGBBBBB)

c1 16-bit color (ARRRRRGGGGGGBBBBB)

pixelIndex[16] 2-bit indices, c0 = 00, c1 = 01, c2 = 10, c3 = 11

c0 < c1: c3 rather than representing a middle point between the two colors, represents full transparency

No
DXT2/BC2 No
DXT3/BC2 No
DXT3A Yes
DXT3A as 1111 Yes
DXT4/BC3 No
DXT5/BC3 No
DXT5A Yes
DXN Yes
CTX1 Yes

Useful Links

https://www.techpowerup.com/gpu-specs/xbox-360-gpu-90nm.c1919

https://learn.microsoft.com/en-us/windows/win32/direct3d9/dx9-graphics-reference

https://learn.microsoft.com/en-us/windows/win32/direct3d9/dx9-graphics-programming-guide

https://learn.microsoft.com/en-us/windows/win32/direct3d10/d3d10-graphics-reference

https://learn.microsoft.com/en-us/windows/win32/direct3d10/d3d10-graphics-programming-guide

https://xenia.jp/updates/2021/04/27/leaving-no-pixel-behind-new-render-target-cache-3x3-resolution-scaling.html

https://en.wikipedia.org/wiki/Unified_shader_model

https://fileadmin.cs.lth.se/cs/Personal/Michael_Doggett/talks/unc-xenos-doggett.pdf

http://www.students.science.uu.nl/~3220516/advancedgraphics/papers/inferred_lighting.pdf

https://www.amd.com/content/dam/amd/en/documents/radeon-tech-docs/instruction-set-architectures/R600_Instruction_Set_Architecture.pdf