VirtualBox

Opened 10 years ago

Closed 6 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)

VBox.log (67.6 KB ) - added by michal1984 10 years ago.

Download all attachments as: .zip

Change History (5)

by michal1984, 10 years ago

Attachment: VBox.log added

comment:1 by pt__, 9 years ago

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.

comment:2 by pt__, 9 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:3 by Dsen, 6 years ago

Is it still the case with latest 5.1.x?

comment:4 by Dsen, 6 years ago

Resolution: obsolete
Status: newclosed
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use