MoltenVK
MoltenVK는 Vulkan Portability 구현체입니다. 고성능의 업계 표준 Vulkan 그래픽 및 연산 API의 하위 집합을 Apple의 Metal 그래픽 프레임워크 위에 레이어링하여, Vulkan 애플리케이션이 macOS, iOS, tvOS에서 실행될 수 있도록 지원합니다.
파일 탐색기
- CI.yml
- MoltenVK_CPM_Cache.cmake
- MoltenVK_Filter_Flags.cmake
- cereal.cmake
- CPM.cmake
- SPIRV-Cross.cmake
- SPIRV-Headers.cmake
- SPIRV-Tools.cmake
- Volk.cmake
- Vulkan-Headers.cmake
- Vulkan-Tools.cmake
- CMakeLists.txt
- MVKCommonEnvironment.h
- MVKOSExtensions.h
- MVKOSExtensions.mm
- MVKStrings.h
- Cube-iOS.xcscheme
- Cube-macOS.xcscheme
- Cube-tvOS.xcscheme
- Cube-VisionOS.xcscheme
- project.pbxproj
- cube
- volk
- [email protected]
- Default~ipad.png
- Icon.png
- Main.storyboard
- MainTV.storyboard
- AppDelegate.h
- AppDelegate.m
- DemoViewController.h
- DemoViewController.m
- Info.plist
- InfoTV.plist
- main.m
- Prefix.pch
- Contents.json
- Icon-128.png
- Icon-16.png
- Icon-256.png
- Icon-32.png
- Icon-512.png
- Contents.json
- Main.storyboard
- AppDelegate.h
- AppDelegate.m
- DemoViewController.h
- DemoViewController.m
- Info.plist
- main.m
- Prefix.pch
- ContentView.swift
- Cube-VisionOS-Bridging-Header.h
- cube_runner.c
- Info.plist
- VisionOSApp.swift
- Cube.entitlements
- IDEWorkspaceChecks.plist
- WorkspaceSettings.xcsettings
- contents.xcworkspacedata
- README.md
- MoltenVK-Logo-Banner.png
- MoltenVK_Configuration_Parameters.md
- MoltenVK_Runtime_UserGuide.md
- Whats_New.md
- ExternalDependencies (Debug).xcscheme
- ExternalDependencies-iOS.xcscheme
- ExternalDependencies-macOS.xcscheme
- ExternalDependencies-tvOS.xcscheme
- ExternalDependencies-xrOS.xcscheme
- ExternalDependencies.xcscheme
- SPIRV-Cross-iOS.xcscheme
- SPIRV-Cross-macOS.xcscheme
- SPIRV-Cross-tvOS.xcscheme
- SPIRV-Cross-xrOS.xcscheme
- SPIRV-Tools-iOS.xcscheme
- SPIRV-Tools-macOS.xcscheme
- SPIRV-Tools-tvOS.xcscheme
- SPIRV-Tools-xrOS.xcscheme
- project.pbxproj
- cereal_repo_revision
- README.md
- SPIRV-Cross_repo_revision
- SPIRV-Headers_repo_revision
- SPIRV-Tools_repo_revision
- Volk_repo_revision
- Vulkan-Headers_repo_revision
- Vulkan-Tools_repo_revision
- MoltenVK_icd.json
- MoltenVK
- vk_video
- vulkan
- mvk_config.h
- mvk_datatypes.h
- mvk_deprecated_api.h
- mvk_private_api.h
- mvk_vulkan.h
- vk_mvk_moltenvk.h
- MVKCmdDebug.h
- MVKCmdDebug.mm
- MVKCmdDispatch.h
- MVKCmdDispatch.mm
- MVKCmdDraw.h
- MVKCmdDraw.mm
- MVKCmdPipeline.h
- MVKCmdPipeline.mm
- MVKCmdQueries.h
- MVKCmdQueries.mm
- MVKCmdRendering.h
- MVKCmdRendering.mm
- MVKCmdTransfer.h
- MVKCmdTransfer.mm
- MVKCommand.h
- MVKCommandBuffer.h
- MVKCommandBuffer.mm
- MVKCommandEncoderState.h
- MVKCommandEncoderState.mm
- MVKCommandEncodingPool.h
- MVKCommandEncodingPool.mm
- MVKCommandPipelineStateFactoryShaderSource.h
- MVKCommandPool.h
- MVKCommandPool.mm
- MVKCommandResourceFactory.h
- MVKCommandResourceFactory.mm
- MVKCommandTypePools.def
- MVKMTLBufferAllocation.h
- MVKMTLBufferAllocation.mm
- MVKMTLResourceBindings.h
- MVKBuffer.h
- MVKBuffer.mm
- MVKDescriptorSet.h
- MVKDescriptorSet.mm
- MVKDevice.h
- MVKDevice.mm
- MVKDeviceFeatureStructs.def
- MVKDeviceMemory.h
- MVKDeviceMemory.mm
- MVKFramebuffer.h
- MVKFramebuffer.mm
- MVKImage.h
- MVKImage.mm
- MVKInstance.h
- MVKInstance.mm
- MVKPipeline.h
- MVKPipeline.mm
- MVKPixelFormats.h
- MVKPixelFormats.mm
- MVKQueryPool.h
- MVKQueryPool.mm
- MVKQueue.h
- MVKQueue.mm
- MVKRenderPass.h
- MVKRenderPass.mm
- MVKResource.h
- MVKResource.mm
- MVKShaderModule.h
- MVKShaderModule.mm
- MVKSurface.h
- MVKSurface.mm
- MVKSwapchain.h
- MVKSwapchain.mm
- MVKSync.h
- MVKSync.mm
- MVKVulkanAPIObject.h
- MVKVulkanAPIObject.mm
- MVKExtensions.def
- MVKExtensions.h
- MVKExtensions.mm
- MVKLayers.h
- MVKLayers.mm
- CAMetalLayer+MoltenVK.h
- CAMetalLayer+MoltenVK.mm
- MTLRenderPipelineDescriptor+MoltenVK.h
- MTLRenderPipelineDescriptor+MoltenVK.m
- MTLSamplerDescriptor+MoltenVK.h
- MTLSamplerDescriptor+MoltenVK.m
- MVKGPUCapture.h
- MVKGPUCapture.mm
- NSString+MoltenVK.h
- NSString+MoltenVK.mm
- MVKBaseObject.h
- MVKBaseObject.mm
- MVKBitArray.h
- MVKBlockObserver.h
- MVKBlockObserver.m
- MVKCodec.h
- MVKCodec.mm
- MVKConfigMembers.def
- MVKDXTnCodec.def
- MVKEnvironment.cpp
- MVKEnvironment.h
- MVKFoundation.cpp
- MVKFoundation.h
- MVKInflectionMap.h
- MVKInlineArray.h
- MVKInlineObjectConstructor.h
- MVKLogging.h
- MVKObjectPool.h
- MVKSmallVector.h
- MVKSmallVectorAllocator.h
- MVKStateTracking.h
- MVKWatermark.h
- MVKWatermark.mm
- MVKWatermarkShaderSource.h
- MVKWatermarkTextureContent.h
- mvk_api.mm
- mvk_datatypes.hpp
- mvk_datatypes.mm
- vulkan.mm
- project.pbxproj
- CMakeLists.txt
- MoltenVK Package (iOS only).xcscheme
- MoltenVK Package (MacCat only).xcscheme
- MoltenVK Package (macOS only).xcscheme
- MoltenVK Package (tvOS only).xcscheme
- MoltenVK Package (visionOS only).xcscheme
- MoltenVK Package.xcscheme
- project.pbxproj
- SPIRVConversion.h
- SPIRVToMSLConverter.h
- CMakeLists.txt
- FileSupport.h
- FileSupport.mm
- SPIRVConversion.h
- SPIRVConversion.mm
- SPIRVReflection.h
- SPIRVSupport.cpp
- SPIRVSupport.h
- SPIRVToMSLConverter.cpp
- SPIRVToMSLConverter.h
- MoltenVKShaderConverter.xcscheme
- project.pbxproj
- CMakeLists.txt
- main.cpp
- MoltenVKShaderConverterTool.cpp
- MoltenVKShaderConverterTool.h
- OSSupport.h
- OSSupport.mm
- SPIRV-Cross
- SPIRV-Tools
- Tools
- clean_dynamic.sh
- copy_ext_lib_to_staging.sh
- copy_lib_to_staging.sh
- copy_to_staging.sh
- create_dylib_xros.sh
- create_ext_lib_xcframeworks.sh
- create_xcframework_func.sh
- gen_moltenvk_rev_hdr.sh
- get_failing_cts_tests.py
- package_all.sh
- package_docs.sh
- package_dylibs.sh
- package_ext_libs_finish.sh
- package_headers.sh
- package_moltenvk_xcframework.sh
- package_shader_converter_tool.sh
- package_shader_converter_xcframework.sh
- package_update_latest.sh
- packagePregenSpirvToolsHeaders
- runcts
- MoltenVK.pc.in
- MoltenVK_icd.json.in
- MoltenVKOptions.cmake.sample
- mvkGitRevDerived.h.in
- build.zip
- .gitignore
- CMakeLists.txt
- CODE_OF_CONDUCT.md
- fetchDependencies
- LICENSE
- Makefile
- README.md
# 설치 가이드
cmake설치 및 실행 절차
brew install cmake python3 ninja
필수 빌드 도구를 설치합니다.
git clone https://github.com/KhronosGroup/MoltenVK.git
MoltenVK 저장소를 복제합니다.
./fetchDependencies --all
외부 종속성 라이브러리를 가져오고 빌드합니다.
핵심 명령어
./fetchDependencies --all
지정된 플랫폼에 대한 외부 오픈소스 의존성을 가져오고 빌드합니다.
# CDN으로 사용하기
jsDelivrjsDelivr는 공개 GitHub 리포지토리를 별도 설정 없이 CDN으로 즉시 서빙합니다. 버전과 파일을 고르면 웹페이지에 바로 붙일 수 있는 링크와 예시 코드가 만들어집니다.
명령어 용어집
이 문서에서 사용된 명령어를 모아봤습니다. 낯선 명령어가 있다면 펼쳐서 확인해보세요.
brew install
설명 보기 ▼
brew install
Install a Homebrew formula or cask.
brew install {{formula|cask}}
Install a formula/cask:
brew install {{[-s|--build-from-source]}} {{formula}}
Build and install a formula from source (dependencies will still be installed from bottles):
brew install {{[-n|--dry-run]}} {{formula|cask}}
Download the manifest, print what would be installed but don't actually install anything:
clang-format
설명 보기 ▼
clang-format
C/C++/Java/JavaScript/Objective-C/Protobuf/C# 코드 자동 형식화.
더 많은 정보: <https://clang.llvm.org/docs/ClangFormat.html>.
clang-format {{path/to/file}}
파일 형식을 지정하고 결과를 `stdout`으로 출력:
clang-format -i {{path/to/file}}
그 자리에서 파일 형식을 지정:
clang-format --style {{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} {{path/to/file}}
미리 정의된 코딩 스타일을 사용하여 파일 형식을 지정:
cmake
설명 보기 ▼
cmake
네이티브 빌드 시스템을 위한 빌드 설정 파일을 생성하는, 크로스 플랫폼 빌드 자동화 도구.
더 많은 정보: <https://cmake.org/cmake/help/latest/manual/cmake.1.html>.
cmake {{path/to/project_directory}}
프로젝트 디렉터리의 `CMakeLists.txt`를 사용해 현재 디렉터리에 빌드 설정을 생성:
cmake --build {{path/to/build_directory}}
지정한 디렉터리의 빌드 설정을 사용해 빌드 산출물을 생성:
cmake --install {{path/to/build_directory}} --strip
빌드 산출물을 `/usr/local/`에 설치하고 디버그 심볼을 제거:
git clone
설명 보기 ▼
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
ninja
설명 보기 ▼
ninja
빠른 빌드를 위해 설계된 빌드 시스템.
더 많은 정보: <https://ninja-build.org/manual.html>.
ninja
현재 디렉토리에서 빌드:
ninja -j {{4}}
현재 디렉토리에서 빌드하고, 동시에 4개의 작업을 병렬로 실행:
ninja -C {{path/to/directory}}
주어진 디렉토리에서 프로그램 빌드:
python3
설명 보기 ▼
python3
이 명령은 `python`의 별칭입니다.
tldr python
자세한 내용은 원본 명령을 참고하세요:
