Failed to choose the 12-bit precision window on AMD graphics card

hi community and team,
I encountered problems while setting up Psychtoolbox to achieve a precision of 12 bits. My configuration is as follows:
OS: Ubuntu 22.04.5 LTS;
GPU: AMD® Radeon pro w7600;
Matlab: R2024b;
I installed the Psychtoolbox for Matlab from NeuroDebian.
My settings for achieving a precision of 12 bits are:

PsychDefaultSetup(2); 
PsychImaging('PrepareConfiguration'); 
PsychImaging('AddTask', 'General', 'EnableNative16BitFrameBuffer'); 
PsychImaging('AddTask', 'General', 'NormalizedHighresColorRange'); 
controlScreen = screens(1);
testScreen1 = screens(2); 
testScreen2 = screens(3); 
[testWindowPtr1, testScreenRect1] = Psychimaging('OpenWindow', testScreen1, 0); [testWindowPtr2, testScreenRect2] = Psychimaging('OpenWindow', testScreen2, 0);

The following runtime information was obtained:

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.19 - Build date: Jun 22 2024).
PTB-INFO: OS support status: Linux 6.8.0-59-generic Supported.
PTB-INFO: Type ‘PsychtoolboxVersion’ for more detailed version information.
PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with
PTB-INFO: some restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: For information about paid support, support memberships and other commercial services, please type
PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: Trying to enable at least 10 bpc fixed point framebuffer.
PTB-INFO: Linux native 10 bit per color framebuffer requested, and the OS claims it is working fine. Good.
PTB-INFO: Real (OS native, queried) color resolution of the GPU framebuffer is 10 bits per RGB color component.
PTB-INFO: External display method is in use for this window. Running short and lenient timing tests only.

PTB-INFO: OpenGL-Renderer is AMD :: GFX1102 (gfx1102, LLVM 15.0.7, DRM 3.57, 6.8.0-59-generic) :: 4.6 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2
PTB-INFO: VBL startline = 2160 , VBL Endline = -1
PTB-INFO: Measured monitor refresh interval from VBLsync = 16.666775 ms [59.999611 Hz]. (50 valid samples taken, stddev=0.002555 ms.)
PTB-INFO: Reported monitor refresh interval from operating system = 16.666944 ms [59.999001 Hz].
PTB-INFO: Small deviations between reported values are normal and no reason to worry.
PTB-INFO: Using usercode override framebuffer rect [0, 0, 3840, 2160] for image processing.
PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 1049633 …
PTB-INFO: Will use 32 bits per color component floating point framebuffer for stimulus drawing. Alpha blending should work correctly.
PTB-INFO: Will use 32 bits per color component floating point framebuffer for stimulus post-processing (if any).
PTB-INFO: No image processing needed. Enabling zero-copy redirected output mode.
PsychVulkan-INFO: Positioning onscreen window at rect [0, 0, 3840, 2160] to align with display output 0 [DisplayPort-1] of screen 1.
PsychVulkanCore-ERROR: Could not find any suitable gpu to present to given window for requested settings!
Error in function OpenWindow: Usage error
Failed to open vulkan output window.

i wonder if PsychVulkanCore-ERROR: Could not find any suitable gpu to present to given window for requested settings! means that i have a unsupported amd gpu for Psychtoolbox.

Judging from other PTB-INFO, it seems that there is no problem with my settings. However, in the end, it tells me that it is unable to create the window I need.

I would be grateful for any suggestions and replies.

-ziyuan

Note that the ‘NormalizedHighresColorRange’ task below is fine to specify for extra documentation, but it is not strictly needed to specify, as it is implied by both the high bit precision framebuffer task ‘EnableNative16BitFrameBuffer’, and iirc by PsychDefaultSetup(2). This just as a remark, with no relevance to your problem.

Also, if you only want to use the highest precision 12 bpc mode, you don’t need to enable 10 bit color depth for the X-Screen via XOrgConfCreator generated config files, as this Vulkan powered high precision mode is independent of the “regular” OpenGL driven 8 and 10 bpc modes. Doesn’t help here, probably also doesn’t hurt. One case it may hurt is if you’d use 10 bpc mode on the same X-Screen as the Matlab GUI, as Matlab has a bug that has been reported long ago to Mathworks, but never been fixed, in that their whole GUI freezes or crashes on 10 bit display X-Screens! It can be avoided by running Matlab in a terminal window without GUI (matlab -nodesktop), or using GNU/Octave instead, or using 10 bit mode only on non-GUI X-Screens ie. screen 1,2,3… like you probably do, or by using the Vulkan display backend, like you do here implicitely by using 16 bpc mode… Again, good to know about this embarassing flaw of Matlab, compared to Octave, but not relevant to your problem. Just sayin…

