Bug 96690 - copying non-rendered-to vdev's
Summary: copying non-rendered-to vdev's
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
5.0.2.1 rc
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:5.1.0.2
Keywords:
: 96689 96691 (view as bug list)
Depends on:
Blocks: VCL-OpenGL
  Show dependency treegraph
 
Reported: 2015-12-23 13:23 UTC by Michael Meeks
Modified: 2016-10-25 19:17 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Meeks 2015-12-23 13:23:33 UTC
It seems that the appended trace:

Spends its time copying un-initialized vdev state - from A to B; which yields:

        VCL_GL_INFO( "OpenGLTexture::Binding invalid texture" );

We should avoid that =) fix in progress.

(gdb) bt 20
#0  0x00007fffef1f4612 in OpenGLTexture::Bind() (this=0x2979240) at /data/opt/libreoffice/master/vcl/opengl/texture.cxx:386
#1  0x00007fffef1ed0e2 in OpenGLProgram::SetTexture(rtl::OString const&, OpenGLTexture&) (this=0x1ac9498, rName="sampler", rTexture=...) at /data/opt/libreoffice/master/vcl/opengl/program.cxx:251
#2  0x00007fffef1d51a1 in OpenGLSalGraphicsImpl::DrawTexture(OpenGLTexture&, SalTwoRect const&, bool) (this=0x29797d0, rTexture=..., pPosAry=..., bInverted=false) at /data/opt/libreoffice/master/vcl/opengl/gdiimpl.cxx:1042

    DrawTexture( rImpl.maOffscreenTex, rPosAry );

#3  0x00007fffef1d9856 in OpenGLSalGraphicsImpl::DoCopyBits(SalTwoRect const&, OpenGLSalGraphicsImpl&) (this=0x29797d0, rPosAry=..., rImpl=...) at /data/opt/libreoffice/master/vcl/opengl/gdiimpl.cxx:1649
#4  0x00007fffdcf3394e in X11OpenGLSalGraphicsImpl::copyBits(SalTwoRect const&, SalGraphics*) (this=0x29797d0, rPosAry=..., pSrcGraphics=0x2972880) at /data/opt/libreoffice/master/vcl/opengl/x11/gdiimpl.cxx:65
#5  0x00007fffdcf16d0a in X11SalGraphics::copyBits(SalTwoRect const&, SalGraphics*) (this=0x29796f0, rPosAry=..., pSSrcGraphics=0x2972880) at /data/opt/libreoffice/master/vcl/unx/generic/gdi/salgdi2.cxx:167
#6  0x00007fffdebf7282 in GtkSalGraphics::copyBits(SalTwoRect const&, SalGraphics*) (this=0x29796f0, rPosAry=..., pSrcGraphics=0x2972880) at /data/opt/libreoffice/master/vcl/unx/gtk/salnativewidgets-gtk.cxx:642
#7  0x00007fffef76274b in SalGraphics::CopyBits(SalTwoRect const&, SalGraphics*, OutputDevice const*, OutputDevice const*) (this=0x29796f0, rPosAry=..., pSrcGraphics=0x2972880, pOutDev=0x2978290, pSrcOutDev=0x2978290) at /data/opt/libreoffice/master/vcl/source/gdi/salgdilayout.cxx:589
#8  0x00007fffef7838c3 in VirtualDevice::InnerImplSetOutputSizePixel(Size const&, bool, boost::shared_array<unsigned char> const&) (this=0x2978290, rNewSize=Size = {...}, bErase=false, pBuffer=...) at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:360
#9  0x00007fffef783ae3 in VirtualDevice::ImplSetOutputSizePixel(Size const&, bool, boost::shared_array<unsigned char> const&) (this=0x2978290, rNewSize=Size = {...}, bErase=false, pBuffer=...) at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:399
#10 0x00007fffef783e36 in VirtualDevice::SetOutputSizePixel(Size const&, bool) (this=0x2978290, rNewSize=Size = {...}, bErase=false) at /data/opt/libreoffice/master/vcl/source/gdi/virdev.cxx:446

** This looks like an abomination:
	+ saving and restoring crazy stuff [!?] ... why ? ... +

