i.MX6Q CTS test failed

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6Q CTS test failed

Jump to solution
3,891 Views
wei-fonglin
Contributor II

Hi all,

I am working on a i.MX6Q based board. When I'm running CTS test case "android.view.cts.DisplayRefreshRateTest#testRefreshRate" on R13.4GA (Android 4.0.4), it worked but failed when it's on JB4.2.2_1.1.0.

I checked the logcat massage. It claimed that the display fps is 60. In fact, it's 52.

Is it possible that GPU's efficiency is lower on JB4.2.2_1.1.0. or if there's any other reason cause this problem.

 

The attachment below is logcat massage when running CTS. Monitor resolution is  1080p, 60HZ, HDMI


I'd appreciate any advice to solve this problem. Thanks.

Original Attachment has been moved to: Logcat.txt.zip

1 Solution
1,904 Views
ChucoChe
NXP Employee
NXP Employee

CTS was tested on LVDS not in 1080p HDMI display,

Could you run the GPU driver version on Android JB4.2.2_1.1.0 on ICS?

That can be done following the instructions in the link below.

https://community.freescale.com/docs/DOC-94481

That will help us determine if we have a performance drop on the GPU driver.

Michel

View solution in original post

13 Replies
1,904 Views
wei-fonglin
Contributor II

Hi all,

I have done this CTS test case in boundary devices sabre lite board.

I got the same result. It passed in Android 4.0.4 but failed in Android 4.2.2.

The CTS results are as attachment and detail information is in below.


Hardware: Boundary devices sabre lite rev-D

Software: Android 4.0.4 => Download demo image from boundary devices.

                                          http://boundarydevices.com/eula?file=imx-android-r13.4-20121128.tar.gz

                           

                Android 4.2.2 => Download demo image from boundary devices.

                                          http://boundarydevices.com/eula?file=imx6-jb-20130628.tar.gz                                  

resolution: 1920x1080.


I'd appreciate any advice to solve this problem. Thanks.

1,904 Views
ChucoChe
NXP Employee
NXP Employee

Hi,

I'm asking our R&D team if they are familiar with this error.

I'll come back with news soon.

Michel

1,904 Views
ghuau
Contributor II

Hi Guillermo,

Do you have any news from your R&D team ?

I currently have the same behavior (Android JB4.2.2_1.1.0) on the HDMI output (1920x1080).

Gabriel

1,904 Views
ChucoChe
NXP Employee
NXP Employee

Hi,

Since this doesn't seem to be a GPU error we have involved the R&D Android BSP team. I'll get back to this threads whit news soon.

Michel

1,904 Views
ravindrasinghai
Contributor II

Dear Guillermo, Xuegang Liu, Gabriel,

I've applied JB4.2.2_1.1.0 release patch and also disabled "the LDB display" in the following file: hardware/imx/mx6/hwcomposer/hwc_display.cpp (between line 107 and 111),

It fixed the issue for testcase "android.view.cts.DisplayRefreshRateTest#testRefreshRate".

But now another testcase started failing randomly android.textureview.cts.TextureViewTest - testTextureViewStress200Hz and testTextureViewStress48Hz

Error: junit.framework.AssertionFailedError: Did not complete 200Hz test. at android.textureview.cts.TextureViewTest.testTextureViewStress200Hz(TextureViewTest.java:53)

Please suggest if you have found solution for these testcases as well.

Thanks in advance for your help.

Best Regards,

Ravindra

0 Kudos
1,904 Views
LiuXuegang
NXP Employee
NXP Employee

Hello,

I debug this issue today, below are what I find so far.

1. This test case just call glclear() to measure the performance. Just as customer said, update GPU to the version JB4.2.2_1.1.0 release, ICS still can pass, so the gap not come from GPU itself. Use the same GPU version and disable 2D hwcomposer (as this case is test 3D, disable 2D hwcomposer will make the comparing more clear ), ICS get 46fps but JB4.x only 30fps.

