Commit 6396b39
csmartdalton
fix(renderer): Interleave positive and negative feather atlas triangles (#11654) 37764336db
We were rendering the atlas with all negative triangles first, followed
by all positive triangles. This is the worst possible ordering for
maintaining high precision in a 16-bit coverage buffer, since as the
magnitude accumulates, we lose the lower bits. Instead, render the
positive/negative triangles interleaved, in the same order naturally
come in. This requires an extra check in the fragment shader for whether
the triangle is clockwise.1 parent 2724030 commit 6396b39
2 files changed
+2
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Submodule rive-runtime updated 17 files
- .rive_head+1-1
- renderer/include/rive/renderer/d3d11/render_context_d3d_impl.hpp+2-1
- renderer/include/rive/renderer/gpu.hpp+1-1
- renderer/src/d3d11/render_context_d3d_impl.cpp+11-3
- renderer/src/d3d12/d3d12_pipeline_manager.cpp+1
- renderer/src/draw.cpp+12-4
- renderer/src/metal/render_context_metal_impl.mm+2-1
- renderer/src/shaders/glsl.glsl+4
- renderer/src/shaders/hlsl.glsl+5
- renderer/src/shaders/metal.glsl+7
- renderer/src/shaders/render_atlas.glsl+30-8
- renderer/src/vulkan/common_layouts.hpp+8
- renderer/src/vulkan/render_context_vulkan_impl.cpp+1-1
- renderer/src/webgpu/render_context_webgpu_impl.cpp+1-1
- tests/add_gm_image.sh+6
- tests/gm/feathertext.cpp+19-4
- tests/gm/gmmain.cpp+2
0 commit comments