Hi! We investigating if we can do a 10bits RGBA graphics application with Jetson AGX.
We would like to do application that use texture with openGL similiar to “gears-cube” application comes with . We noticed EGL frame buffer does not have a configuration that supports RGB > 8 bits. There are 52 configurations but none supports RGB size > 8bits.

/* get all egl frame buffer configurations*/
    EGLint numFBConfig;
    eglGetConfigs(demoState.display, NULL, 0, &numFBConfig);
    printf("Total Num of FrameBufferConfig: %d.\n", numFBConfig);

    EGLint configArrySize = numFBConfig;
    EGLConfig * FB_configs = malloc(configArrySize * sizeof(EGLConfig));
    eglGetConfigs(demoState.display, FB_configs, configArrySize, &numFBConfig);
    printf("EGL: _CONFIG_ID EGL_LEVEL COLOR_BUFFER_TYPE _DEPTH_SIZE _BUFFER_ SIZE _RED_SIZE _GREEN_SIZE _BLUE_SIZE _ALPHA_SIZE _STENCIL_SIZE");
    printf("_ALPHA_SIZE _STENCIL_SIZE _TRANSPARENT_TYPE \n");
    for (int i = 0; i < numFBConfig; i++)
    {
        EGLint value;
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_CONFIG_ID, &value); printf("      %2d  ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_LEVEL, &value); printf("%2d           ", value);
            
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_COLOR_BUFFER_TYPE, &value);  printf(" %s ", (value == EGL_RGB_BUFFER)? "EGL_RGB_BUFFER" : "EGL_LUMINANCE_BUFFER");
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_DEPTH_SIZE, &value);         printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_BUFFER_SIZE, &value);        printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_RED_SIZE, &value);           printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_GREEN_SIZE, &value);         printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_BLUE_SIZE, &value);          printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_ALPHA_SIZE, &value);         printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_STENCIL_SIZE, &value);       printf("           %2d ", value);
        eglGetConfigAttrib(demoState.display, FB_configs[i], EGL_TRANSPARENT_TYPE, &value);   printf("%s", (value == EGL_TRANSPARENT_RGB)? "EGL_TRANSPARENT_RGB" : "EGL_NONE");
            
        printf("\n");
    }
