)]}'
{
  "commit": "324bdfed069236dad85a49e1baace6b2fa52bc8c",
  "tree": "3de47f38e29f692ba86d4a549b52730143a5adb0",
  "parents": [
    "c39e7c7cc8844e2b75bdc7e58ea5e1c68b318ad9"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Tue Jul 30 17:27:56 2019 -0400"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "nicolascapens@google.com",
    "time": "Tue Jul 30 23:20:09 2019 +0000"
  },
  "message": "Use a finite maxSamplerLodBias limit\n\nWe previously set this device limit to infinity to avoid having to\nclamp the sum of the sampler and shader provided bias values to the\n[-maxSamplerLodBias, maxSamplerLodBias] range. Unfortunately infinity\nis not supported/allowed by JSON and the android.graphics.cts.VulkanFeaturesTest\ntests which parse the output of the vkjson tool produce a failure.\n\nThis change works around it by setting maxSamplerLodBias to a finite\nvalue (15, which is very common according to https://vulkan.gpuinfo.org/),\nand performing the clamping required by Vulkan 1.1.117 section 15.6.7.\nFortunately this cost only has to be incurred when an optional Bias\noperand is used in the SPIR-V image sampling instruction. When an Lod\noperand is used, which is mutually exclusive with Bias because the\nformer is for explicit-lod instructions and the latter for implicit-lod,\nno clamping is required because the explicit LOD is not part of this\nclamping equation and the sampler LOD bias must already be clamped as\nspecified by the spec: \"The absolute value of mipLodBias must be less\nthan or equal to VkPhysicalDeviceLimits::maxSamplerLodBias\".\n\nBug: b/138670766\nChange-Id: Iebd6a1fef1c993ec86ac8cc38f8d9a992ba9bc47\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/34510\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nReviewed-by: Ben Clayton \u003cbclayton@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "85c378357fd50ddc548f5cafef3e8c8df1ec3b07",
      "old_mode": 33188,
      "old_path": "src/Pipeline/SamplerCore.cpp",
      "new_id": "d832bcbae4f68782d2d0c9df93fa25b0c81c921d",
      "new_mode": 33188,
      "new_path": "src/Pipeline/SamplerCore.cpp"
    },
    {
      "type": "modify",
      "old_id": "157f34e28a6824c72b91dd021cea8374e706444d",
      "old_mode": 33188,
      "old_path": "src/Vulkan/VkConfig.h",
      "new_id": "8d0b57dca70411c78ba20dc4e5f3c262f287d3fd",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkConfig.h"
    },
    {
      "type": "modify",
      "old_id": "323d64462dbd6b4aff2d4dc03f744b1ba6c62ebd",
      "old_mode": 33188,
      "old_path": "src/Vulkan/VkPhysicalDevice.cpp",
      "new_id": "14476a57ca48cdb49e75ce317a3a61665c280a85",
      "new_mode": 33188,
      "new_path": "src/Vulkan/VkPhysicalDevice.cpp"
    }
  ]
}