The output looks good until the end, and your GPU should be supported. Could be something related to your first failed attempt with the downloaded AMD drivers messing something up. Could be that the required AMDVLK Vulkan driver is not properly installed, which would cause a fallback to Mesa’s standard RADV Vulkan driver - which can’t do this 16 bpc ~ effective 12 bpc output mode.

Execute PsychVulkan('Verbosity', 5) and then rerun your code, for more diagnostic debug output and then report back.

-mario

Thanks for your prompt reply Mario!

As for your previous suggestion, I chose to reinstall the system(install amdvlk only), so I think “the first failed attempt with the downloaded AMD drivers” will not affect this setting.

What i did this time:
XOrgConfCreator the config file for 3screens and select NO for the advanced setting without the default 10bit;

Then Execute:
PsychVulkan('Verbosity', 5) it return 3;

Rerun the code:

PsychDefaultSetup(2); 
PsychImaging('PrepareConfiguration'); 
PsychImaging('AddTask', 'General', 'EnableNative16BitFrameBuffer');
controlScreen = screens(1);
testScreen1 = screens(2); 
testScreen2 = screens(3); 
[testWindowPtr1, testScreenRect1] = Psychimaging('OpenWindow', testScreen1, 0);

The Reported PTB-Info:

PsychVulkanCore-INFO: At startup there are 23 Vulkan instance extensions available.

PsychVulkanCore-INFO: 0. instance extension is ‘VK_KHR_device_group_creation’.

PsychVulkanCore-INFO: 1. instance extension is ‘VK_KHR_display’.

PsychVulkanCore-INFO: 2. instance extension is ‘VK_KHR_external_fence_capabilities’.

PsychVulkanCore-INFO: 3. instance extension is ‘VK_KHR_external_memory_capabilities’.

PsychVulkanCore-INFO: 4. instance extension is ‘VK_KHR_external_semaphore_capabilities’.

PsychVulkanCore-INFO: 5. instance extension is ‘VK_KHR_get_display_properties2’.

PsychVulkanCore-INFO: 6. instance extension is ‘VK_KHR_get_physical_device_properties2’.

PsychVulkanCore-INFO: 7. instance extension is ‘VK_KHR_get_surface_capabilities2’.

PsychVulkanCore-INFO: 8. instance extension is ‘VK_KHR_surface’.

PsychVulkanCore-INFO: 9. instance extension is ‘VK_KHR_wayland_surface’.

PsychVulkanCore-INFO: 10. instance extension is ‘VK_KHR_xcb_surface’.

PsychVulkanCore-INFO: 11. instance extension is ‘VK_KHR_xlib_surface’.

PsychVulkanCore-INFO: 12. instance extension is ‘VK_EXT_acquire_xlib_display’.

PsychVulkanCore-INFO: 13. instance extension is ‘VK_EXT_debug_report’.

PsychVulkanCore-INFO: 14. instance extension is ‘VK_EXT_debug_utils’.

PsychVulkanCore-INFO: 15. instance extension is ‘VK_EXT_direct_mode_display’.

PsychVulkanCore-INFO: 16. instance extension is ‘VK_EXT_display_surface_counter’.

PsychVulkanCore-INFO: 17. instance extension is ‘VK_EXT_swapchain_colorspace’.

PsychVulkanCore-INFO: 18. instance extension is ‘VK_KHR_surface_protected_capabilities’.

PsychVulkanCore-INFO: 19. instance extension is ‘VK_EXT_acquire_drm_display’.

PsychVulkanCore-INFO: 20. instance extension is ‘VK_EXT_surface_maintenance1’.

PsychVulkanCore-INFO: 21. instance extension is ‘VK_KHR_portability_enumeration’.

PsychVulkanCore-INFO: 22. instance extension is ‘VK_LUNARG_direct_driver_loading’.

PsychVulkanCore-INFO: Found and enabled 0. instance extension ‘VK_KHR_surface’.

PsychVulkanCore-INFO: Found and enabled 1. instance extension ‘VK_KHR_get_surface_capabilities2’.

PsychVulkanCore-INFO: Found and enabled 2. instance extension ‘VK_KHR_external_memory_capabilities’.

PsychVulkanCore-INFO: Found and enabled 3. instance extension ‘VK_KHR_external_semaphore_capabilities’.

PsychVulkanCore-INFO: Found and enabled 4. instance extension ‘VK_KHR_get_physical_device_properties2’.

PsychVulkanCore-INFO: Found and enabled 5. instance extension ‘VK_EXT_debug_utils’.

PsychVulkanCore-INFO: Found and enabled 6. instance extension ‘VK_KHR_xlib_surface’.

PsychVulkanCore-INFO: Found and enabled 7. instance extension ‘VK_EXT_acquire_xlib_display’.

PsychVulkanCore-INFO: Found and enabled 8. instance extension ‘VK_KHR_display’.

