Shm textures via Gl must be reloaded in case their size changes.
Details
- Reviewers
graesslin - Group Reviewers
KWin - Commits
- R108:d6f98d1ecc3a: Reload Shm texture when buffer size changes
testShmBufferSizeChangeOnSubSurface passes.
Diff Detail
- Repository
- R108 KWin
- Branch
- subSurfaceResizePixmap2
- Lint
Lint OK - Unit
No Unit Test Coverage - Build Status
Buildable 7419 Build 7437: arc lint + arc unit
scene.cpp | ||
---|---|---|
1083 ↗ | (On Diff #50055) | It's a bit weird to do all the adding/removing/subtree/changes from all other events in updateBuffer but handle resizing in a special case way. We should be able to just compare size here. |
scene.cpp | ||
---|---|---|
1083 ↗ | (On Diff #50055) | Yea, that's a good idea. Then we also don't need the QObject parent. |
I realized it only affects the Gl shm case. Decided to go less nuclear on it
and just reload the texture in case of size mismatch.
scene.cpp | ||
---|---|---|
1083 ↗ | (On Diff #50055) | Decided to do it in a different way. |
Could this be our firefox issue?
That would be nice, but I'm afraid not. It's nothing in the rendering code, we can see they just stop sending us frames.
I tried it anyway, no luck :(
romangg added a dependent revision: D18465: [platforms/wayland] Multi output support.
They don't seem dependent.
You can apply them independently to the code base, but if you try to grab a pointer and then the cursor size changes in the nested session, without this patch, your host session will crash.
If dependent means: apply one after the other to code base, they are not dependent.
I have one more idea for this: WindowPixmap keeps the buffer referenced as long as it's alive. So we basically block two buffers all the time. Maybe we could change the behavior to deep copy a used buffer, so that we can release them faster.