Commit 0d741533 authored by Vlad Zahorodnii's avatar Vlad Zahorodnii

[effects] Make sure that all effects reset the streaming buffer

The streaming buffer is shared so we have to reset it before rendering
something. Otherwise, it's basically undefined behavior.

For example, if the streaming buffer had been used for rendering a
geometry with some color, then the Background Contrast effect may crash
in GLVertexBuffer::bindArrays, it all depends on whether there is any
bounded GLShader. To fix that, the buffer has to be reset.

BUG: 356141

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision:
parent 6d9ac76c
......@@ -483,6 +483,7 @@ void ContrastEffect::doContrast(EffectWindow *w, const QRegion& shape, const QRe
// Upload geometry for the horizontal and vertical passes
GLVertexBuffer *vbo = GLVertexBuffer::streamingBuffer();
uploadGeometry(vbo, actualShape);
......@@ -647,6 +647,7 @@ void BlurEffect::doBlur(const QRegion& shape, const QRect& screen, const float o
// Upload geometry for the down and upsample iterations
GLVertexBuffer *vbo = GLVertexBuffer::streamingBuffer();
uploadGeometry(vbo, expandedBlurRegion.translated(xTranslate, yTranslate), shape);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment