)]}'
{
  "commit": "e70f224c1938af208b64b02c5cec27889fefcaec",
  "tree": "a247c81526e3b169158693c151efda3c2bc073e9",
  "parents": [
    "6991b8f2a3193397461104a27be417addb8d032b"
  ],
  "author": {
    "name": "Marek Olšák",
    "email": "maraeo@gmail.com",
    "time": "Tue Oct 25 01:38:45 2011 +0200"
  },
  "committer": {
    "name": "Dave Airlie",
    "email": "airlied@redhat.com",
    "time": "Sun Nov 20 07:53:13 2011 +0000"
  },
  "message": "drm/radeon/kms: add a CS ioctl flag not to rewrite tiling flags in the CS\n\nThis adds a new optional chunk to the CS ioctl that specifies optional flags\nto the CS parser. Why this is useful is explained below. Note that some regs\nno longer need the NOP relocation packet if this feature is enabled.\nTested on r300g and r600g with this flag disabled and enabled.\n\nAssume there are two contexts sharing the same mipmapped tiled texture.\nOne context wants to render into the first mipmap and the other one\nwants to render into the last mipmap. As you probably know, the hardware\nhas a MACRO_SWITCH feature, which turns off macro tiling for small mipmaps,\nbut that only applies to samplers.\n(at least on r300-r500, though later hardware likely behaves the same)\n\nSo we want to just re-set the tiling flags before rendering (writing\npackets), right? ... No. The contexts run in parallel, so they may\nset the tiling flags simultaneously and then fire their command streams\nalso simultaneously. The last one setting the flags wins, the other one\nloses.\n\nAnother problem is when one context wants to render into the first and\nthe last mipmap in one CS. Impossible. It must flush before changing\ntiling flags and do the rendering into the smaller mipmaps in another CS.\n\nYet another problem is that writing copy_blit in userspace would be a mess\ninvolving re-setting tiling flags to please the kernel, and causing races\nwith other contexts at the same time.\n\nThe only way out of this is to send tiling flags with each CS, ideally\nwith each relocation. But we already do that through the registers.\nSo let\u0027s just use what we have in the registers.\n\nSigned-off-by: Marek Olšák \u003cmaraeo@gmail.com\u003e\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7fdfa8ea7570654b6d3faf70e410e5ff6b9554d7",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/evergreen_cs.c",
      "new_id": "38e1bda73d33be343058b1f63f9349ca7f80e3f1",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/evergreen_cs.c"
    },
    {
      "type": "modify",
      "old_id": "400b26df652a8305c04d58f46db998672646b150",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/r300.c",
      "new_id": "c93bc64707e1d6e3b59a5e2a7fe632b19e6efe99",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/r300.c"
    },
    {
      "type": "modify",
      "old_id": "0a2e023c15570ffdbd8c78280ac84123b6b17034",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/r600_cs.c",
      "new_id": "cb1acffd24303aca4c49b11e62b74719a527d51b",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/r600_cs.c"
    },
    {
      "type": "modify",
      "old_id": "fc5a1d642cb509236db4c57c5ac64472c83ebee4",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon.h",
      "new_id": "8227e76b5c70a1d1b97bcac741f1559272a2250e",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon.h"
    },
    {
      "type": "modify",
      "old_id": "ccaa243c1442f8fe045df65af570e059baf11fb0",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_cs.c",
      "new_id": "29afd71e0840a0b9995b5e30027577adeec45b92",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_cs.c"
    },
    {
      "type": "modify",
      "old_id": "a0b35e9094896cf90202d8f54effd942b0398054",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_drv.c",
      "new_id": "71499fc3daf524f8b719692e9ff7aacb6219b2e9",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_drv.c"
    },
    {
      "type": "modify",
      "old_id": "b65be6054a183efe7b0ea5daa7c8afd7b1aa6a72",
      "old_mode": 33188,
      "old_path": "include/drm/radeon_drm.h",
      "new_id": "be94be6d6f17afdd027b3cf61679c73651ac6f9e",
      "new_mode": 33188,
      "new_path": "include/drm/radeon_drm.h"
    }
  ]
}