PsychVulkanCore-INFO: Found and enabled 9. instance extension ‘VK_EXT_direct_mode_display’.

PsychVulkanCore-INFO: Found and enabled 10. instance extension ‘VK_EXT_swapchain_colorspace’.

PsychVulkanCore-INFO: Vulkan instance (version 1.3.290) created.

PsychVulkanCore-INFO: At startup there are 1 Vulkan devices available.

PsychVulkanCore-INFO: GPU 0: ‘Unknown AMD GPU’ : Vulkan 1.4.313 : VendorId 0x1002 : DeviceId 0x7480 : Discrete graphics card.

PsychVulkanCore-INFO: GPU 0: Driver ‘AMD open-source driver’ [2025.Q2.1 (LLPC)] : Driver version 0x80015d

PsychVulkanCore-INFO: GPU 0: Probing the following 182 device extensions against required set.

PsychVulkanCore-INFO: 0. device extension is ‘VK_KHR_16bit_storage’.

PsychVulkanCore-INFO: 1. device extension is ‘VK_KHR_8bit_storage’.

PsychVulkanCore-INFO: 2. device extension is ‘VK_KHR_acceleration_structure’.

PsychVulkanCore-INFO: 3. device extension is ‘VK_KHR_bind_memory2’.

PsychVulkanCore-INFO: 4. device extension is ‘VK_KHR_buffer_device_address’.

PsychVulkanCore-INFO: 5. device extension is ‘VK_KHR_calibrated_timestamps’.

PsychVulkanCore-INFO: 6. device extension is ‘VK_KHR_compute_shader_derivatives’.

PsychVulkanCore-INFO: 7. device extension is ‘VK_KHR_cooperative_matrix’.

PsychVulkanCore-INFO: 8. device extension is ‘VK_KHR_copy_commands2’.

PsychVulkanCore-INFO: 9. device extension is ‘VK_KHR_create_renderpass2’.

PsychVulkanCore-INFO: 10. device extension is ‘VK_KHR_dedicated_allocation’.

PsychVulkanCore-INFO: 11. device extension is ‘VK_KHR_deferred_host_operations’.

PsychVulkanCore-INFO: 12. device extension is ‘VK_KHR_depth_stencil_resolve’.

PsychVulkanCore-INFO: 13. device extension is ‘VK_KHR_descriptor_update_template’.

PsychVulkanCore-INFO: 14. device extension is ‘VK_KHR_device_group’.

PsychVulkanCore-INFO: 15. device extension is ‘VK_KHR_draw_indirect_count’.

PsychVulkanCore-INFO: 16. device extension is ‘VK_KHR_driver_properties’.

PsychVulkanCore-INFO: 17. device extension is ‘VK_KHR_dynamic_rendering’.

PsychVulkanCore-INFO: 18. device extension is ‘VK_KHR_dynamic_rendering_local_read’.

PsychVulkanCore-INFO: 19. device extension is ‘VK_KHR_external_fence’.

PsychVulkanCore-INFO: 20. device extension is ‘VK_KHR_external_fence_fd’.

PsychVulkanCore-INFO: 21. device extension is ‘VK_KHR_external_memory’.

PsychVulkanCore-INFO: 22. device extension is ‘VK_KHR_external_memory_fd’.

PsychVulkanCore-INFO: 23. device extension is ‘VK_KHR_external_semaphore’.

PsychVulkanCore-INFO: 24. device extension is ‘VK_KHR_external_semaphore_fd’.

PsychVulkanCore-INFO: 25. device extension is ‘VK_KHR_format_feature_flags2’.

PsychVulkanCore-INFO: 26. device extension is ‘VK_KHR_fragment_shader_barycentric’.

PsychVulkanCore-INFO: 27. device extension is ‘VK_KHR_fragment_shading_rate’.

PsychVulkanCore-INFO: 28. device extension is ‘VK_KHR_get_memory_requirements2’.

PsychVulkanCore-INFO: 29. device extension is ‘VK_KHR_global_priority’.

PsychVulkanCore-INFO: 30. device extension is ‘VK_KHR_imageless_framebuffer’.

PsychVulkanCore-INFO: 31. device extension is ‘VK_KHR_image_format_list’.

PsychVulkanCore-INFO: 32. device extension is ‘VK_KHR_index_type_uint8’.

PsychVulkanCore-INFO: 33. device extension is ‘VK_KHR_line_rasterization’.

PsychVulkanCore-INFO: 34. device extension is ‘VK_KHR_load_store_op_none’.

PsychVulkanCore-INFO: 35. device extension is ‘VK_KHR_maintenance1’.

PsychVulkanCore-INFO: 36. device extension is ‘VK_KHR_maintenance2’.

PsychVulkanCore-INFO: 37. device extension is ‘VK_KHR_maintenance3’.

