Bug 95648 - When OpenGL rendering is active-- Graphite font has black blocks when used in a justified paragraph
Summary: When OpenGL rendering is active-- Graphite font has black blocks when used in...
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
5.0.4.2 release
Hardware: Other Windows (All)
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:5.2.0 target:5.1.0.2
Keywords: bibisected, bisected, regression
: 96271 (view as bug list)
Depends on:
Blocks: Font-Rendering VCL-OpenGL
  Show dependency treegraph
 
Reported: 2015-11-07 04:16 UTC by V Stuart Foote
Modified: 2016-10-10 12:04 UTC (History)
7 users (show)

See Also:
Crash report or crash signature:


Attachments
OpenGL issues (27.39 KB, image/png)
2015-11-07 04:20 UTC, V Stuart Foote
Details
same OpenGL issues but with non-printing characters (33.14 KB, image/png)
2015-11-07 04:21 UTC, V Stuart Foote
Details
test document with OpenGL font issues (23.00 KB, application/vnd.oasis.opendocument.text)
2015-11-21 03:49 UTC, V Stuart Foote
Details
More minimal bugdoc for just the black box problem (14.41 KB, application/vnd.oasis.opendocument.text)
2015-12-17 09:43 UTC, How can I remove my account?
Details

Note You need to log in before you can comment on or make changes to this bug.
Description V Stuart Foote 2015-11-07 04:16:58 UTC
On Windows 10 Pro 64-bit en-US with
Version: 5.1.0.0.alpha1+ (x64)
Build ID: 7d68b8e52f0571bccff9c53df2bb65c1c8aee744-GL
TinderBox: Win-x86_64@62-TDF, Branch:MASTER, Time: 2015-11-06_22:18:22
Locale: en-US (en_US)

As in attached clip, if I open attachment 119766 [details] with OpenGL enabled, in addition to issue of bug 95222 now also have black blocks between the rendered text.

Setting "non-printing characters" to show reveals additional issues and the blocks are related to the non-printing characters.
Comment 1 V Stuart Foote 2015-11-07 04:20:50 UTC
Created attachment 120338 [details]
OpenGL issues
Comment 2 V Stuart Foote 2015-11-07 04:21:16 UTC
Created attachment 120339 [details]
same OpenGL issues but with non-printing characters
Comment 3 Buovjaga 2015-11-11 12:09:28 UTC
Repro both glitches.

Win 7 Pro 64-bit Version: 5.1.0.0.alpha1+
Build ID: 6da681442b17c723f9408a806e8d2367441ad65a
TinderBox: Win-x86@62-merge-TDF, Branch:MASTER, Time: 2015-11-07_23:13:46
Locale: fi-FI (fi_FI)
Comment 4 raal 2015-11-12 09:33:24 UTC
This seems to have begun at the below commit.

dfe5bc24f6ccThis seems to have begun at the below commit.
 dfe5bc24f6cc175d0021854f2a8042578f291265 is the first bad commit
commit dfe5bc24f6cc175d0021854f2a8042578f291265
Author: Norbert Thiebaud <nthiebaud@gmail.com>
Date:   Sat Jul 18 16:35:48 2015 -0700

    source 7eb4c6921850a5a377f6aa42ce4af85b145da01c

    source 7eb4c6921850a5a377f6aa42ce4af85b145da01c

	author	Markus Mohrhard <markus.mohrhard@googlemail.com>	2015-06-04 15:39:48 (GMT)
committer	Markus Mohrhard <markus.mohrhard@googlemail.com>	2015-06-17 12:46:26 (GMT)
commit 7eb4c6921850a5a377f6aa42ce4af85b145da01c (patch)
remove all traces of old device code

