Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upPort radial gradient shader to be a brush primitive. #2433
Conversation
|
Gecko try: Despite the number of orange, I think this is actually good. I think the Windows gpu, mda, 2 and C items are unrelated intermittents. The fails in R4 and R8 are from previous PRs (the mipmap and local box-shadow clip ones). The other two unexpected results in R4 are new radial gradient PASS results. Of course, it'd be good for @staktrace or someone else to verify the above before merging. |
|
|
|
The windows failures in the try push don't look like intermittents to me. They seem to be all crashes of some sort, and I haven't seen that kind of failure before. I can do a try push for this change using my script and retrigger the jobs a few times to confirm one way or another. |
|
Try push is in progress at https://treeherder.mozilla.org/#/jobs?repo=try&revision=d7e716bb5071bcb271c8a14a4c0101bc5a36b15c (I just included the windows jobs) |
|
@glennw Looks like there's shader compilation failures. See output at https://treeherder.mozilla.org/logviewer.html#?job_id=162670092&repo=try&lineNumber=1904 |
|
Reviewed 11 of 11 files at r1. webrender/src/prim_store.rs, line 208 at r1 (raw file):
may consider using Comments from Reviewable |
This is mostly a straightforward conversion, with a couple of interesting notes: * The previous radial gradient shader was missing a transform implementation so would never have worked properly with rotation and/or perspective. * We didn't (and still don't) detect if a radial gradient is opaque - it's always assumed transparent. So even though it can now opt in to segments (and save clip mask generation time), the inner segments will still be in the alpha pass. We should fix this! * Previously, we used to append the gradient stops directly after the primitive information in the main GPU cache handle. Now, there is a separate GPU cache handle for the stops. This is quite a bit more efficient in the GPU cache, since the size of the stops array is large, and a power of 2, it now fits exactly into a GPU cache slab, and allows the main primitive data to be allocated in a smaller row.
|
Try run after rebase: We have:
So, this should be OK to merge. @bors-servo r=kvark |
|
|
Port radial gradient shader to be a brush primitive. This is mostly a straightforward conversion, with a couple of interesting notes: * The previous radial gradient shader was missing a transform implementation so would never have worked properly with rotation and/or perspective. * We didn't (and still don't) detect if a radial gradient is opaque - it's always assumed transparent. So even though it can now opt in to segments (and save clip mask generation time), the inner segments will still be in the alpha pass. We should fix this! * Previously, we used to append the gradient stops directly after the primitive information in the main GPU cache handle. Now, there is a separate GPU cache handle for the stops. This is quite a bit more efficient in the GPU cache, since the size of the stops array is large, and a power of 2, it now fits exactly into a GPU cache slab, and allows the main primitive data to be allocated in a smaller row. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/2433) <!-- Reviewable:end -->
|
|
glennw commentedFeb 16, 2018
•
edited by larsbergstrom
This is mostly a straightforward conversion, with a couple of
interesting notes:
implementation so would never have worked properly with
rotation and/or perspective.
opaque - it's always assumed transparent. So even though
it can now opt in to segments (and save clip mask generation
time), the inner segments will still be in the alpha pass.
We should fix this!
after the primitive information in the main GPU cache handle.
Now, there is a separate GPU cache handle for the stops. This
is quite a bit more efficient in the GPU cache, since the
size of the stops array is large, and a power of 2, it now
fits exactly into a GPU cache slab, and allows the main
primitive data to be allocated in a smaller row.
This change is