디시인사이드 갤러리

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

갤러리 본문 영역

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

발명도둑잡기(118.216) 2025.12.04 19:54:55
조회 37 추천 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 - -
2906572 ‘김예지 비하’ 고발당한 감동란, 국민의힘 입당 발명도둑잡기(118.216) 03:48 47 0
2906568 오늘의 영상 기획 실마리: 쇼미더머니 하세요 발명도둑잡기(118.216) 03:27 22 0
2906562 인공지능이 인간의 예술, 음식을 평가, 평론할 수 있을까요? 발명도둑잡기(118.216) 03:13 24 0
2906543 BC 카드 부자 되세요 발명도둑잡기(118.216) 01:42 31 0
2906542 나이 31살이라 코딩포기해야되나 ㅜㅜ [11] 프갤러(211.234) 01:35 152 0
2906541 AI기담|머리가 맛이 가서 의사도 포기 발명도둑잡기(118.216) 01:27 70 0
2906540 유럽, 북미 선진국에서 가장 입학이 어려운 학문 전공!R 프갤러(121.142) 00:59 62 1
2906539 악동뮤지션(Akdong Musician) 크레센도 (Crescendo) 발명도둑잡기(118.216) 00:43 22 0
2906538 일 잘하면 회사에서 겁나 고생한다.. [2] 프갤러(116.126) 00:32 81 0
2906536 “새똥 덩어리 참배” 중국 관영매체, 다카이치 조롱 영상 제작 발명도둑잡기(118.216) 00:13 28 0
2906535 리눅스마스터 1급 합격률 왤케 씹창이냐? 프갤러(220.70) 00:10 41 0
2906534 netcup vps 혜자 ㅇㅇ(219.240) 00:08 35 0
2906532 고졸이 개발자 하고싶으면 어떻게 준비해야함? [3] 프갤러(124.28) 12.04 83 0
2906527 ❤따당이 크리스마스 트리에 예쁜 말 써줘..❤ [1] 따당갤로그로 이동합니다. 12.04 54 0
2906525 오늘의 작명 실마리: 무관심 검열, 무플 검열 발명도둑잡기(118.216) 12.04 22 0
2906523 SNS가 망친 평균 VS 현실 평균 [1] 발명도둑잡기(118.216) 12.04 121 0
2906522 본질적으로 dto와 map의 차이가 없음 [3] 박민준갤로그로 이동합니다. 12.04 169 1
2906521 졸리 졸리 ♥발라당냥덩♥갤로그로 이동합니다. 12.04 65 0
2906519 "예술은 누가 더 나은가의 문제가 아니다" 발명도둑잡기(118.216) 12.04 74 0
2906517 "말썽꾼 아줌마"...다카이치 조롱한 중국 애니메이션 화제 발명도둑잡기(118.216) 12.04 39 0
2906516 html 401 에러뜨면서 사이트 안들어가지는거 어케고침..? 프갤러(125.191) 12.04 27 0
2906515 사이버대라도 학위 따야함?? ㅇㅇ갤로그로 이동합니다. 12.04 42 0
2906514 내란 저지 1주년... "국민의힘 해산해야 민주주의가 바로 선다" 발명도둑잡기(118.216) 12.04 34 0
2906513 ai 시대에 임베디드 배우는 거 어때? [6] 프갤러(223.39) 12.04 107 0
2906512 [1편] 대미투자,원리금 회수도 불가능 발명도둑잡기(118.216) 12.04 29 0
2906510 “새똥 덩어리 참배” 중국 관영매체, 다카이치 조롱 영상 제작 발명도둑잡기(118.216) 12.04 30 0
2906508 [애니뉴스] YxD Ads 개발중 - 완료 ㅇㅇ(121.172) 12.04 27 0
2906507 조갑제 "국민의힘=이적 단체…미치광이 역적 제명도 못한 내란비호당" 발명도둑잡기(118.216) 12.04 30 0
2906505 물건 대여업체는 오히려 손님들이 잃어버려야 이득인건가 [2] 공기역학갤로그로 이동합니다. 12.04 82 0
2906504 눈 올 때 들으면 좋은 노래 snowy [2] 발명도둑잡기(118.216) 12.04 39 0
2906501 Dingux 리눅스 발명도둑잡기(118.216) 12.04 48 0
SDL / DirectFB / fbdev 를 비교한 성능 발명도둑잡기(118.216) 12.04 37 0
2906488 지잡 취업 가능? [1] 프갤러(121.151) 12.04 75 0
2906486 언어간 호환하려고 gRPC 쓰려다가 웹소켓으로 갈아탐 ㅇㅅㅇ [2] 프갤러(211.234) 12.04 78 0
2906485 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.04 58 0
2906483 [애니뉴스] SortingClp - sortingColorPalette ㅇㅇ(121.172) 12.04 35 0
2906481 내란무새 리짜이밍 빤스런 ㅋㅅㅋ ♥발라당냥덩♥갤로그로 이동합니다. 12.04 55 0
2906479 ■개발자말고 아버지소개로 트럭정비사하는게낫냐 [2] ㅇㅇ갤로그로 이동합니다. 12.04 74 0
2906478 Regular Animals 발명도둑잡기(118.216) 12.04 30 0
2906475 부자 러스트 프로그래머 이제 숨만 셔도 하루 6만원씩 들어온다. [3] 프갤러(223.37) 12.04 94 1
2906474 지방 갈까말까 엄청 고민하다 거절했다. 프갤러(223.37) 12.04 50 0
2906473 오늘 뽑은 색이 다른 포켓몬 넥도리아(220.74) 12.04 39 0
2906471 지금껏 다녀본 업소들 유형별 특징.txt ㅇㅇ(118.235) 12.04 73 0
2906470 안마방 체험 썰.jpg ㅇㅇ(118.235) 12.04 48 0
2906469 우리신입 코드보면 줘패고싶다 걍 ㅇㅇ [2] 맨날가고싶은사람갤로그로 이동합니다. 12.04 116 0
2906468 이미 선구자가 있었네. [3] 프갤러(49.165) 12.04 104 0
2906466 코딩 입문할려고 함 [2] Hoping갤로그로 이동합니다. 12.04 61 0
2906465 조국혁신당이 미래다 이기이기 타이밍뒷.통수한방(1.213) 12.04 38 0
2906463 님들 저 졸업작품 주제 추천좀요 [2] 공기역학갤로그로 이동합니다. 12.04 64 0
2906462 나님 금융회사 세울꺼양 [4] ♥발라당냥덩♥갤로그로 이동합니다. 12.04 80 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2