华硕修补板表面上的OpenGL ES上下文错误

时间:2017-05-25 09:56:22

标签: c++ opengl-es arm

我正在使用带有Tinker OS的Asus Tinkerboard(20170417-tinker-board-linaro-stretch-alip-v1.8.iso),并尝试在我的C ++应用程序中打开板上的OpenGL ES 2上下文< / p>

我找到了包含许多示例的mali图形SDK,并将它们合并到我的应用程序中。不幸的是,我的应用程序总是在调用eglCreateWindowSurface时失败。

以下是带有API跟踪的图形调试器的图像: http://i.imgur.com/SdziQ2K.png

致电eglCreateWindowSurface

eglCreateWindowSurface
(
    dpy = 0x7f6569f0, 
    config = 0x7f686160, 
    win = 0x7f651194, 
    attrib_list = NULL
)

为配置选择的属性是:

attrib_list = 
[
    EGL_SAMPLES, 
    4, 
    EGL_SURFACE_TYPE, 
    EGL_WINDOW_BIT, 
    EGL_DEPTH_SIZE, 
    16, 
    EGL_BLUE_SIZE, 
    8, 
    EGL_RENDERABLE_TYPE, 
    EGL_OPENGL_ES2_BIT, 
    EGL_STENCIL_SIZE, 
    0, 
    EGL_ALPHA_SIZE, 
    0, 
    EGL_GREEN_SIZE, 
    8, 
    EGL_BUFFER_SIZE, 
    32, 
    EGL_RED_SIZE, 
    8, 
    EGL_NONE
]

使用以下内容创建上下文:

attrib_list = 
[
    EGL_CONTEXT_CLIENT_VERSION, 
    2, 
    EGL_NONE
]

(我也尝试了几种组合,0深度,没有样本等,都导致EGL_BAD_ALLOC

native window是这样的:

typedef struct fbdev_window {
    unsigned short width;
    unsigned short height;
} fbdev_window;

在此上下文中,width为700,height为480。

我尝试使用不同的显示器(第一个是我的4k电视,第二个是我的全高清显示器)但是在两个设备上都发生了同样的错误。我也尝试重启几次,以确保没有表面或已经创建或内存不足,但没有任何帮助。

0 个答案:

没有答案