cancel
Showing results for 
Search instead for 
Did you mean: 

NeoChrom/GPU2D registers documentation

robvos
Associate

Will this peripheral ever be documented in detail? i.e. registers, interrupts, etc.

Or even a lightweight/low level library would be acceptable.

We may choose STM32U5 for a product but not if we are forced to use TouchGFX for good performance.

 

50 REPLIES 50

@yakabmarci Thank you for sharing. Maybe the state of this library is the reason why it is not shared.
To stay competitive ST had to immediately add GPU to their products, top executives shook hands and ST purchased what appeared to be a good choice, maybe based on the promise that quality will be managed and now they are ashamed to release it because it is far from the release-ready state while vendor (NEMA) believes otherwise so ST has to come up with nonsense excuses simply because releasing this masterpiece software would do ST more harm than not releasing it.

 

DmitryR
Associate III

@TDJ ,

 

business has no shame, I think that it is a conscious functionality limitation. Here it may makes a bit of sense as it favours TouchGFX. But have you seen the neural accelerator in N6? It is a very powerful thing and apart of neural network acceleration could be very efficiently used for signal processing. It contains so many multipliers so could calculate FIR in a single cycle! But no, it may be used only with a neural net model from a limited number (3) of suppliers. Just like the GPU it has no HAL drivers and cannot be used freely. So @TDJ I am sure that it is conscious.

 

Regards,

Dmitry

@DmitryR Business has no feelings at all since it has no own conscious. Top managers and the board have feelings depending mainly on one factor: how much revenue they make and what bonuses they get. It is neither good nor bad, it is just the way any 'for profit' company works the same time spending effort to make the customers and regular workers believe it is more than that, e.g. there are common values they share or greater purpose they serve.

However, what worries me is that recently I completely do not understand ST's business strategy and actions. It seems like they try to get prepared for hard times. That is, focus only on large customers and make sure those customers depend on ST's services because they do not have all the essential pieces like full product documentation. Ofc, this is only my theory.

Hi yakabmarci, thanks a lot, you are right, I just started playing with it.

The kit is a STM32U5G9J-DK2.

GPU2D draws rectangles faster than DMA2D, depending on the size, up to 50% faster.

There's plenty to discover in the next few days.

Starting to play with GPU2D.

 

 

 

 

 

 

Jack3
Senior II

Although many things work fine with the NemaGFX and NemaVG libraries, I have a few issues.
All functions that use the NemaGFX library work fine.
Many functions that use the NemaVG library also work fine. For example arc, line and rectangle.

Good_graphics.jpg

However, a few functions that use the NemaVG library produce distorted graphics.
Below you can see a triangle (top left), rounded rectangle (top right), text (middle), circle (bottom left) and ellipse (bottom right). The kit is a STM32U5G9J-DK2. Heap and stack space are set to 0x800, it seems that changing this makes no difference as it comes from 0x200 and 0x400.

The text in the center represents "Hello. ! - | _ @", and can be recognized somewhat by the area that lights up.

Distorted_graphics_800x480.jpg

For each, I will show the code I used.

I'm sure I'm doing somthing wrong. But what is it?

It's hard to find good examples of this anyway, but I hope someone has some brilliant ideas.

Hello @Jack3 ,

 

This post had issue with SVG where the end result / display bug looked very similar to your issue, perhaps it could be helpful to you but I am not sure.

The fix was to add these 2 lines:

    /* Force GPU accesses to SRAM through DCACHE2 to be always uncached */
    __HAL_RCC_SYSCFG_CLK_ENABLE();
    HAL_SYSCFG_DisableSRAMCached();

to the MX_DCACHE2_Init function.

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)

Hi Gaetan, that's the fix! Thank you very much!

BTW, in the distorted images, I used all white color for those, but coloured them this time.

Fixed_graphics_800x480.jpg

The GPU2D is impressive! Drawing the graphics below takes 16 ms only:

Image_2025-05-02_07.29.46.jpg

Video of the rotation of a bitmap, the bitmap (128x128 RGBA8888, 64kB) renders in 344 us (2907 revolutions/sec!), while power consumption is as low as 2mW:

 

I'm not sure how to report little cosmetic code issues back, but here one that needs a correction (both in code and in documentation), though it almost is a non-issue:

nema_clamp.png

The marked word "Minimum" probably should be changed into "Maximum".
I hope will be picked up by ST, if not by TS.

Hello @Jack3 ,

 

Thank you for the information, a TouchGFX employee is looking at it.

 

Regards,

Gaetan Godart
Software engineer at ST (TouchGFX)