)]}'
{
  "commit": "1ee20bc96c1d77e36e1e380b690408bd36165159",
  "tree": "7c8f0967788b17ec3e392729b5afc56808baacbf",
  "parents": [
    "0116f21d29003881bf3b4fe5e5565b0d2b82c1a3"
  ],
  "author": {
    "name": "JoshJRive",
    "email": "hello@rive.app",
    "time": "Tue May 05 17:46:06 2026 +0000"
  },
  "committer": {
    "name": "JoshJRive",
    "email": "hello@rive.app",
    "time": "Tue May 05 17:46:06 2026 +0000"
  },
  "message": "fix(vulkan): Resolve driver crash on some mobile GPUs (#12403) 1deebb93aa\nThe tiled gms exposed a driver crash on some specific older mobile devices, which was due to the (valid) way we were binding samplers.\n\nIn order to work around this issue, in Vulkan the tesselate, atlas, grad, and image textures are now bound as COMBINED_IMAGE_SAMPLER so that the \"immutable sampler\" descriptor set goes away, as well as IMAGE_SAMPLER_IDX since now on (almost) all backends they\u0027re the same index (like with the other textures).\n\nWebGPU, unfortunately, does not support combining samplers and textures into the same binding within a binding set, so it still uses separate indices for them (and a separate binding set for the immutable shaders like Vulkan used to), so it required some special-casing in the shaders (and adding some webgpu-specific shader compilations).\n\nThis also removes SAMPLER_MIPMAP which was unused, and renames TARGET_VULKAN to TARGET_SPIRV since that\u0027s a more-accurate name\n\nCo-authored-by: Josh Jersild \u003cjoshua@rive.app\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c3c51a286db756c97c80e99da764864c9adfcb0a",
      "old_mode": 33188,
      "old_path": ".rive_head",
      "new_id": "da90d44e0582f239028694b67ca0f309c192666c",
      "new_mode": 33188,
      "new_path": ".rive_head"
    },
    {
      "type": "modify",
      "old_id": "6efea8df44e9558eadb6f9b7921a2c1eeb0510b1",
      "old_mode": 33188,
      "old_path": "renderer/src/d3d11/render_context_d3d_impl.cpp",
      "new_id": "eb3a942d29b0a5d03810a841ce70daa69619ee79",
      "new_mode": 33188,
      "new_path": "renderer/src/d3d11/render_context_d3d_impl.cpp"
    },
    {
      "type": "modify",
      "old_id": "d4098b07a17226bae9fbdd8d89dafc1a553a2c18",
      "old_mode": 33188,
      "old_path": "renderer/src/metal/render_context_metal_impl.mm",
      "new_id": "9448d5a8b7f2c43a480eb277d5b327e2b2afc549",
      "new_mode": 33188,
      "new_path": "renderer/src/metal/render_context_metal_impl.mm"
    },
    {
      "type": "modify",
      "old_id": "3204aa8f5ad5af6332e2d9e70005e37854f72524",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/Makefile",
      "new_id": "9634c3816876067995403e24bb82060fc59785b1",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/Makefile"
    },
    {
      "type": "modify",
      "old_id": "ee7c1828f41a7bcfa2e84c86db03a8a5afdd9daf",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/blit_texture_as_draw.glsl",
      "new_id": "fc4c76f87d0865662682198238cf020d59b5450d",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/blit_texture_as_draw.glsl"
    },
    {
      "type": "modify",
      "old_id": "7000404b38d7fdecf918e41981434ceea89fc874",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/constants.glsl",
      "new_id": "3f8837df99898fbd6c62bb2a53c55d2d86b758e9",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/constants.glsl"
    },
    {
      "type": "modify",
      "old_id": "ea04d873cdef7ab72f422c613d79ae8893797350",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/d3d/root.sig",
      "new_id": "d0e66dc8e27b4d05cadea138d62d1afaf7f74ad4",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/d3d/root.sig"
    },
    {
      "type": "modify",
      "old_id": "b8179b772d04fe5cde3e41b0bfd1a822ea0b13fa",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/draw_mesh.frag",
      "new_id": "85aa3981b9119d7a33e4331046c9b472e6a49247",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/draw_mesh.frag"
    },
    {
      "type": "modify",
      "old_id": "98f127896819a5803ddeedd388edace061563363",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/draw_msaa_object.frag",
      "new_id": "8df178ee2228ab6c8d9d1102faa9da004ba62939",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/draw_msaa_object.frag"
    },
    {
      "type": "modify",
      "old_id": "d69f1ca4efff4622feb8f506a6f49061f193adec",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/draw_path.vert",
      "new_id": "211c0c3687bb5de615394603c5f483b4da4c155a",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/draw_path.vert"
    },
    {
      "type": "modify",
      "old_id": "4dafa20b7fbb25b60fcdb0a85e4b0a0d623affd9",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/draw_path_common.glsl",
      "new_id": "3ea09394807420696151c6c4fffdb9a0a37e63fc",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/draw_path_common.glsl"
    },
    {
      "type": "modify",
      "old_id": "1996aa4890e491a4a48ac5717e6e8c437bf198ce",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/glsl.glsl",
      "new_id": "0de50e8c9cb1a2ca12543c03e4b34ec7a6f58e69",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/glsl.glsl"
    },
    {
      "type": "modify",
      "old_id": "5a40b80b39044111fb8ee6b37001e0807b2944ca",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/hlsl.glsl",
      "new_id": "f45d6ff118c451a476dba502ed2aab70fcfd19b9",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/hlsl.glsl"
    },
    {
      "type": "modify",
      "old_id": "e6e4b85d8bccc6b4708a52c67d9eccf92120133a",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/metal.glsl",
      "new_id": "6a2500dd8f0f4b210217a7cc85f5074d10863b38",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/metal.glsl"
    },
    {
      "type": "modify",
      "old_id": "35ae382b55394a69526f777b22434b2855d4ff51",
      "old_mode": 33188,
      "old_path": "renderer/src/shaders/rhi.glsl",
      "new_id": "769083e4fe8553ef4e87141ec00f7e7388d1d933",
      "new_mode": 33188,
      "new_path": "renderer/src/shaders/rhi.glsl"
    },
    {
      "type": "modify",
      "old_id": "554f502b2d494707af995e53ffdc0eea3c727759",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/draw_pipeline_layout_vulkan.cpp",
      "new_id": "6b54fd6d5156a8f717bbb333eef0800bfbe46e3a",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/draw_pipeline_layout_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "98fae5e76f09478a6706ead58f1df2cc40c18104",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/pipeline_manager_vulkan.cpp",
      "new_id": "dd2c6992ae5af2aae67231e613ed87c9e0943889",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/pipeline_manager_vulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "14ba00efb8ba7c0de572c62a44ebe86b0e16036c",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/pipeline_manager_vulkan.hpp",
      "new_id": "68762de64d23fb339394b19d516c682244e884b4",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/pipeline_manager_vulkan.hpp"
    },
    {
      "type": "modify",
      "old_id": "1e8e2dc5904cd35b1a46e72173e6248dc9c1592a",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/render_context_vulkan_impl.cpp",
      "new_id": "f56904c86fa0d831cd2e1a9385cbd3a306279286",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/render_context_vulkan_impl.cpp"
    },
    {
      "type": "modify",
      "old_id": "7869445147de166bffab933302bea4319fd7861d",
      "old_mode": 33188,
      "old_path": "renderer/src/vulkan/vkutil.cpp",
      "new_id": "b88ab7087b69a9e0fc19ff4172ee0d46b2534ad3",
      "new_mode": 33188,
      "new_path": "renderer/src/vulkan/vkutil.cpp"
    },
    {
      "type": "modify",
      "old_id": "93c9d0fc12cfe6308af80efda2365680b6d8eaa3",
      "old_mode": 33188,
      "old_path": "renderer/src/webgpu/render_context_webgpu_impl.cpp",
      "new_id": "7c8aca2ec2504549a6d17ff91ce775ae94e9078d",
      "new_mode": 33188,
      "new_path": "renderer/src/webgpu/render_context_webgpu_impl.cpp"
    }
  ]
}
