)]}'
{
  "commit": "b5b9976bdc761087420f7dcc362e3a9ebedf4397",
  "tree": "345cefbe0ebbb241f5915f48d6d663eefd8b7822",
  "parents": [
    "a3e67e6259f205460ce85376da58ea9f5df3aaa1"
  ],
  "author": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Tue Jun 30 15:28:18 2026 +0000"
  },
  "committer": {
    "name": "luigi-rosso",
    "email": "hello@rive.app",
    "time": "Tue Jun 30 15:28:18 2026 +0000"
  },
  "message": "fix: ore buffer per-frame update race (#12976) cc34cea963\n* add ore GM exposing the per-frame buffer update race\n\n* fix Metal ore buffer update race with per-write versioning\n\n* add ore_buffer_update_between_draws goldens for metal d3d11 and gl\n\n* fix Vulkan ore buffer update race with per-write versioning\n\n* fix D3D12 ore buffer update race with per-write versioning\n\n* fix WebGPU ore buffer update race with per-write versioning\n\n* add ore_buffer_update_between_draws goldens for vulkan d3d12 and webgpu\n\n* address review notes and tighten comments for the ore buffer race fix\n\n* fix wgpu partial-update shadow seed and harden ore buffer race edge cases\n\n* add multi-frame ore buffer race regression unit test\n\n* scope ore buffer race test to racy backends, fixing linux headless GL abort\n\n* free manager-less GPUResources on release instead of leaking them\n\n* harden ore buffer orphaning against gpu allocation failure on metal, vulkan and wgpu\n\n* make d3d12 buffer orphaning retry on alloc failure, matching the other backends\n\n* wgpu: don\u0027t cache a failed bind group creation and correct the shadow comment\n\n* wgpu/vulkan: mark UBOs bound only after a successful resolve, and restore the wgpu bind group label\n\n* fail makeBuffer cleanly on gpu allocation failure (metal, vulkan, wgpu)\n\n* harden ore bind group OOM handling and orphan-failure diagnostics across vulkan/metal/wgpu\n\nCo-authored-by: Luigi Rosso \u003cluigi-rosso@users.noreply.github.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f8c5e450ca66c4d1d4d52c0aabb0d84836430445",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "e38af11a122418ebf488c6796759987758a82915",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "85d66759046e76f6067be1bcb31e3ce479aebfa6",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/ore/ore_context_d3d12.hpp",
      "new_id": "b4103ddc14ee39baeee5da517b3631dfa9e21262",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/ore/ore_context_d3d12.hpp"
    },
    {
      "type": "modify",
      "old_id": "a5ebd3123ca31b8fd488628a19ccd709f792635d",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/ore/ore_context_metal.hpp",
      "new_id": "e23a19995f848d3e07d71dc6df32798c4fdaae79",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/ore/ore_context_metal.hpp"
    },
    {
      "type": "modify",
      "old_id": "907b6ed53dea5d4a59e1bdabcd75d006b8c9a0ab",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/ore/ore_context_vulkan.hpp",
      "new_id": "b0a7ce32c5f61d74a058aabc4e6438bef6b0a11a",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/ore/ore_context_vulkan.hpp"
    },
    {
      "type": "modify",
      "old_id": "28ffa7ec042c9f628c6e8754fbd9aebb94e594f2",
      "old_mode": 33188,
      "old_path": "renderer/include/rive/renderer/ore/ore_context_wgpu.hpp",
      "new_id": "048f26c523e50c498cc4d576d488cdb58d1ddb7c",
      "new_mode": 33188,
      "new_path": "renderer/include/rive/renderer/ore/ore_context_wgpu.hpp"
    },
    {
      "type": "modify",
      "old_id": "0cfd0ec8539ade1e52247edb2faaca871b78746f",
      "old_mode": 33188,
      "old_path": "renderer/src/gpu_resource.cpp",
      "new_id": "ad6259461f0ba712500800495c67a6854a01efa5",
      "new_mode": 33188,
      "new_path": "renderer/src/gpu_resource.cpp"
    },
    {
      "type": "modify",
      "old_id": "0305f7a11afbaeac47fce2b4d4f2c7ac4938bd81",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_bind_group_d3d12.hpp",
      "new_id": "927d2390a6ac92cb839c9f288c22598ccc9015c8",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_bind_group_d3d12.hpp"
    },
    {
      "type": "modify",
      "old_id": "ccf33a8c4d3fe37e3653b169234829a49ddb867e",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_buffer_d3d12.cpp",
      "new_id": "a0ce96127187ecb333273995ea8cb4f94534c6a6",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_buffer_d3d12.cpp"
    },
    {
      "type": "modify",
      "old_id": "567944fdec466f814d174bfea81ab54c0f6de3ee",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_buffer_d3d12.hpp",
      "new_id": "8db4b8ccbaad674ba9d9f7475527cad8a80cb346",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_buffer_d3d12.hpp"
    },
    {
      "type": "modify",
      "old_id": "909509e81bfdf520f0b426723685e27f23cfdfc3",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_context_d3d12.cpp",
      "new_id": "a340a2e5e791766c74f03f665e177912c5843428",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_context_d3d12.cpp"
    },
    {
      "type": "modify",
      "old_id": "9f7293835598dad7faac0c39b74ad88b17792f2c",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_d3d12_bind_group_apply.hpp",
      "new_id": "a23dccc33e9e409844fdd97d9196bd55d4c4e1ff",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_d3d12_bind_group_apply.hpp"
    },
    {
      "type": "modify",
      "old_id": "829b6c3592e798fc234b92eda54c9454d19fc307",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/d3d12/ore_render_pass_d3d12.cpp",
      "new_id": "a4caf3e1a74626fcd4ab0b0a018974f77a56100d",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/d3d12/ore_render_pass_d3d12.cpp"
    },
    {
      "type": "modify",
      "old_id": "d779cc022ceeff70ac13c2b0935e915d6f41c5b0",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/metal/ore_bind_group_metal.hpp",
      "new_id": "bf534fde9dc630e6008665bc5e0608ce4aef3cdc",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/metal/ore_bind_group_metal.hpp"
    },
    {
      "type": "modify",
      "old_id": "c16982595c347b76a8d7e1ecd258af432b769bd8",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/metal/ore_buffer_metal.hpp",
      "new_id": "32075d7684a18e41e2a594dd7cd603d832ef4925",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/metal/ore_buffer_metal.hpp"
    },
    {
      "type": "modify",
      "old_id": "c161c00080e50eaf7eb060c560f8323d2d93c570",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/metal/ore_buffer_metal.mm",
      "new_id": "c111702d022d9dd175f5560bfaf0737c6c867390",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/metal/ore_buffer_metal.mm"
    },
    {
      "type": "modify",
      "old_id": "b87209982cc3da1607a7c18890a16794b8dafd24",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/metal/ore_context_metal.mm",
      "new_id": "5d2bdc6a30a9f7a1700e68818620f669e2f53011",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/metal/ore_context_metal.mm"
    },
    {
      "type": "modify",
      "old_id": "5022a9d9ca4c056197e3d6a01ef7312c76d1dd1d",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/metal/ore_render_pass_metal.mm",
      "new_id": "eeec33050ae961d1f6215b7f9981517d5657d976",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/metal/ore_render_pass_metal.mm"
    },
    {
      "type": "modify",
      "old_id": "f09285e8a82f1761a194bf9739daf1ac2f638341",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_bind_group_vulkan.cpp",
      "new_id": "af06ed4bb015c26e0ad2ae55f0510ab5a75c3476",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_bind_group_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "b2aa246197c2ef1577432fd8ee793b6fde8a4c53",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_bind_group_vulkan.hpp",
      "new_id": "41b8c2a2b96422416e608726796e0d399bf2e197",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_bind_group_vulkan.hpp"
    },
    {
      "type": "modify",
      "old_id": "5c872a4355093768533fb80738ba239a443c0b6e",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_buffer_vulkan.cpp",
      "new_id": "822b25fe0106b6dc8b5f4950b11190be9830bbf7",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_buffer_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "94114e1edca4a3e8495c7233d30092eebcf2ba2d",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_buffer_vulkan.hpp",
      "new_id": "7b42252c8ffa29fe9a27c9f1dd076af97f4b054d",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_buffer_vulkan.hpp"
    },
    {
      "type": "modify",
      "old_id": "82d4ab85bc921c3a005ea839c6a2baf714566c23",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_context_vulkan.cpp",
      "new_id": "8aee71cdfe9d08544c33fc26940cbf3b03e20481",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_context_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "6079a2e8334dbd739d041724806fbf6d8cb37c54",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/vulkan/ore_render_pass_vulkan.cpp",
      "new_id": "a618f08ee0736545a7bc2fd12ffc1bc9560140a1",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/vulkan/ore_render_pass_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "39076940182861cb1ea5a09111698dc1de052689",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_bind_group_wgpu.cpp",
      "new_id": "6565eb73b99dcf90bdd1cd8551151c1f81621115",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_bind_group_wgpu.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0a540e1c74f022879c45e2342b0b11527d9d722",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_bind_group_wgpu.hpp",
      "new_id": "ccae9c9ba5530b5c9475b8fe183ce856ab8d0b2b",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_bind_group_wgpu.hpp"
    },
    {
      "type": "modify",
      "old_id": "5f32966d6cea4a58eeaaafbf5e6f8861e24bfe0b",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_buffer_wgpu.cpp",
      "new_id": "a7858d56056dfc8094b3905c32c79325ccbb18dd",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_buffer_wgpu.cpp"
    },
    {
      "type": "modify",
      "old_id": "2cba3747d86b3df3f63ff993c2884d2a335ee17d",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_buffer_wgpu.hpp",
      "new_id": "88fcb2b59f3346a3682fd63e3d4df5f04b0ec44e",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_buffer_wgpu.hpp"
    },
    {
      "type": "modify",
      "old_id": "b5634ce9d315d0b2bb4165f06da66c520f152f39",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_context_wgpu.cpp",
      "new_id": "e0ccfd216e516938e4553e4fd36811f3f0306fc8",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_context_wgpu.cpp"
    },
    {
      "type": "modify",
      "old_id": "fb8b20b599493048ff5829e830baa6d7ee4789df",
      "old_mode": 33188,
      "old_path": "renderer/src/ore/wgpu/ore_render_pass_wgpu.cpp",
      "new_id": "1681cffb94445de4c91da4da19f1e97f03812483",
      "new_mode": 33188,
      "new_path": "renderer/src/ore/wgpu/ore_render_pass_wgpu.cpp"
    },
    {
      "type": "modify",
      "old_id": "36dc0ce0b491818eba78eaa5f7ae14892644d1e4",
      "old_mode": 33188,
      "old_path": "tests/gm/gmmain.cpp",
      "new_id": "ae21375fde4b54ce292479c58a67b8d435991715",
      "new_mode": 33188,
      "new_path": "tests/gm/gmmain.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d64ec096df902029f4e82513f2af02f362cfb6ab",
      "new_mode": 33188,
      "new_path": "tests/gm/ore_buffer_update_between_draws.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c8bda2066bd3932a5f39960c4a69598a54908bf",
      "new_mode": 33188,
      "new_path": "tests/gm/ore_buffer_update_between_draws.mm"
    },
    {
      "type": "modify",
      "old_id": "79b5bf46490571e3a25d00e22e31833ac980975e",
      "old_mode": 33188,
      "old_path": "tests/unit_tests/premake5.lua",
      "new_id": "8c24978f970748157d56e61ad02a038595b2e1b6",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/premake5.lua"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "783f32ea4a9c22ec3a0aa4026307dd2d985ceba2",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/renderer/ore_buffer_race_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f448fb3b002bbfcb379c3389b5722ca103f44f66",
      "new_mode": 33188,
      "new_path": "tests/unit_tests/renderer/ore_buffer_race_test.mm"
    }
  ]
}
