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 upBatch similar composite operations together. #90
Conversation
|
Unfortunately this breaks a lot of the ref tests (haven't checked against wpt/css yet). You can run ./mach test-ref --kind=wr --release to see the test failures. |
|
I just realised that I forgot to copy across the new shaders - but even after doing that I still see a lot of the ref tests fail, and I think I have updated them correctly this time. When those are fixed I'll get it merged as soon as possible. |
359b998
to
d055e9a
|
Rebased. Tests not fixed yet. |
|
@pcwalton I just found out that the mix-blend-mode shaders were broken (happened here glennw@5e4493d). I've pushed an update of the shaders to servo + WR. It's possible that this was the main issue with the reftests + composite batching - you might want to try the reftests just rebased on top of master and see if they just work now :) |
d055e9a
to
031dd08
|
Updated to fix the issues I could see. |
| @@ -133,6 +139,18 @@ impl<'a> BatchBuilder<'a> { | |||
| primitive: Primitive, | |||
| vertices: &mut [PackedVertex], | |||
| tile_params: Option<TileParams>) { | |||
| // FIXME(pcwalton): Awful hack to work around a panic. | |||
| if self.vertex_buffer.vertices.len() + vertices.len() > u16::MAX as usize { | |||
This comment has been minimized.
This comment has been minimized.
glennw
Dec 2, 2015
Member
Have you got any info on how to repro this? I would be keen to debug this and find the root cause if we have a repro (doesn't need to stop this merging though).
031dd08
to
a6bf439
|
@glennw Removed the hack. |
Known bugs and limitations: * Only 32 composite operations can be batched, because that is the maximum size of the matrix palette. * Nested composite operations aren't correctly handled at the moment. They use the wrong device pixel ratio and read from and write to the same texture, which is undefined behavior (although usually works). * When a large number (>700 in my tests) of composite operations occur, there can be stray triangles drawn. I haven't been able to pin down why that occurs yet.
Batch similar composite operations together.
pcwalton commentedNov 21, 2015
Known bugs and limitations:
maximum size of the matrix palette.
They use the wrong device pixel ratio and read from and write to the
same texture, which is undefined behavior (although usually works).
there can be stray triangles drawn. I haven't been able to pin down
why that occurs yet.
Please review this carefully if you get time; this is tricky stuff and I'm sure I've messed up :)