아! 나름 팬탠 애용중인데... 이렇게 매각될 운명이라니..거기다 중국에 넘어갈수 있다니...

(근데 한해 20만대도 안 팔이는거 같네요;;; 뭐 대당 가격이 높으니깐 수백억이겠내요.)

언리얼엔진이 텐센트에 넘어갔을때도 엄충 충격이였는데... 

팀 스위니 나름 존경했었는데...

그래도 유니티에서 저 발표 있고 ceo께서 자기네는 절대 저런일 없을꺼라고 단언해서 그나마 위안이 되었네요. ;;


본론으로 들어가서..


제조사들은 os 커스터마이징 하게 되면 어디까지 건드나요?

바야바님께서 일부 기기의 math 라이브러리 문제을 언급한 글을 봤는데. 코어부분도 건들이는 건지..


문제는 저사양 폰에서 테스트 중에 기기마다 drawcall 이 많을시 프레임이 저하가 차이가 많이 납니다. 

시리우스(sky), 겔럭시s1(삼성), 옵티머스 마하(lg), 베가레이서1(sky) 이렇게 테스트 중인데.


지금 사용하고 있는 렌더링 구조는


java 단에서 


  public void onDrawFrame(GL10 gl) {

     

    nativeOGLDraw();

   

    }


를 호출하고


native 단에서 


void opening_loog(){


로직처리.


render_opening();


fps=_getTime()-cur_tick;

// LOGV("fps %d, %u",1000/fps, fps);

jni_render_fps(fps);

}


렌더링 로직에서 게임 로직까지 일체형으로 처리하고 있습니다. 

근데, drawcall이 많아지게 되면 기기별로,


시리우스 250

겔러시s 250

옵티머스 1000

베가레이서1 250


이렇게 찍힙니다.  위 수치는 평균이 아니고 실시간으로 채크 했을시 보이는 자주보이는 수치입니다.


시리우스나 겔럭시s 에서 저렇게 나오면 사양 문제 일 수 있다고 생각 되는데 

베가레이서1이 250 나온걸 보면 사양문제는 아닌듯 합니다. 거기다 옵티머스는 1000을 찍고 있으니..


물론 베가레이서1이 250을 찍지만, 애니메이션을 보면 듀얼코어라 그런지 움직임은 평상시처럼 부드러웠습니다.

sky이 최신 폰을 아직 테스트 해보지 않아서 같은 현상이 나타나는지는 알 수 없지만.. 

sky쪽  opengl 구현 부분이 안 좋아 보이내요. 


거기다가 겔럭시s 같은 경우는  onDrawFrame에서 고정 프레임 구현할려고 렌더링함수를 호출해주지 않은면

이전 화면과 겹치는 문제가 있더군요. 


일부 인터넷 자료도 보면 안드로이드 기기중에 렌더링 타임시 버퍼에 그려 주지 않으면, 문제가 생긴다는 글을 있던데...

이 사실을 보면 렌더링 아키텍쳐 부분도 커스터 마이징 한다는 얘기인데..

구글에서 안드로이드 소스제공시 저런 부분은 구현이 안 되어 있나요? 아님 최적화한다고 고친건가요?


제 느낌상 프레임 저하가 메모리 병목현상이나 drawcall시 내부적인 버벅임으로 보이는데..

환경과 실력상 프로파일링은 먼 산이라 확인할 길이 없습니다.


혹시 같은 경험이 있으신분 계신가요?