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.

Switching to new display resolution, suddenly Graphics SDK demos stop working

Other Parts Discussed in Thread: DM3730, OMAP3530

I've been working for a while now on a 640x480 display with OpenGLES and Qt on a DM3730.

Now, I've got a new Sharp display that I'm integrating, with a 1280x800 resolution (rotated 90 degrees).  With those changes, none of the OpenGL SDK demos work anymore - errors below.  Switch back to the 640x480 display (with no rotation) and everything works fine again.  Any idea what I could be missing?

Thanks,
Glenn Wainwright

Error Info:

PVR_K:(Error): PVRSRVCreateDCSwapChainKM: Failed to
 create 3rd party SwapChain [1091, home/glennw/dvsdk_4_00_00_17/graphics-sdk_4.03.0
0.02/GFX_Linux_KM/services4/srvkm/common/deviceclass.c]                            
7, metrics.c]                                                                      
PVR: Bytes  :    512    1024    2048    4096    8192   16384   32768   65536  13107
2                                                                                  
PVR: ---------------|-------|-------|-------|-------|-------|-------|-------|------
-|                                                                                 
PVR: H -> VB: 353.74 1003.89 1094.76 1005.87  691.35  828.32  988.74  984.31 1046.8
1                                                                                  
PVR: H ->  H:1024.13 1269.92 1391.69 1030.36 1303.31 1120.72 1151.85 1115.57 1135.9
5                                                                                  
PVR:(Error): PVRSRVCreateDCSwapChain: Error - 18 returned [512, /bridged_pvr_dc_glu
e.c]                                                                               
PVR:(Error): PVR2DCreateFlipChain: can't create flipchain [217, /pvr2dflip.c]      
PVR:(Error): PVRSRVCreateDCSwapChain: Error - 18 returned [512, /bridged_pvr_dc_glu
e.c]                                                                               
PVR:(Error): PVR2DCreateFlipChain: can't create flipchain [217, /pvr2dflip.c]      
Exit message has been set to: "PVRShell: Unable to create surface                  
".                                                                                 
InitAPI failed!                                                                    
PVRShell: Unable to create surface

Here's some further output from the standard gfx_check for this new resolution:
WSEGL settings                                                                     
[default]                                                                          
WindowSystem=libpvrPVR2D_FRONTWSEGL.so.1                                           
------                                                                             
ARM CPU information                                                                 
Processor       : ARMv7 Processor rev 2 (v7l)                                      
BogoMIPS        : 796.19                                                           
Features        : swp half thumb fastmult vfp edsp neon vfpv3                      
CPU implementer : 0x41                                                             
CPU architecture: 7                                                                
CPU variant     : 0x3                                                              
CPU part        : 0xc08                                                            
CPU revision    : 2                                                                
                                                                                   
Hardware        : OMAP3 EVM                                                        
Revision        : 0020                                                             
Serial          : 0000000000000000                                                  
------                                                                              
SGX driver information                                                              
Version 1.6.16.3977 (debug) /home/glennw/dvsdk_4_00_00_17/graphics-sdk_4.03.00.02/G
FX_Linux_KM                                                                        
System Version String: SGX revision = 1.2.5                                         
------                                                                             
Framebuffer settings                                                                
                                                                                   
mode "1280x800-62"                                                                 
    # D: 73.303 MHz, H: 51.441 kHz, V: 62.428 Hz                                   
    geometry 1280 800 1280 800 32                                                  
    timings 13642 15 120 8 8 10 8                                                  
    rgba 8/16,8/8,8/0,0/0                                                          
endmode                                                                            
                                                                                   
Frame buffer device information:                                                   
    Name        : omapfb                                                           
    Address     : 0x70000000                                                       
    Size        : 6553600                                                          
    Type        : PACKED PIXELS                                                    
    Visual      : TRUECOLOR                                                        
    XPanStep    : 1                                                                
    YPanStep    : 1                                                                
    YWrapStep   : 0                                                                
    LineLength  : 8192                                                             
    Accelerator : No                                                               
