lvgl / lv_demos

Examples, tutorials and applications for the LVGL embedded GUI library
https://lvgl.io
488 stars 366 forks source link

demo, wrong pixel / lines ( glitched rendering ) #143

Closed epikao closed 2 years ago

epikao commented 2 years ago

Hello

With benchmark or keypad demo, sometimes I see wrong pixel/lines, see pictures below. What's that? Do I have possibly a bug with my display driver code?

Thank you

image

kisvegabor commented 2 years ago

I believe it was fixed in the latest LVGL (master branch). Can you try it out?

epikao commented 2 years ago

I believe it was fixed in the latest LVGL (master branch). Can you try it out?

Still up to date. This is my configuration, see below:

[env:disco_f746ng]
platform = ststm32
board = disco_f746ng
framework = arduino
lib_deps = 
    lvgl/lv_examples@^8.1.1-dev
    lvgl/lvgl@^8.1.0
kisvegabor commented 2 years ago

Try

    lvgl/lvgl#master
epikao commented 2 years ago

Try

  lvgl/lvgl#master

I think this has the same effect as "clean all". I did it, but then I have to set again "lvgl/lvgl@^8.1.0", otherwise the conf file always changes to template. However, still same effect, hmm

epikao commented 2 years ago

Hello, if I use following code, then I have display content according picture below.

  String LVGL_Arduino = "Hello World";

  // rectangle 

  static lv_obj_t * my_rect = lv_obj_create(lv_scr_act());
  lv_obj_set_style_radius(my_rect, 0, 0);
  lv_obj_set_pos(my_rect , 0, 0);
  lv_obj_set_size(my_rect , 480, 272);
  lv_obj_set_style_border_color(my_rect, lv_color_make(0xff,0x00,0x00), 0);
  lv_obj_set_style_border_width(my_rect, 1, 0);
  lv_obj_set_style_bg_color(my_rect , lv_palette_lighten(LV_PALETTE_GREY, 3), 0);

  // circle  
  static lv_obj_t * my_Cir = lv_obj_create(lv_scr_act());
  lv_obj_set_scrollbar_mode(my_Cir , LV_SCROLLBAR_MODE_OFF);
  lv_obj_set_size(my_Cir , 42, 42);
  lv_obj_set_pos(my_Cir , 270, 10);
  lv_obj_set_style_bg_color(my_Cir , lv_palette_lighten(LV_PALETTE_BLUE, 3), 0);
  lv_obj_set_style_radius(my_Cir , LV_RADIUS_CIRCLE, 0);

  // Create simple label 
  lv_obj_t *label = lv_label_create( lv_scr_act() );
  lv_label_set_text( label, LVGL_Arduino.c_str() );
  lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 );

image

kisvegabor commented 2 years ago

I'm sorry but I'm not a big expert of PlatformIO so I don't know exactly how to manage versions. There were some related bugs in the recent versions of LVGL but they were fixed. Hopefully using the latest commit from master should solve it.

epikao commented 2 years ago

I'm sorry but I'm not a big expert of PlatformIO so I don't know exactly how to manage versions. There were some related bugs in the recent versions of LVGL but they were fixed. Hopefully using the latest commit from master should solve it.

Ok, I'm already using the last version, so 8.1.0, so I think this failure must be something else... difficult...

epikao commented 2 years ago

the error is simple, I forgot these two functions (in the driver function): SCB_CleanInvalidateDCache(); SCB_InvalidateICache();

now it is much better, sometimes can still see glitched rendering but very slightly....

kisvegabor commented 2 years ago

Ah, it's great that you have found it!

now it is much better, sometimes can still see glitched rendering but very slightly....

Maybe it's just a VSYNC issue.

I close this issue then.