)]}'
{
  "commit": "c90505a806ca8d321b443d7fcd2db4e9482b4691",
  "tree": "50e5224fbcbf19d12c1232190b5a231da6bf2751",
  "parents": [
    "872147cc6b15ec033c54265a454ef1ebcebd6d7c"
  ],
  "author": {
    "name": "csmartdalton",
    "email": "hello@rive.app",
    "time": "Thu Feb 12 18:58:11 2026 +0000"
  },
  "committer": {
    "name": "csmartdalton",
    "email": "hello@rive.app",
    "time": "Thu Feb 12 18:58:11 2026 +0000"
  },
  "message": "fix(renderer): Interleave positive and negative feather atlas triangles (#11654) 37764336db\nWe were rendering the atlas with all negative triangles first, followed\nby all positive triangles. This is the worst possible ordering for\nmaintaining high precision in a 16-bit coverage buffer, since as the\nmagnitude accumulates, we lose the lower bits. Instead, render the\npositive/negative triangles interleaved, in the same order naturally\ncome in. This requires an extra check in the fragment shader for whether\nthe triangle is clockwise.\n\nCo-authored-by: Chris Dalton \u003c99840794+csmartdalton@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb099fd3ba0fbe590ef2ac6628387d592fb3c2e8",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "06926e6386ce6d73eec26ad686f42de966a426ba",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "1f61a4507f6b2c0c77dc6a79d5c99ca4213f6c3d",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/d3d11/render_context_d3d_impl.hpp",
      "new_id": "f8136a9adc6a5a769e344646f437a2af3132e1b7",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/d3d11/render_context_d3d_impl.hpp"
    },
    {
      "type": "modify",
      "old_id": "6b478b86037e85f39b313b7f10669671455038e6",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/gpu.hpp",
      "new_id": "0b02f641755b5ace6f288156e06e964c6f7ba6a3",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/gpu.hpp"
    },
    {
      "type": "modify",
      "old_id": "e9d3ca6e4dccb7182e04c4abf0418991dd76fc48",
      "old_mode": 33188,
      "old_path": "renderer/src/d3d11/render_context_d3d_impl.cpp",
      "new_id": "455ad563473dd05706f2670d459ef08d0ffae13f",
      "new_mode": 33188,
      "new_path": "renderer/src/d3d11/render_context_d3d_impl.cpp"
    },
    {
      "type": "modify",
      "old_id": "e7505dac186474b67bb2692e470b96d5ec3e2d29",
      "old_mode": 33188,
      "old_path": "renderer/src/d3d12/d3d12_pipeline_manager.cpp",
      "new_id": "6d44159b3ba73761c9c6e174108d24877d591e41",
      "new_mode": 33188,
      "new_path": "renderer/src/d3d12/d3d12_pipeline_manager.cpp"
    },
    {
      "type": "modify",
      "old_id": "37946f61326e3964ef5803461adccfb2f07fbba4",
      "old_mode": 33188,
      "old_path": "renderer/src/draw.cpp",
      "new_id": "26ade2582f26f1aaecd91626be799fdb8129b724",
      "new_mode": 33188,
      "new_path": "renderer/src/draw.cpp"
    },
    {
      "type": "modify",
      "old_id": "d56ac09f41566fb30158bd0bfaef1363cffe1d6b",
      "old_mode": 33188,
      "old_path": "renderer/src/metal/render_context_metal_impl.mm",
      "new_id": "2e016744dfcc38feae2ecb316a9c8b5b302e4f9f",
      "new_mode": 33188,
      "new_path": "renderer/src/metal/render_context_metal_impl.mm"
    },
    {
      "type": "modify",
      "old_id": "4f9a938ae9e7bcf421b5742f4dde4cbb7de21d29",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/glsl.glsl",
      "new_id": "7463892e93ca670fc90f774980df8020a892dcd2",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/glsl.glsl"
    },
    {
      "type": "modify",
      "old_id": "19f6f916bda0782b09ea4040b9e1f40d6f42e593",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/hlsl.glsl",
      "new_id": "1482ef78ad893f3b49bd70bb096190f30030f0f7",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/hlsl.glsl"
    },
    {
      "type": "modify",
      "old_id": "afcbb1ddf11d17e1134dcd32e031465e87a7f601",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/metal.glsl",
      "new_id": "2325a037b29f3c8e46785287036620cb65c38534",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/metal.glsl"
    },
    {
      "type": "modify",
      "old_id": "4c3dafbb606377115ae9db4565d7a224fc87f185",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/render_atlas.glsl",
      "new_id": "8135e252e94602e8b08b85b033b697b728b31ed5",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/render_atlas.glsl"
    },
    {
      "type": "modify",
      "old_id": "617803cf0526ffbba7926a50904bdf6ad5614d01",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/common_layouts.hpp",
      "new_id": "c21fecd81a0523c206624630054b4f3973080bee",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/common_layouts.hpp"
    },
    {
      "type": "modify",
      "old_id": "c39d55545e7450713f057d450a02ed2038a07df5",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/render_context_vulkan_impl.cpp",
      "new_id": "fd131e8e829c99d38f1d6879a47da40a61e00077",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/render_context_vulkan_impl.cpp"
    },
    {
      "type": "modify",
      "old_id": "4c8a3a309b6453e9b3d5823485afe077b2f54b82",
      "old_mode": 33188,
      "old_path": "renderer/src/webgpu/render_context_webgpu_impl.cpp",
      "new_id": "daf94aff4e05003970a9e979e88847f379f5fb97",
      "new_mode": 33188,
      "new_path": "renderer/src/webgpu/render_context_webgpu_impl.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e77ae417380e9148e4abe7d8a8f460c87582308",
      "new_mode": 33188,
      "new_path": "tests/add_gm_image.sh"
    },
    {
      "type": "modify",
      "old_id": "0316a5fb604c6036e7e199b728228fc5cd38e7f6",
      "old_mode": 33188,
      "old_path": "tests/gm/feathertext.cpp",
      "new_id": "59481f7658526ecb5eba2b563026d68c9df2ca56",
      "new_mode": 33188,
      "new_path": "tests/gm/feathertext.cpp"
    },
    {
      "type": "modify",
      "old_id": "3c8c2bcd0d810946e13afce56a16b383129ca8c2",
      "old_mode": 33188,
      "old_path": "tests/gm/gmmain.cpp",
      "new_id": "a06962602b1364641fa8424acf73a0ca3c365b21",
      "new_mode": 33188,
      "new_path": "tests/gm/gmmain.cpp"
    }
  ]
}
