Commit 2de7cb2
csmartdalton
Move curve softening math for feathers to the GPU
We still segment the feathered curves on the CPU, which is super slow, but this is step 1 toward having all this work on the GPU.
This PR also fixes cracks in the feather join tessellation!!!
CPU benchmark results:
DrawCustomFeathers: 906.9 => 226.1 ms (4x)
DrawFeatheredPaths_paper: 246.5 => 81.2 ms (3x)
Diffs=
82449bcb3f Move curve softening math for feathers to the GPU (#9064)1 parent 0b9f318 commit 2de7cb2
2 files changed
+2
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Submodule rive-runtime updated 27 files
- .rive_head+1-1
- include/rive/math/bezier_utils.hpp-22
- renderer/include/rive/renderer/gpu.hpp+3-24
- renderer/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp+2
- renderer/src/d3d/render_context_d3d_impl.cpp+13-9
- renderer/src/gl/render_context_gl_impl.cpp+7-2
- renderer/src/gpu.cpp+66-95
- renderer/src/metal/render_context_metal_impl.mm+3-1
- renderer/src/render_context.cpp+1-3
- renderer/src/rive_render_path.cpp+122-116
- renderer/src/shaders/bezier_utils.glsl+245
- renderer/src/shaders/common.glsl+27-6
- renderer/src/shaders/constants.glsl+3
- renderer/src/shaders/draw_path_common.glsl+7-28
- renderer/src/shaders/hlsl.glsl+10-15
- renderer/src/shaders/metal.glsl+2
- renderer/src/shaders/metal/tessellate.metal+1
- renderer/src/shaders/spirv/tessellate.main+1
- renderer/src/shaders/tessellate.glsl+79-32
- renderer/src/vulkan/render_context_vulkan_impl.cpp+34-4
- renderer/src/webgpu/render_context_webgpu_impl.cpp+2
- src/math/bezier_utils.cpp-112
- tests/bench/draw_pls_path.cpp+94-31
- tests/deploy_tests.py+13-5
- tests/unit_tests/renderer/cpp.glsl+50
- tests/unit_tests/renderer/gpu_namespace_test.cpp+73-75
- tests/unit_tests/runtime/bezier_utils_test.cpp+121-24
0 commit comments