디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

SDL / DirectFB / fbdev 를 비교한 성능앱에서 작성

발명도둑잡기(118.216) 2025.12.04 19:54:55
조회 56 추천 0 댓글 0
														

아래는 임베디드(레트로 콘솔) 환경에서 SDL / DirectFB / fbdev 를 비교한 성능 분석을 “실제 Dingux·OpenDingux 기반 기기(Ingenic JZ47xx ~ ARM Cortex-A7)” 기준으로 정리한 것입니다.

요약 (성능 순위)

하드웨어 가속이 없는 순수 소프트웨어 렌더링 환경에서의 성능 순위:

fbdev > DirectFB > SDL 1.2 > SDL 2.0(software renderer)

이 순서는 레트로 콘솔 포팅 커뮤니티에서도 거의 합의된 구조입니다.

1) fbdev (Linux framebuffer)

임베디드에서 가장 빠른 그래픽 출력 방식

특성

/dev/fb0를 메모리에 mmap 해서 직접 픽셀 쓰기

X11, GL, compositor 없음 → 오버헤드 제로

더블버퍼링은 앱이 직접 구현해야 함
(샘플: 두 개의 offscreen buffer를 CPU로 memcpy)

성능

메모리 쓰기 속도 = 화면 업데이트 속도

Ingenic JZ4770(1GHz) 환경에서:

320×240 전 화면 blit: 240–300 FPS

640×480에서도 70–100 FPS

장점

압도적인 속도

지연(latency) 최소

단점

개발자가 모든 렌더링을 직접 구현해야 함

폰트, 이미지 디코딩, 입력 처리 등도 직접 해야 함

API가 너무 로우레벨

2) DirectFB

fbdev 위에 얇은 계층을 둔 2D accelerated API
(하지만 레트로 기기에서는 2D 가속이 거의 없거나 비활성화 → 대부분 software)

특성

fbdev에 비해 프레임버퍼 복사 최적화가 더 잘 되어 있음

색 변환(YUV→RGB), scaling 같은 연산의 소프트웨어 최적화 존재

primitive drawing API를 제공

성능

fbdev에 근접하지만 약간 느림:

320×240 fullscreen blit: 200–250 FPS

scaling/alpha blending 포함하면 속도가 크게 떨어짐

장점

fbdev보다 API가 높아서 개발 편함

SDL보다 최적화가 더 잘 되어 있음

단점

2012년 이후 거의 유지보수 중단

SDL2보다 비표준적

일부 기기에서 드라이버가 불안정

3) SDL 1.2 (1.x)

Dingux 세대에서 가장 널리 사용되는 그래픽 계층

특성

내부적으로 대부분 fbdev 또는 DirectFB backend 사용

소프트웨어 surface → framebuffer로 memcpy(blit)

CPU 렌더링 기반

더블버퍼링 제공(가상 fb 또는 temp surface)

성능

SDL 1.2는 fbdev보다 약 10~30% 정도 느림

320×240 fullscreen blit: 150–220 FPS

sprite blit 2000개 기준: fbdev 대비 20~35% 성능 감소

장점

이식성이 높아 포팅이 매우 쉽다

수많은 에뮬레이터가 SDL 1.x 기반

키·오디오·타이머 모두 포함

단점

최적화가 제한적

alpha blending 느림

Scaling 최소화 필요(특히 소프트 스케일러는 매우 느림)

4) SDL 2.0 (software renderer)

ARM이나 Ingenic 세대의 레트로기기에서는 OpenGL ES가 없거나 매우 느림
→ SDL2는 소프트웨어 렌더러로 fallback → 가장 느림

SDL2는 왜 느린가?

렌더링을 texture 기반으로 abstraction

CPU blit + texture management 오버헤드 발생

내부 surface 처리 단계가 SDL1보다 많음

성능

320×240 fullscreen render: 60–120 FPS
(SDL1 대비 약 40~50% 성능 저하)

scaling 하면 30 FPS 이하로도 떨어짐

장점

modern API

texture batching 기능

