KhronosGroup / Vulkan-Samples

One stop solution for all Vulkan samples
Apache License 2.0
4.23k stars 634 forks source link

M3 Max Mac Failed to open file for reading Can't run samples #1086

Closed NicholasRicher closed 2 months ago

NicholasRicher commented 2 months ago

Hello,

I cloned the repository to my machine and I followed the instructions for building on MacOS:

I installed cmake with homebrew. I successfully installed the VulkanSDK and verified it with vkvia.

❯ vkvia
VIA_INFO:    SDK Found! - Will attempt to run tests
VIA_INFO:       Attempting to run ./vkcube in ~/VulkanSDK/vulkan/macOS/../Applications/vkcube.app/Contents/MacOS
VIA_INFO:           Command-line: ./vkcube --c 100 --suppress_popups
Selected GPU 0: Apple M3 Max, type: IntegratedGpu
VIA_INFO:           Command-line: ./vkcube --c 100 --suppress_popups --validate
Selected GPU 0: Apple M3 Max, type: IntegratedGpu
SUCCESS: Vulkan analysis completed properly using Vulkan 1.2

I ran the following commands per the MacOS build with CMake documentation: cmake -Bbuild/mac -DCMAKE_BUILD_TYPE=Release cmake --build build/mac --config Release --target vulkan_samples -j4

I've tried running multiple samples by navigating inside vulkan_samples.app to /Contents/MacOS but I get the "Failed to open file for reading" error. Here is output for a few of the samples:

❯ ./vulkan_samples sample hello_triangle          
[info] Logger initialized
[info] Initializing vulkan instance.
[info] Enabled Validation Layers:
[info] Found GPU: Apple M3 Max
[info] Initializing vulkan device.
[error] Error Message: Failed to open file for reading
[error] Failed when running application Hello Triangle
❯ ./vulkan_samples sample hpp_hello_triangle
[info] Logger initialized
[info] Enabled Validation Layers:
[error] Error Message: Failed to open file for reading
[error] Failed when running application HPP Hello Triangle
❯ ./vulkan_samples sample hdr               
[info] Logger initialized
[info] Initializing Vulkan sample
[info] Vulkan debug utils enabled (VK_EXT_debug_utils)
[info] Extension VK_KHR_get_physical_device_properties2 found, enabling it
[info] Extension VK_KHR_portability_enumeration found, enabling it
[info] Extension VK_EXT_metal_surface found, enabling it
[info] Extension VK_EXT_debug_utils found, enabling it
[info] Enabled Validation Layers:
[info] Found GPU: Apple M3 Max
[warning] Couldn't find a discrete physical device, picking default GPU
[info] Selected GPU: Apple M3 Max
[info] Dedicated Allocation enabled
[info] Device supports the following requested extensions:
[info]          VK_KHR_get_memory_requirements2
[info]          VK_KHR_dedicated_allocation
[info]          VK_KHR_swapchain
[info] Surface supports the following surface formats:
[info]          B8G8R8A8Unorm, SrgbNonlinear
[info]          B8G8R8A8Srgb, SrgbNonlinear
[info]          R16G16B16A16Sfloat, SrgbNonlinear
[info]          A2B10G10R10UnormPack32, SrgbNonlinear
[info]          A2R10G10B10UnormPack32, SrgbNonlinear
[info]          B8G8R8A8Unorm, DisplayP3NonlinearEXT
[info]          B8G8R8A8Srgb, DisplayP3NonlinearEXT
[info]          R16G16B16A16Sfloat, DisplayP3NonlinearEXT
[info]          A2B10G10R10UnormPack32, DisplayP3NonlinearEXT
[info]          A2R10G10B10UnormPack32, DisplayP3NonlinearEXT
[info]          B8G8R8A8Unorm, DciP3NonlinearEXT
[info]          B8G8R8A8Srgb, DciP3NonlinearEXT
[info]          R16G16B16A16Sfloat, DciP3NonlinearEXT
[info]          A2B10G10R10UnormPack32, DciP3NonlinearEXT
[info]          A2R10G10B10UnormPack32, DciP3NonlinearEXT
[info]          B8G8R8A8Unorm, Bt709NonlinearEXT
[info]          B8G8R8A8Srgb, Bt709NonlinearEXT
[info]          R16G16B16A16Sfloat, Bt709NonlinearEXT
[info]          A2B10G10R10UnormPack32, Bt709NonlinearEXT
[info]          A2R10G10B10UnormPack32, Bt709NonlinearEXT
[info]          B8G8R8A8Unorm, AdobergbNonlinearEXT
[info]          B8G8R8A8Srgb, AdobergbNonlinearEXT
[info]          R16G16B16A16Sfloat, AdobergbNonlinearEXT
[info]          A2B10G10R10UnormPack32, AdobergbNonlinearEXT
[info]          A2R10G10B10UnormPack32, AdobergbNonlinearEXT
[info]          B8G8R8A8Unorm, PassThroughEXT
[info]          B8G8R8A8Srgb, PassThroughEXT
[info]          R16G16B16A16Sfloat, PassThroughEXT
[info]          A2B10G10R10UnormPack32, PassThroughEXT
[info]          A2R10G10B10UnormPack32, PassThroughEXT
[info]          B8G8R8A8Unorm, ExtendedSrgbLinearEXT
[info]          B8G8R8A8Srgb, ExtendedSrgbLinearEXT
[info]          R16G16B16A16Sfloat, ExtendedSrgbLinearEXT
[info]          A2B10G10R10UnormPack32, ExtendedSrgbLinearEXT
[info]          A2R10G10B10UnormPack32, ExtendedSrgbLinearEXT
[info]          B8G8R8A8Unorm, ExtendedSrgbNonlinearEXT
[info]          B8G8R8A8Srgb, ExtendedSrgbNonlinearEXT
[info]          R16G16B16A16Sfloat, ExtendedSrgbNonlinearEXT
[info]          A2B10G10R10UnormPack32, ExtendedSrgbNonlinearEXT
[info]          A2R10G10B10UnormPack32, ExtendedSrgbNonlinearEXT
[info]          B8G8R8A8Unorm, DisplayP3LinearEXT
[info]          B8G8R8A8Srgb, DisplayP3LinearEXT
[info]          R16G16B16A16Sfloat, DisplayP3LinearEXT
[info]          A2B10G10R10UnormPack32, DisplayP3LinearEXT
[info]          A2R10G10B10UnormPack32, DisplayP3LinearEXT
[info]          B8G8R8A8Unorm, Bt2020LinearEXT
[info]          B8G8R8A8Srgb, Bt2020LinearEXT
[info]          R16G16B16A16Sfloat, Bt2020LinearEXT
[info]          A2B10G10R10UnormPack32, Bt2020LinearEXT
[info]          A2R10G10B10UnormPack32, Bt2020LinearEXT
[info]          B8G8R8A8Unorm, Hdr10HlgEXT
[info]          B8G8R8A8Srgb, Hdr10HlgEXT
[info]          R16G16B16A16Sfloat, Hdr10HlgEXT
[info]          A2B10G10R10UnormPack32, Hdr10HlgEXT
[info]          A2R10G10B10UnormPack32, Hdr10HlgEXT
[info]          B8G8R8A8Unorm, Hdr10St2084EXT
[info]          B8G8R8A8Srgb, Hdr10St2084EXT
[info]          R16G16B16A16Sfloat, Hdr10St2084EXT
[info]          A2B10G10R10UnormPack32, Hdr10St2084EXT
[info]          A2R10G10B10UnormPack32, Hdr10St2084EXT
[info] Surface supports the following present modes:
[info]          Fifo
[info]          Immediate
[warning] (HPPSwapchain) Image extent (0, 0) not supported. Selecting (2560, 1440).
[warning] (HPPSwapchain) Surface format (Undefined, SrgbNonlinear) not supported. Selecting (B8G8R8A8Srgb, SrgbNonlinear).
[info] (HPPSwapchain) Image usage flags: TransferSrc ColorAttachment 
[warning] (HPPSwapchain) Present mode 'Mailbox' not supported. Selecting 'Fifo'.
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[error] Error Message: Failed to open file for reading
[error] Failed when running application HDR
[info] Total device memory leaked: 0 bytes.
❯ ./vulkan_samples sample instancing
[info] Logger initialized
[info] Initializing Vulkan sample
[info] Vulkan debug utils enabled (VK_EXT_debug_utils)
[info] Extension VK_KHR_get_physical_device_properties2 found, enabling it
[info] Extension VK_KHR_portability_enumeration found, enabling it
[info] Extension VK_EXT_debug_utils found, enabling it
[info] Extension VK_EXT_metal_surface found, enabling it
[info] Enabled Validation Layers:
[info] Found GPU: Apple M3 Max
[warning] Couldn't find a discrete physical device, picking default GPU
[info] Selected GPU: Apple M3 Max
[info] Dedicated Allocation enabled
[info] Device supports the following requested extensions:
[info]          VK_KHR_get_memory_requirements2
[info]          VK_KHR_dedicated_allocation
[info]          VK_KHR_swapchain
[info] Surface supports the following surface formats:
[info]          B8G8R8A8Unorm, SrgbNonlinear
[info]          B8G8R8A8Srgb, SrgbNonlinear
[info]          R16G16B16A16Sfloat, SrgbNonlinear
[info]          A2B10G10R10UnormPack32, SrgbNonlinear
[info]          A2R10G10B10UnormPack32, SrgbNonlinear
[info]          B8G8R8A8Unorm, DisplayP3NonlinearEXT
[info]          B8G8R8A8Srgb, DisplayP3NonlinearEXT
[info]          R16G16B16A16Sfloat, DisplayP3NonlinearEXT
[info]          A2B10G10R10UnormPack32, DisplayP3NonlinearEXT
[info]          A2R10G10B10UnormPack32, DisplayP3NonlinearEXT
[info]          B8G8R8A8Unorm, DciP3NonlinearEXT
[info]          B8G8R8A8Srgb, DciP3NonlinearEXT
[info]          R16G16B16A16Sfloat, DciP3NonlinearEXT
[info]          A2B10G10R10UnormPack32, DciP3NonlinearEXT
[info]          A2R10G10B10UnormPack32, DciP3NonlinearEXT
[info]          B8G8R8A8Unorm, Bt709NonlinearEXT
[info]          B8G8R8A8Srgb, Bt709NonlinearEXT
[info]          R16G16B16A16Sfloat, Bt709NonlinearEXT
[info]          A2B10G10R10UnormPack32, Bt709NonlinearEXT
[info]          A2R10G10B10UnormPack32, Bt709NonlinearEXT
[info]          B8G8R8A8Unorm, AdobergbNonlinearEXT
[info]          B8G8R8A8Srgb, AdobergbNonlinearEXT
[info]          R16G16B16A16Sfloat, AdobergbNonlinearEXT
[info]          A2B10G10R10UnormPack32, AdobergbNonlinearEXT
[info]          A2R10G10B10UnormPack32, AdobergbNonlinearEXT
[info]          B8G8R8A8Unorm, PassThroughEXT
[info]          B8G8R8A8Srgb, PassThroughEXT
[info]          R16G16B16A16Sfloat, PassThroughEXT
[info]          A2B10G10R10UnormPack32, PassThroughEXT
[info]          A2R10G10B10UnormPack32, PassThroughEXT
[info]          B8G8R8A8Unorm, ExtendedSrgbLinearEXT
[info]          B8G8R8A8Srgb, ExtendedSrgbLinearEXT
[info]          R16G16B16A16Sfloat, ExtendedSrgbLinearEXT
[info]          A2B10G10R10UnormPack32, ExtendedSrgbLinearEXT
[info]          A2R10G10B10UnormPack32, ExtendedSrgbLinearEXT
[info]          B8G8R8A8Unorm, ExtendedSrgbNonlinearEXT
[info]          B8G8R8A8Srgb, ExtendedSrgbNonlinearEXT
[info]          R16G16B16A16Sfloat, ExtendedSrgbNonlinearEXT
[info]          A2B10G10R10UnormPack32, ExtendedSrgbNonlinearEXT
[info]          A2R10G10B10UnormPack32, ExtendedSrgbNonlinearEXT
[info]          B8G8R8A8Unorm, DisplayP3LinearEXT
[info]          B8G8R8A8Srgb, DisplayP3LinearEXT
[info]          R16G16B16A16Sfloat, DisplayP3LinearEXT
[info]          A2B10G10R10UnormPack32, DisplayP3LinearEXT
[info]          A2R10G10B10UnormPack32, DisplayP3LinearEXT
[info]          B8G8R8A8Unorm, Bt2020LinearEXT
[info]          B8G8R8A8Srgb, Bt2020LinearEXT
[info]          R16G16B16A16Sfloat, Bt2020LinearEXT
[info]          A2B10G10R10UnormPack32, Bt2020LinearEXT
[info]          A2R10G10B10UnormPack32, Bt2020LinearEXT
[info]          B8G8R8A8Unorm, Hdr10HlgEXT
[info]          B8G8R8A8Srgb, Hdr10HlgEXT
[info]          R16G16B16A16Sfloat, Hdr10HlgEXT
[info]          A2B10G10R10UnormPack32, Hdr10HlgEXT
[info]          A2R10G10B10UnormPack32, Hdr10HlgEXT
[info]          B8G8R8A8Unorm, Hdr10St2084EXT
[info]          B8G8R8A8Srgb, Hdr10St2084EXT
[info]          R16G16B16A16Sfloat, Hdr10St2084EXT
[info]          A2B10G10R10UnormPack32, Hdr10St2084EXT
[info]          A2R10G10B10UnormPack32, Hdr10St2084EXT
[info] Surface supports the following present modes:
[info]          Fifo
[info]          Immediate
[warning] (HPPSwapchain) Image extent (0, 0) not supported. Selecting (2560, 1440).
[warning] (HPPSwapchain) Surface format (Undefined, SrgbNonlinear) not supported. Selecting (B8G8R8A8Srgb, SrgbNonlinear).
[info] (HPPSwapchain) Image usage flags: TransferSrc ColorAttachment 
[warning] (HPPSwapchain) Present mode 'Mailbox' not supported. Selecting 'Fifo'.
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[info] Depth format selected: VK_FORMAT_D32_SFLOAT
[error] Error Message: Failed to open file for reading
[error] Failed when running application Instancing
[info] Total device memory leaked: 0 bytes.
tomadamatkinson commented 2 months ago

Hey @NicholasRicher, this is an issue with the app bundle approach. It works differently to how samples have worked in the past. #1084 proposes to change this back to a command line app instead of a bundle.

In either case samples is designed to be run from the project root directory so that it can access the assets and shaders. Try running:

./build/app/bin/Debug/arm64/vulkan_samples.app/Contents/MacOS/vulkan_samples sample afbc

The path to your executable may be different

NicholasRicher commented 2 months ago
~/Documents/source/Vulkan/Vulkan-Samples main !10 ?1
❯
./build/mac/app/bin/Release/arm64/vulkan_samples.app/Contents/MacOS sample hello_triangle
zsh: permission denied: ./build/mac/app/bin/Release/arm64/vulkan_samples.app/Contents/MacOS
~/Documents/source/Vulkan/Vulkan-Samples main !10 ?1
❯
sudo ./build/mac/app/bin/Release/arm64/vulkan_samples.app/Contents/MacOS sample hello_triangle
sudo: ./build/mac/app/bin/Release/arm64/vulkan_samples.app/Contents/MacOS: command not found
tomadamatkinson commented 2 months ago

Hey @NicholasRicher, you're attempting to execute the MacOS folder. Try adding /vulkan_samples to the executable path you are attempting to run

NicholasRicher commented 2 months ago

That worked, thank you!

SRSaunders commented 2 months ago

This specific issue is now closed, but see open issue #1056 regarding support for running outside of the project root directory. This will be needed for running/debugging inside Xcode and perhaps other use cases.