RELEASE_NOTES.txt 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. Vivante VGLite API Driver Release Notes
  2. This file includes a list of high level updates for each driver release.
  3. OVERVIEW
  4. ========
  5. Vivante VGLite Graphics API is designed to support2D vector and 2D raster-based operations for rendering
  6. interactive user interface that may include menus, fonts, curves, and images. The VGLite API allows users
  7. to develop customized applications for mobile or IOT devices that include Vivante Vector Graphics IP.
  8. Please refer to
  9. Vivante.Programming.VGLite.Vector.Graphics.API-<version>-<date>.pdf
  10. document for the VGLite API functions.
  11. LIMITATION
  12. ==========
  13. 1. Currently VGLite API driver only supports 32-bit OS/RTOS, as VGLite HW/SW is designed for embedded devices.
  14. 2. VGLite driver only support single thread, single context rendering, it does not support multi-thread rendering.
  15. 3. VGLite GPU does not include MMU, so VGLite driver programs GPU hardware with system memory physical addresses directly.
  16. CHANGES
  17. =======
  18. July 2024: vglite_4_0_90
  19. -------------------------
  20. 1. Add updatestroke dirty mechanism.
  21. 2. Replace push_data to push_call for stroke pathdata to reduce time.
  22. 3. Refine decnano address/buffer length alignment requirements and format check.
  23. 4. Simplify close+ move patch to improve openvg perf.
  24. 5. Add a feature that getting hardware running time by vg_lite_get_parameter.
  25. 6. Change vg_lite_finish to vg_lite_flush in set_render_target to improve efficiency.
  26. 7. Optimize scissor rect code.reduce the number of vg_lite_finish.
  27. 8. Add moveto close opcode patch in draw_linear_grad and draw_radial_grad to solve benchmark render error.
  28. March 2024: vglite_4_0_70
  29. -------------------------
  30. 1. Port DumpVGL to driver project, and rename it to dumpAPI.
  31. 2. Modify vg_lite_get_transform_matrix() input parameters to float type, improve transform accuracy.
  32. 3. Add alignment rules and refine original alignment rules.
  33. 4. Refine submit() function to avoid the boundary case that there is less than 8 bytes left in the command buffer for a END command.
  34. 5. Enable hw process lvgl normal blend mode when lvgl not support while src premultiply is zero.
  35. 6. Add driver support for the new gcFEATURE_VG_512_PARALLEL_PATHS.
  36. 7. Add ts buffer and count buffer size to avoid memory overflow.
  37. 8. Merger Zephyr plateform code.
  38. January 2024: vglite_4_0_64
  39. -------------------------
  40. 1. Add a new parameter "vg_lite_buffer_t *target" to vg_lite_scissor_rects() API.
  41. 2. Support two memory pool in Linux environment. Add a new API vg_lite_set_memory_pool.
  42. 3. Allow VGLite API matrix paramters to be NULL which indicates an identify matrix.
  43. 4. Support single command buffer. By default, VGLite driver uses two command buffers.
  44. 5. Refine driver settings for gcFEATURE_VG_STRIPE_MODE, gcFEATURE_VG_SPLIT_PATH, gcFEATURE_VG_CLOCK_GATING.
  45. 6. Restore VGLite default command buffer size to 32KB to reduce memory consumption.
  46. 7. Define VG_LITE_BLEND_PREMULTIPLY_SRC_OVER as an alias of VG_LITE_BLEND_NORMAL_LVGL.
  47. 8. Add a new API "vg_lite_dump_png(const char *filename, vg_lite_buffer_t *buffer)" for Linux debugging.
  48. 9. Add VG_LITE_GPU_IDLE_STATE query in vg_lite_get_parameter() API for application.
  49. 10. Add driver support for the new gcFEATURE_VG_NV24_INPUT.
  50. November 2023: vglite_4_0_47
  51. -------------------------
  52. 1. Add a new vg_lite_copy_image() API for OpenVG vgCopyImage support.
  53. 2. Add logic in vg_lite_init() to handle repeated vg_lite_init() calls.
  54. 3. Add gcFEATURE_VG_MATH_PRECISION_FIX for enabling the new driver code for math precision fix.
  55. 4. Use the new simplied bezier implementation by default. Remove gcFEATURE_VG_SIMPLYFIED_BEZIER.
  56. 5. Use reset operation to restart the GPU after GPU hang.
  57. 6. Add a new API vg_lite_get_parameter to get scissor parameter.
  58. 7. Delete vg_lite_set_premultiply API as vg_lite_blend_t now covers all blend modes (non-premultiplied and premultiplied).
  59. 8. Add gcdVG_ENABLE_AUTO_CLOCK_GATING to determine if auto clock gating feature is enabled.
  60. 9. Add DEC2.0 feature support in driver for the new gc265 core.
  61. 10. Fix a TS Clock gating bug. Add clock gating feature into option.h.
  62. May 2023: vglite_4_0_22
  63. -------------------------
  64. 1. Free masklayer correctly and refine masklayer parameter.
  65. 2. Fix gc265 set_scissor draw path hang bug. TS area size must be less than target size.
  66. 3. Fix a VGLite kernel memory leak issue.
  67. 4. Fix issue when scale/bias is negative.
  68. 5. Adding the -g0 option to reduce ko file size.
  69. 6. Add paint type enum and config related register in vg_lite_blit.
  70. 7. Replace VLC_OP_CLOSE to VLC_OP_END in vg_lite_init_arc_path.
  71. 8. Add input color parameter in vg_lite_draw_pattern.
  72. April 2023: vglite_4_0_18
  73. -------------------------
  74. 1. Make the gamma feature implementation compatible to VGLite 3.x driver.
  75. 2. Add VG_LITE_S8, VG_LITE_S16, VG_LITE_S32 support in vg_lite_init_arc_path and vg_lite_append_path.
  76. 3. Fix a VLC_OP_CLOSE bug in vg_lite_update_stroke.
  77. 4. VG_BW_1 should have the same alignment requirement with VG_A_1.
  78. 5. Fix a bounding box bug in vg_lite_append_path.
  79. 6. Fix a VLC_OP_xxWARC_REL bug in _convert_arc.
  80. 7. Change default command buffer size to 128KB to support large SVG path rendering.
  81. 8. Correct width computation in vg_lite_update_linear_grad() to fix the rendering error in gradient.svg.
  82. 9. Add error check in push_data() for insufficient command buffer size.
  83. 10. Set Src and Dst color pre_multiplied properly for gc265.
  84. 11. Correct color transform register settings.
  85. 12. Fix a vg_lite_scissor_rects enable/disable bug.
  86. March 2023: vglite_4_0_15
  87. -------------------------
  88. 1. Add DMA buffer support for vg_lite_map/unmap APIs.
  89. 2. Add support for blend mode VG_LITE_BLEND_PREMULTIPLY_SRC_OVER.
  90. February 2023: vglite_4_0_11
  91. -------------------------
  92. 1. Enable GC355, GC255, GC265 support in VGLite 4.x driver.
  93. 2. Add VGLite API trace function which can be enabled with gcFEATURE_VG_TRACE_API macro.
  94. 3. Add a new API vg_lite_flush_mapped_buffer for flushing mapped buffer flush.
  95. 4. Fix the pixel shift issue when an image is blit with linear filtering.
  96. October 2022: vglite_4_0_0
  97. --------------------------
  98. 1. Major VGLite API update to version 3.0 which includes some API changes and new APIs to support GC555 new features.
  99. 2. Add vg_lite_set_pixel_matrix(...) API to support pixel matrix transfermation.
  100. 3. Add vg_lite_gaussian_filter(...) API to support 3x3 gaussian blur.
  101. 4. Add vg_lite_set_color_transform(...) API and enable/disable APIs to support pixel color transfrom.
  102. 5. Add masklayer APIs vg_lite_create_masklayer, vg_lite_render_masklayer, etc. to support VG masklayer functions.
  103. 6. Add VSI FLEXA interface support for VG IPs that include FLEXA feature.
  104. 7. Update vg_lite_blit_rect() API to use "vg_lite_rectangle_t *rect" as the rectangle area input parameter.
  105. 8. Change runtime feature check to compile time feature selection with build flags in vg_lite_options.h.
  106. August 2022: vglite_3_1_17
  107. --------------------------
  108. 1. Set default command buffer size to 64K.
  109. 2. Add feature global alpha.
  110. 3. Add feature ETC2.
  111. 4. Add feature color key.
  112. 5. Add driver support for arc path.
  113. 6. Add double image feature.
  114. 7. Add driver support for 24 bit feature.
  115. 8. Add APIs for dither.
  116. 9. Add the AHB bus configuration for alpha blending.
  117. 10. Add vg_lite_kernel_flexa_info_t information.
  118. 11. Add free path data memory allocated by driver.
  119. 12. Support vg_lite_flush and vg_lite_finish call order.
  120. 13. Add API vg_lite_set_command_buffer and vg_lite_set_ts_buffer.
  121. 14. Support bounding box for path.
  122. 15. Add API vg_lite_path_append support arc path and fix clockwise and counterclockwise order errors.
  123. 16. Add gcFEATURE_BIT_VG_IM_INPUT check in function.
  124. 17. Add feature DECNano compress and decompress.
  125. 18. Add API vg_lite_get_transform_matrix.
  126. 19. Add API to set stoke color.
  127. 20. Add LVGL feature recolor.
  128. 21. Add feature index endian.
  129. 22. Add format A8RGB565_PLANAR.
  130. 23. Add ts buffer block processing.
  131. 24. Add feature pixel matrix.
  132. 25. Add blend modes VG_LITE_BLEND_NORMAL_LVGL, VG_LITE_BLEND_MULTIPLY_LVGL,
  133. VG_LITE_BLEND_ADDITIVE_LVGL, VG_LITE_BLEND_SUBTRACT_LVGL.
  134. 26. Add stripe mode API.
  135. 27. Add vg_lite_set_premultiply API.
  136. 28. Add limit parallel path feature.
  137. 29. Add vg_lite_scissor_rects API.
  138. June 2022: vglite_3_1_16
  139. ------------------------
  140. 1. Enable vg_lite_path_append API to support arc paths.
  141. 2. Skip when the length or width of the rectangle area is 0.
  142. 3. Add support for the path bounding box.
  143. January 2022: vglite_3_1_15
  144. ---------------------------
  145. 1. Turn off PE clear by default.
  146. 2. Fix the build issue caused by undefined types u32 and s32 for FreeRTOS.
  147. 3. Add support for all path data formats in the vg_lite_path_append API.