Virtual frame buffer and VSYNC

yellvillepotatocreekΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

70 εμφανίσεις

Virtual frame buffer and VSYNC

fb on

GPU

fb on

GPU

GPU

Kernel

Vfb on

XDR

Output

request from

application

application

Every VSYNC, do;


-

notify VSYNC to application


-

DMA and FLIP request

FLIP

V field

VSYNC to application

t

DMA

Timing chart

Vfb on

XDR

FLIP

FLIP
req

FLIP

GPU

Kernel

vsync

Flip done

irq

FB 0

hvc

DMA

blocking

FLIP req.

hvc

vsync

Flip done

FLIP

with

sync

DMA is kicked, if the former
FLIP has been done

t

single frame buffer is used
from Xserver, ...

FB 0

User

Kernel

vsync

Flip done

FB

0

DMA

vsync

Flip done

FLIP

with

sync

t

stop flipping
in the kernel

ON

IOCTL

FSEL

WAITFORVSYNC

IOCTL

blocking

FB

1

IOCTL

FSEL

1
st frame

buffer

OFF

end of user
application

screen size,

num of frame buffers

SCREENINFO

IOCTL

IOCTL

FLIP req.

2
nd frame
buffer

WAITFORVSYNC

Overview of Linux Installation

Linux Area


Select “Format utility” menu

Game Area

Built
-
in HDD

PS
3

Other OS Flash Area

Select “Install Other OS” menu

0

Boot flag: 0(= Game OS)

Distro
-
A Web Page

Kboot
for
Distro
-
A

Kboot
for
Distro
-
A

Flash Rom

Kboot
for
Distro
-
A

PS
3

Memory card/Optical Disc


<
----------------

16
bytes
-------------------
>


address segment


-------

+===============================================+
----


0
x
000000
| “cell_ext_os_area" |
0


+
-----------
+
-----------
+
-----------
+
-----------
+


0
x
000010
| version | offset
1
| offset
2
| (reserved)|


+===========+===========+===========+===========+


0
x
000020
| ldr format| ldr size | |


+
-----------
+
-----------
+ |


| |


: (reserved) :


| |


+
-----------
+
-----------------------------------
+
----


0
x
000200
|
boot flag

| (reserved) |
1


+
-----------
+
-----------------------------------
+


0
x
000210
| |


| |


: (ext params) :


| |


+===============================================+
-----


0
x
000400
| |
2
(offset
1
)


: (Other OS area) : :


| | :


+===============================================+
-----



| | offset
2


: (boot loader area) : :


|




| :


-------

+===============================================+
-----


0
x
400000 8192

bo ot l oa de r i ma ge

i n s t a l l

U s e r

c h a n g e a b l e

*
Re s e r v e d Ar e a i n PS3 Sy s t e m F l a s h Ro m


He a d e r


CE L L OS A r e a


B o o t f l a g
c o u l d b e c h a n g e b y u s e r


Ot h e r OS A r e a


B o o t L o a d e r A r e a


B o o t l o a d e r i ma g e

c o u l d b e i n s t a l l e d b y u s e r




Det ai l of For mat

T h e f o r ma t c o u l d b e c h a n g e.

P l e a s e r e f e r P S
3
website,

for up to date information

PS
3

Select “Default System” menu and set to “Other OS”

Boot flag: 0
-
> 1 (Other OS)

Other OS Flash Area

1

Kboot
for
Distro
-
A

User can switch which system to be booted though by PS
3
System menu.

Flash Rom

Power on


boot flag = 1

PS
3
Env

Load & exec boot loader


from boot loader area

Initialize Hardware and

mount devices


Time out or

RET


User inputs?

Exec default kernel

Exec user specified kernel

N

N

Y

Y

Y

N

in kboot

kboot

SPE Programming Environment
Overview

PPE

Linux Kernel

PPE Application

SPUFS

libspe

SPE

SPE Application

newlib

vector math library

SIMD math library

System Overview

PPC
64
infrastructure



Mouse/KBD

Bluetooth

PAD

HW

Hyper

visor



HDD/

BD

GbE

Graphics

Mouse/

KBD

NETWORK

802.11

Wireless

Bluetooth

USB

USB

audio

GbE

storage

ALSA

ATA

virtualization

FB

VFB

disk

TCP/IP

etc


X


Video

Output

Control

Video

Output

Control


Linux kernel

video

output

control

graphics

audio

network

storage

USB

function

SPUs

Audio

USB mass

SPE

support

utils

libspe

SPU

support

PS
3
support

System Bus

Platform

support

PPU

SCSI

rom

Copyright ©
2007

Sony Computer Entertainment Inc.

Copyright ©
2006
,
2007
Sony Corp.


Permission is granted to copy, distribute and/or modify this document under the terms of
the GNU Free Documentation License, Version
1.2
or any later version published by the
Free Software Foundation; with no Invariant Sections, no Front
-
Cover Texts, and no
Back
-
Cover Texts. A copy of the license is included in the section entitled "GNU Free
Documentation License".


DISCLAIMER OF WARRANTY


THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE, NON
-
INFRINGEMENT, OR TITLE; THAT THE CONTENTS
OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS
THEREOF.


1
st frame buffer

2
nd frame buffer

offset to

1
st fb

offset to

2
nd fb

+
0
(byte)

+ xres * yres * BPP

(byte)

xres
-

2 * xoff (pixel)


yres
-

2
* yoff

(pixel)

xres * BPP (byte)

byte to
next line


yres
-

2
* yoff

(pixel)

mmap

address

offset