/bibisect-win32-5.1
$ git bisect log
# bad: [7af0dacdc70e7e8bd0785ab0be6e6ca64b64d08d] source 8bde421ccec9c10fe1382ad68485852889dd4c74
# good: [c1efd324c6ad448ac9edb030dc9738b9e6899e4d] source ab465b90f6c6da5595393a0ba73f33a1e71a2b65
git bisect start '7af0dacdc70e7e8bd0785ab0be6e6ca64b64d08d' 'c1efd324c6ad448ac9edb030dc9738b9e6899e4d'
# bad: [3f6a85ce123f4e0c065f1c28b02f66dc7734cc04] source 647b5aecd4c3facc302df33386451dda732aab98
git bisect bad 3f6a85ce123f4e0c065f1c28b02f66dc7734cc04
# bad: [c1575e5261af5b8dbdf5740a9bc4e6c7a1ba74d8] source cfbbb3ca5d0d7bc479e219e17aa2919196664118
git bisect bad c1575e5261af5b8dbdf5740a9bc4e6c7a1ba74d8
# good: [6840a870ecdfe7c1e6e5210ac23b4654de934fb5] source 238e07ddca879e0951bef6391fdc5c3fc26bded5
git bisect good 6840a870ecdfe7c1e6e5210ac23b4654de934fb5
# bad: [a7db4f6a9c2bfe7c027e8f15f5753e159e276eff] source dc3d621411a1de2ec6b61da07741bdf1c80ffc1f
git bisect bad a7db4f6a9c2bfe7c027e8f15f5753e159e276eff
# good: [1a822261ca62e5b71702eaffc83673e58f1308a0] source 97c9a87ac88b18e7bbb72ad218e5ed5cf4f4b2ed
git bisect good 1a822261ca62e5b71702eaffc83673e58f1308a0
# good: [b6018fea962b89b49b7d8be29d8be022506e37b2] source 1c3eb9550dd0cb77e1f99c110d4e6626a00ba285
git bisect good b6018fea962b89b49b7d8be29d8be022506e37b2
# good: [0788dde820ad175f55d3eab14d75396aafc06e4e] source ffc1ffed11dc63a69fc2db04f12b3ea266b580fe
git bisect good 0788dde820ad175f55d3eab14d75396aafc06e4e
# bad: [2c4174c1192d26e2a9fed20b366ce3a50321bd29] source e5157e99e9d1fdba98d47342de52ef05b5c3c2f7
git bisect bad 2c4174c1192d26e2a9fed20b366ce3a50321bd29
# good: [a238265506fa1c2cb309b1e8914d9a23a52a0c3f] source 09a490ddf516289b4ce2f70a19603b9590917632
git bisect good a238265506fa1c2cb309b1e8914d9a23a52a0c3f
# good: [624bb0f532192c44e632cd8bde80a506e1a121f1] source f067d7010322505013693a18b68fac6d6a53e61f
git bisect good 624bb0f532192c44e632cd8bde80a506e1a121f1
# bad: [317b006e8b8250f2bc8811b259e6e8fdc38be742] source 60e2be1b664b290df891fcef1e7f29773f8f8ee6
git bisect bad 317b006e8b8250f2bc8811b259e6e8fdc38be742
# bad: [59400bc212cf2ceca6dd2fc6280f232888af1612] source 56b1a63e670ed7e8c5cda4c86a23c347ce32a224
git bisect bad 59400bc212cf2ceca6dd2fc6280f232888af1612
# bad: [dfe5bc24f6cc175d0021854f2a8042578f291265] source 7eb4c6921850a5a377f6aa42ce4af85b145da01c
git bisect bad dfe5bc24f6cc175d0021854f2a8042578f291265
# first bad commit: [dfe5bc24f6cc175d0021854f2a8042578f291265] source 7eb4c6921850a5a377f6aa42ce4af85b145da01c
c24f6cc175d0021854f2a8042578f291265
Author: Norbert Thiebaud <nthiebaud@gmail.com>
Date:   Sat Jul 18 16:35:48 2015 -0700

    source 7eb4c6921850a5a377f6aa42ce4af85b145da01c

    source 7eb4c6921850a5a377f6aa42ce4af85b145da01c

	author	Markus Mohrhard <markus.mohrhard@googlemail.com>	2015-06-04 15:39:48 (GMT)
committer	Markus Mohrhard <markus.mohrhard@googlemail.com>	2015-06-17 12:46:26 (GMT)
commit 7eb4c6921850a5a377f6aa42ce4af85b145da01c (patch)
remove all traces of old device code