PsychVulkanCore-INFO: 38. device extension is ‘VK_KHR_maintenance4’.

PsychVulkanCore-INFO: 39. device extension is ‘VK_KHR_maintenance5’.

PsychVulkanCore-INFO: 40. device extension is ‘VK_KHR_maintenance6’.

PsychVulkanCore-INFO: 41. device extension is ‘VK_KHR_maintenance7’.

PsychVulkanCore-INFO: 42. device extension is ‘VK_KHR_maintenance8’.

PsychVulkanCore-INFO: 43. device extension is ‘VK_KHR_map_memory2’.

PsychVulkanCore-INFO: 44. device extension is ‘VK_KHR_multiview’.

PsychVulkanCore-INFO: 45. device extension is ‘VK_KHR_pipeline_binary’.

PsychVulkanCore-INFO: 46. device extension is ‘VK_KHR_pipeline_executable_properties’.

PsychVulkanCore-INFO: 47. device extension is ‘VK_KHR_pipeline_library’.

PsychVulkanCore-INFO: 48. device extension is ‘VK_KHR_push_descriptor’.

PsychVulkanCore-INFO: 49. device extension is ‘VK_KHR_ray_query’.

PsychVulkanCore-INFO: 50. device extension is ‘VK_KHR_ray_tracing_maintenance1’.

PsychVulkanCore-INFO: 51. device extension is ‘VK_KHR_ray_tracing_pipeline’.

PsychVulkanCore-INFO: 52. device extension is ‘VK_KHR_ray_tracing_position_fetch’.

PsychVulkanCore-INFO: 53. device extension is ‘VK_KHR_relaxed_block_layout’.

PsychVulkanCore-INFO: 54. device extension is ‘VK_KHR_sampler_mirror_clamp_to_edge’.

PsychVulkanCore-INFO: 55. device extension is ‘VK_KHR_sampler_ycbcr_conversion’.

PsychVulkanCore-INFO: 56. device extension is ‘VK_KHR_separate_depth_stencil_layouts’.

PsychVulkanCore-INFO: 57. device extension is ‘VK_KHR_shader_atomic_int64’.

PsychVulkanCore-INFO: 58. device extension is ‘VK_KHR_shader_clock’.

PsychVulkanCore-INFO: 59. device extension is ‘VK_KHR_shader_draw_parameters’.

PsychVulkanCore-INFO: 60. device extension is ‘VK_KHR_shader_expect_assume’.

PsychVulkanCore-INFO: 61. device extension is ‘VK_KHR_shader_float16_int8’.

PsychVulkanCore-INFO: 62. device extension is ‘VK_KHR_shader_float_controls’.

PsychVulkanCore-INFO: 63. device extension is ‘VK_KHR_shader_float_controls2’.

PsychVulkanCore-INFO: 64. device extension is ‘VK_KHR_shader_integer_dot_product’.

PsychVulkanCore-INFO: 65. device extension is ‘VK_KHR_shader_maximal_reconvergence’.

PsychVulkanCore-INFO: 66. device extension is ‘VK_KHR_shader_non_semantic_info’.

PsychVulkanCore-INFO: 67. device extension is ‘VK_KHR_shader_quad_control’.

PsychVulkanCore-INFO: 68. device extension is ‘VK_KHR_shader_subgroup_extended_types’.

PsychVulkanCore-INFO: 69. device extension is ‘VK_KHR_shader_subgroup_rotate’.

PsychVulkanCore-INFO: 70. device extension is ‘VK_KHR_shader_subgroup_uniform_control_flow’.

PsychVulkanCore-INFO: 71. device extension is ‘VK_KHR_shader_terminate_invocation’.

PsychVulkanCore-INFO: 72. device extension is ‘VK_KHR_spirv_1_4’.

PsychVulkanCore-INFO: 73. device extension is ‘VK_KHR_storage_buffer_storage_class’.

PsychVulkanCore-INFO: 74. device extension is ‘VK_KHR_swapchain’.

PsychVulkanCore-INFO: 75. device extension is ‘VK_KHR_swapchain_mutable_format’.

PsychVulkanCore-INFO: 76. device extension is ‘VK_KHR_synchronization2’.

PsychVulkanCore-INFO: 77. device extension is ‘VK_KHR_timeline_semaphore’.

PsychVulkanCore-INFO: 78. device extension is ‘VK_KHR_uniform_buffer_standard_layout’.

PsychVulkanCore-INFO: 79. device extension is ‘VK_KHR_variable_pointers’.

PsychVulkanCore-INFO: 80. device extension is ‘VK_KHR_vertex_attribute_divisor’.

PsychVulkanCore-INFO: 81. device extension is ‘VK_KHR_vulkan_memory_model’.

