We're driving a 640x480 LCD display. The problem is that display updates are initially slow when a new image is loaded into the frame buffer. We've narrowed down this sluggish behavior to the time it's taking to execute the FVID_exchange() statement. I've read that this function can block if no buffers are available, which appears to be happening. What conditions could cause this? What's interesting is that after a period of time, the display becomes more responsive. We re-measured the FVID_exchange time and it was substantially less. The display task basically consists of the following few lines of code:
LCD_Frame_p = (Uint16 *)DISPLAY_MEM_ADDR; memcpy(vpbe_osdFB->frame.frameBufferPtr,LCD_Frame_p,(_XSIZE *_YSIZE * 2) ); FVID_exchange(hOSD0,&vpbe_osdFB);