)]}'
{
  "commit": "3621426accc8f74790732d9f5da98a27a01f8504",
  "tree": "32ba3c1a2ea1b7432c70827c9351f9dcec2f2976",
  "parents": [
    "1887a104cc6ebd8314487886215d853aab556889"
  ],
  "author": {
    "name": "Brandon DeRosier",
    "email": "bdero@google.com",
    "time": "Sun May 10 02:57:14 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun May 10 09:57:14 2026 +0000"
  },
  "message": "[Impeller] Vulkan: don\u0027t drop user-supplied viewport X, Y, and depth range (#185886)\n\nFixes #185885\n\n`RenderPassVK::SetViewport` builds a `vk::Viewport` via chained setters\nthat never invoke `.setX(...)`. Because `vk::Viewport()`\ndefault-initializes `x` to `0.0f`, the user\u0027s X is silently dropped. Y\nis also effectively dropped (the existing code calls\n`setY(rect.GetHeight())` to perform the negative-height Y-flip, never\nreading `rect.GetY()`), and `minDepth` / `maxDepth` are hardcoded to\n0/1, ignoring the user\u0027s `DepthRange`.\n\nThe bug has been present since `e7be989feb1c` (\"Reland: Encode directly\nto command buffer.\", 2024-01-19).\n\n## Goldens\n\nOnce this lands, the existing Vulkan golden for\n`flutter_gpu_test_viewport.png` will need to be re-uploaded on Skia Gold\nto match the corrected output. The `flutter_gpu_test_viewport` test in\n`gpu_test.dart` is currently disabled on GLES (re-enabled in #185879);\nboth backends will produce the same correct render after this PR plus\n#185879 land.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6c457c240fc006b3145df0383c442f81b77f452",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/gles/render_pass_gles_unittests.cc",
      "new_id": "2a0ccf087683c499fd4ccee0a604fe7be1fba70f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/gles/render_pass_gles_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "0e9e2da3bf743e69771d6bfdb7c9df6dfdbb3d99",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc",
      "new_id": "c7faee4b44722abe8ab07235c845202509902750",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk.cc"
    },
    {
      "type": "modify",
      "old_id": "e692f51beb8c1ebbaeb780027b34873d6d09ad5a",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk_unittests.cc",
      "new_id": "b2e73a6072be99a9810f7d9adf6995be728ec87f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/render_pass_vk_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "8a7aee7a2419718b230cbbecacf907fee613183a",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/test/mock_vulkan.cc",
      "new_id": "13450e60663d2518dbb91cc0472c44878706f2db",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/test/mock_vulkan.cc"
    },
    {
      "type": "modify",
      "old_id": "eb82a8e8325abcb4797cc7d6c03a90271977d0ed",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/test/mock_vulkan.h",
      "new_id": "a87fc89a70a2a05396bd430458c50174e4bd7e96",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/test/mock_vulkan.h"
    }
  ]
}