------                                                                             
Rotation settings                                                                  
1                                                                                  
------                                                                             
Kernel Module information                                                           
Module                  Size  Used by                                              
omaplfb                 8298  0                                                    
pvrsrvkm              381017  1 omaplfb                                            
sdmak                   3731  0                                                    
lpm_omap3530            6473  0                                                    
dsplinkk              245361  1 lpm_omap3530                                       
cmemk                  21002  0                                                    
------                                                                             
Boot settings                                                                       
mem=80M@0x80000000 mem=128M@0x88000000 console=ttyS0,115200n8 noinitrd rw ip=192.16
8.0.5:192.168.0.50::255.255.255.0::eth0:on root=/dev/mtdblock4 rootfstype=yaffs2 ps
plash=false mpurate=800 vram=10M omapfb.vram=1:10M omapfb.rotate=1 omapfb.vrfb=y om
apfb.debug=y                                                                       
------                                                                             
Linux Kernel version                                                                
Linux omap3evm 2.6.32 #653 Tue Apr 30 17:08:34 EDT 2013 armv7l unknown 

  • Forgot to mention, all of the modules in rc.pvr load without any errors in both cases.

  • Glenn,

    Can you increase the vram parameters in bootargs? 

  • Thank you for your response.  That was actually one of the first tests that I did - doubling the vram settings in the bootargs to "vram=20M omapfb.vram=1:20M" has no effect on the issue.

  • Glenn,

    Can you try with even more memory as 1280x800 is 3.3 times of 640x480. So can you try with 40MB?

  • Not a problem - that seems to give the same result.

    PVRShell: EGL 1.4 initialized                                                      
    PVR:(Error): OSIsProcessPrivileged: not implemented, default returns false [586, /o
    sfunc_um.c]                                                                        
    PVR:(Warning): InitContext: ignoring buffer type CBUF_TYPE_PDS_VERT_SECONDARY_PREGE
    N_BUFFER [717, eglglue.c]                                                          
    PVR:(Warning): Running StartUpMemSpeedTest. High memory watermark will be ruined. D
    isable using apphint EnableMemorySpeedTest [57, metrics.c]                         
    PVR: Bytes  :    512    1024    2048    4096    8PVR_K:(Error): PVRSRVCreateDCSwapC
    hainKM: Failed to create 3rd party SwapChain [1091, home/glennw/dvsdk_4_00_00_17/gr
    aphics-sdk_4.03.00.02/GFX_Linux_KM/services4/srvkm/common/deviceclass.c]           
    192   16384   32768   65536  131PVR_K:(Error): PVRSRVCreateDCSwapChainKM: Failed to
     create 3rd party SwapChain [1091, home/glennw/dvsdk_4_00_00_17/graphics-sdk_4.03.0
    0.02/GFX_Linux_KM/services4/srvkm/common/deviceclass.c]                            
    072                                                                                
    PVR: ---------------|-------|-------|-------|-------|-------|-------|-------|------
    -|                                                                                 
    PVR: H -> VB: 167.98  247.79  228.61  280.95  263.91  308.61  321.97  319.47  324.5
    9                                                                                  
    PVR: H ->  H: 362.83  423.30  330.06  352.39  322.26  320.41  318.51  318.48  347.0
    2                                                                                  
    PVR:(Error): PVRSRVCreateDCSwapChain: Error - 18 returned [512, /bridged_pvr_dc_glu
    e.c]                                                                               
    PVR:(Error): PVR2DCreateFlipChain: can't create flipchain [217, /pvr2dflip.c]      
    PVR:(Error): PVRSRVCreateDCSwapChain: Error - 18 returned [512, /bridged_pvr_dc_glu
    e.c]                                                                               
    PVR:(Error): PVR2DCreateFlipChain: can't create flipchain [217, /pvr2dflip.c]      
    Exit message has been set to: "PVRShell: Unable to create surface                  
    ".                                                                                 
    InitAPI failed!                                                                    
    PVRShell: Unable to create surface

  • Have you re-built the GFX SDK after the modification? Also does your device bootup properly without SGX enabled with the new resolution? 

    I have seen similar errors in WINCE before. There the issue was with the display driver not getting link to the SGX library properly. 

  • So the display itself is not actually operational yet - the electrical guys are working on a couple hardware fixes to get it working.  So while they're doing that, I'm trying to work through these issues that came up in software.  So, unfortunately, I cannot confirm that the standard fbdev display stuff is working yet - I can just confirm that it doesn't throw any crazy errors. 

    The GFX SDK has definitely been rebuilt and re-installed after the kernel was changed for the new display - I specifically rebuilt it to get this debug output.

    Looking through the SDK code, it looks like there might be more debug information coming from PDUMP - do you know how I can get access to it - that might tell me more.

  • Am I reading this correctly?  I'm trying to figure out what exactly "Error -18" is.  Is it PVRSRV_ERROR_TOOMANYBUFFERS, or something else?

  • Looks like that is the case.  In omaplfb::CreateDCSwapChain, the input buffer count is 2, but the max number of buffers in psDevInfo->sDisplayInfo.ui32MaxSwapChainBuffers is 1.  If you have any idea what those buffers are referring to, that might help me clear this.

  • Glenn,

    I think issue is because of the number of buffers supported by the framebuffer driver is less. You can alter this in the framebuffer driver and try to double the number of buffers and see whether the failure goes away.

  • Please take a look at this post, it should be relevant here as well.

    http://tigraphics.blogspot.in/2011/07/running-qtgles-on-omap4.html