Total Num of FrameBufferConfig: 52.
EGL: _CONFIG_ID EGL_LEVEL COLOR_BUFFER_TYPE _DEPTH_SIZE _BUFFER_ SIZE _RED_SIZE _GREEN_SIZE _BLUE_SIZE _ALPHA_SIZE _STENCIL_SIZE_ALPHA_SIZE _STENCIL_SIZE _TRANSPARENT_TYPE 
       1   0            EGL_RGB_BUFFER            24            32             8             8             8             8             8 EGL_NONE
       2   0            EGL_RGB_BUFFER            24            32             8             8             8             8             0 EGL_NONE
       3   0            EGL_RGB_BUFFER             0            32             8             8             8             8             8 EGL_NONE
       4   0            EGL_RGB_BUFFER             0            32             8             8             8             8             0 EGL_NONE
       5   0            EGL_RGB_BUFFER            24            32             8             8             8             8             8 EGL_NONE
       6   0            EGL_RGB_BUFFER            24            32             8             8             8             8             0 EGL_NONE
       7   0            EGL_RGB_BUFFER             0            32             8             8             8             8             8 EGL_NONE
       8   0            EGL_RGB_BUFFER             0            32             8             8             8             8             0 EGL_NONE
       9   0            EGL_RGB_BUFFER            24            32             8             8             8             8             8 EGL_NONE
      10   0            EGL_RGB_BUFFER            24            32             8             8             8             8             0 EGL_NONE
      11   0            EGL_RGB_BUFFER             0            32             8             8             8             8             8 EGL_NONE
      12   0            EGL_RGB_BUFFER             0            32             8             8             8             8             0 EGL_NONE
      13   0            EGL_RGB_BUFFER            24            32             8             8             8             8             8 EGL_NONE
      14   0            EGL_RGB_BUFFER            24            32             8             8             8             8             0 EGL_NONE
      15   0            EGL_RGB_BUFFER             0            32             8             8             8             8             8 EGL_NONE
      16   0            EGL_RGB_BUFFER             0            32             8             8             8             8             0 EGL_NONE
      17   0            EGL_RGB_BUFFER            24            24             8             8             8             0             8 EGL_NONE
      18   0            EGL_RGB_BUFFER            24            24             8             8             8             0             0 EGL_NONE
      19   0            EGL_RGB_BUFFER             0            24             8             8             8             0             8 EGL_NONE
      20   0            EGL_RGB_BUFFER             0            24             8             8             8             0             0 EGL_NONE
      21   0            EGL_RGB_BUFFER            24            24             8             8             8             0             8 EGL_NONE
      22   0            EGL_RGB_BUFFER            24            24             8             8             8             0             0 EGL_NONE
      23   0            EGL_RGB_BUFFER             0            24             8             8             8             0             8 EGL_NONE
      24   0            EGL_RGB_BUFFER             0            24             8             8             8             0             0 EGL_NONE
      25   0            EGL_RGB_BUFFER            24            24             8             8             8             0             8 EGL_NONE
      26   0            EGL_RGB_BUFFER            24            24             8             8             8             0             0 EGL_NONE
      27   0            EGL_RGB_BUFFER             0            24             8             8             8             0             8 EGL_NONE
      28   0            EGL_RGB_BUFFER             0            24             8             8             8             0             0 EGL_NONE
      29   0            EGL_RGB_BUFFER            24            24             8             8             8             0             8 EGL_NONE
      30   0            EGL_RGB_BUFFER            24            24             8             8             8             0             0 EGL_NONE
      31   0            EGL_RGB_BUFFER             0            24             8             8             8             0             8 EGL_NONE
      32   0            EGL_RGB_BUFFER             0            24             8             8             8             0             0 EGL_NONE
      33   0            EGL_RGB_BUFFER            24            16             5             6             5             0             8 EGL_NONE
      34   0            EGL_RGB_BUFFER            24            16             5             6             5             0             0 EGL_NONE
      35   0            EGL_RGB_BUFFER            16            16             5             6             5             0             0 EGL_NONE
      36   0            EGL_RGB_BUFFER             0            16             5             6             5             0             8 EGL_NONE
      37   0            EGL_RGB_BUFFER             0            16             5             6             5             0             0 EGL_NONE
      38   0            EGL_RGB_BUFFER            24            16             5             6             5             0             8 EGL_NONE
      39   0            EGL_RGB_BUFFER            24            16             5             6             5             0             0 EGL_NONE
      40   0            EGL_RGB_BUFFER            16            16             5             6             5             0             0 EGL_NONE
      41   0            EGL_RGB_BUFFER             0            16             5             6             5             0             8 EGL_NONE
      42   0            EGL_RGB_BUFFER             0            16             5             6             5             0             0 EGL_NONE
      43   0            EGL_RGB_BUFFER            24            16             5             6             5             0             8 EGL_NONE
      44   0            EGL_RGB_BUFFER            24            16             5             6             5             0             0 EGL_NONE
      45   0            EGL_RGB_BUFFER            16            16             5             6             5             0             0 EGL_NONE
      46   0            EGL_RGB_BUFFER             0            16             5             6             5             0             8 EGL_NONE
      47   0            EGL_RGB_BUFFER             0            16             5             6             5             0             0 EGL_NONE
      48   0            EGL_RGB_BUFFER            24            16             5             6             5             0             8 EGL_NONE
      49   0            EGL_RGB_BUFFER            24            16             5             6             5             0             0 EGL_NONE
      50   0            EGL_RGB_BUFFER            16            16             5             6             5             0             0 EGL_NONE
      51   0            EGL_RGB_BUFFER             0            16             5             6             5             0             8 EGL_NONE
      52   0            EGL_RGB_BUFFER             0            16             5             6             5             0             0 EGL_NONE

L4T Version: 32.2

Please advice if there’s any possible way to do 10bits graphics with Jetson AGX? Is it possible the underlying driver can be changed to adapted?

Thanks!

Jetsy

Hi,
10-bit RGBA is not supported. We will check if this is possible or a hardware constraint.

For your information, we support HDR video playback. Playback of 10-bit YUV420 H265 stream is supported in tegra_multimedia_api sample 08_video_dec_drm

Hi DaneLLL,

Can the 08_video_dec_drm example do 10bit-yCbCr 4:2:2 video playback?

Rohit.

Hi,

No, it cannot do 10bit-yCbCr 4:2:2 video playback.
It can do 10bit-yCbCr 4:2:0 video playback.

Hi jetsy,
For more information, do you use R10G10B10X2 or R10G10B10A2 in your usecase? We don’t see format like R10G10B10A10. Please share more detail about the usecase.

Hi DaneLLL, the use case is R10G10B10A2. In specific, texture is GL_UNSIGNED_INT_2_10_10_10_REV_EXT. Thanks for looking into it.
Jetsy

Hi,
For information, this is not included in r32.3.1. We are planning to support it in future releases.