/bibisect-win32-5.1
$ git bisect log
# bad: [7af0dacdc70e7e8bd0785ab0be6e6ca64b64d08d] source 8bde421ccec9c10fe1382ad68485852889dd4c74
# good: [c1efd324c6ad448ac9edb030dc9738b9e6899e4d] source ab465b90f6c6da5595393a0ba73f33a1e71a2b65
git bisect start '7af0dacdc70e7e8bd0785ab0be6e6ca64b64d08d' 'c1efd324c6ad448ac9edb030dc9738b9e6899e4d'
# bad: [3f6a85ce123f4e0c065f1c28b02f66dc7734cc04] source 647b5aecd4c3facc302df33386451dda732aab98
git bisect bad 3f6a85ce123f4e0c065f1c28b02f66dc7734cc04
# bad: [c1575e5261af5b8dbdf5740a9bc4e6c7a1ba74d8] source cfbbb3ca5d0d7bc479e219e17aa2919196664118
git bisect bad c1575e5261af5b8dbdf5740a9bc4e6c7a1ba74d8
# good: [6840a870ecdfe7c1e6e5210ac23b4654de934fb5] source 238e07ddca879e0951bef6391fdc5c3fc26bded5
git bisect good 6840a870ecdfe7c1e6e5210ac23b4654de934fb5
# bad: [a7db4f6a9c2bfe7c027e8f15f5753e159e276eff] source dc3d621411a1de2ec6b61da07741bdf1c80ffc1f
git bisect bad a7db4f6a9c2bfe7c027e8f15f5753e159e276eff
# good: [1a822261ca62e5b71702eaffc83673e58f1308a0] source 97c9a87ac88b18e7bbb72ad218e5ed5cf4f4b2ed
git bisect good 1a822261ca62e5b71702eaffc83673e58f1308a0
# good: [b6018fea962b89b49b7d8be29d8be022506e37b2] source 1c3eb9550dd0cb77e1f99c110d4e6626a00ba285
git bisect good b6018fea962b89b49b7d8be29d8be022506e37b2
# good: [0788dde820ad175f55d3eab14d75396aafc06e4e] source ffc1ffed11dc63a69fc2db04f12b3ea266b580fe
git bisect good 0788dde820ad175f55d3eab14d75396aafc06e4e
# bad: [2c4174c1192d26e2a9fed20b366ce3a50321bd29] source e5157e99e9d1fdba98d47342de52ef05b5c3c2f7
git bisect bad 2c4174c1192d26e2a9fed20b366ce3a50321bd29
# good: [a238265506fa1c2cb309b1e8914d9a23a52a0c3f] source 09a490ddf516289b4ce2f70a19603b9590917632
git bisect good a238265506fa1c2cb309b1e8914d9a23a52a0c3f
# good: [624bb0f532192c44e632cd8bde80a506e1a121f1] source f067d7010322505013693a18b68fac6d6a53e61f
git bisect good 624bb0f532192c44e632cd8bde80a506e1a121f1
# bad: [317b006e8b8250f2bc8811b259e6e8fdc38be742] source 60e2be1b664b290df891fcef1e7f29773f8f8ee6
git bisect bad 317b006e8b8250f2bc8811b259e6e8fdc38be742
# bad: [59400bc212cf2ceca6dd2fc6280f232888af1612] source 56b1a63e670ed7e8c5cda4c86a23c347ce32a224
git bisect bad 59400bc212cf2ceca6dd2fc6280f232888af1612
# bad: [dfe5bc24f6cc175d0021854f2a8042578f291265] source 7eb4c6921850a5a377f6aa42ce4af85b145da01c
git bisect bad dfe5bc24f6cc175d0021854f2a8042578f291265
# first bad commit: [dfe5bc24f6cc175d0021854f2a8042578f291265] source 7eb4c6921850a5a377f6aa42ce4af85b145da01c
Comment 5 V Stuart Foote 2015-11-21 03:49:48 UTC
Created attachment 120694 [details]
test document with OpenGL font issues
Comment 6 V Stuart Foote 2015-12-05 20:08:43 UTC
*** Bug 96271 has been marked as a duplicate of this bug. ***
Comment 7 Robinson Tryon (qubit) 2015-12-13 11:14:32 UTC Comment hidden (obsolete)
Comment 8 How can I remove my account? 2015-12-16 11:19:12 UTC
I don't understand what is meant with "Uniscribe/Graphite font". Fonts that contain Graphite information are handled in a completely separate code path, that does not involve Uniscribe.
Comment 9 V Stuart Foote 2015-12-16 14:36:31 UTC
(In reply to Tor Lillqvist from comment #8)
> I don't understand what is meant with "Uniscribe/Graphite font". Fonts that
> contain Graphite information are handled in a completely separate code path,
> that does not involve Uniscribe.

Uniscribe in that it appears to only affect Windows builds, Graphite in that those were the only fonts I'd found where if paragraph is set justified exhibit the spacing behavior and on Windows the errant black blocks.

As in https://bugs.documentfoundation.org/show_bug.cgi?id=95222#c4 the composition issue with the Graphite fonts exists on Linux builds as well, just absent the black blocks when composed on Windows.

Work on winlayout.cxx  http://cgit.freedesktop.org/libreoffice/core/commit/?id=4667db065d34193d99bce82f7e8f3b20a03ecade had moved all "non-Graphite" composition on Windows to Uniscribe.  Knew that was in the mix.

Sorry for any confusion.
Comment 10 How can I remove my account? 2015-12-17 08:52:10 UTC
Adding martin_hosken@sil.org to Cc, hope you don't mind? Is it OK to do that for bugs that seem to be in the Graphite code?
Comment 11 How can I remove my account? 2015-12-17 08:53:24 UTC
Let's concentrate in this bug on the problems that the sample doc shows for the Graphite fonts, not the non-Graphite ones.
Comment 12 How can I remove my account? 2015-12-17 08:55:13 UTC
Hmm, but on the other hand the black blocks appear only when using OpenGL.
Comment 13 martin_hosken 2015-12-17 09:24:25 UTC
Yes it's fine to automatically include me on Graphite related bugs, since that's probably the only way I'll find out about them.

Not sure how this is Graphite related. I notice that the image seems to show Graphite justification behaviour that has now been fixed at least in master and was supposed to have been pushed up to 5.1. cf bug tfd#95222.
Comment 14 How can I remove my account? 2015-12-17 09:43:04 UTC
Created attachment 121361 [details]
More minimal bugdoc for just the black box problem

This bugdoc only uses the letter 'm', and no diacritics.
Comment 15 Commit Notification 2015-12-17 13:30:29 UTC
Tor Lillqvist committed a patch related to this issue.
It has been pushed to "master":

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

tdf#95648: Erase the OpenGLCompatibleDC to white before drawing text into it

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 16 Commit Notification 2015-12-17 15:23:21 UTC
Tor Lillqvist committed a patch related to this issue.
It has been pushed to "libreoffice-5-1":

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

tdf#95648: Erase the OpenGLCompatibleDC to white before drawing text into it

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.
Comment 17 V Stuart Foote 2015-12-31 15:57:46 UTC
Just got round to checking this, verified fixed with
Version: 5.2.0.0.alpha0+
Build ID: fe37d93a110cb9941c61fed0c71369a21a7d2765
CPU Threads: 8; OS Version: Windows 6.2; UI Render: GL; 
TinderBox: Win-x86@62-merge-TDF, Branch:MASTER, Time: 2015-12-30_23:13:15
Locale: en-US (en_US)
Comment 18 Pierre C 2016-01-21 17:03:27 UTC
The problem is still present in 5.0.5.1.

The patch can't be ported to 5.0 branch ?
Comment 19 Pierre C 2016-01-22 22:07:44 UTC
Reopening the bug as it is present in 5.0 branch, and this branch is not ended
Comment 20 raal 2016-01-23 06:46:03 UTC
(In reply to Pierre C from comment #19)
> Reopening the bug as it is present in 5.0 branch, and this branch is not
> ended

add whiteboard tag