Xenos (GPU)

From Xenon Wiki
Revision as of 16:23, 16 July 2020 by Octal450 (talk | contribs) (→‎Specifications)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Xenos is a custom graphics processing unit (GPU) designed by ATI, used in the Xbox 360. Developed under the codename "C1," it is in many ways related to the R500 desktop PC graphics card series and therefore very similar to an ATI Radeon X1900 as far as features and performance are concerned. However, the Xenos introduced many new design ideas that were later adopted in the R600 series. The package contains two separate silicon dies, the GPU and an eDRAM, featuring a total of 337 million transistors. For infos about Xenos Framebuffer/Xenosfb click HERE and for infos about modesetting HERE

Specifications

  • GPU die: 90 nm process, 80 nm process on Zephyr and Falcon, 65 nm process on Jasper, and 45 nm process since Xbox 360 S model (integrated with CPU on one die)
  • eDRAM die: 90 nm process, 80 nm process on later Zephyr, Falcon, and Jasper, 65 nm process on Jasper/Kronos, Trinity, and Corona, and 45 nm process since Winchester (integrated with CPU and GPU into one die)
  • 325 Million transistors (Other specs say 337 million total)
  • GPU & Northbridge (Northbridge on Parent Die)
  • Two-die design, with two chips in a single package on a single substrate
    • Parent die contains the GPU and memory controller
    • Daughter die consists of the 10MB of eDRAM & additional logic (FSAA, Alpha, ZLogic & Stencil)
    • 2GHz link between the parent and daughter die
  • 500MHz processor
  • 10 MB of embedded DRAM (By NEC)
  • 48-way parallel floating-point dynamically scheduled shader pipelines
    • 4 ALU's per pipe for Vertex or Pixel Shader processing
  • Unified shader architecture (Beyond Shader Model 3.0)
  • Three SIMD engines with 16 processors per unit (The 48 shader pipeline) 
  • 16 Filtered & 16 unfiltered texture samples per clock
  • HDR Rendering
  • DirectX 9
  • Limited support for DirectX 10
  • Handles all scaling of video (resolution).

Linux Support

Currently, we have support for the framebuffer console. We also have an unaccelerated X driver. We don't yet have support for acceleration, neither 2D nor 3D, but there is on going work. [1] Rudimentary video mode setup code exists in XeLL and the Linux framebuffer driver. There are though problems with interlaced modes.


Framebuffer Code

Unfortunately, the framebuffer memory is not linear (i.e. pixels are not stored one after another, line after line). The memory is organized in tiles of 32x32 pixels, where in each tile blocks of 4x1 pixels are scattered around. Every pixel is stored as a 32 bit RGBx tuple.

The tiling breaks most framebuffer applications which require linear access, causing heavily distorted pictures. This could maybe be fixed by writing custom blit routines in xenos_fb. Are there any apps using the framebuffer blit functions, or is everybody mmap()ing? -- Ge0rG 15:03, 21 Jan 2008 (PST)

External Links