PsychVulkanCore-INFO: 82. device extension is ‘VK_KHR_workgroup_memory_explicit_layout’.

PsychVulkanCore-INFO: 83. device extension is ‘VK_KHR_zero_initialize_workgroup_memory’.

PsychVulkanCore-INFO: 84. device extension is ‘VK_EXT_4444_formats’.

PsychVulkanCore-INFO: 85. device extension is ‘VK_EXT_attachment_feedback_loop_layout’.

PsychVulkanCore-INFO: 86. device extension is ‘VK_EXT_border_color_swizzle’.

PsychVulkanCore-INFO: 87. device extension is ‘VK_EXT_calibrated_timestamps’.

PsychVulkanCore-INFO: 88. device extension is ‘VK_EXT_color_write_enable’.

PsychVulkanCore-INFO: 89. device extension is ‘VK_EXT_conditional_rendering’.

PsychVulkanCore-INFO: 90. device extension is ‘VK_EXT_conservative_rasterization’.

PsychVulkanCore-INFO: 91. device extension is ‘VK_EXT_custom_border_color’.

PsychVulkanCore-INFO: 92. device extension is ‘VK_EXT_depth_clamp_control’.

PsychVulkanCore-INFO: 93. device extension is ‘VK_EXT_depth_clamp_zero_one’.

PsychVulkanCore-INFO: 94. device extension is ‘VK_EXT_depth_clip_control’.

PsychVulkanCore-INFO: 95. device extension is ‘VK_EXT_depth_clip_enable’.

PsychVulkanCore-INFO: 96. device extension is ‘VK_EXT_depth_range_unrestricted’.

PsychVulkanCore-INFO: 97. device extension is ‘VK_EXT_descriptor_buffer’.

PsychVulkanCore-INFO: 98. device extension is ‘VK_EXT_descriptor_indexing’.

PsychVulkanCore-INFO: 99. device extension is ‘VK_EXT_device_address_binding_report’.

PsychVulkanCore-INFO: 100. device extension is ‘VK_EXT_dynamic_rendering_unused_attachments’.

PsychVulkanCore-INFO: 101. device extension is ‘VK_EXT_extended_dynamic_state’.

PsychVulkanCore-INFO: 102. device extension is ‘VK_EXT_extended_dynamic_state2’.

PsychVulkanCore-INFO: 103. device extension is ‘VK_EXT_extended_dynamic_state3’.

PsychVulkanCore-INFO: 104. device extension is ‘VK_EXT_external_memory_dma_buf’.

PsychVulkanCore-INFO: 105. device extension is ‘VK_EXT_external_memory_host’.

PsychVulkanCore-INFO: 106. device extension is ‘VK_EXT_fragment_shader_interlock’.

PsychVulkanCore-INFO: 107. device extension is ‘VK_EXT_frame_boundary’.

PsychVulkanCore-INFO: 108. device extension is ‘VK_EXT_global_priority’.

PsychVulkanCore-INFO: 109. device extension is ‘VK_EXT_global_priority_query’.

PsychVulkanCore-INFO: 110. device extension is ‘VK_EXT_graphics_pipeline_library’.

PsychVulkanCore-INFO: 111. device extension is ‘VK_EXT_hdr_metadata’.

PsychVulkanCore-INFO: 112. device extension is ‘VK_EXT_host_query_reset’.

PsychVulkanCore-INFO: 113. device extension is ‘VK_EXT_image_2d_view_of_3d’.

PsychVulkanCore-INFO: 114. device extension is ‘VK_EXT_image_drm_format_modifier’.

PsychVulkanCore-INFO: 115. device extension is ‘VK_EXT_image_robustness’.

PsychVulkanCore-INFO: 116. device extension is ‘VK_EXT_image_sliced_view_of_3d’.

PsychVulkanCore-INFO: 117. device extension is ‘VK_EXT_image_view_min_lod’.

PsychVulkanCore-INFO: 118. device extension is ‘VK_EXT_index_type_uint8’.

PsychVulkanCore-INFO: 119. device extension is ‘VK_EXT_inline_uniform_block’.

PsychVulkanCore-INFO: 120. device extension is ‘VK_EXT_line_rasterization’.

PsychVulkanCore-INFO: 121. device extension is ‘VK_EXT_load_store_op_none’.

PsychVulkanCore-INFO: 122. device extension is ‘VK_EXT_memory_budget’.

PsychVulkanCore-INFO: 123. device extension is ‘VK_EXT_memory_priority’.

PsychVulkanCore-INFO: 124. device extension is ‘VK_EXT_mutable_descriptor_type’.

PsychVulkanCore-INFO: 125. device extension is ‘VK_EXT_nested_command_buffer’.

PsychVulkanCore-INFO: 126. device extension is ‘VK_EXT_non_seamless_cube_map’.

