스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
Mac에 게임 가져오기, 2부: 셰이더 컴파일하기
3부로 구성된 ‘Mac에 게임 가져오기' 두 번째 세션에서는 HLSL 셰이더를 Metal로 가져올 때 Metal 셰이더 컨버터로 능률을 높이는 방법을 살펴보겠습니다. DXIL로 빠르고 통합적인 셰이더 파이프라인을 빌드하는 방법도 알려 드립니다. 해당 셰이더 파이프라인은 모든 셰이더 스테이지를 지원하며, Apple GPU의 고급 기능을 활용할 수 있습니다. 그리고 오프라인 컴파일러로 GPU 바이너리를 생성해 앱 시작 시간과 끊김 현상을 줄이는 방법도 알아보세요. 이번 세션을 최대한 활용하려면 'Mac에 게임 가져오기, 1부: 게임 플랜 만들기'를 먼저 시청하시기 바랍니다. 다음 단계를 살펴볼 준비가 되었다면 'Mac에 게임 가져오기, 3부: Metal로 렌더링하기' 세션도 확인해 보세요.
챕터
- 0:00 - Intro
- 0:49 - New Metal compiler tools
- 1:54 - Convert your shaders
- 12:27 - Finalize GPU binaries
- 18:20 - Wrap-Up
리소스
- Download the game porting toolkit
- Download the Metal shader converter (Mac and Windows)
- Get started with Metal shader converter
- Metal
관련 비디오
WWDC23
Tech Talks
WWDC22
WWDC21
WWDC20
-
다운로드Array
-
-
14:28 - Json Metal Script
{“libraries": { "paths": [ {"path": “ba.metallib”, "label": "myMetalLib"} ] }, "pipelines": { "render_pipelines": [{ "vertex_function": "alias:myMetalLib#v", "fragment_function": "alias:myMetalLib#f", "raster_sample_count": 2, "color_attachments": [{ "pixel_format": "BGRA8Unorm" }], "depth_attachment_pixel_format": "Depth32Float" }] } }
-
16:30 - Testing Binary Archive hit
// Create Pipeline Descriptor MTLComputePipelineDescriptor *computeDesc = [MTLComputePipelineDescriptor new]; computeDesc.binaryArchives = @[existingBinaryArchive]; computeDesc.computeFunction = computeFn; id<MTLComputePipelineState> computePS = [device newComputePipelineStateWithDescriptor:computeDesc options:MTLPipelineOptionFailonBinaryArchiveMiss error:&err]; if(computePS == nil) { // Binary archive is missing compiled shader. }
-
17:03 - Loading appropriate Binary Archive
// Load OS-specific binary archives MTLComputePipelineDescriptor *computeDesc = [MTLComputePipelineDescriptor new]; if (@available(macOS 14, *)) { computeDesc.binaryArchives = @[binaryArchive_macOS14]; } else { computeDesc.binaryArchives = @[binaryArchive_macOS13_3]; } computeDesc.computeFunction = computeFn; id<MTLComputePipelineState> computePS = [device newComputePipelineStateWithDescriptor:computeDesc options:nil error:&err];
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.