)]}'
{
  "commit": "83463115d4e048c8451e9a25a39fa694e9e1d65f",
  "tree": "ad5d6fda30e0701501e3a092d7c4a8b1e0e3674e",
  "parents": [
    "41b7748432efe3163e0ca3d586d88ba4dd6fb22f"
  ],
  "author": {
    "name": "Nicolas Capens",
    "email": "capn@google.com",
    "time": "Tue Jun 12 23:55:16 2018 -0400"
  },
  "committer": {
    "name": "Nicolas Capens",
    "email": "nicolascapens@google.com",
    "time": "Tue Jun 26 19:29:19 2018 +0000"
  },
  "message": "Always create an OpenGL ES 3.0 context.\n\nThe EGL spec allows that on context creation, a newer, compatible\nversion is returned. OpenGL ES 3.0 is stated to be backward compatible\nwith OpenGL ES 2.0, so we can stop creating a context that is limited to\nOpenGL ES 2.0 features, and always return an OpenGL ES 3.0 context.\n\nThis simplifies our code and maintenance a bit and reduces the risk of\nincorrect validation.\n\nNote that Appendix F of the OpenGL ES 3.0 specification lists changes\nin behavior that aren\u0027t entirely backward compatible with OpenGL ES 2.0:\n* OpenGL ES 3.0 requires that all cube map filtering be seamless. OpenGL\n  ES 2.0 specified that a single cube map face be selected and used for\n  filtering. See section 3.8.9.1.\n* OpenGL ES 3.0 specifies a zero-preserving mapping when converting back\n  and forth between signed normalized fixed-point values and floating-\n  point values. OpenGL ES 2.0 specified a mapping by which zeros are not\n  preserved. See section 2.1.6.\n* OpenGL ES 3.0 requires that framebuffer objects not be shared between\n  contexts. OpenGL ES 2.0 left it undefined whether framebuffer objects\n  could be shared. See appendix D.\n\nAdditional differences can stem from new extensions being exposed (e.g.\nGL_EXT_color_buffer_float), and framebuffer configurations that are\nnewly supported or no longer supported (in particular we allowed\nseparate depth and stencil attachments, which OpenGL ES 3.0 expressly\ndisallows).\n\nSee also https://gitlab.khronos.org/opengl/API/issues/82\n\nBug swiftshader:45\n\nChange-Id: I90d72698d509b4f03263edcf7c67e44fcef0beb6\nReviewed-on: https://swiftshader-review.googlesource.com/19388\nTested-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nReviewed-by: Alexis Hétu \u003csugoi@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6b422accb55ce676c0928fb3e97c9b4366481e4c",
      "old_mode": 33188,
      "old_path": "src/Common/Version.h",
      "new_id": "4dbc92f0d866e634d8f23c80cd0acce07c41a423",
      "new_mode": 33188,
      "new_path": "src/Common/Version.h"
    },
    {
      "type": "modify",
      "old_id": "343e4ced0f688d446061d9389b3c26cf90b44f96",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libEGL/Display.cpp",
      "new_id": "0b2c6ddfba7013591f3671ea14c831508b6ab043",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libEGL/Display.cpp"
    },
    {
      "type": "modify",
      "old_id": "a479f18b0946fde47685684bb33915a0a44d0946",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Context.cpp",
      "new_id": "57fa3540fac448bcc53a5e69f2e61765379ba5d8",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Context.cpp"
    },
    {
      "type": "modify",
      "old_id": "458fa0483dadff378bb8ea6e98a9c61806919823",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Context.h",
      "new_id": "743ec73bf9570bfa83550fe97e4defd3422a731f",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Context.h"
    },
    {
      "type": "modify",
      "old_id": "eaa7615bca7bb93d525c54d5da2a972cf30d1188",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Framebuffer.cpp",
      "new_id": "f466de47a6035a7c0df4007f98bc5cc15f157f7b",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Framebuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "cbbb5230c9a3b289f33a20d9d227397db9d602fa",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Shader.cpp",
      "new_id": "355e6ccb97ceb18b92e2054c400d0da20a75eee5",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Shader.cpp"
    },
    {
      "type": "modify",
      "old_id": "a218cd3cdd6333f9036b4b4ee745c4b3876ea6eb",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/Texture.cpp",
      "new_id": "dae52ee9162bf60d9941efc0fe2441aef3b3fcea",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/Texture.cpp"
    },
    {
      "type": "modify",
      "old_id": "378f9fe43a67667bd240abf92a67cb37d20441ec",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/entry_points.cpp",
      "new_id": "fa52a8bae035a8e41234a93c4726a95b01765044",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/entry_points.cpp"
    },
    {
      "type": "modify",
      "old_id": "e48d1fddca099000adda53e403279a0f70b38c17",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/libGLESv2.cpp",
      "new_id": "b6d471817cb2012627e4e1fdb5441bbae4ac8346",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/libGLESv2.cpp"
    },
    {
      "type": "modify",
      "old_id": "0c617c9ef16044920089fbb5fa1dd5005595cab4",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/libGLESv2.hpp",
      "new_id": "cb16cafa4b6731ab0064eecf8517e81883ee3a11",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/libGLESv2.hpp"
    },
    {
      "type": "modify",
      "old_id": "5d35d06eaee2dd8200e477eac3841550bcac2efd",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/libGLESv3.cpp",
      "new_id": "adb24d7f8078c9bb3b84b1256b0eaec4c7dd14e5",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/libGLESv3.cpp"
    },
    {
      "type": "modify",
      "old_id": "b863f1dbe9dabe4c98bca9d7d7291b8bb1ed1d5a",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/utilities.cpp",
      "new_id": "c531b268832cd1b6121aafd2b30105d3ac1a379a",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/utilities.cpp"
    },
    {
      "type": "modify",
      "old_id": "f0fdb4bd2be20e52fc4899c1c0b43b0d691d78a8",
      "old_mode": 33188,
      "old_path": "src/OpenGL/libGLESv2/utilities.h",
      "new_id": "00f577e59f7e1beb944bdfa985694e1adde693c3",
      "new_mode": 33188,
      "new_path": "src/OpenGL/libGLESv2/utilities.h"
    },
    {
      "type": "modify",
      "old_id": "40f1c59644bbe459e49ac10fa12abe59b80abfbe",
      "old_mode": 33188,
      "old_path": "tests/unittests/unittests.cpp",
      "new_id": "ba50b0d4a0e5017215612c96ac1d7726bb4dc4be",
      "new_mode": 33188,
      "new_path": "tests/unittests/unittests.cpp"
    }
  ]
}