PsychVulkanCore-INFO: 127. device extension is ‘VK_EXT_pageable_device_local_memory’.

PsychVulkanCore-INFO: 128. device extension is ‘VK_EXT_pci_bus_info’.

PsychVulkanCore-INFO: 129. device extension is ‘VK_EXT_physical_device_drm’.

PsychVulkanCore-INFO: 130. device extension is ‘VK_EXT_pipeline_creation_cache_control’.

PsychVulkanCore-INFO: 131. device extension is ‘VK_EXT_pipeline_creation_feedback’.

PsychVulkanCore-INFO: 132. device extension is ‘VK_EXT_pipeline_library_group_handles’.

PsychVulkanCore-INFO: 133. device extension is ‘VK_EXT_post_depth_coverage’.

PsychVulkanCore-INFO: 134. device extension is ‘VK_EXT_primitive_topology_list_restart’.

PsychVulkanCore-INFO: 135. device extension is ‘VK_EXT_primitives_generated_query’.

PsychVulkanCore-INFO: 136. device extension is ‘VK_EXT_private_data’.

PsychVulkanCore-INFO: 137. device extension is ‘VK_EXT_provoking_vertex’.

PsychVulkanCore-INFO: 138. device extension is ‘VK_EXT_queue_family_foreign’.

PsychVulkanCore-INFO: 139. device extension is ‘VK_EXT_robustness2’.

PsychVulkanCore-INFO: 140. device extension is ‘VK_EXT_sampler_filter_minmax’.

PsychVulkanCore-INFO: 141. device extension is ‘VK_EXT_sample_locations’.

PsychVulkanCore-INFO: 142. device extension is ‘VK_EXT_scalar_block_layout’.

PsychVulkanCore-INFO: 143. device extension is ‘VK_EXT_separate_stencil_usage’.

PsychVulkanCore-INFO: 144. device extension is ‘VK_EXT_shader_atomic_float’.

PsychVulkanCore-INFO: 145. device extension is ‘VK_EXT_shader_atomic_float2’.

PsychVulkanCore-INFO: 146. device extension is ‘VK_EXT_shader_demote_to_helper_invocation’.

PsychVulkanCore-INFO: 147. device extension is ‘VK_EXT_shader_image_atomic_int64’.

PsychVulkanCore-INFO: 148. device extension is ‘VK_EXT_shader_module_identifier’.

PsychVulkanCore-INFO: 149. device extension is ‘VK_EXT_shader_replicated_composites’.

PsychVulkanCore-INFO: 150. device extension is ‘VK_EXT_shader_stencil_export’.

PsychVulkanCore-INFO: 151. device extension is ‘VK_EXT_shader_subgroup_ballot’.

PsychVulkanCore-INFO: 152. device extension is ‘VK_EXT_shader_subgroup_vote’.

PsychVulkanCore-INFO: 153. device extension is ‘VK_EXT_shader_viewport_index_layer’.

PsychVulkanCore-INFO: 154. device extension is ‘VK_EXT_subgroup_size_control’.

PsychVulkanCore-INFO: 155. device extension is ‘VK_EXT_texel_buffer_alignment’.

PsychVulkanCore-INFO: 156. device extension is ‘VK_EXT_tooling_info’.

PsychVulkanCore-INFO: 157. device extension is ‘VK_EXT_transform_feedback’.

PsychVulkanCore-INFO: 158. device extension is ‘VK_EXT_vertex_attribute_divisor’.

PsychVulkanCore-INFO: 159. device extension is ‘VK_EXT_vertex_input_dynamic_state’.

PsychVulkanCore-INFO: 160. device extension is ‘VK_EXT_ycbcr_image_arrays’.

PsychVulkanCore-INFO: 161. device extension is ‘VK_AMD_buffer_marker’.

PsychVulkanCore-INFO: 162. device extension is ‘VK_AMD_device_coherent_memory’.

PsychVulkanCore-INFO: 163. device extension is ‘VK_AMD_draw_indirect_count’.

PsychVulkanCore-INFO: 164. device extension is ‘VK_AMD_gcn_shader’.

PsychVulkanCore-INFO: 165. device extension is ‘VK_AMD_gpa_interface’.

PsychVulkanCore-INFO: 166. device extension is ‘VK_AMD_gpu_shader_half_float’.

PsychVulkanCore-INFO: 167. device extension is ‘VK_AMD_gpu_shader_int16’.

PsychVulkanCore-INFO: 168. device extension is ‘VK_AMD_memory_overallocation_behavior’.

PsychVulkanCore-INFO: 169. device extension is ‘VK_AMD_mixed_attachment_samples’.

PsychVulkanCore-INFO: 170. device extension is ‘VK_AMD_shader_ballot’.

PsychVulkanCore-INFO: 171. device extension is ‘VK_AMD_shader_core_properties’.

