)]}'
{
  "commit": "50d7a763ce05f462ac815e5ff7f05656c32ef48f",
  "tree": "a1f083dc36cd1447fd7e856c3248a7cf909ba45e",
  "parents": [
    "ff505d51e194fc017e0566864590da5541b1be72"
  ],
  "author": {
    "name": "Daniel Koch",
    "email": "dgkoch@users.noreply.github.com",
    "time": "Fri Oct 30 15:27:55 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 30 15:27:55 2026 -0400"
  },
  "message": "spirv-val: Require motion blur and position fetch capabilities for SER (#7007)\n\nEnforces the requirements clarified in KhronosGroup/SPIRV-Registry#463\n(KhronosGroup/SPIRV-Registry#462):\n\n- The SER motion instructions and OpHitObjectGetCurrentTime{NV,EXT}\nrequire\n  the RayTracingMotionBlurNV capability.\n- OpHitObjectGetIntersectionTriangleVertexPositionsEXT requires the\n  RayTracingPositionFetchKHR capability.\n\nThese were never enforced. The grammar listed some of them as additional\nenabling capabilities, but any one enabling capability is sufficient,\nand\nthe hit object type already requires the shader invocation reorder\ncapability.\n\nThe check is done up front in the NV and EXT reorder passes, in the same\nstyle as the existing OpHitObjectRecordFromQueryEXT / RayQueryKHR check.\nOpHitObjectRecordHitMotionNV, OpHitObjectRecordHitWithIndexMotionNV and\nOpHitObjectRecordMissMotionNV weren\u0027t otherwise handled in the NV pass.\n\nTests: the existing tests that use these instructions now declare the\nrequired capability and also check the new error when it\u0027s missing. A\ntest\nfor OpHitObjectGetCurrentTimeNV is added.\n\nThis doesn\u0027t depend on the SPIRV-Headers change\n(KhronosGroup/SPIRV-Headers#643). test_val_rstuvw passes against the\ncurrently pinned headers, and all validator test suites pass against the\nupdated grammar.\n\n▎ GenAI disclosure: Draft assisted by Claude (claude-opus-5-5,\nAnthropic, commercial SaaS — Claude Code CLI).\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf83dacf2e94f370c53fbc2a97dce63dfa4d6180",
      "old_mode": 33188,
      "old_path": "source/val/validate_ray_tracing_reorder.cpp",
      "new_id": "b8bf241b717932e1f2f641c4b77eeec7bcebf3a9",
      "new_mode": 33188,
      "new_path": "source/val/validate_ray_tracing_reorder.cpp"
    },
    {
      "type": "modify",
      "old_id": "70710968729826a98161e2f1c1436fa781b61913",
      "old_mode": 33188,
      "old_path": "test/val/val_ray_tracing_reorder_test.cpp",
      "new_id": "b0f1decb65dcb064370a1c8430866e2e10e4a2b3",
      "new_mode": 33188,
      "new_path": "test/val/val_ray_tracing_reorder_test.cpp"
    }
  ]
}
