• 검색 결과가 없습니다.

Chromium 기술 분석 보고서

N/A
N/A
Protected

Academic year: 2021

Share "Chromium 기술 분석 보고서"

Copied!
53
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

ISBN 89-5884-324-1 98560

Chromium 기술 분석 보고서

이 중 연 (

Joong Youn Lee)

[email protected]

Visualization Team, Supercomputing Center

구 기 범 (

Gee Bum Koo)

[email protected]

Visualization Team, Supercomputing Center

한 국 과 학 기 술 정 보 연 구 원

(2)

제목 차례

I. 머리말 ··· 1

1. 개요 ··· 1 2. 배경 ··· 3

II. WireGL ··· 4

1. OpenGL 병렬 API ··· 5 2. 네트워킹 ··· 9 가. 네트워크 프로토콜 ··· 9 나. 버케팅 (Bucketing) ··· 10 다. 상태 추적 (State Tracking) ··· 11

III. SPU (Stream Processing Unit) ··· 15

IV. Chromium의 설정 ··· 33

1. Chromium의 동작 ··· 33 2. Mothership 설정 파일 ··· 33 3. Chromium 서버 ··· 34 4. Chromium 애플리케이션 ··· 36

V. 다른 소프트웨어들과의 비교 ··· 40

1. 유사 소프트웨어 및 프로젝트 ··· 40 가. Multipipe SDK ··· 40 나. CAVELib ··· 40

다. Distributed Multiheaded X11/GLX Proxy ··· 41

라. OpenSG ··· 41

마. Renderizer ··· 42

바. SV6 / SV7 ··· 42

사. VizServer ··· 43

(3)

표 차례

표 III-1. Binaryswap SPU 설정 옵션 ··· 16

표 III-2. Feedback SPU 설정 옵션 ··· 18

표 III-3. FPS SPU 설정 옵션 ··· 18

표 III-4. Hiddenline SPU 설정 옵션 ··· 19

표 III-5. Matte SPU 설정 옵션 ··· 20

표 III-6. Motionblur SPU 설정 옵션 ··· 20

표 III-7. Pack SPU 설정 옵션 ··· 21

표 III-8. Perf SPU 설정 옵션 ··· 22

표 III-9. Print SPU 설정 옵션 ··· 22

표 III-10. Readback SPU 설정 옵션 ··· 23

표 III-11. Render SPU 설정 옵션 ··· 25

표 III-12. Replicate SPU 설정 옵션 ··· 26

표 III-13. Saveframe SPU 설정 옵션 ··· 27

표 III-14. Tilesort SPU 설정 옵션 ··· 30

표 III-15. VNC SPU 설정 옵션 ··· 31

표 III-16. Wet SPU 설정 옵션 ··· 31

표 III-17. ZPix SPU 설정 옵션 ··· 32

표 IV-1. Chromium 서버 설정 옵션 ··· 36

(4)

그림 차례

그림 I-1 Chromium 계층 구조 ··· 2 그림 I-2. Chromium의 실행 모습 ··· 2 그림 II-1. WireGL 시스템 구조 ··· 4 그림 II-2. 병렬 마칭큐브의 실행과정 ··· 9 그림 II-3. 패킹한 네트워크 프로토콜 ··· 10 그림 IV-1. Chromium의 동작 방법 ··· 33

(5)

소스 차례

소스 II-1. 애플리케이션 배리어를 사용한 쓰레드들 ··· 5 소스 II-2. 명령어의 실행 순서 ··· 6 소스 II-3. OpenGL 배리어를 사용한 쓰레드들 ··· 6 소스 II-4. 병렬 그래픽스 인터페이스 확장 ··· 7 소스 II-5. 병렬 마칭큐브 ··· 8

소스 II-6. Hierarchical Dirty Bits 구조 ··· 13

소스 II-7. dirty bits 설정 알고리즘 ··· 13

소스 II-8. 상태 변경 알고리즘 ··· 14

소스 IV-1. Chromium 서버 설정 예 ··· 34

(6)

z

z

(7)

z z z z z z z

(8)

z

(9)
(10)
(11)

Thread1 Thread2

DrawPrimitives(opaq[1..256]) DrawPrimitives(opaq[257..512])

