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