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.

 

38 REPLIES 38
yakabmarci
Senior

Did anyone requested the NeoChromeSDK and got it? It was promised that this will be shared via st.com, but in the meantime as a temporary solution this can be requested via mail ( @JMYGI)

I'm still waiting for it, i'm not sure what will it contain. How 'big' you have to be, to actually get it?

I understand that this is 3rd party ip and there are issues what can be shared, but how can developers use it, if there is no documentation on it.

Something like this it would be nice: this is think silicon nema pico xl gpu, it is configured in the following way, give some performance metrics, API, examples, documentation and so on.

 

What would be even nicer is source code for the library, more description of the HW, shader core architecture and its ISA, so developers can write their own shaders (limited as it is, it is still programable and would be useful)

What is there to gain to keep all this secret? It is no advantage that we have all these nice features, but no possibility to use it. Developers will just use a different MCU. ST MCUs don't exist in a void, there are alternatives, competitors.

@yakabmarci The best resource I know is LVGL which since 3 weeks ago, thanks to dedicated effort of Liam Howatt, has supposedly working code supporting GPU2D. I am just trying to make it work, it is dev code on master branch, no release yet. This is the only reason why I still did not abandon all the hope.
See: lvgl/src/draw/nema_gfx at master · lvgl/lvgl
But I agree, ST's approach to this matter and engineer support in general is simply very upsetting.
@JMYGI may not be with the company anymore. It almost seems like they try to drastically reduce staff costs before some merger.

i have the STM32H7S78-DK on order, should arrive next week, once i have it i plan to make a bunch of examples, just nemagfx stuff, no touchgfx or lvgl or anyhting else. (with or without ST's help :) ) I already had a look at lvgl, it is a good starting point. The purpose is to evaluate nemagfx performance and usability, suitability for a particular project

Unfortunately we disposed the kit after we discovered that the GPU2D was useless. At that time no colleagues were interested in the kit, for that reason.

I have now hooked up a riverdi display to the STM32U5A5ZJ which seems to have a Neo-Chrom GPU (GPU2D).

I just read this and will have a look at NemaGFX too.
Perhaps we can join each other in studying that, though I'm not planning to use lvgl either, though it looks much better than TouchGFX.

Well, the STM32U5A5ZJ lacks this GPU2D, I will get a STM32U5G9J-DK2, I think that may work with it.

 

The attached video shows line drawing, which is blended into the image at the desired color by DMA2D, and also erased by DMA2D. This display is interfaced on 8-bit FMC. The display shows a lot smoother than the video can represent it, though.

This would be a good thing to test with NemaGFX, along with other things, I think. I could then use a needle bitmap for example.

@Jack3 Note that although STM32U5A5ZJ has GPU2D, this gpu does not support vector graphics unlike the version found in STM32U5G9.

@TDJ, thank you very much! A bit confusing, because STM32CubeMX didn't show any GPU2D for that one.

STM32U5A5:

STM32U5A5_no_GPU2D.png

STM32U5G9:

STM32U5G9_GPU2D.png

And does the STM32U5G7 support vector graphics?
https://www.st.com/en/microcontrollers-microprocessors/stm32u5f7-5g7.html

 

I tried a downloaded 'Middlewares\Third_Party\NemaGFX'
It has a libnemagfx.a in the lib directory.

I attached the NemaGFX directory in a zip file.

Adding include path:

nemagfx_include.png

Adding it in library paths:

Library_Paths.png

Adding library:

Libraries_nemagfx.png

Step by step.

Trying:

 

  nema_sys_init();
  nema_cmdlist_t cl = nema_cl_create(); // Create a new CL
  nema_cl_bind_cmdlist(&cl); // Bind it

 

The first two lines compile well.

The next line calling 'nema_cl_bind_cmdlist(&cl);'
I get

'implicit declaration of function 'nema_cl_bind_cmdlist'; did you mean 'nema_cl_add_cmd'? [-Wimplicit-function-declaration]'

So we are not yet there.

I guess, I need more information to use it properly.

Once I get things working, I'd like to put up examples.

@Jack3 Although I cannot debug your code, I can reassure you that LVGL 9.3 (pre-release, dev branch) after very recent fixes compiles and works well using GPU2D with STM32U5G9. STM32U5A9 should work too but no vector graphics.

You may be missing
-L{your_dir_with_nemagfx lib}/gcc -l:libnemagfx-float-abi-hard.a
directive but it is a long shot.

NEMA driver impl. details can be found here:

lvgl/src/draw/nema_gfx at master · lvgl/lvgl

I have done performance comparisons against previous major version 8.3 which show that e.g. image rotation in LVGL 9.3 is way faster than it used to be. See:
NEMA GFX 9.3 initial performance vs DMA2D 8.3 · Issue #7423 · lvgl/lvgl

TDJ
Lead

@Jack3 To clarify and correct myself: STM32U5A5 does NOT have GPU2D, but STM32U5A9 does - although without vector graphics. GPU2D with vector graphics is found on STM32U5G9.