DrawPrimitives(tran[1..256])

DrawPrimitives(tran[257..512]) Thread1 DrawPrimitives(opaq[1..256]) glpBarrier(glpBarrierVar) DrawPrimitives(tran[1..256]) glpBarrier(glpBarrierVar) Thread2 DrawPrimitives(opaq[257..512]) glpBarrier(glpBarrierVar) glpBarrier(glpBarrierVar) DrawPrimitives(tran[257..512])

(12)

glpNewBarrier (GLuint barrier, GLuint numCtxs) barrier->numCtxs = numCtxs;

barrier->count = numCtxs; glpBarrier (GLuint barrier) barrier->count--;

if (barrier->count == 0)

barrier->count = barrier->numCtxs; signal(all waiting contexts); else

wait();

glpDeleteBarrier(GLuint barrier) glpNewSema (GLuint sema, GLuint count) sema->count = count;

glpPSema (GLuint sema) if (sema->count == 0) wait();

(13)

(a) MarchSerialOrdered (M, N, grid) for (i = 0 ; i < M ; i++) for (j = 0 ; j < N ; j++) ExtractAndRender(grid[i, j]) (b) MarchParallel (M, N, grid) for (i = 0 ; i < M ; i++)

for (j = (myProc + i) % numProcs ; j < N ; j += numProcs) ExtractAndRender(grid[i, j])

(c) MarchParallelOrdered (M, N, grid, sema)

for (i = 0 ; i < M ; i++)

for (j = (myProc + i) % numProcs ; j < N ; j += numProcs) if (i > 0) glpPSema(sema[i - 1, j])

if (j > 0) glpPSema(sema[i, j - 1]) ExtractAndRender(grid[i, j])

if (i < M -1) glpVSema(sema[i, j]) if (j < N - 1) glpVSema(sema[i, j])

(14)
(15)
(16)
(17)
(18)

glBlendFunc (src, dst) {

if (arguments generate error) return update application context with src, dst set all blend function dirty bits

set all fragment state dirty bits }

<Hierarchical Dirty Bits> - Dirty Bit for State Element - DB for single state command

(19)

update_fragment_state () {

if (fragment bit set) {

if (alphafunc bit set && ...) ...

if (blendfunc bit set &&

application blendfunc != server blendfunc) {

generate glBlendFunc packet

server blendfunc = application blendfunc }

clear blendfunc bit

if (clearaccum bit set && ....) ...

}

clear fragment bit }

(20)
(21)

z

2

n

(22)

z

(23)

z

(24)

z

(25)

z

(26)

z

(27)

z

(28)
(29)
(30)
(31)
(32)

z

(33)
(34)
(35)
(36)
(37)
(38)

z z z z z crappfaker crserver fonttest Chromium

OpenGL DLL Render SPU

Pack SPU

(39)

server_node = CRNetworkNode();

server_node.Conf('optimize_bucket', 0); render_spu = SPU('render');

(40)

z z

(41)
(42)

node = CRApplicationNode()

node.Conf('application', 'atlantis')

node.Conf('minimum_window_size', [300, 300]) node.Conf('match_window_title', 'perfly') node.Conf('show_cursor', 1)

(43)
(44)
(45)

z z z z z z

(46)

z z z

(47)

z z z z z z

(48)

z z z

(49)
(50)
(51)
(52)
(53)

참조

관련 문서

The blue whale opens its mouth, drinks seawater, and closes

All rights reserved....

and an improvement set of extragradient-type iteration methods in [5], we in- troduce new iteration algorithms for finding a common of the solution set of an equilibrium problem

Luminance shall be measured with all pixels in the view field set first to white, then to the dark (black) state.. (See FIGURE 1 shown in Appendix) Luminance Contrast Ratio

 8-6 4개의 변수(Company, Date, Time, Price)에 대한 자료값들이 다 음과 같을 때, 이를 SAS 데이터셋으로 생성하고, Transpose 프로시 저를 이용하여

channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring all foreign files in backup piece. channel ORA_DISK_1: reading from

The Model BITs also incorporate substantive developments in NAFTA, with annexes on customary international law, the minimum standard of treatment

„ Query optimizers use equivalence rules to systematically generate expressions equivalent to the given expression.. „ Can generate all equivalent