cancel
Showing results for 
Search instead for 
Did you mean: 

Question about GPU2D render speed

amb
Associate III

I use U599 driving a 480*480 lcd, there are two full screen texureMappers, two full screen cacheable containers. the first cacheable container rendered to dynamicBitmap1,the textureMapper1 use dynamicBitmap1 as source pic  . cacheable Container2 ( include textureMapper1 and cacheableContainer1) rendered to   dynamicBitmap2.

textureMapper2 use dynamicBitmap2 as source pic and finally display on framebuffer.

this additional textureMapper2 was to rotate whole content 180 degress.because the lcd is inverted.I have no other ideas.

After I run the program , I got a 17ms rendering time.My question is: is that gpu2d's max ability?or I haven't set up properly?

I use single buffer,with gpu2d and dma2d all on.

 

4 REPLIES 4
GaetanGodart
ST Employee

Hello @amb ,

 

Have you tried to measure render time with a simpler GUI?

The standard TouchGFX application runs a 60 frames per second which means that the screens is changed every 16.66 ms. This value seems close enough to your 17ms render time. Therefore I would expect that it is normal behavior and that it doesn't affect your display quality.

As per the performance of the GPU2D, if I remember correctly, it is very effective at rendering textureMappers so it should not be a problem.

Do you rotate and invalidate the textureMapper2 every tick (frame)?

There is always possibilities to optimize your GUI. This could be done by reducing the area you invalidate for instance.

 

If this comment answers your question, I invite you to select it as "best answer".

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

by changing ltdc parameters and use double buffer,I can get a 52Hz stable frame rate.but that cusumes too much ram.

the textureMapper2 have to invalidate every frame,otherwise display looks not flent.

the biggest problem is touchgfx can't rotate display 180 degrees like lvgl or emwin  .I have to add one more full screen textureMapper, this makes render time longer.

Do you have other ways to solve the rotate 180 degrees problem?

Do you have any document on gpu2d ? I don't know how to ultimize it.

52Hz is not optimized.

Basically, you put all of your screen into a texture mapper and rotate it every frame? That's why it is hard to render, in embedded projects you are not supposed to re-draw the whole screen every frame, only the areas that changed.

In most displays it is possible to rotate the image at driver level. See this post. 

 

If you use TouchGFX, the TouchGFX Framework already take care of optimization by utilizing gpu2d at (very close to) it's full potential so you don't need to worry about it.

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

Hello @amb ,

Have you been able to solve your problem?
If so, I invite you to select the most helpful comment as "best answer".

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)