)]}'
{
  "log": [
    {
      "commit": "7a577450e536aa1e99f229a0cb3d3531c82e8a8d",
      "tree": "324da642f325123cf62f9c688f481614942a9d1e",
      "parents": [
        "1a3c5456dd9e05642c3d0f388102c511e80b5108"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 04 23:41:38 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 18 23:54:08 2022 +0000"
      },
      "message": "Push HLG OOTF down to libtonemap.\n\nUsage of current display brightness may be vendor-configured when the\ndisplay brightness is very low, so keep the OOTF in libtonemap as part\nof the reference implementation.\n\nConcretely, this means that:\n* The BT2100 recommended OOTF for HLG-\u003eoutput format is moved from\n  ScaleLuminance in libshaders to be the first part of the tonemapping\n  operator in libtonemap\n* The inverse OOTF for input format-\u003eHLG is moved from\n  NormalizeLuminance in libshaders to the end of the tonemapping operator\n  in libtonemp\n* Current display brightness is only taken into account in the default\n  tonemapping for Android T. The historic tonemapper does not take into\n  account current display brightness, as it treats the \"nominal peak\n  brightness\" of the display as 1000 nits instead of the current\n  brightness.\n\nAlso add a default lower-bound for using the current display brightness,\nbecause not having a bound looks really terrible on existing shipping\ndevices\n\nBug: 208933319\nTest: builds\nTest: HLG test video looks okay\nTest: HDR10 test video didn\u0027t break\nChange-Id: I4f489c68f635a8ecc4d497b98c32e91c297d0765\n"
    },
    {
      "commit": "1a3c5456dd9e05642c3d0f388102c511e80b5108",
      "tree": "d22652abd251e4be763ba8f21df8c486bd97c957",
      "parents": [
        "63d679d2eb41ca10dedfb14487beae1b4c38319a"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 04 22:44:51 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Mar 17 17:54:17 2022 +0000"
      },
      "message": "Add AHardwareBuffer as a tone-mapping input.\n\nThis is to allow for partners to take gralloc4 metadata into account for\ntheir tone-mapping operation.\n\nBug: 212641375\nTest: builds\nChange-Id: Id20291fc1a1a0350a7fff0a8e703f242c68d2b28\n"
    },
    {
      "commit": "196b0f209fd0cbc9133e6d87faf99f3faf2fb22a",
      "tree": "c40c76b990064013474b0fa5a5b9846877b428ca",
      "parents": [
        "aedf10c2d5dbb93a75988920dc95f7afa7c631ab"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 04 22:13:48 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Mar 17 00:03:12 2022 +0000"
      },
      "message": "Tweak libtonemap\u0027s CPU interface to support batching.\n\nThis is in response to feedback that utilizing the tonemap api to\ngenerate a LUT may require more CPU cycles as common parameters\ndescribing the tone-mapping curve must be regenerated. Support this by\ntaking in a list of colors, rather than a single color, so that a LUT\ncan be one-shot computed.\n\nBug: 200310159\nTest: librenderengine_test\nChange-Id: I4b9ef8ef6bd95eb25aedd2b16268dc6e58828208\n"
    },
    {
      "commit": "317c3f076d0940fc85c0a17ce830c4ff698e0124",
      "tree": "066a2aeed668123f807fd820efc61831fea7f230",
      "parents": [
        "27dbab9bc78fdae8b43d25609553bde16f07fd4a"
      ],
      "author": {
        "name": "Long Ling",
        "email": "longling@google.com",
        "time": "Wed Feb 02 14:09:24 2022 -0800"
      },
      "committer": {
        "name": "Long Ling",
        "email": "longling@google.com",
        "time": "Thu Mar 03 23:20:05 2022 +0000"
      },
      "message": "export libtonemap headers\n\nlibtonemap could be overridden by the vendor counterpart. The\nheaders should come from framework.\n\nBug: 200310159\nChange-Id: I2685903543aac8c2d02fee2deba2c40dbb2f287c\n"
    },
    {
      "commit": "5a49372252e8ef08387800effe6d39196f274027",
      "tree": "00733a2feb02dd8b067cca7730a3f8d5286a570a",
      "parents": [
        "d029092f6bdba62f9fc9d6e0c180b0bb0b0d1111"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Jan 26 16:43:02 2022 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Feb 01 00:25:41 2022 +0000"
      },
      "message": "Use BT2100 OOTF for HLG...\n\n...which it turns out we already do, except we apply a tone-map for\nHDR10 after scaling the luminance. Don\u0027t apply the HDR10 tone-map, and\ninstead linearly normalize to max display luminance.\n\nFurthermore, adjust the gamma used in the default HLG OOTF in\nlibshaders to take into account current display luminance according to\nthe BT2100 spec, which says that the OOTF gamma should be adjusted if\nthe effective luminance differs from 1000 nits\n\nBug: 208933319\nTest: librenderengine_test\nTest: libtonemap_test\nTest: HLG and PQ test videos on youtube\nChange-Id: I622096ad387420ce4769f6f080b8756cd57baa7d\n"
    },
    {
      "commit": "b21d94e6b46a269e9960118c7c8d61ce984aea3e",
      "tree": "3b34cb2634b169182c126dcc3601852d0c07f453",
      "parents": [
        "d4c6a656d265504207e79fde2fcd988548cf4c37"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Jan 13 17:44:10 2022 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Jan 14 14:00:54 2022 -0800"
      },
      "message": "Supply extra brightness parameters to RenderEngine\n\nA future CL will update the HLG-\u003eSDR tonemapping algorithm to consider\ncurrent display brightness, as recommended by BT2100.\n\nIn preparation for this:\n* Fix an issue where maxLuminance was using the current display\nbrightness if supplied from DisplayManager instead of the max luminance\n* Add currentDisplayBrightnessNits to the RenderEngine interface to\nsupport the current brightness\n* Plumb current display brightness all the way to libtonemap, where\nnothing uses it (yet)\n\nBug: 206035964\nTest: libcompositionengine_test\n\nChange-Id: I3e9f0fdb23fbb08c50e4733e5a16bcd20948d750\n"
    },
    {
      "commit": "4049b53017f5cfdac2c1afecc6d7b4571dd4dce6",
      "tree": "8e3324e726c070bd9e9f81877955219dbf2015f6",
      "parents": [
        "5184f413900601d737488eaf9c53dcfe8ae39d16"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Oct 15 20:59:33 2021 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Nov 18 12:33:04 2021 -0800"
      },
      "message": "Add CPU implementation for tone-mapping curves.\n\nThis allows for library implementations that do not wish to place a\ndependency on a GPU driver to build a lookup table.\n\nA secondary use-case, which is included in this CL, is to allow for\nbuilding unit-tests for checking the validity of the tone-mapping curve.\nSee the newly added test in RenderEngineTest which validates the PQ\ntone-mapping curve by checking grey values.\n\nBug: 200310159\nTest: librenderengine_test\nChange-Id: Ic765485c22c53b4dc58a2bc8db42fd51ac7f2eea\n"
    },
    {
      "commit": "5184f413900601d737488eaf9c53dcfe8ae39d16",
      "tree": "1f17dd70471d128ca12026350395b5c82ad3122f",
      "parents": [
        "8b4ab814aed06a4afc22831390e0739c59f811ed"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Oct 14 18:13:49 2021 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Nov 15 15:57:48 2021 -0800"
      },
      "message": "Add experimental tonemapper for Android 13\n\nThis has the following purposes:\n\n1. Demonstrates the ability of libtonemap to swap out tonemapping curves\nwithout invasive changes into dependent systems such as RenderEngine.\nNotably, the only production code modified in this patch was\ntonemap.cpp.\n2. Assume a reasonable max content luminance. Some content may fail to\nset a reasonable luminance level as part of their HDR10 metadata.\n3. Track greylevels as piecewise linear interpolations, rather than\npiecewise hermitians. This has the effect of smoothly converging to max\ndisplay luminance which can reduce banding effects in highights.\n\nBug: 200310159\nTest: libtonemap_test\nTest: HDR youtube\nChange-Id: I08990aa402d6e503885e81397041f22957232079\n"
    },
    {
      "commit": "465b2967f33f18e5e584dc8d18ce451b4590b331",
      "tree": "fa3ae5b3167e1872bca4758571bf427e06de0e52",
      "parents": [
        "c9963a2d6e1b8751541fa395115311bd50b90b87"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Oct 08 16:22:21 2021 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Nov 08 16:51:29 2021 -0800"
      },
      "message": "Add libtonemap library\n\nlibtonemap is a vendor-available static library which provides a single\npoint where the definitions of tone mapping operations can be shared.\nThis faciliates sharing tone mapping operations between system libraries\nand vendor libraries without making invasive changes to the framework.\n\nThe canonical use-case for this library is matching the tone-mapping\ncurves between DPU composition and GPU composition for the display.\nAlthough not done in this patch, this library may be linked into\nlibhwui, for propagating the tone mapping operation into TextureView.\n\nThe initial design for this library is to expose a Tonemapper class,\nwhich can return:\n1. A shader string describing the tonemapper operation, which may be\ninserted into any other shader string.\n2. A list of shader uniforms for binding to the final shader\n\nA later patch will allow for computing the tone mapping curve on the\nCPU, which is useful for unit testing, and optionally for generating a\nLUT without firing up the GPU.\n\nBug: 200310159\nIgnore-AOSP-First: new internal-only lib\nTest: libtonemap_test\nChange-Id: I7f1353e0f456ec5f371e31754b2965c9b44aa125\n"
    }
  ]
}
