DEKI/ENGINE 문서
Deki 0.20.2
임베디드 디스플레이와 데스크톱을 위한 모듈식 C++ 2D 엔진
로딩중...
검색중...
일치하는것 없음
빠르게 만들기

보드를 빠르게 만드는 것의 대부분은 자동으로 정해집니다. 이 페이지는 무엇이 정해지는지, 무엇을 설정해야 하는지, 숫자를 어떻게 읽는지 설명합니다.

보드에서 시작하기

보드 패키지(예: deki-lilygo-boards)에는 그 보드가 가장 잘 돌아가는 설정이 들어 있습니다. 보드를 타깃으로 고르면 그 설정이 쓰이며, 따로 조정할 것은 없습니다.

보드 모든 데모 장면 프레임
LilyGO T-Display S3 AMOLED 59.6 fps (패널의 새로 고침) 찢어지지 않음 (TE 선)
LilyGO T-Deck Plus 60 fps 찢어지지 않음 (패널의 주사선)

이 페이지의 나머지는 직접 만든 보드를 위한 것이거나, 어떤 장면이 느린 이유를 찾기 위한 것입니다.

자동으로 정해지는 것

모두 게임이 시작될 때 기기에서 정해집니다. 부팅 로그에 각각 한 줄씩, 무엇을 골랐고 왜 골랐는지 나옵니다.

항목 정해지는 방식
프레임 전체 또는 스트립 프레임 버퍼가 내부 RAM에 여유 있게 들어가면 프레임 전체, 들어가지 않으면 스트립입니다. 스트립은 몇 행 또는 몇 열씩 내부 RAM에 그리므로, 프레임 전체를 PSRAM에 그리는 것보다 훨씬 빠릅니다. (렌더링 설정 frameMode)
다른 코어에서 보내기 듀얼 코어 칩에 프레임 사본 두 개 분량의 메모리가 있으면, 다음 프레임을 그리는 동안 각 프레임을 보냅니다. 그렇지 않으면 그리는 대로 보냅니다. (asyncPresent, 켜짐)
티어링 TE 선이 연결되어 있으면(tePin) 프레임이 패널의 새로 고침 신호를 따릅니다. 없으면 대신 패널의 주사선을 다시 읽습니다(scanlineSync, 켜짐). 다시 읽을 수 없는 패널은 그리는 대로 보내며, 찢어질 수 있습니다.

보드에서 설정하는 것

이것들은 보드의 배선을 나타내며, 기기가 스스로 알아낼 수 없습니다.

설정 설정할 값
controller, busType과 핀 보드 회로도에 적힌 대로.
spiWriteHz (parallelWriteHz) 패널이 받는 가장 빠른 클럭. 대부분의 ST7789 모듈은 80 MHz를 받습니다. 병렬 버스에서는 20 MHz가 안전합니다.
tePin 패널의 TE 출력이 연결된 GPIO(연결되어 있다면). 티어링을 막는 가장 좋은 방법입니다.
readsOnMosi 패널이 MISO가 아니라 데이터 선으로 응답하면 켭니다(T-Deck가 그렇습니다). TE 선이 없을 때만 의미가 있습니다.
initSequence 컨트롤러 기본값으로 화면이 이상할 때(색이 바래거나, 이전 이미지가 남음) 쓰는 패널 모듈 자체의 시작 절차.

알아 두면 좋은 프로젝트 설정

설정 바꿀 때
dirtyTileTracking 화면 대부분이 멈춰 있고 매 프레임 화면 전체에 그리는 것이 없을 때 켭니다(화면 전체 배경은 화면 전체에 그립니다). 그러면 바뀐 부분만 보냅니다.
bandRows 스트립의 크기. 클수록 장면을 순회하는 횟수가 줄지만 내부 RAM을 더 씁니다. 대부분의 화면에는 40이 맞습니다.
frameMode 자동으로 둡니다. 자기 보드에서 다른 모드가 더 빠르다고 측정한 경우만 예외입니다.

거의 필요 없는 것: usePsram과 doubleBuffer(엔진이 프레임 전체를 그리는 위치), spiReadHz(T-Deck의 ST7789는 10 MHz에서 안정적으로 읽힘).

숫자 읽기

시리얼 포트의 DEKI:STATS나 device_stats 도구가 한 줄을 출력합니다:

fps=60.0 frameMs=16.66 updateMs=1.00 renderMs=7.80 presentMs=3.36 internalFree=50807 frameMode=whole
  • updateMs: 게임 로직. 방금 열린 장면은 여기서 불러옵니다.
  • renderMs: 그리기. 스트립에서는 그리는 대로 보내므로 보내기도 포함합니다.
  • presentMs: 프레임을 디스플레이에 넘기는 시간. 높으면 디스플레이가 아직 이전 프레임을 보내는 중입니다. 한계는 그리기가 아니라 버스입니다.
  • internalFree: 남은 내부 RAM. Wi-Fi, 블루투스, 스트립이 모두 여기서 씁니다.

DEKI:PROFILE은 그리기를 컴포넌트별, 전송 경로별로 나누어 보여 주며, 장면에서 가장 비용이 큰 것을 찾는 데 씁니다.

패널의 새로 고침(59.6~60.3 Hz)에 고정된 프레임 속도가 찢어지지 않는 보드가 낼 수 있는 최선입니다. 프레임은 찢어지는 대신 새로 고침을 기다립니다.