pocl: Failed to move Mali-T860 GPU device to POCL5.0 platform on RK3399

Hello, I saw from the documentation you provided that you successfully built pocl in ODROID XU3 and ODROID C2 and almost passed all tests. Now, I’m going to build pocl on RK3399 (Rock Pi 4B) and try to move the Mali T860MP4 GPU device to the pocl platform. I installed the GPU driver, and followed the documentation you provided to configure Vulkan on RK3399. But I was not able to move the Mali T860MP4 GPU device to the pocl platform. Can you share your insights to help me solve this problem?

My clinfo informations is the following:

Number of platforms                               3
  Platform Name                                   ARM Platform
  Platform Vendor                                 ARM
  Platform Version                                OpenCL 1.2 v1.r18p0-01rel0.db8fd8841edf74cef96ef24ce665edac
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_fp64 cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_arm_core_id cl_arm_printf cl_arm_thread_limit_hint cl_arm_non_uniform_work_group_size cl_arm_import_memory
  Platform Extensions function suffix             ARM

  Platform Name                                   Portable Computing Language
  Platform Vendor                                 The pocl project
  Platform Version                                OpenCL 3.0 PoCL 5.0  Linux, RelWithDebInfo, without LLVM, POCL_DEBUG
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_pocl_content_size
  Platform Host timer resolution                  0ns
  Platform Extensions function suffix             POCL

Platform Name                                   Clover
  Platform Vendor                                 Mesa
  Platform Version                                OpenCL 1.1 Mesa 21.2.6
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd
  Platform Extensions function suffix             MESA


  Platform Name                                   ARM Platform
Number of devices                                 1
  Device Name                                     Mali-T860
  Device Vendor                                   ARM
  Device Vendor ID                                0x8602000
  Device Version                                  OpenCL 1.2 v1.r18p0-01rel0.db8fd8841edf74cef96ef24ce665edac
  Driver Version                                  1.2
  Device OpenCL C Version                         OpenCL C 1.2 v1.r18p0-01rel0.db8fd8841edf74cef96ef24ce665edac
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
 

  Platform Name                                   Portable Computing Language
Number of devices                                 0

  Platform Name                                   Clover
Number of devices                                 0

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.11
  ICD loader Profile                              OpenCL 2.1
        NOTE:   your OpenCL library only supports OpenCL 2.1,
                but some installed platforms support OpenCL 3.0.
                Programs using 3.0 features may crash
                or behave unexpectedly

Didn’t I succeed in building vulkan?

My vulkaninfo informations is the following, and I found that the Vulkan doesn’t support VK_KHR_shader_non_semantic_info extension :

rock@rockpi-4b:~$ vulkaninfo
'DISPLAY' environment variable not set... skipping surface info
WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.131

Instance Extensions: count = 18
====================
        VK_EXT_acquire_xlib_display            : extension revision 1
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 1
        VK_EXT_direct_mode_display             : extension revision 1
        VK_EXT_display_surface_counter         : extension revision 1
        VK_KHR_device_group_creation           : extension revision 1
        VK_KHR_display                         : extension revision 23
        VK_KHR_external_fence_capabilities     : extension revision 1
        VK_KHR_external_memory_capabilities    : extension revision 1
        VK_KHR_external_semaphore_capabilities : extension revision 1
        VK_KHR_get_display_properties2         : extension revision 1
        VK_KHR_get_physical_device_properties2 : extension revision 2
        VK_KHR_get_surface_capabilities2       : extension revision 1
        VK_KHR_surface                         : extension revision 25
        VK_KHR_surface_protected_capabilities  : extension revision 1
        VK_KHR_wayland_surface                 : extension revision 6
        VK_KHR_xcb_surface                     : extension revision 6
        VK_KHR_xlib_surface                    : extension revision 6


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion     = 4198582 (1.1.182)
        driverVersion  = 1 (0x0001)
        vendorID       = 0x10005
        deviceID       = 0x0000
        deviceType     = PHYSICAL_DEVICE_TYPE_CPU
        deviceName     = llvmpipe (LLVM 12.0.0, 128 bits)


