Hello Skia Community!
I am using Graphite Dawn backend in my non-Web native C++ app. I did some benchmark on the four steps in Skia shape drawing. I used std::chrono::steady_clock to measure the CPU time, and the currentBudgetedBytes() API in Context and Recorder to measure GPU memory usage.
For this benchmark, I let Skia draw a 2000-point and a 4000-point polygon with half line segments and half cubic Bezier segments, onto a 8000x8000 canvas with RGBA_8888 format, averaging over 100 runs. The first table is on M3 Max Mac, the second on Windows with Nvidia 4070 Super.
I have noticed 2 performance issues with D3D12:



Hi Michael,
The time with createTexture() is mostly on D3D allocation. Thank you for pointing out the issue. I was able to do some tiling to reduce the GPU memory usage on such extreme canvas sizes.
I have a separate ask: I am investigating if our application can use Skia which builds and links Dawn. If in the future I want to use Dawn elsewhere in my code, I am concerned about the potential conflicts when I build another Dawn that may not be the same version as the one Skia is using. I understand the option to enable dawn is skia_use_dawn. Is it possible for Skia to provide an option to link to a prebuilt version of Dawn, say skia_use_system_dawn?
Thanks,
Jay