Opened 11 years ago
Closed 7 years ago
#13017 closed defect (obsolete)
MBP host: Full Resolution not exposed to Windows guest
Reported by: | michal1984 | Owned by: | |
---|---|---|---|
Component: | guest additions | Version: | VirtualBox 4.3.10 |
Keywords: | Cc: | ||
Guest type: | Windows | Host type: | Mac OS X |
Description
Hi,
I think I am facing similar issue as reported in this ticket: #10860
I am using macbook pro with 13" retina display, OS X 10.9.2 Mavericks.
I cannot get the full resolution exposed to guest even though I have guest additions installed. I have tried both Windows 7 and 8.1 and maximum resolution I have available is 1280x800 in fullscreen mode (it is just half of the full display resolution which is 2560x1600).
Vbox log attached.
I can see there:
00:03:05.905693 VMMDev::SetVideoModeHint: got a video mode hint (1280x800x0)@(0x0),(1;0) at 0
even though I have configured in Virtual Box Preferences Display menu the hint 2560x1600.
Regards Michal
Attachments (1)
Change History (5)
by , 11 years ago
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Actually, it looks like the code to support this is already in trunk. Could a developer review this code (using (only) their built-in Retina display)? And perhaps step through it with a debugger.
In particular, could you check whether the "dBackingScaleFactor" value is > 1.0? And whether the if statements take the expected branches? (looks a bit contradictory)
// http://www.virtualbox.org/svn/vbox/trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp // .. void UIFrameBuffer::eraseImageRect(QPainter &painter, const QRect &rect, bool fUseUnscaledHiDPIOutput, HiDPIOptimizationType hiDPIOptimizationType, double dBackingScaleFactor) { /* Prepare sub-pixmap: */ QPixmap subPixmap = QPixmap(rect.width(), rect.height()); /* If HiDPI 'backing-scale-factor' defined: */ if (dBackingScaleFactor > 1.0) { /* Should we * perform logical HiDPI scaling and optimize it for performance? */ if (!fUseUnscaledHiDPIOutput && hiDPIOptimizationType == HiDPIOptimizationType_Performance) { /* Adjust sub-pixmap: */ subPixmap = QPixmap(rect.width() * dBackingScaleFactor, rect.height() * dBackingScaleFactor); } #ifdef Q_WS_MAC # ifdef VBOX_GUI_WITH_HIDPI /* Should we * do not perform logical HiDPI scaling or * perform logical HiDPI scaling and optimize it for performance? */ if (fUseUnscaledHiDPIOutput || hiDPIOptimizationType == HiDPIOptimizationType_Performance) { /* Mark sub-pixmap as HiDPI: */ subPixmap.setDevicePixelRatio(dBackingScaleFactor); } # endif /* VBOX_GUI_WITH_HIDPI */ #endif /* Q_WS_MAC */ } /* Which point we should draw corresponding sub-pixmap? */ QPointF paintPoint = rect.topLeft(); /* Take the backing-scale-factor into account: */ if (fUseUnscaledHiDPIOutput && dBackingScaleFactor > 1.0) paintPoint /= dBackingScaleFactor; /* Draw sub-pixmap: */ painter.drawPixmap(paintPoint, subPixmap); }
comment:4 by , 7 years ago
Resolution: | → obsolete |
---|---|
Status: | new → closed |
Yes, this is still a bug. VirtualBox is blurry on Retina displays. Period.
I guess none of the developers use a retina display. This link may hold the answer to how to fix it: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Introduction/Introduction.html
Specifically, VB needs to request a display surface that has a 1:1 mapping with the pixels on the screen. And it needs to detect the size of the surface correctly.
For those without a Retina display, you might be able to simulate the issue using the answers here: http://stackoverflow.com/questions/12124576/how-to-simulate-a-retina-display-hidpi-mode-in-mac-os-x-10-8-mountain-lion-on
Strangely, the last (lowest) answer may be the most useful.