디시인사이드 갤러리

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

갤러리 본문 영역

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

발명도둑잡기(118.216) 2025.12.04 19:54:55
조회 62 추천 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/08 - -
AD 루틴 ON! 운동 찐템! 지금 할인 중 운영자 25/11/27 - -
2906738 냥덩이 큰집 이력 발명도둑잡기(175.223) 12.06 61 0
2906737 IQ 테스트 정답공개 사람낚는어부갤로그로 이동합니다. 12.06 101 0
2906736 [애니뉴스][투표] 웹에서 비주얼노벨 구현 라이브러리 ㅇㅇ(121.172) 12.06 31 0
2906735 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.06 44 0
2906734 프갤이랑 뉴프로랑 글리젠 비슷한거 같은데 [7] 헬마스터갤로그로 이동합니다. 12.06 73 0
2906733 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ ♥발라당냥덩♥갤로그로 이동합니다. 12.06 64 0
2906732 자바 뉴비 질문이요 [3] ㅇㅇ갤로그로 이동합니다. 12.06 74 0
2906729 [대한민국] 온두라스 부정선거 - 트럼프 대통령 ㅇㅇ(121.172) 12.06 42 1
2906728 IQ 테스트 문제 하나 [9] 사람낚는어부갤로그로 이동합니다. 12.06 99 0
2906727 [애니뉴스][과학 컬럼] 사람들은 왜 광속을 불변이라고 할까? ㅇㅇ(121.172) 12.06 43 0
2906723 나님 ㅇ왤케 똑똑행? [5] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 124 1
2906722 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ [4] ♥발라당냥덩♥갤로그로 이동합니다. 12.06 97 0
2906721 사이드 플젝하니까 성취감이 생기네 [2] 프갤러(58.76) 12.06 87 1
2906720 조국혁신당이 미래다 이기이기 타이밍뒷.통수한방(1.213) 12.06 35 0
2906716 if else 를 뭐라 부르냐? ㅇㅇ갤로그로 이동합니다. 12.06 118 0
2906715 김남국 부정청탁 이재명의 김현지 꼬리자르기 시도 ♥발라당냥덩♥갤로그로 이동합니다. 12.06 93 0
2906714 짤줍 [1] ㅇㅇ갤로그로 이동합니다. 12.06 82 0
2906713 AI랑 데이터 분석 아니면 파이썬 거의 안쓰나? [5] 프갤러(175.197) 12.06 74 0
2906712 무협 좋아하는 사람? 최강의 무협 게임 기대 신작 7선! 발명도둑잡기(118.216) 12.06 23 0
2906711 ❤✨☀⭐⚡☘⛩☃나님 시작합니당☃⛩☘⚡⭐☀✨❤ ♥발라당냥덩♥갤로그로 이동합니다. 12.06 58 0
2906710 인지과학조져라 손발이시립디다갤로그로 이동합니다. 12.06 67 0
2906709 정치가 정상화 되니 이제 연예계도 정상화 되어가네 [1] 야옹아저씨갤로그로 이동합니다. 12.06 62 0
2906708 하루에 오조오경줄 감사의 코딩 공기역학갤로그로 이동합니다. 12.06 77 0
2906707 한은 “국내 AI 전문인력 임금 프리미엄, 미국의 1/5 수준” 발명도둑잡기(118.216) 12.06 40 0
2906703 ‘고교 시절 중범죄’ 논란에…조진웅 소속사 “잘못했던 행동 있었다…성폭력 발명도둑잡기(118.216) 12.06 38 0
2906702 서울 한복판에 쏟아진 5만원권... 돈다발 쥔 시민들, 경찰에게 갔다 발명도둑잡기(118.216) 12.06 51 0
2906698 네부카드네자르 이름의 뜻과 비트코인 책사풍후zen갤로그로 이동합니다. 12.06 50 0
2906692 넥도리아 인생 프갤러(121.139) 12.06 95 0
2906685 otp 4년만에 복구 완료 넥도리아(220.74) 12.06 82 0
2906684 넥도리아 이분 무섭네요 [6] ㅇㅇ(118.235) 12.06 104 0
2906683 국민의힘도 타당하면 동의해줄 것이다. 윤카 제외하고, 넥도리아(220.74) 12.06 59 0
2906682 나의 물귀신 작전은 국민의힘 이 반대의 입장에서 말하는거라서, 넥도리아(220.74) 12.06 53 0
2906681 아이큐 테스트 문제 풀어줄사람 [2] RAIN갤로그로 이동합니다. 12.06 60 0
2906680 I nan, Administrator 감시자 넥도리아(220.74) 12.06 39 0
2906679 윈도우 계정 이름 Administrator 관리자 넥도리아(220.74) 12.06 42 0
2906678 달동네? ㅇㅅㅇ [2] 헤르 미온느갤로그로 이동합니다. 12.06 57 0
2906677 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 12.06 37 0
2906676 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 12.06 73 0
2906671 이거 왜 오류나요?ㅠ [3] ㅇㅇ(118.235) 12.06 68 0
2906667 121.139 중국인이 대한민국 국민 사살해도, 아무 말 못할 사람이다T [7] 넥도리아(220.74) 12.06 82 0
2906666 121.139 국제 정세 못 읽는 사람이다. 관심주지 마라. 관심법 넥도리아(220.74) 12.06 39 0
2906665 인신매매 정부 니들 매매랑 판매랑 뜻 아냐 중국정부? 마이크 사갖테스트 넥도리아(220.74) 12.06 50 0
2906663 일본과 중국 지지 안하지만, 솔직히 먼저 선전포고한놈이 잘못 한거 아닌가 [6] 넥도리아(220.74) 12.06 72 0
2906662 넥도리아 중일 전쟁 타이완 해협이 어딘지 알았습니다. [7] 넥도리아(220.74) 12.06 59 0
2906661 it 업계 남자와 여자의 차이 프갤러(121.139) 12.06 88 1
2906655 히야.. 이뇬 이거.. [4] ♥발라당냥덩♥갤로그로 이동합니다. 12.05 151 0
2906654 슬롯머신 사이트 추천 디시 ㅇㅇ(59.2) 12.05 47 0
2906652 레고로 종이 한장 빨아올리는거 만들수 있나 발명도둑잡기(118.216) 12.05 61 0
2906650 음기 충전 발명도둑잡기(118.216) 12.05 60 0
2906648 앱 하나 만들어봤는데 [1] 프갤러(165.132) 12.05 65 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2