This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Configure the anti-aliasing on J6Eco platform.

Expert 7680 points

Hi Champions,

My customer is evaluating the GPU performance on J6Eco, and they want to configure the anti-aliasing level, customer use QNX, and they configure the egl_conf_addr, but it seems doesn't work, could you give some comments to configure the anti-aliasing on J6Eco? Thank you very much.

Zhan.

  • Hi Zhan,

    I have forwarded your question to GPU and QNX experts.

    BR,
    Dobrin
  • Hi,

    Please share details on the API / application configuration used to set the anti aliasing. I am not sure what egl_conf_addr actually means. 

    Regards,

    Anand Balagopalakrishnan

  • Hi,

    Look like your customer is trying to benchmark what J6 ECO TRM Section 12.1.2 which says that SGX support 4x anti-aliasing.

    On QNX supplied Screen package, it comes with the binary called egl-configs that can be used to check the support egl config on a particular platform.
    So quickly checked running it on QNX running on J6ECO EVM, the config id that support the anti-aliasing as 4x, the below listing is seen( the lines marked as <<<========== )


    J6EVM@QNX # egl-configs
    EGL_VENDOR = QNX Software Systems
    EGL_VERSION = 1.4 build 1.9@2291151
    EGL_CLIENT_APIS = OpenGL_ES
    EGL_EXTENSIONS = EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_vg_parent_image EGL_KHR_fence_sync EGL_IMG_hibernate_process EGL_EXT_swap_region EGL_ANDROID_image_native_buffer EGL_NV_post_sub_buffer EGL_QNX_api_trace

    +-----------+--------+-----+-------+------+-----------+-------+-------+---------+------+---------+--------+---------+--------+-------+-------+-------+--------+-----+-------+------+
    | | | | | | | | | | | | | | | | | | | transparent |
    | config id | caveat | red | green | blue | luminance | alpha | depth | stencil | mask | samples | window | pbuffer | pixmap | gles1 | gles2 | gles3 | native | red | green | blue |
    +-----------+--------+-----+-------+------+-----------+-------+-------+---------+------+---------+--------+---------+--------+-------+-------+-------+--------+-----+-------+------+
    | 1 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 2 | none | 8 | 8 | 8 | 0 | 8 | 0 | 0 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 3 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 4 | x | x | x | x | | | | n/a | n/a | n/a | <<<==========
    | 4 | none | 5 | 5 | 5 | 0 | 1 | 24 | 8 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 5 | none | 5 | 5 | 5 | 0 | 1 | 0 | 0 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 6 | none | 5 | 5 | 5 | 0 | 1 | 24 | 8 | 0 | 4 | x | x | x | x | | | | n/a | n/a | n/a | <<<==========
    | 7 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 8 | none | 8 | 8 | 8 | 0 | 8 | 0 | 0 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 9 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 4 | x | x | x | x | | | | n/a | n/a | n/a | <<<==========
    | 10 | none | 4 | 4 | 4 | 0 | 4 | 24 | 8 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 11 | none | 4 | 4 | 4 | 0 | 4 | 0 | 0 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 12 | none | 4 | 4 | 4 | 0 | 4 | 24 | 8 | 0 | 4 | x | x | x | x | | | | n/a | n/a | n/a | <<<==========
    | 13 | none | 5 | 6 | 5 | 0 | 0 | 24 | 8 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 14 | none | 5 | 6 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | x | x | x | x | | | | n/a | n/a | n/a |
    | 15 | none | 5 | 6 | 5 | 0 | 0 | 24 | 8 | 0 | 4 | x | x | x | x | | | | n/a | n/a | n/a | <<<==========
    | 16 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 0 | | x | | x | | | | n/a | n/a | n/a |
    | 17 | none | 5 | 6 | 5 | 0 | 0 | 24 | 8 | 0 | 0 | | x | | x | | | | n/a | n/a | n/a |
    | 18 | none | 4 | 4 | 4 | 0 | 4 | 24 | 8 | 0 | 0 | | x | | x | | | | n/a | n/a | n/a |
    | 19 | none | 5 | 5 | 5 | 0 | 1 | 24 | 8 | 0 | 0 | | x | | x | | | | n/a | n/a | n/a |
    | 20 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 21 | none | 8 | 8 | 8 | 0 | 8 | 0 | 0 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 22 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 4 | x | | x | | x | | | n/a | n/a | n/a | <<<==========
    | 23 | none | 5 | 5 | 5 | 0 | 1 | 24 | 8 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 24 | none | 5 | 5 | 5 | 0 | 1 | 0 | 0 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 25 | none | 5 | 5 | 5 | 0 | 1 | 24 | 8 | 0 | 4 | x | | x | | x | | | n/a | n/a | n/a | <<<==========
    | 26 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 27 | none | 8 | 8 | 8 | 0 | 8 | 0 | 0 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 28 | none | 8 | 8 | 8 | 0 | 8 | 24 | 8 | 0 | 4 | x | | x | | x | | | n/a | n/a | n/a | <<<==========
    | 29 | none | 4 | 4 | 4 | 0 | 4 | 24 | 8 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 30 | none | 4 | 4 | 4 | 0 | 4 | 0 | 0 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 31 | none | 4 | 4 | 4 | 0 | 4 | 24 | 8 | 0 | 4 | x | | x | | x | | | n/a | n/a | n/a | <<<==========
    | 32 | none | 5 | 6 | 5 | 0 | 0 | 24 | 8 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 33 | none | 5 | 6 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | x | x | x | | x | | | n/a | n/a | n/a |
    | 34 | none | 5 | 6 | 5 | 0 | 0 | 24 | 8 | 0 | 4 | x | | x | | x | | | n/a | n/a | n/a | <<<==========
    +-----------+--------+-----+-------+------+-----------+-------+-------+---------+------+---------+--------+---------+--------+-------+-------+-------+--------+-----+-------+------+

    So as per QNX documentation, the egl application can then Choose an EGL configuration, by first establish your EGL configuration attributes and then calling eglChooseConfigs() to choose your EGL configuration.
    The code snippet is below:

    static EGLConfig egl_conf; /* An aray of framebuffer configurations */
    int num_configs; /* The number of framebuffer configurations from eglChooseConfig() */

    EGLint attrib_list[]= { EGL_RED_SIZE, 8,
    EGL_GREEN_SIZE, 8,
    EGL_BLUE_SIZE, 8,
    EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
    EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
    EGL_SAMPLES, 4,
    EGL_NONE};

    rc = eglChooseConfig(egl_disp, attrib_list, &egl_conf, 1, &num_configs))


    I have not tried it, but the customer can give it a try..

    regards,
    Praveen