PsychVulkanCore-INFO: 172. device extension is ‘VK_AMD_shader_core_properties2’.

PsychVulkanCore-INFO: 173. device extension is ‘VK_AMD_shader_early_and_late_fragment_tests’.

PsychVulkanCore-INFO: 174. device extension is ‘VK_AMD_shader_explicit_vertex_parameter’.

PsychVulkanCore-INFO: 175. device extension is ‘VK_AMD_shader_image_load_store_lod’.

PsychVulkanCore-INFO: 176. device extension is ‘VK_AMD_shader_info’.

PsychVulkanCore-INFO: 177. device extension is ‘VK_AMD_shader_trinary_minmax’.

PsychVulkanCore-INFO: 178. device extension is ‘VK_GOOGLE_decorate_string’.

PsychVulkanCore-INFO: 179. device extension is ‘VK_GOOGLE_hlsl_functionality1’.

PsychVulkanCore-INFO: 180. device extension is ‘VK_GOOGLE_user_type’.

PsychVulkanCore-INFO: 181. device extension is ‘VK_VALVE_mutable_descriptor_type’.

PsychVulkanCore-INFO: Found and enabled 0. device extension ‘VK_KHR_swapchain’.

PsychVulkanCore-INFO: Found and enabled 1. device extension ‘VK_KHR_external_memory’.

PsychVulkanCore-INFO: Found and enabled 2. device extension ‘VK_KHR_external_semaphore’.

PsychVulkanCore-INFO: Found and enabled 3. device extension ‘VK_KHR_maintenance1’.

PsychVulkanCore-INFO: Found and enabled 4. device extension ‘VK_KHR_external_memory_fd’.

PsychVulkanCore-INFO: Found and enabled 5. device extension ‘VK_KHR_external_semaphore_fd’.

PsychVulkanCore-INFO: Found and enabled 6. device extension ‘VK_EXT_hdr_metadata’.

PsychVulkanCore-INFO: Device extension ‘VK_AMD_display_native_hdr’ is not supported.

PsychVulkanCore-INFO: Device extension ‘VK_GOOGLE_display_timing’ is not supported.

PsychVulkanCore-INFO: Device extension ‘VK_KHR_present_wait’ is not supported.

PsychVulkanCore-INFO: Device extension ‘VK_KHR_present_id’ is not supported.

PsychVulkanCore-INFO: GPU 0: ACCEPTED AND ACTIVATED! Count now 1

PsychVulkan-INFO: Positioning onscreen window at rect [0, 0, 3840, 2160] to align with display output 0 [DisplayPort-1] of screen 1.

PTB-INFO: This is Psychtoolbox-3 for GNU/Linux X11, under Matlab 64-Bit (Version 3.0.19 - Build date: Jun 22 2024).

PTB-INFO: OS support status: Linux 6.8.0-59-generic Supported.

PTB-INFO: Type ‘PsychtoolboxVersion’ for more detailed version information.

PTB-INFO: Most parts of the Psychtoolbox distribution are licensed to you under terms of the MIT License, with

PTB-INFO: some restrictions. See file ‘License.txt’ in the Psychtoolbox root folder for the exact licensing conditions.

PTB-INFO: For information about paid support, support memberships and other commercial services, please type

PTB-INFO: ‘PsychPaidSupportAndServices’.

PTB-INFO: External display method is in use for this window. Running short and lenient timing tests only.

