[Openpvrsgx-devgroup] kmscube running on dm3730 (GTA04) and omap5 (Pyra) with ddk-1.17

H. Nikolaus Schaller hns at goldelico.com
Sat Feb 29 19:54:30 CET 2020

> Am 29.02.2020 um 09:23 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> Am 29.02.2020 um 09:09 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> Hi,
>> I managed to get the kmscube work on the DM3730 using
>> the 1.17 DDK (and kernel).
>> What it needs:
>> * Debian Bullseye (sid) because it needs libc >= 2.29 [1]
>> * our latest kernel (e.g. letux-5.6-rc) with CONFIG_PVRSGX_1_17_4948957=y
>> * installation of ddk-1.17-um from TI git (automated through [2])
>> * apt-get install kmscube
>> * kmscube -D /dev/dri/card1
>> (for some unknown reasons the default is card0).
>> So thanks to those who have provided these latest user-space libs.
>> Unfortunately OMAP5432 fails (with jacinto6evm install)

Here are some new results from BeagleBoneBlack (with TILCDC display).

Here kmscube uses /dev/dri/card0.

But fails with:

root at letux:~# kmscube
MESA-LOADER: failed to open tilcdc (search paths /usr/lib/arm-linux-gnueabihf/dri:\$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: tilcdc
Using display 0x6636b0 with EGL version 1.4
EGL information:
  version: "1.4"
  vendor: "Mesa Project"
  client extensions: "EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_xtensions EGL_KHR_debug EGL_EXT_platform_wayland EGL_EXT_platform_x11 EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless EGL_EXT_platform_device"
  display extensions: "EGL_ANDROID_blob_cache EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_image_dma_buf_export EGL_MESA_query_driver "
OpenGL ES 2.x information:
  version: "OpenGL ES 3.1 Mesa 19.3.3"
  shading language version: "OpenGL ES GLSL ES 3.10"
  vendor: "VMware, Inc."
  renderer: "llvmpipe (LLVM 9.0.1, 128 bits)"
  extensions: "GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_polygon_offset_clamp GL_EXT_render_snorm GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_norm16 GL_EXT_texture_view GL_KHR_context_flush_control GL_NV_image_formats GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_shader_io_blocks GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_float_blend GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_OES_EGL_image_external_essl3 GL_OES_shader_image_atomic GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_EXT_texture_compression_s3tc_srgb GL_MESA_shader_integer_functions GL_EXT_clip_control GL_EXT_texture_compression_bptc GL_KHR_parallel_shader_compile GL_EXT_texture_sRGB_R8 GL_MESA_framebuffer_flip_y GL_EXT_depth_clamp GL_EXT_texture_query_lod "
Using modifier ffffffffffffff
Modifiers failed!
failed to set mode: Invalid argument
root at letux:~#

An strace of kmscube shows the problem with:

getpid()                                = 2548
ioctl(4, DRM_IOCTL_MODE_MAP_DUMB, 0xbea35980) = 0
mmap2(NULL, 655360, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0x10040000) = 0xb0e00000
munmap(0xb0e00000, 655360)              = 0
write(1, "Using modifier ffffffffffffff\n", 30Using modifier ffffffffffffff
) = 30
ioctl(3, DRM_IOCTL_MODE_ADDFB2, 0xbea359a8) = -1 EINVAL (Invalid argument)
write(2, "Modifiers failed!\n", 18Modifiers failed!
)     = 18
ioctl(3, DRM_IOCTL_MODE_ADDFB2, 0xbea35980) = 0
ioctl(3, DRM_IOCTL_MODE_SETCRTC, 0xbea35a78) = -1 EINVAL (Invalid argument)
write(1, "failed to set mode: Invalid argu"..., 37failed to set mode: Invalid argument
) = 37
getpid()                                = 2548
exit_group(-22)                         = ?
+++ exited with 234 +++
root at letux:~# 

That DRM_IOCTL_MODE_ADDFB2 fails seems to be ok. I think I had this as well on dm3730.

What fails here is DRM_IOCTL_MODE_SETCRTC.

File Descriptor 3 comes from

openat(AT_FDCWD, "/dev/dri/card0", O_RDWR) = 3

So it is a detail with our driver.

I had also tried on the 600 MHz OpenPandora, but there the kernel wasn't booting stable
any more. I only got messages about wrong clock frequencies. So cpufreq is likely broken.

And my PandaBoard ES does a self reboot after ca. 12 seconds after finding the USB hub:

[   15.157257] [drm] Initialized pvr 1.17.4948957 20110701 for 56000000.img on minor 0
[   15.172637] omapdss_dss 58000000.dss: 58000000.dss supply vdda_video not found, using dummy regulator
[   15.214111] usb 1-1: New USB device found, idVendor=0424, idProduct=9514, bcdDevice= 1.00
[   15.222930] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   15.244598] hub 1-1:1.0: USB hub found
[   15.251495] hub 1-1:1.0: 5 ports detected
D;,b  @    @
U-Boot SPL 2011.12 (Apr 02 2012 - 18:13:04)

Summary of my status:

	dm3730:		works
	omap5432:	fails because of "invalid platform" (likely needs a similar binary patch)
	am335x:		fails because of DRM_IOCTL_MODE_SETCRTC fails.
	omap3530:	fails to boot properly so I could not yet test
	omap4460:	fails to boot properly so I could not yet test


More information about the openpvrsgx-devgroup mailing list