돌고래 홈페이지
ID:
PW:


  운영자(2007-07-15 10:07:54, Hit : 972, Vote : 213
 최적화 Tip1

http://www.gpgstudy.com/forum/viewtopic.php?p=79510#79510

성능을 개선할수 있는 방법들로는

1. 같은 텍스쳐를 쓰는 것끼리 묶어서 최대한 Draw횟수를 줄이기
2. Lock의 wait부담을 줄이기 위해서 nooverwrite와 discard를 섞어서 사용하기
3. 카메라에서 가까운 patch( chunk? )를 우선적으로 출력하기

가 있습니다.

1.2번이 많은 효과를 보이고, 3번의 경우는 약간...( 제경우 2프레임정도... )의 향상이 있습니다.

2번에 대해 좀더 부연설명을 하자면...
CPU와 GPU는 같은 자원을 놓고 경쟁하는 상태입니다. 해서 Lock을 했을때 GPU가 사용중이면
CPU는 기다릴수 밖에없습니다. Lock의 부담의 큰 요인중의 하나이죠. ( 하나는 역시나 대역폭.. )

대략 한프레임에 출력되는 삼각형의 최대갯수의 2-3배정도의 버퍼를 잡습니다.

예를들어 10000개 짜리로 잡았다고 한다면...
1프레임에 3000개를 찍게되면 0 - 2999까지를 사용하고 ( 이때 nooverwrite로 Lock을 겁니다. )
2프레임에 4000개를 찍게되면 3000 - 6999까지를 씁니다. ( 이때 nooverwrite로 Lock을 겁니다. )
3프레임에 4000개를 찍게되면 남은건 3000개뿐이므로 모자르니 dicard로 Lock을 걸고
0 - 3999까지를 사용합니다...

계속 죽죽....

또는 3프레임에서 마지막 3000개만 사용해서 3000개를 출력하고 남은 1000개는 discard로 다시 락을 걸어서
0 ~ 999까지를 사용합니다...

계속 돌리고 돌리고...~




프로파일링용 디버깅 코드
유니티 임시

Copyright 1999-2018 Zeroboard / skin by zero