2. The case use GLSurfaceView, on ICS GLSurfaceView default use RGB_565 format, but on JB4.2.2 GLSurfaceView default use RGB_888 format, you can the differenct in frameworks/base/opengl/java/android/opengl/GLSurfaceView.java, this difference do involve some gap (about 3~5 fps).

     private class SimpleEGLConfigChooser extends ComponentSizeChooser {

         public SimpleEGLConfigChooser(boolean withDepthBuffer) {

             super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, 0);

         }

     }

3. It should be other difference in framework on ICS and JB4.x cause other gaps, will do further check.

1,904 Views
LiuXuegang
NXP Employee
NXP Employee

I disable all GPU acceleration and test this case use android native software opengl (libagl), below is the result, it further prove the gap is not related with GPU, the gap should related with framework difference, all android device should show the same gap.

ICS 13.4:

D/DisplayRefreshRateTest(3432): claimed 60.0 fps, achieved 4.940334 fps.

JB4.x:

D/DisplayRefreshRateTest(3970): claimed 40.000004 fps, achieved 2.837398 fps.


0 Kudos
1,904 Views
ghuau
Contributor II

Hi ,

Could the problem come from the implementation of the hwcomposer in the Vivante GPU ? Apparently, there is a big difference in the implementation between ICS and JB, the architecture has been reviewed and there are not using the same function anymore to draw on the display.

Apparently, the function " int err = ctx->m_viv_hwc->set(ctx->m_viv_hwc, numDisplays, displays);" is pretty slow to be processed in JB, around 40ms at 1080p (hardware/imx/mx6/hwcomposer/hwcomposer.cpp), can you confirm the same behavior ?

Gabriel

0 Kudos
1,904 Views
ghuau
Contributor II

Hi Xuegang,

Apparently the HDMI Display is not the primary display in Android even if the LDB display is not connected. By disabling the LDB display in the following file: hardware/imx/mx6/hwcomposer/hwc_display.cpp (between line 107 and 111), It fixed the issue on my side, and now the CTS pass the test, can you confirm the same behavior on your side?

Thanks,

Gabriel

1,904 Views
ravindrasinghai
Contributor II

Hi Gabriel,

This solution (By disabling the LDB display in the following file: hardware/imx/mx6/hwcomposer/hwc_display.cpp (between line 107 and 111), fixed the problem.

CTS testcase passing now.

Thanks,

0 Kudos
1,904 Views
ravindrasinghai
Contributor II

Hi,

I am also facing the same CTS Testcase failure for Android 4.2.2 (CTS Version 4.2_r4) on iMX6 (SABRESD-MX6DQ):

10-10 21:17:38 I/0123456789ABCDEF: android.view.cts.DisplayRefreshRateTest#testRefreshRate FAIL

junit.framework.AssertionFailedError

at android.view.cts.DisplayRefreshRateTest.testRefreshRate(DisplayRefreshRateTest.java:198)

at java.lang.reflect.Method.invokeNative(Native Method)

at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)

at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)

at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)

at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)

at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)

at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)

at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)

Testcase is failing because, the claimed display referesh rate is ~60FPS (59 FPS), but the achieved display refresh rate for the test is only 30 FPS.

When the disparity is not lower than the threshold (2FPS) specified by then test application, it asserts.

Did any one found solution to avoid this failure ?

Thanks in advance for any help/suggestion.

1,905 Views
ChucoChe
NXP Employee
NXP Employee

CTS was tested on LVDS not in 1080p HDMI display,

Could you run the GPU driver version on Android JB4.2.2_1.1.0 on ICS?

That can be done following the instructions in the link below.

https://community.freescale.com/docs/DOC-94481

That will help us determine if we have a performance drop on the GPU driver.

Michel

1,904 Views
wei-fonglin
Contributor II

Hi Guillerm,

I've followed directions to run GPU on Android 4.0.4. and the CTS test worked on Android 4.0.4..

Maybe GPU isn't related to cause the test failed on Android 4.2.

Please kindly help me to check out what issue may cause this problem.

I'd appreciate any advice to solve this problem. Thanks

0 Kudos