cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
jdefields
Explorer
Explorer
8,028 Views
Registered: ‎12-02-2014

ZCU102: EGL Error : Could not create the egl surface: error = "0x3003"

Jump to solution

Setup:

  • ZCU102 eval board
  • Buildroot rootfs (All source revisions are set to the revisions in the "zcu102-base-trd-2016-1-tpl-sources" zip file from the headstart program)
  • toolchain (gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz)
  • xilinx TRD 2016.1 boot.bin file
  • xilinx TRD 2016.1 image.ub (ignoring built in rootfs in favor of nfsroot pointing to buildroot rootfs)
  • "fbset -g 1920 1080 1920 1080 32" or "fbset -g 3840 2160 3840 2160 32"

When running any QT5 example (w/ eglfs plugin) after setting the fbset command above, The app will bomb out with the error:

EGL Error : Could not create the egl surface: error = "0x3003"

 

NOTE: If I don't use the fbset command (uses a default of "3840 2160 3840 4320 32"), there will actually be a kernel panic complaining about a _mali_osu_lock_wait...  It seems like any virtual yres which is not equal to the real yres causes this panic.

 

Any ideas?

0 Kudos
1 Solution

Accepted Solutions
jdefields
Explorer
Explorer
14,224 Views
Registered: ‎12-02-2014

The libMali.so files from the libmali-xlnx "zcu102-base-trd-2016-1-tpl-sources" folder don't work.  I had to copy the libMali.so files from the petalinux rootfs...  

 

Can someone explain the discrepancy?

View solution in original post

0 Kudos
5 Replies
jdefields
Explorer
Explorer
8,026 Views
Registered: ‎12-02-2014

Another interesting note, using the 2016.1-trd linux kernel and rootfs.

 

If I copy the qt5 examples over to the pre-built 2016.1-trd rootfs while it's running, the examples can start correctly and display on the screen.  However, they ONLY run if the virtual yres is 2x the normal yres (i.e. the default fb setup: 3840 2160 3840 4320 32) .  

 

Otherwise I get the error listed above in my original post:

 

EGL Error : Could not create the egl surface: error = "0x3003"

0 Kudos
jdefields
Explorer
Explorer
7,865 Views
Registered: ‎12-02-2014

Update: Using my kernel, and my buildroot rootfs:

 

If I boot up the system, and delete /usr/lib, I can copy over the 2016.1 TRD /usr/lib directory and the apps will start correctly (virtual yres must be 2x regular yres).  It seems like there must be some special way to configure QT5 (I think it would be unlikely that libMali is different).

0 Kudos
jdefields
Explorer
Explorer
7,851 Views
Registered: ‎12-02-2014

More info from testing:

 

With my rootfs installed only, any virtual yres LESS THAN 2x the real yres gives the error:

EGL Error : Could not create the egl surface: error = "0x3003"

 

Any virtual yres 2x the real yres or greater gives a stacktrace like:

[ 5525.423327] moveblocks[25623]: unhandled level 2 translation fault (11) at 0x00000000, esr 0x92000006
[ 5525.437562] pgd = ffffffc06868c000

Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000007f9361df08 in _mali_osu_lock_wait () from /usr/lib/libMali.so

 

 

The 2016.1 TRD rootfs is actually similar, except that when virtual yres is 2x the real yres or greater, the app runs successfully.

 

 

0 Kudos
jdefields
Explorer
Explorer
14,225 Views
Registered: ‎12-02-2014

The libMali.so files from the libmali-xlnx "zcu102-base-trd-2016-1-tpl-sources" folder don't work.  I had to copy the libMali.so files from the petalinux rootfs...  

 

Can someone explain the discrepancy?

View solution in original post

0 Kudos
ckohn
Xilinx Employee
Xilinx Employee
7,616 Views
Registered: ‎12-08-2011

Please do not use any files from the file "zcu102-base-trd-2016-1-tpl-sources.zip". This zip file is just provided for legal compliance so you can look at all the license headers of various third-party libraries used in this reference design.

 

The wiki has all the instructions that are needed to compile and run this design:

http://www.wiki.xilinx.com/Zynq+UltraScale+MPSoC+Base+TRD+2016.1

 

Chris

0 Kudos