PTB-INFO: OpenGL-Renderer is AMD :: GFX1102 (gfx1102, LLVM 15.0.7, DRM 3.57, 6.8.0-59-generic) :: 4.6 (Compatibility Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2

PTB-INFO: VBL startline = 2160 , VBL Endline = -1

PTB-INFO: Measured monitor refresh interval from VBLsync = 16.671863 ms [59.981300 Hz]. (50 valid samples taken, stddev=0.002016 ms.)

PTB-INFO: Reported monitor refresh interval from operating system = 16.666944 ms [59.999001 Hz].

PTB-INFO: Small deviations between reported values are normal and no reason to worry.

PTB-INFO: Using usercode override framebuffer rect [0, 0, 3840, 2160] for image processing.

PTB-INFO: Psychtoolbox imaging pipeline starting up for window with requested imagingmode 1049633 …

PTB-INFO: Will use 32 bits per color component floating point framebuffer for stimulus drawing. Alpha blending should work correctly.

PTB-INFO: Will use 32 bits per color component floating point framebuffer for stimulus post-processing (if any).

PTB-INFO: No image processing needed. Enabling zero-copy redirected output mode.

PsychVulkan-INFO: Positioning onscreen window at rect [0, 0, 3840, 2160] to align with display output 0 [DisplayPort-1] of screen 1.

PsychVulkanCore-INFO: gpu [Unknown AMD GPU] has access to target display 0x74c3bd698000. Trying to switch to direct display mode…

PsychVulkanCore-INFO: gpu [Unknown AMD GPU] display 0x74c3bd698000 switched to direct display mode. Setting up for direct display surface.

PsychVulkanCore-INFO: Target 3840 x 2160 @60.000000 Hz versus mode[0]: 3840 x 2160 @59.999001 Hz

PsychVulkanCore-INFO: Selecting video mode[0]: 3840 x 2160 @59.999001 Hz

PsychVulkanCore-INFO: For gpu [Unknown AMD GPU] created a direct display surface [0x74c3be7e7c90] for display window 1

PsychVulkanCore-INFO: Probing if gpu ‘Unknown AMD GPU’ supports presenting to the target surface: Yes

Surface minImageCount 1 - maxImageCount 16

Surface currentExtent 3840 x 2160 pixels with up to 1 view layers

Display native HDR properties as queried from monitor:

Display Supports control of HDR local dimming: No

Display Gamut R: [0.000000, 0.000000]

Display Gamut G: [0.000000, 0.000000]

Display Gamut B: [0.000000, 0.000000]

Display Gamut WP: [0.000000, 0.000000]

Display minLuminance: 0.000000 nits

Display maxLuminance: 0.000000 nits

Content maxFrameAverageLightLevel: 0.000000 nits

Content maxContentLightLevel: 0.000000 nits

Surface number of supported surface colorspace + pixelformat combinations: 4

[0] For colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - [0] Swapchain format VK_FORMAT_B8G8R8A8_UNORM

[1] For colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - [1] Swapchain format VK_FORMAT_B8G8R8A8_SRGB

[2] For colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - [2] Swapchain format VK_FORMAT_A2R10G10B10_UNORM_PACK32

[3] For colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - [3] Swapchain format VK_FORMAT_A2B10G10R10_UNORM_PACK32

PsychVulkanCore-INFO: Vulkan gpu ‘Unknown AMD GPU’ does not support required precision 3 in the fullscreen configuration required by window 1.

PsychVulkanCore-INFO: Does gpu 1 [Unknown AMD GPU] meet our requirements for target surface: No

PsychVulkanCore-ERROR: Could not find any suitable gpu to present to given window for requested settings!

Error in function OpenWindow: Usage error

Failed to open vulkan output window.

according to the PsychVulkan info mentioned above, It seems that the PsychVulkanCore at first thinks that my amd video card is capable of supporting the target window, and then thinks that it doesn’t, is this due to not installing amdvlk correctly? Or is it just my display device that doesn’t support it?

by the way, when i use command line ls /usr/share/vulkan/icd.d/ the result is

intel_hasvk_icd.x86_64.json lvp_icd.x86_64.json virtio_icd.x86_64.json
intel_icd.x86_64.json radeon_icd.x86_64.json

Does the result result mean that the amdvlk is not installed correctly? i followed the install instruction here: https://github.com/GPUOpen-Drivers/AMDVLK

thanks again for your help!

-ziyuan

So, after spending multiple hours of detective work, at a cost that would normally be billable at over 1500 Euros under paid support (you’re welcome), I’m 98% confident that this is a bad screwup of AMD’s Vulkan driver team - iow. a AMDVLK driver bug/limitation! This didn’t get noticed by myself, because the severe lack of financial funding of PTB in the last years made it impossible to test this as frequently, and also impossible to afford the modern AMD graphics cards I’d need to test AMDVLK driver releases after September 2023.

Seems all 16 bit high precision framebuffer modes, both for SDR and HDR displays are broken, and only the 8 bit and 10 bit modes work :frowning: .

Anyhow, the earliest/oldest AMDVLK driver release that supports your specific model of graphics card (Navi33 gpu architecture), would be v2023.Q2.3, linked below:

I would install that driver and then retry. If it works, upgrade further until it doesn’t, to find the most recent non-broken driver for your graphics card. And please report back which one worked and which was the first one to fail. Maybe it is possible to find out what exactly broke it, which is still a bit of a mystery to me right now.

Update: I do have the likely cause for breakage of 16 bit ultra-high precision modes, which effectively provide 12 bpc precision, and the breakage was almost certainly introduced in driver release v-2023.Q2.2 from May 22, 2023. This likely means you are out of luck with your graphics card for the moment, as it requires a minimum of v-2023.Q2.3, and thereby already the earliest driver for your graphics card has broken 16 bit support. Doing testing on the latest driver I could use on my machines v-2023.Q3.3 indeed breaks all 16 bit support.

That said, trying the likely last non-broken driver v-2023.Q2.1 could be worth a try. It doesn’t officially support your graphics card, but who knows, maybe it is still workable, given that we only use a small subset of Vulkan for our purposes, so you might get lucky. Can’t do more than not work - which is what you already have now.