{"push_id":2172600374,"size":33,"distinct_size":29,"ref":"refs/heads/font-data","head":"c04fb74b1bbbbcd12c747d533adc12d7a9948c14","before":"9517fe9e1320fb978f5d4df172143c0ebb9e2f08","commits":[{"sha":"b5fc728a13beb104635df7a0b2ecfca990482f24","author":{"name":"Martin Robinson","email":"05a80fb5a28f192eb2aa8659935b96fd40eb0a45@igalia.com"},"message":"Reserve appropriate capacity for GPU Frame data\n\nThis is a very minor optimization, but I did see this allocation show\nup on a callgrind profile.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/b5fc728a13beb104635df7a0b2ecfca990482f24"},{"sha":"341e620ea416b87b1e8e5b23b31c2039c271b825","author":{"name":"Nicolas Silva","email":"f3f7207790b1a8f885039dcc3eaea566442fb0b4@fastmail.com"},"message":"Add a debug overlay showing the pipeline epochs of the current frame.","distinct":false,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/341e620ea416b87b1e8e5b23b31c2039c271b825"},{"sha":"f6783f1b2a94743e7b2ecb67b3fdb462d717b322","author":{"name":"Martin Robinson","email":"05a80fb5a28f192eb2aa8659935b96fd40eb0a45@igalia.com"},"message":"Invert ClipScrollNode transformation in the vertex shader\n\nThis allows us to offload fairly expensive CPU work to the vertex\nshader and only when get_layer_pos is called. Instead, we are able\nto only check the determinant and then only for reference frames. This\nseems like it would only be a problem if many clips are sharing the\nsame ClipScrollNode, which is an unusual situation.\n\nIn this change, we also stop doing unnecessary work on ClipScrollNodes\nonce they have an uninvertible parent or we know one of the parents is\nclipped out entirely.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/f6783f1b2a94743e7b2ecb67b3fdb462d717b322"},{"sha":"2e80674164036808856dd557be0dcd150276783a","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2141 - nical:epoch-overlay, r=glennw\n\nAdd a debug overlay showing the pipeline epochs of the current frame.\n\nHandy when debugging APZ jumpiness, otherwise there is no way to correlate logging with a particular frame.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2141)\n<!-- Reviewable:end -->","distinct":false,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/2e80674164036808856dd557be0dcd150276783a"},{"sha":"c9e644c1699b0aefddfb6e693597789a15b81395","author":{"name":"Sotaro Ikeda","email":"1e4239e71450d4cbed15380feb833a9e17059af0@gmail.com"},"message":"Enable query handling on GLES","distinct":false,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/c9e644c1699b0aefddfb6e693597789a15b81395"},{"sha":"e3dd85359580074f4ca4a554d9a3c85779f8de64","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2148 - sotaroikeda:query, r=glennw\n\nEnable query handling on GLES\n\nAddress #2127\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2148)\n<!-- Reviewable:end -->","distinct":false,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/e3dd85359580074f4ca4a554d9a3c85779f8de64"},{"sha":"c378cf9a46b698a72486ba0f78795ecc08aaa627","author":{"name":"Morris Tseng","email":"5856ab3ac57e9f742fd272a22877640c400aeaa4@mozilla.com"},"message":"Reverse apply filters.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/c378cf9a46b698a72486ba0f78795ecc08aaa627"},{"sha":"bcdcd6aa7794e1421c70de639f2e14cad786a262","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2142 - mrobinson:clip-scroll-tree-opt-1, r=glennw\n\nFirst round of ClipScrollTree optiizations\n\nThese optimizations reduce the prominence of `ClipScrollTree::update_tree` in my perf CPU profile.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2142)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/bcdcd6aa7794e1421c70de639f2e14cad786a262"},{"sha":"f4acfb687f0bbf36eaf0afeb9b0f445451bf43d2","author":{"name":"Lee Salzman","email":"396d3384bc12d4f0f7174fd851f9596cdd9a0a44@gmail.com"},"message":"don't override Mac operating system AA settings","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/f4acfb687f0bbf36eaf0afeb9b0f445451bf43d2"},{"sha":"e2d18711fe3b67a70321400664c204fd3ff293cc","author":{"name":"Dzmitry Malyshau","email":"d2d5fc2b2b3654aca2483901f41a716feaaba108@mozilla.com"},"message":"TextureUploader abstraction","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/e2d18711fe3b67a70321400664c204fd3ff293cc"},{"sha":"61f59d8af615969f44a84b07b5ea8089a7a5f05d","author":{"name":"Dzmitry Malyshau","email":"d2d5fc2b2b3654aca2483901f41a716feaaba108@mozilla.com"},"message":"UploadMethod configuration","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/61f59d8af615969f44a84b07b5ea8089a7a5f05d"},{"sha":"3aa471129f5ed3c2a28abd978c60548467e2529b","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2152 - lsalzman:allow-smoothing, r=mstange\n\ndon't override Mac operating system AA settings\n\nIt is possible to disable LCD font smoothing in the operating system settings. By calling CGContext.set_allows_foo() on these we are overriding that, whereas Gecko normally honors them. Just remove these particular AA overrides so that we match Gecko on this. This addresses Gecko bug https://bugzilla.mozilla.org/show_bug.cgi?id=1421041\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2152)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/3aa471129f5ed3c2a28abd978c60548467e2529b"},{"sha":"f56f9b2dc70cae17b8b48a22a1d073c376b4aee9","author":{"name":"Lee Salzman","email":"396d3384bc12d4f0f7174fd851f9596cdd9a0a44@gmail.com"},"message":"fake bold for Mac font backend","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/f56f9b2dc70cae17b8b48a22a1d073c376b4aee9"},{"sha":"b562ddf6dcdb2b583829e82f16fa8e38bbf38584","author":{"name":"Glenn Watson","email":"f27a17fc90c00d8c248d8510a1084221738b492b@intuitionlibrary.com"},"message":"Convert rectangle from prim to brush shader and support segments.\n\nAdd support for brushes to be drawn as a list of segments that\nare part of a larger primitive. Initially, these segments are\nnine-patches only, although they may be expanded in the future\nto work with generic segment rects.\n\nThis allows large brush primitives to be split into a number\nof segments that can be split among the opaque and alpha passes,\nwhich means that large rectangles are often rendered with the\ninner rectangle as part of the opaque pass. Additionally, edge\nsegments are rendered in the opaque pass when the primitive does\nnot have a rotation or perspective transform applied.\n\nWhen a rectangle is split, the clip tasks are generated only\nwhere required for individual segments. This can significantly\nreduce the amount of allocated area for clip masks, and also\nthe amount of GPU time spent drawing clip masks.\n\nPreviously, rectangle splitting could only work on LocalClip\nitems specified as part of the item, which meant that rectangles\nin Gecko would never be split. Now, we calculate splitting\nduring prepare_prim_for_render, consulting the current clip chain\nfor the primitive. This means that we get the benefits of rectangle\nsplitting in Gecko, which doesn't use LocalClip API.\n\nHaving rectangle splitting handled as segments also means that we\ndon't add extra top-level primitives that take extra time to do\nvisibility culling on, saving some CPU time.\n\nFuture work:\n - Support more cases of primitive splitting.\n - Port images and gradients to be brushes so they automatically get splitting.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/b562ddf6dcdb2b583829e82f16fa8e38bbf38584"},{"sha":"7d55afc005a7a755e0cec250ad725d4508713564","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2155 - lsalzman:mac-bold, r=glennw\n\nfake bold for Mac font backend\n\nMac is the only platform that did not yet support synthetic bold. This solves it by using multi-striking in the same way Gecko does. This resolves #1653 and https://bugzilla.mozilla.org/show_bug.cgi?id=1394570\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2155)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/7d55afc005a7a755e0cec250ad725d4508713564"},{"sha":"d1feb4f5ee5331c946a73ddbbb4c2f33157070f0","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2146 - glennw:b10, r=kvark\n\nConvert rectangle from prim to brush shader and support segments.\n\nAdd support for brushes to be drawn as a list of segments that\nare part of a larger primitive. Initially, these segments are\nnine-patches only, although they may be expanded in the future\nto work with generic segment rects.\n\nThis allows large brush primitives to be split into a number\nof segments that can be split among the opaque and alpha passes,\nwhich means that large rectangles are often rendered with the\ninner rectangle as part of the opaque pass. Additionally, edge\nsegments are rendered in the opaque pass when the primitive does\nnot have a rotation or perspective transform applied.\n\nWhen a rectangle is split, the clip tasks are generated only\nwhere required for individual segments. This can significantly\nreduce the amount of allocated area for clip masks, and also\nthe amount of GPU time spent drawing clip masks.\n\nPreviously, rectangle splitting could only work on LocalClip\nitems specified as part of the item, which meant that rectangles\nin Gecko would never be split. Now, we calculate splitting\nduring prepare_prim_for_render, consulting the current clip chain\nfor the primitive. This means that we get the benefits of rectangle\nsplitting in Gecko, which doesn't use LocalClip API.\n\nHaving rectangle splitting handled as segments also means that we\ndon't add extra top-level primitives that take extra time to do\nvisibility culling on, saving some CPU time.\n\nFuture work:\n - Support more cases of primitive splitting.\n - Port images and gradients to be brushes so they automatically get splitting.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2146)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/d1feb4f5ee5331c946a73ddbbb4c2f33157070f0"},{"sha":"c966fdbaee37645f2d44c6ad5bc487068224a9aa","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2147 - kvark:pbo-style, r=glennw\n\nTexture update strategies\n\n~~Fixes  #2110, hopefully: still to be benchmarked on Windows.~~\nProvide the settings for Gecko to fix ^^\n\nTry push: https://treeherder.mozilla.org/#/jobs?repo=try&revision=12fecf240aa3440764cd64205b17bfcfe7eb252c\n\nr? @glennw\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2147)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/c966fdbaee37645f2d44c6ad5bc487068224a9aa"},{"sha":"5e6494c0b000b0f261b64656889c4aba1d92bce5","author":{"name":"bors-servo","email":"b09d4f4a3e19bc290c035b624e2133ac70195a90@mozilla.com"},"message":"Auto merge of #2150 - mephisto41:chain-filter, r=glennw\n\nReverse apply filters.\n\nThe order of ```composite_ops.filters``` is as same as the order of yaml. But we need reverse apply it to the picture primitive so that the rendering order would match the order of yaml.\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/2150)\n<!-- Reviewable:end -->","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/5e6494c0b000b0f261b64656889c4aba1d92bce5"},{"sha":"f9f2b7df9437be76fc9cec1c186f1d5e2ce36d44","author":{"name":"Martin Robinson","email":"05a80fb5a28f192eb2aa8659935b96fd40eb0a45@igalia.com"},"message":"Refactor ClipScrollTree::update\n\nRework ClipScrollTree::update, eliminated members which are now\nduplicated in ClipScrollNodeData and reducing the amount of unnecessary\nwork. There are a few main thrusts here:\n\n1. Don't do matrix operations if it's not necessary.\nTransform3D::pre_mul was showing up in CPU profiles, and this makes it\nmuch less significant.\n2. Don't spend time setting up state if we are not going to recurse.\n3. When we encounter an empty node (including those clipped out), do as\nlittle as possible. This includes setting update state or calculating\nthings for ClipScrollNodeData.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/f9f2b7df9437be76fc9cec1c186f1d5e2ce36d44"},{"sha":"41c5eb1920725a1bbe9aabb723662baf0abf6570","author":{"name":"Martin Robinson","email":"05a80fb5a28f192eb2aa8659935b96fd40eb0a45@igalia.com"},"message":"Use transform_rect in prim_store.rs\n\nInstead of duplicating the functionality of transform_rect in\nget_local_bounding_rect, just use the function from utils.rs.","distinct":true,"url":"https://api.github.com/repos/jrmuizel/webrender/commits/41c5eb1920725a1bbe9aabb723662baf0abf6570"}]}
{"actor":{"display_login":"jrmuizel"}}