坑爹的 i.MX6 GLES2 驱动

四核 ARM Cortex-A9 + Vivante GC2000,看起来不错(SABRE Lite 开发板,$199)。不过真要跑起来还是费了番功夫。

在 Ubuntu 上跑 GLES2。嗯?谁定的这个 requirement?虽然 Ubuntu 是方便(其实主要是 GNU Debian 方便),板子是强大,但是未优化未精简的 Ubuntu 对系统资源的要求可是人所共知的。

然后,就是魂淡的 GLES2 驱动。目前能看到的问题是下面几点:

  1. X11 用的 EGL lib 是 libEGL-x11.so。程序只有在最后链接这个库才能链接通过。就是说,链接顺序必须是“-lGLESv2 -lGAL -lX11 -lxcb -lXau -lXdmcp -lm -lEGL”。
  2. 生成的程序必须用 root 运行(“sudo”)。嗯这对 framebuffer 没问题,但一般谁会直接在 X11 下 root 跑 GUI 程序?
  3. EGL config 和取得的 X Visual 表象不兼容,前者是 ARGB8888,后者是 RGB565,但却能运行正常。
  4. GLSL 没有 highp,只有 mediump 可用。这个本身不是问题,问题是 GL_FRAGMENT_PRECISION_HIGH 无效。

好吧不管怎样过了上面那几关总算能跑了。

Advertisements
This entry was posted in Computer and Internet, Operation System and Linux and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s