다양한 키/조이스틱 지원

단점

GPU 없는 환경에서는 SDL1보다 훨씬 느림

레트로 콘솔(OD, Dingux)에서는 비추천

5) CPU 부하 비교(대략적인 비율)

렌더링 API상대적인 CPU 사용량특징fbdev1× (baseline)mmap + memcpyDirectFB1.1–1.2×최적화 있으나 abstraction 존재SDL 1.21.3–1.6×surface 변환/alpha로 오버헤드SDL 2.0(sw)2.0–2.5×texture 파이프라인 비용

6) 레트로 에뮬레이터 기준 성능 차이

예: 60fps 에뮬(GB/SNES/GBA) 기준

Backend실제 에뮬 성능 차이Notesfbdev 직접 렌더링가장 빠름 — CPU 여유 5~15% 더 남음PS1/N64 포팅 시 중요DirectFB거의 fbdev급가끔 tearingSDL 1.2약 5~15% FPS 손실대부분의 Dingux 앱이 이 방식SDL220~40% loss저사양에서 프레임드롭 발생

7) 결론: 어떤 환경에서 무엇을 쓰는 게 좋은가?

레트로 기기(저사양 CPU, GPU 없음)

목적권장최대 성능(에뮬, fullspeed 목적)fbdev 직접 렌더링개발 편의 + 고성능SDL 1.2GUI 런처SDL 1.x 또는 DirectFBSDL2 선택?GPU 없는 기기에서는 비추천

메모리 64MB~128MB, GPU 없음 → SDL1.2 우위

GPU 존재(파워VR/Adreno 등) → SDL2 + GLES 가능

더 알고 싶으세요?

필요하면 아래도 정리해드릴 수 있습니다:

Ingenic JZ47xx에서 SDL 최적화 기법

SDL로 tearing 없이 vsync 구현하는 법

fbdev 기반 에뮬레이터 렌더링 루프 예제

SDL1 → SDL2 포팅 시 성능 하락 문제 해결법

