hi all,
i'm currently investegating the possibility to multithread the vulkan backend of skia to shorter the flush time.
i found that skia vulkan backend is already using secondary command buffer, which has the potential to record OpChains into different secondary command buffers with multiple threads and submmit them to the primary command buffer.
when i doing this, i found lots of the class seems to be thread unsafe, like FlushState, GrVkGPU, ResourceProvider etc, and those class are used in the prepare and excute stages of each Op.
so i'm wondering:
1. was skia vulkan backend designed to be serialized from the very begining?
2. does skia developer team have the plan to make it multi-threaded in the future?
3. do you think it would be huge amount of work to make it happen? one needs to totally re-design the backend and do the implemention, or just modify some parts would be enough?
any comments/advices are welcomed. thanks in advance.