# Apple Silicon M4·M5 칩에서 외부 4K 디스플레이의 HiDPI 해상도 제한 발생

> Clean Markdown view of GeekNews topic #28068. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28068](https://news.hada.io/topic?id=28068)
- GeekNews Markdown: [https://news.hada.io/topic/28068.md](https://news.hada.io/topic/28068.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-04-01T06:38:31+09:00
- Updated: 2026-04-01T06:38:31+09:00
- Original source: [smcleod.net](https://smcleod.net/2026/03/new-apple-silicon-m4-m5-hidpi-limitation-on-4k-external-displays/)
- Points: 1
- Comments: 2

## Topic Body

- M4·M5 세대에서는 외부 4K 모니터에서 **3840×2160@2x HiDPI 모드**가 지원되지 않고, 최대 **3360×1890**까지만 가능함
- 이 제한은 **Display Coprocessor(DCP) 펌웨어 구조 변경**으로 인해 생기며, 하드웨어 성능 문제는 아님
- M5 Max의 **프레임버퍼 예산이 파이프별로 재할당**되어 단일 스트림 파이프의 폭이 6720픽셀로 축소됨
- EDID 수정, 포트 변경, 드라이버 속성 조정 등 다양한 방법이 시도되었으나 **모두 효과 없음**
- 현재 완전한 해결책은 **Apple이 DCP 펌웨어를 수정**하는 것이며, 임시로는 가상 디스플레이 미러링 방식으로 2x HiDPI 구현 가능함

---

### Apple Silicon M4/M5 외부 4K 디스플레이 HiDPI 제한 분석
- **M4 및 M5 세대 Apple Silicon**에서는 외부 4K 모니터의 **완전한 2x HiDPI 모드(3840×2160@2x)** 가 제공되지 않음
  - 최대 HiDPI 모드는 **3360×1890**으로 제한되어, 이전 세대(M2/M3)에서 가능했던 3840×2160 HiDPI가 불가능
  - 사용자는 **비HiDPI 모드의 흐릿한 텍스트** 또는 **선명하지만 축소된 작업 공간** 중 하나를 선택해야 함
- 이 제한은 **하드웨어 한계가 아닌 Display Coprocessor(DCP) 펌웨어 구조 변경**에서 비롯됨
  - M5 Max는 사양상 8K@60Hz를 지원하지만, DCP가 보고하는 기능은 M2 Max와 동일
  - M4/M5 세대에서 **프레임버퍼 예산(framebuffer budget)** 이 파이프별로 재할당되어, 표준 4K 경로의 예산이 **7680픽셀에서 6720픽셀로 축소**됨
  - DCP 펌웨어 디스어셈블 결과, **6720(0x1A40)** 값이 하드코딩된 상수로 존재

---

### 테스트 환경 및 비교 결과
| 항목 | M5 Max (문제 있음) | M2 Max (정상 동작) |
| --- | --- | --- |
| 칩 | Apple M5 Max | Apple M2 Max |
| 모델 ID | Mac17,6 | Mac14,6 |
| GPU 코어 | 40 | 38 |
| macOS | 26.4 (25E246) | 26.4 (25E246) |
| 디스플레이 | LG HDR 4K 32UN880 | LG HDR 4K 32UN880 |
| 연결 | USB-C/Thunderbolt (HBR3, 8.1Gbps, 4 lanes) | 동일 |
| 최대 HiDPI 모드 | **3360×1890** | **3840×2160** |

- 두 시스템 모두 `MaxActivePixelRate`, `MaxW`, `MaxH`, `MaxBpc` 등 DCP 파라미터는 동일
- `system_profiler` 출력에서 M5 Max의 백킹스토어는 **6720×3780**, UI는 **3360×1890 HiDPI**로 표시
- `HiDPI modes` 목록에서도 3840×2160@2x 항목이 존재하지 않음

---

### 프레임버퍼 및 파이프 구조 변화
- M2 Max는 컨트롤러 단위의 단일 예산(`MaxSrcRectWidth=7680`)을 사용
- M5 Max는 **서브파이프별 예산 구조**(`MaxSrcRectWidthForPipe=(6720,7680,7680,7680)`)로 변경
  - 단일 스트림 4K 출력은 **sub-pipe 0(6720)** 만 사용
  - 8K 출력 시 2개 sub-pipe(0,2)를 사용
- 이로 인해 4K HiDPI(7680×4320 백킹스토어)는 sub-pipe 0의 예산을 초과하여 생성 불가

| Sub-pipe | MaxSrcRectWidth | 용도 |
| --- | --- | --- |
| 0 | **6720** | 단일 스트림 (표준 디스플레이) |
| 1–3 | 7680 | 멀티 파이프 (8K 등) |

- `MaxVideoSrcDownscalingWidth` 비교
  | 컨트롤러 | MaxSrcRectWidthForPipe[0] | MaxVideoSrcDownscalingWidth | 비율 |
  | --- | --- | --- | --- |
  | 내부 디스플레이 | 5120 | 10744 | 2.1x |
  | 외부 디스플레이 | 6720 | 6720 | 1.0x |
  - 내부 디스플레이는 스케일러 여유가 있으나, 외부는 여유가 없어 3840×2160 HiDPI 불가
- `MaxSrcRectWidthForPipe`와 `MaxVideoSrcDownscalingWidth`는 **드라이버 로드 시 고정**되어 런타임 변경 불가
  - 포트 변경, 클램쉘 모드, EDID 수정 등에서도 동일하게 6720 유지

---

### DCP 펌웨어 분석
- 펌웨어 파일은 `/System/Volumes/Preboot/&lt;UUID&gt;/restore/Firmware/dcp/` 경로에 존재하며, M5 Max는 `t605xdcp.im4p` 사용
  - **LZFSE 압축(4.1MB → 16.4MB)** 상태이며 암호화되지 않아 `img4tool`로 추출 가능
- HiDPI 관련 속성(`MaxVideoSrcDownscalingWidth`, `MaxSrcRectWidthForPipe`, `IOMFBMaxSrcPixels`, `ExternalAppleLook`)이 모두 이 펌웨어 내부에서 정의
- `IOMFB::UPPipe::verify_downscaling(SwapRequest *)` 함수가 `MaxVideoSrcDownscalingWidth`를 기준으로 요청된 소스 폭을 검증
- Ghidra 분석 결과
  - 외장 디스플레이 Sub-pipe 0: `0x1A40`(6720)
  - Sub-pipe 1~3: `0x1E00`(7680)
  - 내장 디스플레이 Sub-pipe 0: `0x1400`(5120)
  - 모든 Sub-pipe 높이: `0x1200`(4608)
- 제한은 두 단계로 작동
  1. `MaxSrcRectWidthForPipe[0]`(6720) → 모드 열거 단계에서 제한
  2. `MaxVideoSrcDownscalingWidth`(6720) → 런타임 검증 단계에서 제한
- 동일 컨트롤러의 다른 파이프가 7680을 지원하므로, **하드웨어 제약이 아닌 펌웨어 정책**임이 확인됨

---

### 문제 해결 시도
- ## Display Override Plist
  - `/Library/Displays/.../DisplayVendorID-1e6d/DisplayProductID-7750`에 7680×4320 HiDPI 해상도 추가
  - M5 Max에서는 효과 없음, M2 Max에서는 정상 작동
  - M5 Max의 WindowServer가 해당 모드를 열거하지 않음
- ## EDID 소프트웨어 패치
  - `IODisplayEDID`에 수정된 EDID 삽입 (4095×4095, 최대 픽셀 클럭 655.35MHz 등)
  - 효과 없음
  - BetterDisplay 개발자는 M4에서 소프트웨어 EDID 오버라이드로 8K 프레임버퍼 확보 성공 사례 보고
  - 그러나 4K 패널은 실제 8K 신호를 표시할 수 없어 실질적 해결책 아님
- ## EDID 하드웨어 플래시
  - 7680×4320@60Hz(VIC 199) 모드를 EDID에 추가 후 LG 모니터 EEPROM에 플래시
  - DCP가 `MaxW=7680`, `MaxH=4320`으로 업데이트되지만 **sub-pipe 0의 6720 제한은 유지**
  - 8K 타이밍을 기본으로 설정 시 3840×2160@2x 모드가 생성되나, macOS가 실제 8K 신호를 출력하려 시도하여 표시 불가
- ## IOKit Registry 수정
  - `DisplayHints`, `ConnectionMapping` 등 DCP 속성 직접 수정 시도
  - 커널 드라이버(`AppleDisplayCrossbar`)가 **쓰기 거부(kIOReturnUnsupported)**
- ## 기타 시도
  - WindowServer 캐시 삭제, 연결 디스플레이 수 축소, HDMI 전환, SkyLight 비공개 API(`SLConfigureDisplayWithDisplayMode`) 호출 등 모두 실패
  - Apple 디스플레이로 위장(EDID에 Apple Vendor ID 삽입) 시 “Apple Pro Display X”로 표시되지만 `ExternalAppleLook=No`, 예산 변화 없음
- ## IOKit 속성 쓰기 결과 요약
  | 서비스 | 메서드 | 결과 |
  | --- | --- | --- |
  | IOMobileFramebufferShim | IORegistryEntrySetCFProperty | kIOReturnUnsupported |
  | AppleDisplayCrossbar 등 | IORegistryEntrySetCFProperty | kIOReturnNotReady |
  | IOAVController | IORegistryEntrySetCFProperty | **Accepted** (단, DCP로 전달되지 않음) |

  - ---

### RuntimeProperty 부트 인자 테스트
- 펌웨어에는 `IOMobileFramebuffer::parse_RTP_boot_args()` 함수가 존재하며, 부트 시 속성 재정의 가능성 있음
  - 예: `iomfb_RuntimeProperty_ExternalAppleLook`, `iomfb_enable_bw_check`, `iomfb_dual_pipe_policy` 등
- SIP와 Startup Security를 완화한 상태에서 `sudo nvram boot-args=`로 테스트했으나, DCP 펌웨어는 반응하지 않음
  - 해당 코드 경로가 **개발용으로만 활성화**된 것으로 추정됨

---

### Virtual Display Mirror 임시 우회 방법
- **`force-hidpi` CLI 도구**를 제작하여 **SkyLight의 비공개 `SLVirtualDisplay` API**를 이용, **가상 디스플레이(7680×4320)** 를 생성하고 실제 4K 패널을 하드웨어 미러링
  - 하드웨어 미러 경로는 `verify_downscaling` 검사를 우회
  - `system_profiler`에서 “Hardware Mirror: Yes”로 표시
- 이 방식으로 **3840×2160 HiDPI** 구현 가능
  - 텍스트가 선명하고 macOS UI가 정상적인 2x 밀도로 렌더링
  - 가상 디스플레이는 **PQ(ST 2084) EOTF**를 사용하며 SDR 패널용 감마 보정 적용
- 단점
  - 도구가 상시 실행되어야 하며 종료 시 1.0x로 복귀
  - 시스템 설정에 추가 디스플레이가 표시됨
  - M2 Max의 네이티브 HiDPI보다 텍스트 렌더링이 약간 다름
  - **비공개 API 의존성**으로 macOS 업데이트 시 불안정 가능

---

### 원인 및 수정 가능성 요약
- M2 Max: 컨트롤러당 7680픽셀 예산 → 3840×2160 HiDPI 가능
- M5 Max: sub-pipe 구조로 변경되어 **단일 스트림 파이프(0)** 가 6720으로 제한
- 이로 인해 4K HiDPI 최대치가 3360×1890으로 축소
- EDID 수정, 포트 변경, 디스플레이 수 조정 등으로는 변경 불가
- 근본적 해결책은 **Apple이 DCP 펌웨어(`t605xdcp.im4p`)를 수정**하는 것
  1. 하드코딩 상수 0x1A40 → 0x1E00으로 상향
  2. 단일 파이프에서도 멀티파이프 HiDPI 백킹스토어 허용
  3. 연결된 디스플레이 기반의 동적 할당 허용
  4. 런타임 속성 또는 부트 인자 노출
- Apple Feedback **FB22365722** 제출됨
- Apple은 문제를 인지하고 있으며, 현재는 **제품 페이지에 스케일 해상도 제한 경고 추가**로 대응 중

---

### 진단 명령 요약
- `ioreg -l -w0 | grep "IOMFBMaxSrcPixels"` : 파이프별 프레임버퍼 예산 확인
- `ioreg -l -w0 | grep "MaxVideoSrcDownscalingWidth"` : 스케일러 제한 확인
- `system_profiler SPDisplaysDataType` : 디스플레이 요약
- `CGSGetNumberOfDisplayModes` : HiDPI 모드 목록 확인

---

### M2 Max 정상 동작 예시
- **3840×2160@2x HiDPI 모드 존재**
- DCP 파라미터: `MaxW=3840`, `MaxH=2160`, `MaxActivePixelRate=497,664,000`
- `IOMFBMaxSrcPixels`에서 `MaxSrcRectWidth=7680` 확인
- 동일 LG HDR 4K 디스플레이에서 완전한 HiDPI 모드 사용 가능

## Comments



### Comment 54329

- Author: cnaa97
- Created: 2026-04-01T12:47:47+09:00
- Points: 1

기본적인건 좀 확실히 하지..

### Comment 54253

- Author: neo
- Created: 2026-04-01T06:38:31+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47569502) 
- 최근 **MacBook Pro M5 Pro**를 처음 샀는데 약간 후회 중임  
  노트북 자체는 훌륭하지만, 내 **LG 38WN95C-W 모니터(3840x1600@144Hz, USB-C)** 와 제대로 호환되지 않음  
  BetterDisplay로 3360x1400 HiDPI는 가능하지만, 익숙했던 화면 공간을 잃게 됨  
  이전 세대보다 M5가 더 나쁠 줄은 몰랐음. Apple은 많은 걸 잘하지만, 이런 기본적인 부분에서 실수함  
  이제 **Apple Intelligence**에게 아내에게 새 모니터가 필요하다고 설명하는 법을 물어봐야 할 듯함
  - 나도 비슷한 문제를 겪었는데, **Tim Cook에게 이메일**을 보냈더니 해결됨  
    Catalina 이후 macOS가 60Hz 이상 주사율을 지원하지 않던 **DisplayPort DSC 버그**였음  
    Apple 지원팀은 몇 주간 진단만 반복하다가 “WontFix”로 끝냈지만, 이메일 후 **Sonoma**에서 수정되었음  
    [관련 포럼 링크](https://egpu.io/forums/mac-setup/4k144hz-no-longer-available)
    - CEO 이메일이 실제로 전달될 거라 기대하진 않지만, 혹시 몰라 나도 보냈음  
    - 나도 **M1 Pro에서 M5 Pro로 업그레이드**했는데, 같은 도크와 모니터 조합에서도 4K 60Hz 이상이 안 됨  
      macOS Sequoia에서 Tahoe로 바꾼 후 발생한 문제임  
    - 나도 방금 이메일 보냈음. 정말 황당한 문제임  
    - 이 얘기 듣고 알았는데, 그래서 내 MacOS가 같은 144Hz 모니터에서도 **Windows보다 느리게 느껴졌던 이유**였음  
    - 완전히 고쳐진 건 아님. Apple이 **DP 1.4**를 조작해 ProDisplay XDR을 구동했는데,  
      비Apple 모니터에는 GPU가 1.2만 지원한다고 속이는 식으로 협상했을 가능성이 있음.  
      이번 문제도 그 연장선일 수 있음

- 작성자가 이 문제를 해결하려고 엄청난 노력을 들인 게 보임.  
  이렇게까지 해야 Apple이 문제를 인식한다는 게 안타까움
  - 나도 **57" G9 울트라와이드**에서 PIP/PBP 설정 때문에 고생했음  
    결국 **BetterDisplay**에서 Mac 제한을 해제하고, **DisplayLink 케이블**과 **전원형 HDMI 동글**을 조합해 해결함  
    5120x1440 @ lodpi는 너무 흐릿했지만, 10240x2880 @ 120Hz HDR로 안정화시킴  
    제목 보고 웃음이 나왔음. OP의 고통이 너무 공감됨  
  - 나도 주말 내내 머리 싸매고 해결책을 찾았지만 **마땅한 우회 방법이 없었음**  
  - 나도 비슷한 문제를 겪었는데, **Claude나 GPT**로 하드웨어 문제를 탐색하니 빠르게 해결 단계를 제시해줘서 유용했음  
    작성자도 아마 디스플레이 지식이 거의 없는 상태에서 시작했을 듯함

- 나도 새 **M4 MacBook**에서 외부 4K 모니터가 흐릿하게 보여서 미치는 줄 알았음  
  이전 설정을 복제해도 해결되지 않았고, 혹시 **Apple이 자사 디스플레이만 최적화**하는 게 아닌가 의심됨
  - macOS의 **해상도·스케일링 처리 방식**은 여전히 이상함  
    Windows 11조차 이런 문제는 없는데, macOS는 비Apple 모니터에서 글자가 어색하게 보임  
    예전 Intel Mac 시절에도 Thunderbolt 도크 연결 시 이런 문제를 겪었음  
    **서브픽셀 렌더링 옵션**을 다시 지원해줬으면 함  
  - “lodpi”가 왜 흐릿하다는 건지 모르겠음.  
    나는 43" 4K 모니터에서 1x 스케일로 8년째 쓰고 있는데, Linux나 M1, M4 간 차이를 못 느꼈음  
  - 나도 **BetterDisplay**로 모든 조합을 시도했지만, 여전히 **글꼴이 흐릿**했음. 큰 5k2k 모니터에서는 특히 답답했음  
  - 요즘 macOS 전체 품질이 불안정한 걸 보면, 단순히 **회사의 관리 부실** 때문일 가능성이 큼

- 혹시 **EDID가 꼬인 모니터**라면, [screenresolution CLI 앱](https://github.com/jhford/screenresolution)으로 해결할 수 있음  
  이걸로 임의의 해상도와 주사율을 설정해 100Hz까지 안정적으로 썼음
  - 고마움. 다만 이 툴은 단순히 해상도와 주사율만 바꾸고, **HiDPI 스케일링 제어**는 안 되는 듯함

- 혹시 저자가 4K 디스플레이를 **8K 프레임버퍼로 렌더링 후 다운스케일**하려는 건가?  
  단순 4K low-DPI 대비 어떤 이점이 있는지 궁금함. 일종의 **무료 안티앨리어싱**인가?
  - 맞음. macOS는 2x 스케일이 아닐 때 **텍스트 렌더링 품질이 나쁨**, 그래서 그렇게 하는 것임  
  - 핵심은 비네이티브 해상도에서 스케일링 시 품질 저하를 막기 위함임  
    Windows는 1.5x 스케일링 시 텍스트가 흐릿해지지만, macOS는 **6K 프레임버퍼를 4K로 다운스케일**해 선명도를 유지함  
  - 나도 [BetterDisplay](https://betterdisplaymac.com/)로 같은 방식 사용 중임  
    2K 모니터에서도 가상 5K 프레임버퍼를 2K로 줄이면 macOS 기본 2K보다 훨씬 선명함

- 나도 **M5 Air**에서 비슷한 문제를 겪음  
  60Hz 4K 모니터는 괜찮지만, **두 개의 고주사율 4K 게이밍 모니터**를 동시에 연결하면 하나가 인식되지 않음  
  케이블을 바꿔보다가 결국 **대역폭 한계** 때문임을 깨달음

- 이건 일반적인 **Retina 구성**이 아님.  
  프레임버퍼가 실제 해상도보다 훨씬 커서 다운스케일되는 특이한 설정임  
  대부분의 사용자는 이런 구성을 원하지 않기 때문에 Apple이 신경 안 쓰는 듯함
  - 나는 표준 **LG UltraFine 4K**를 **M5 MacBook Pro**에 연결했을 뿐인데, 이게 비정상 구성이라니 이해 안 됨  
  - 그게 일종의 **2x 슈퍼샘플링** 아닌가? 완벽한 안티앨리어싱을 위해선 그 정도는 필요함  
  - 나도 이게 비정상 구성이라는 의견에 동의함. 왜 굳이 2배 픽셀로 렌더링 후 다시 절반으로 줄이는지 의문임  
  - 하지만 **보급형 Windows 노트북**도 이런 해상도 처리를 무리 없이 하는데,  
    **창작자용 플랫폼의 대표주자**인 Mac이 이런 걸 못 한다는 건 좀 실망스러움

- HiDPI라면 1080p@2x 아닌가? 그건 여전히 가능한가?
  - 맞음. 3840x2160 디스플레이라면 macOS에서 1920x1080@2x로 쓰는 게 일반적임  
    그런데 왜 7680x4320 버퍼를 쓰는지 모르겠음.  
    나는 M4 Mac에서 4K 디스플레이를 5120x2880(2560x1440@2x) 버퍼로 쓰는데 잘 작동함  
    macOS Sequoia 기준임  
  - 나도 이 글의 요점을 잘 모르겠음. 4K 모니터에서 4K HiDPI는 존재하지 않음.  
    그건 8K 모니터에서 2160p@2x일 뿐임. 4K 100% 스케일은 어느 OS에서나 보기 안 좋음  
  - 결국 2160p@2x라는 **비정상적 구성**을 말하는 듯함

- 글에 **텍스트 블러 비교 스크린샷**이 있으면 더 설득력 있을 것 같음  
  - 피드백 고마움. 정확한 촬영이 쉽진 않지만, 퇴근 후 **사진을 추가해 업데이트**해볼 예정임