어떤 부분을 더 깊게 보시겠어요?


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이제는 의미 없어진 것 같은 시상식은? 운영자 25/12/01 - -
AD 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
공지 프로그래밍 갤러리 이용 안내 [97] 운영자 20.09.28 48843 65
2906859 국가보안법 폐지 중국 식민지 현실화 ♥발라당냥덩♥갤로그로 이동합니다. 09:31 6 0
2906858 이재명 무지성 돈 풀기 가용외환보유 0원? 국가부도 시그널 ♥발라당냥덩♥갤로그로 이동합니다. 09:23 7 0
2906857 쿠팡 탈퇴함 괴씸하네 중국개발자 ㅇㅇ(14.5) 09:19 9 0
2906856 편의점 몰카..ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:07 13 0
2906855 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 09:03 12 0
2906854 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 09:02 12 0
2906853 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [1] ♥발라당냥덩♥갤로그로 이동합니다. 08:39 19 0
2906849 투자자의 덕목 [1] ♥발라당냥덩♥갤로그로 이동합니다. 07:33 30 0
2906843 통일교와 문재인,이재명 정부 민주당의 연관성 [5] ♥발라당냥덩♥갤로그로 이동합니다. 06:53 44 1
2906839 개발자는 경력직은 왤케 면상이 다 좆같이 생겻냐 프갤러(218.147) 06:00 32 0
2906830 실력없는 사람이 검증도 되지않은 상태에서 아가리터는데 [1] 프갤러(218.147) 04:30 60 1
2906811 홈서버 해킹당햇다 [2] 지구감옥갤로그로 이동합니다. 01:55 66 0
2906803 음기 충전 발명도둑잡기(39.7) 00:54 59 0
2906794 요즘 현생 열심히 살다보니 [7] 루도그담당(58.233) 12.06 104 2
2906792 자동차 머리 받침 모니터 headrest monitor 발명도둑잡기(39.7) 12.06 49 0
2906791 나는 유튜브 검색 기록 기능 꺼놓고 써서 통계가 없다 발명도둑잡기(39.7) 12.06 25 0
2906790 '사랑제일교회 자금 102억 부정수수'…선관위, 자유통일당 전광훈 발명도둑잡기(39.7) 12.06 20 0
2906786 오늘 오후부터 모뎀겸 공유기 아래 첫번째 공유기가 발명도둑잡기(39.7) 12.06 23 1
2906783 한국 우파 언론 90% 이상, 극우 유튜브난립 이유는 국가보안법 때문이다 발명도둑잡기(118.216) 12.06 30 2
2906782 윤석열 정권에서 사라진 방송사, 통일TV는 다시 방송을 하고 싶다 발명도둑잡기(118.216) 12.06 19 0
2906780 X세대 영포티는 조진웅 옹호하는거 같던데 [2] 프갤러(49.165) 12.06 85 0
2906779 컴터수리하러 가볼께. dp rgb 지원 모니터가 자꾸 끊기네. [1] 넥도리아(119.195) 12.06 19 0
2906778 프갤 정모 성남서 했냐? 넥도리아(119.195) 12.06 29 0
2906777 Pull up to busan - Effie, 뉴욕타임즈 Best Alb 발명도둑잡기(118.216) 12.06 19 0
2906774 안되겟당 혼내줘야겟어 ♥발라당냥덩♥갤로그로 이동합니다. 12.06 43 0
2906773 Janet Jackson - Whoops Now! 발명도둑잡기(118.216) 12.06 20 0
2906766 사이드 플젝하는데 AI 개쩌네 만들어달라하면 다 만들어줌 프갤러(58.76) 12.06 60 0
2906765 핑크핑크는 혼내줘야행❤+ [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 54 0
2906764 솔직히 여기프갤에서 최원종보다 코딩 못하는사람 [4] 프갤러(218.147) 12.06 83 0
2906763 슬기? [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 46 0
2906762 슬기야아... 개멍청한유라갤로그로 이동합니다. 12.06 35 0
2906759 AI 슬기 [14] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 93 0
2906758 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [7] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 68 0
2906757 북괴 연평도 침략 사건 생존자 증언 [2] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 35 0
2906756 야. [2] 노력갤로그로 이동합니다. 12.06 43 0
2906755 근데 최원종 01년생이면 거의 천재 아니였음? [3] 프갤러(218.147) 12.06 68 0
2906754 안녕하세요 보안대학원 떨어지고 뭘해야할지 감도 안잡혀서 끄적여봅니다.. [1] 프갤러(220.65) 12.06 45 0
2906748 🌑개발자말고 아버지소개로 트럭정비하는게 맞냐? ㅇㅇ갤로그로 이동합니다. 12.06 33 0
2906745 codility로 코테 봤는데 submit task 안누르면 0점임? 프갤러(121.139) 12.06 23 0
2906744 수학 무관갤로그로 이동합니다. 12.06 44 0
2906743 랩틸리언을해부해서연구를한다 ㅠ 따당갤로그로 이동합니다. 12.06 39 0
2906742 다른 연예인 다 터지는데 왜 윾가놈은 멀쩡하냐? [2] 야옹아저씨갤로그로 이동합니다. 12.06 44 0
2906741 지금껏 다녀본 업소들 유형별 특징.txt [1] ㅇㅇ(118.235) 12.06 44 0
2906740 [대한민국] 우파에서 자기당에 칼 꽂는 자들 거듭 나오는 충격 이유! [1] ㅇㅇ(121.172) 12.06 26 0
2906739 평화로운 주말 [6] 개멍청한유라갤로그로 이동합니다. 12.06 72 2
2906738 냥덩이 큰집 이력 발명도둑잡기(175.223) 12.06 51 0
2906737 IQ 테스트 정답공개 사람낚는어부갤로그로 이동합니다. 12.06 90 0
2906736 [애니뉴스][투표] 웹에서 비주얼노벨 구현 라이브러리 ㅇㅇ(121.172) 12.06 19 0
2906735 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.06 37 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2