https://bugs.winehq.org/show_bug.cgi?id=38735
Bug ID: 38735 Summary: Windows Performance Analyzer from Windows SDK 8.1 Windows Performance Toolkit crashes due to 'IDWriteFontFace::GetGdiCompatibleGlyphMetrics' stub Product: Wine Version: 1.7.44 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: dwrite Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
as the summary says.
Prerequisite for Windows SDK 8.1 install:
* new 32-bit WINEPREFIX * 'winetricks -q dotnet40 corefonts' * change WinVer to 'Vista' * install .NET Framework 4.5 from 'winetricks' cache or download (to avoid .NET Framework 2.x, 3.x install which is not needed here)
Run the SDK installer with WinVer set to 'Windows 8.1' and 'dwrite' component disabled to get all Windows 8+ components installed
--- snip --- $ WINEDLLOVERRIDES=dwrite=d wine ./sdksetup.exe --- snip ---
Run the tool:
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/Windows Kits/8.1/Windows Performance Toolkit
$ wine ./wpa.exe ... fixme:dwrite:dwritetextanalyzer_AnalyzeNumberSubstitution (0x662f9a8 0 1 0x662f9d0): stub fixme:dwrite:dwritefontface_IsSymbolFont (0x664e910): stub fixme:dwrite:dwritetextanalyzer_AnalyzeNumberSubstitution (0x6647cb0 0 3 0x664ee38): stub fixme:dwrite:dwritefontface_GetGdiCompatibleGlyphMetrics (0x664e910)->(11.000000 1.000000 (nil) 0 0x154d7e4 1 0x154d7bc 0): stub fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000402,(nil),0x0001,0x00000000,0x5858624,(nil)): stub err:eventlog:ReportEventW L"Application: wpa.exe\nFramework Version: v4.0.30319\nDescription: The process was terminated due to an unhandled exception.\nException Info: System.NotImplementedException\nStack:\n at MS.Internal.TextFormatting.TextMetrics+FullTextLine.FormatLine(MS.Internal.TextFormatting.FullTextState, Int32, In"... ... wine: Unhandled exception 0xe0434352 in thread 34 at address 0x7b845511 (thread 0034), starting debugger...
Managed backtrace:
--- snip --- Unhandled Exception: System.NotImplementedException: The method or operation is not implemented. ---> System.NotImplementedException: The method or operation is not implemented. at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode, IntPtr errorInfo) at MS.Internal.Text.TextInterface.Native.Util.ConvertHresultToException(Int32 hr) at MS.Internal.Text.TextInterface.FontFace.GetDisplayGlyphMetrics(UInt16* pGlyphIndices, UInt32 glyphCount, GlyphMetrics* pGlyphMetrics, Single emSize, Boolean useDisplayNatural, Boolean isSideways, Single pixelsPerDip) at System.Windows.Media.GlyphTypeface.GlyphMetrics(UInt16* pGlyphIndices, Int32 characterCount, GlyphMetrics* pGlyphMetrics, Double emSize, TextFormattingMode textFormattingMode, Boolean isSideways) at System.Windows.Media.GlyphTypeface.GetGlyphMetricsAndIndicesOptimized(UInt32* pCodepoints, Int32 characterCount, Double emSize, UInt16[] glyphIndices, GlyphMetrics[] glyphMetrics, TextFormattingMode textFormattingMode, Boolean isSideways) at System.Windows.Media.GlyphTypeface.GetGlyphMetricsOptimized(CharacterBufferRange characters, Double emSize, UInt16[] glyphIndices, GlyphMetrics[] glyphMetrics, TextFormattingMode textFormattingMode, Boolean isSideways) at System.Windows.Media.TextFormatting.TextShapeableCharacters.GetAdvanceWidthsUnshaped(Char* characterString, Int32 characterLength, Double scalingFactor, Int32* advanceWidthsUnshaped) at MS.Internal.TextFormatting.LineServicesCallbacks.GetRunCharWidths(IntPtr pols, Plsrun plsrun, LsDevice device, Char* charString, Int32 stringLength, Int32 maxWidth, LsTFlow textFlow, Int32* charWidths, Int32& totalWidth, Int32& stringLengthFitted) --- End of inner exception stack trace --- at MS.Internal.TextFormatting.TextMetrics.FullTextLine.FormatLine(FullTextState fullText, Int32 cpFirst, Int32 lineLength, Int32 formatWidth, Int32 finiteFormatWidth, Int32 paragraphWidth, LineFlags lineFlags, FormattedTextSymbols collapsingSymbol) at MS.Internal.TextFormatting.TextFormatterImp.FormatLineInternal(TextSource textSource, Int32 firstCharIndex, Int32 lineLength, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache) at MS.Internal.TextFormatting.TextFormatterImp.FormatLine(TextSource textSource, Int32 firstCharIndex, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache) at MS.Internal.Text.Line.Format(Int32 dcp, Double width, TextParagraphProperties lineProperties, TextLineBreak textLineBreak, TextRunCache textRunCache, Boolean showParagraphEllipsis) ... at System.Windows.Window.Show() at Microsoft.Performance.Shell.WpaApplication.OnStartup(StartupEventArgs e) at System.Windows.Application.<.ctor>b__1(Object unused) --- snip ---
Source: https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/dwrite/font.c#l586
MSDN: https://msdn.microsoft.com/en-us/en-en/library/windows/desktop/dd941788%28v=...
$ sha1sum sdksetup.exe 4540251f0ca62da5fd8e68cd4e3129930e7c5ae9 sdksetup.exe
$ du -sh sdksetup.exe 976K sdksetup.exe
$ wine --version wine-1.7.44-173-g42cbc05
Regards