2020-08-12 04:59 AM
Hi,
I have made this very simple project, when I step into code and just change the vsync_sem in debuge to 1 to force a render, The code would just call this function
HAL::getInstance()->backPorchExited();
and never would retrun, it would stuck in there, How should I resolve this issue?
I expect the this force a call of this function
void TouchGFXHAL::flushFrameBuffer(const touchgfx::Rect& rect)
2020-08-13 02:12 AM
Hello,
Can you give more information about what you are trying to do as well as your hardware setup and the GUI you want to display ?
/Alexandre
2020-08-15 04:07 AM
A simple test, I just hand edited this function, to false
lockDMAToFrontPorch(false);
Now it would render! am I missing something?
2020-08-17 12:11 AM
Hello,
Can you display some GUI on your screen ?
If by just adding lockDMAToFrontPorch(false); you can render but still not see anything on the display, it seems to me that the transfer of the rendered frame from RAM to Screen is not working properly.
lockDMAToFrontPorch() when set to true, means that the DMA will not fill the framebuffer before the whole frame is sent to the display. This prevents corruption of the framebuffer when the DMA is quicker than the sending of the frame. Of course this reduce performance but it usually prevents from seeing artifacts. If it was stuck when lockDMAToFrontPorch(true), this can mean that the framework was waiting for the previous frame to be sent before rendering again with DMA2D.
/Alexandre
2020-08-18 12:13 AM
Thanks for the feedback, I can see GUI on screen, But shouldn't I change this code manualy!?
2020-08-18 02:48 AM
What is "this code" ?
If you are talking about lockDMAToFrontPorch(), yes you can add this line manually in the TouchGFXHAL.cpp. This file is meant for the developer to edit it however he wants.
/Alexandre
2020-08-18 04:44 AM
changing the lockDMAToFrontPorch() to false;
thanks for the help