[Bug 59365] New: d2d1: Text not rendered in VSTGUI applications (Serum2)
http://bugs.winehq.org/show_bug.cgi?id=59365 Bug ID: 59365 Summary: d2d1: Text not rendered in VSTGUI applications (Serum2) Product: Wine Version: 11.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: d2d Assignee: wine-bugs@list.winehq.org Reporter: nen24t@gmail.com Distribution: --- Created attachment 80305 --> http://bugs.winehq.org/attachment.cgi?id=80305 d2d1: Force NATURAL rendering mode instead of OUTLINE/ALIASED Xfer Serum2 renders no text or heavily pixelated fonts under Wine. In `dlls/d2d1/device.c`, when `IDWriteFontFace_GetRecommendedRenderingMode()` fails, Wine falls back to `DWRITE_RENDERING_MODE_OUTLINE`. This mode produces empty glyphs with FreeType. Additionally, `DWRITE_RENDERING_MODE_ALIASED` produces unreadable pixelated text. Forcing `DWRITE_RENDERING_MODE_NATURAL` instead fixes both issues. To reproduce: 1. Install Xfer Serum2 via yabridge 2. Load plugin in REAPER 3. Text is invisible or pixelated Tested on Wine 11.1, Ubuntu, X11. Note: This is separate from Bug https://bugs.winehq.org/show_bug.cgi?id=58438 (geometry/bitmap glitches, black boxes). That issue was addressed in Serum 2.0.22 via app-side workarounds. This bug is specifically about DWrite rendering mode selection. Patch attached. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59365 --- Comment #1 from Nikolay Sivov <bunglehead@gmail.com> --- I don't think GetRecommendedRenderingMode() ever fails. So some of those changes seem unnecessary. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59365 gng <nen24t@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #80305|0 |1 is obsolete| | --- Comment #2 from gng <nen24t@gmail.com> --- Created attachment 80306 --> http://bugs.winehq.org/attachment.cgi?id=80306 d2d1: Minimal patch - force NATURAL rendering mode for ALIASED/OUTLINE You're right, `GetRecommendedRenderingMode()` doesn't fail. The initial patch was too broad because we were debugging without knowing the exact root cause. The actual fix is simply forcing NATURAL when ALIASED or OUTLINE is returned. Tested and confirmed working. Minimal patch attached. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59365 --- Comment #3 from Nikolay Sivov <bunglehead@gmail.com> --- I understand why you might want to switch away from aliased, but this diff is a workaround that you can use locally, but for d2d implementation we'd want improvements to outline rendering, including AA mode - for text outlines and geometries in general. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59365 --- Comment #4 from gng <nen24t@gmail.com> --- Thanks for the feedback, Nikolay. You're right that simply forcing NATURAL is a workaround. We've since addressed this more properly as part of a larger D2D1 patch series (13 patches total, posted at https://github.com/robbert-vdh/yabridge/issues/413#issuecomment-3868060550). The font issue specifically is handled in patch 2/13 ("d2d1: Force NATURAL rendering mode for better font quality"). The core problem is that ALIASED and OUTLINE modes produce poor results with Wine's FreeType backend — OUTLINE generates empty glyphs, and ALIASED produces unreadable pixelated text. The fix forces NATURAL when either of those modes is returned by GetRecommendedRenderingMode(). I understand this is still more of a targeted fix than a proper implementation of outline rendering and AA modes. The broader patch series does include shader-based geometry antialiasing (patch 1/13), which replaces the hard `clip()` calls in the pixel shader with smooth alpha blending — so geometry AA is functional with those patches applied. But improving the DWrite outline rendering path itself to produce correct glyphs is beyond our current scope. The full patch set (v4.0) applies cleanly on both Wine 11.0 stable and 11.1 and has been runtime-tested with Serum 2 in REAPER. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla