taichi-dev / taichi

Productive, portable, and performant GPU programming in Python.
https://taichi-lang.org
Apache License 2.0
25.51k stars 2.28k forks source link

Launching GGUI on OS X leads to lengthy debug outputs #4782

Open yuanming-hu opened 2 years ago

yuanming-hu commented 2 years ago

Describe the bug As the title describes.

To reproduce

import taichi as ti

ti.init(arch=ti.vulkan)
window = ti.ui.Window("Taichi Voxel Renderer", (256, 256), vsync=True)
window.show()

Log

[Taichi] version 1.0.0, llvm 10.0.0, commit 6a15da85, osx, python 3.8.2
[mvk-info] MoltenVK version 1.1.9, supporting Vulkan version 1.1.211.
    The following 73 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_sample_locations v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v34
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xb0103ef
        pipelineCacheUUID: 0000277D-0B01-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.0.0, as requested by app, with the following 0 Vulkan extensions enabled:
[Taichi] Starting on arch=vulkan
[mvk-info] MoltenVK version 1.1.9, supporting Vulkan version 1.1.211.
    The following 73 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_sample_locations v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v34
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xb0103ef
        pipelineCacheUUID: 0000277D-0B01-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.211, as requested by app, with the following 3 Vulkan extensions enabled:
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_surface v25
        VK_EXT_metal_surface v1
[I 04/13/22 22:40:03.317 51091729] [vulkan_device_creator.cpp:pick_physical_device@356] Found Vulkan Device 0 (Apple M1)
[I 04/13/22 22:40:03.317 51091729] [vulkan_device_creator.cpp:create_logical_device@424] Vulkan Device "Apple M1" supports Vulkan 0 version 1.1.211
[W 04/13/22 22:40:03.317 51091729] [vulkan_device_creator.cpp:create_logical_device@461] Potential non-conformant Vulkan implementation, enabling VK_KHR_portability_subset
[W 04/13/22 22:40:03.317 51091729] [vulkan_device_creator.cpp:create_logical_device@529] Taichi GPU GUI requires wide lines support
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 8 Vulkan extensions enabled:
        VK_KHR_bind_memory2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_external_memory v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_portability_subset v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_swapchain v70
        VK_KHR_variable_pointers v1

I don't think these lines are necessary. They can be confusing to users.

bobcao3 commented 2 years ago

This is a log produced from MoltenVK library. Since we are using a build of MoltenVK provided by homebrew / lunarg SDK, we can not control its log level. If we build MoltenVK from source it does use a variable to control this: MVK_CONFIG_LOG_LEVEL It could be that this also works as an environment variable.

FantasyVR commented 2 years ago

Hi @erizmr, is there any progress on this?

erizmr commented 2 years ago

@bobcao3 has mentioned that upgrading to Molten-vk 1.1.9 might help solve this problem. I am working on that on my Mac.

erizmr commented 2 years ago

Updates: Upgrading to Molten-vk 1.1.9 does not solve this issue on my verification unfortunately.