GPU

From Vita Development Wiki
Revision as of 20:41, 28 October 2015 by Xyz (talk | contribs) (→‎Abbreviations)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The GPU used in PS Vita is a PowerVR SGX543MP4+.

Kernel module SceGpuEs4 is very similar to the Linux PVR kernel module which is open source. A lot of versions are available, see for example http://elinux.org/CI20-SGX_kernel_module

Abbreviations

  • EDM: Event Data Master
  • PDS: Program Data Sequencer
  • PVR: PowerVR
  • TA: Tile Accelerator
  • USSE: Universal Scalable Shader Engine

Architecture

Memory context

The GPU has its own MMU. Every render context (one per application) gets its own GPU virtual address space. The MMU tables are managed by the ARM kernel. When a user calls sceGxmMapMemory the kernel first checks if the memory's accessible by the user and then maps it to the GPU with the same virtual address. However there are also other memory areas mapped to the GPU:

Heap ID GPU vaddr Comments
0x7000000 0x40000000 General
0x7000001 0x50000000 TA Data
0x7000002 0x14000000 Kernel Code
0x7000003 0x1C000000 Kernel Data
0x7000004 0x30000000 Pixel Shader
0x7000005 0x34000000 Vertex Shader
There are more heaps, 20 in total

uKernel