VkPhysicalDeviceDriverPropertiesKHR:
------------------------------------
        driverID           = UNKNOWN_VkDriverId
        driverName         = llvmpipe
        driverInfo         = Mesa 21.2.6 (LLVM 12.0.0)
        conformanceVersion = 1.0.0.0

Device Extensions: count = 54
------------------
        VK_EXT_calibrated_timestamps          : extension revision 2
        VK_EXT_conditional_rendering          : extension revision 2
        VK_EXT_custom_border_color            : extension revision 12
        VK_EXT_extended_dynamic_state         : extension revision 1
        VK_EXT_extended_dynamic_state2        : extension revision 1
        VK_EXT_host_query_reset               : extension revision 1
        VK_EXT_index_type_uint8               : extension revision 1
        VK_EXT_line_rasterization             : extension revision 1
        VK_EXT_multi_draw                     : extension revision 1
        VK_EXT_post_depth_coverage            : extension revision 1
        VK_EXT_private_data                   : extension revision 1
        VK_EXT_provoking_vertex               : extension revision 1
        VK_EXT_sampler_filter_minmax          : extension revision 2
        VK_EXT_scalar_block_layout            : extension revision 1
        VK_EXT_separate_stencil_usage         : extension revision 1
        VK_EXT_shader_stencil_export          : extension revision 1
        VK_EXT_shader_viewport_index_layer    : extension revision 1
        VK_EXT_transform_feedback             : extension revision 1
        VK_EXT_vertex_attribute_divisor       : extension revision 3
        VK_EXT_vertex_input_dynamic_state     : extension revision 2
        VK_GOOGLE_decorate_string             : extension revision 1
        VK_GOOGLE_hlsl_functionality1         : extension revision 1
        VK_KHR_16bit_storage                  : extension revision 1
        VK_KHR_8bit_storage                   : extension revision 1
        VK_KHR_bind_memory2                   : extension revision 1
        VK_KHR_buffer_device_address          : extension revision 1
        VK_KHR_copy_commands2                 : extension revision 1
        VK_KHR_create_renderpass2             : extension revision 1
        VK_KHR_dedicated_allocation           : extension revision 3
        VK_KHR_descriptor_update_template     : extension revision 1
        VK_KHR_device_group                   : extension revision 4
        VK_KHR_draw_indirect_count            : extension revision 1
        VK_KHR_driver_properties              : extension revision 1
        VK_KHR_external_fence                 : extension revision 1
        VK_KHR_external_memory                : extension revision 1
        VK_KHR_external_semaphore             : extension revision 1
        VK_KHR_get_memory_requirements2       : extension revision 1
        VK_KHR_image_format_list              : extension revision 1
        VK_KHR_imageless_framebuffer          : extension revision 1
        VK_KHR_incremental_present            : extension revision 2
        VK_KHR_maintenance1                   : extension revision 2
        VK_KHR_maintenance2                   : extension revision 1
        VK_KHR_maintenance3                   : extension revision 1
        VK_KHR_multiview                      : extension revision 1
        VK_KHR_push_descriptor                : extension revision 2
        VK_KHR_relaxed_block_layout           : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge   : extension revision 3
        VK_KHR_separate_depth_stencil_layouts : extension revision 1
        VK_KHR_shader_atomic_int64            : extension revision 1
        VK_KHR_shader_draw_parameters         : extension revision 1
        VK_KHR_storage_buffer_storage_class   : extension revision 1
        VK_KHR_swapchain                      : extension revision 70
        VK_KHR_uniform_buffer_standard_layout : extension revision 1
        VK_KHR_variable_pointers              : extension revision 1

About this issue

  • Original URL
  • State: open
  • Created 5 months ago
  • Comments: 25 (12 by maintainers)

Most upvoted comments

If you have a vendor-provided OpenCL driver for the GPU you can use the proxy driver in PoCL to get both devices in the same platform.