#11 0x00007ffff21a85f7 in sdr::overlay::OverlayManagerBuffered::ImpPrepareBufferDevice() (this=0x2943ee0) at /data/opt/libreoffice/master/svx/source/sdr/overlay/overlaymanagerbuffered.cxx:46
#12 0x00007ffff21a9062 in sdr::overlay::OverlayManagerBuffered::ImpSaveBackground(vcl::Region const&, OutputDevice*) (this=0x2943ee0, rRegion=..., pPreRenderDevice=0x295ff30) at /data/opt/libreoffice/master/svx/source/sdr/overlay/overlaymanagerbuffered.cxx:160
#13 0x00007ffff21aa0b8 in sdr::overlay::OverlayManagerBuffered::completeRedraw(vcl::Region const&, OutputDevice*) const (this=0x2943ee0, rRegion=..., pPreRenderDevice=0x295ff30) at /data/opt/libreoffice/master/svx/source/sdr/overlay/overlaymanagerbuffered.cxx:418
#14 0x00007ffff21ef8f8 in SdrPaintWindow::DrawOverlay(vcl::Region const&) (this=0x23b4000, rRegion=...) at /data/opt/libreoffice/master/svx/source/svdraw/sdrpaintwindow.cxx:335
#15 0x00007ffff2391a9c in SdrPaintView::EndCompleteRedraw(SdrPaintWindow&, bool) (this=0x23b2700, rPaintWindow=..., bPaintFormLayer=true) at /data/opt/libreoffice/master/svx/source/svdraw/svdpntv.cxx:763
#16 0x00007ffff268e26a in FmFormView::EndCompleteRedraw(SdrPaintWindow&, bool) (this=0x23b2700, rPaintWindow=..., bPaintFormLayer=true) at /data/opt/libreoffice/master/svx/source/form/fmview.cxx:477
#17 0x00007ffff2391c34 in SdrPaintView::EndDrawLayers(SdrPaintWindow&, bool) (this=0x23b2700, rPaintWindow=..., bPaintFormLayer=true) at /data/opt/libreoffice/master/svx/source/svdraw/svdpntv.cxx:800
#18 0x00007fffa6f14ee8 in SwViewShell::DLPostPaint2(bool) (this=0x22ac790, bPaintFormLayer=true) at /data/opt/libreoffice/master/sw/source/core/view/viewsh.cxx:245
#19 0x00007fffa6f1be34 in SwViewShell::Paint(OutputDevice&, Rectangle const&) (this=0x22ac790, rRenderContext=..., rRect=Rectangle = {...}) at /data/opt/libreoffice/master/sw/source/core/view/viewsh.cxx:1802
#20 0x00007fffa6604494 in SwCursorShell::Paint(OutputDevice&, Rectangle const&) (this=0x22ac790, rRenderContext=..., rRect=Rectangle = {...}) at /data/opt/libreoffice/master/sw/source/core/crsr/crsrsh.cxx:1278
Comment 1 Michael Meeks 2015-12-23 13:23:58 UTC
*** Bug 96691 has been marked as a duplicate of this bug. ***
Comment 2 Julien Nabet 2015-12-23 22:46:56 UTC
isn't it a dup of tdf#96689?
Comment 3 Michael Meeks 2015-12-24 09:22:24 UTC
*** Bug 96689 has been marked as a duplicate of this bug. ***
Comment 4 Michael Meeks 2015-12-24 09:22:45 UTC
(In reply to Julien Nabet from comment #2)
> isn't it a dup of tdf#96689?

Yes - thanks ;-) Bugzilla was refusing to file my bugs ...
Comment 5 Commit Notification 2016-01-04 22:01:47 UTC
Michael Meeks committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=27953088c5fc8a51cb5c26b0746cb42f56324404

tdf#96690 - don't copy tiny non-rendered-to virtual devices.

It will be available in 5.2.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 6 Michael Meeks 2016-01-04 22:02:47 UTC
Fixed; pushed as: https://gerrit.libreoffice.org/21091 for -5-1
Comment 7 Commit Notification 2016-01-05 09:11:25 UTC
Michael Meeks committed a patch related to this issue.
It has been pushed to "libreoffice-5-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=e66076c33b5875e68167b53fd9d663f4abd566c8&h=libreoffice-5-1

tdf#96690 - don't copy tiny non-rendered-to virtual devices.

It will be available in 5.1.0.2.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.