Page 1 of 1
Unable to screenshot properly
Posted: 20. Feb 2016, 02:03
by MaggiePaggie
Hiya there, first post on this forum so sorry if it's in the wrong section!
I'm running a windows 7 guest on a windows 10 host machine. I can't seem to get the regular prtscn function within the guest to work properly though. I'm trying to screenshot a game window and some paused youtube video footage but when pasted it appears as completely white except for the title bar. It screenshots and pastes properly with the virtualbox host option for screenshots though and it shows up properly in the little preview window on the host as well. Tried a few hours of googling for solutions and tried everything I could think of so I figured I'd try my luck and post here. I appreciate any suggestions!
Re: Unable to screenshot properly
Posted: 20. Feb 2016, 13:20
by mpack
AFAIK this is normal for some guests (and the current VirtualBox) when you have 3D acceleration enabled.
Old style (non accelerated) graphics: you build an image in the background of what the screen should look like, then on the next frame refresh you blast this image to the graphics card, which displays it on your monitor. Print screen is dead easy with this, you just make a copy of that background image. Hard to do accelerated graphics with this working model though - too much back and forth with the card.
3D acceleration: means the complex graphics are rendered in the graphics card, removing the overhead of constructing the complicated bits in software and transferring it to the card. It works a lot like Hollywood greenscreen - the PC does the simple background stuff (the frame) and transfers it to the card which mattes in the complex stuff and shows it on your monitor. However you now have a problem with screenshots (like taking a photo on that Hollywood greenscreen set): the data was never there in the PC, so it can't easily be captured. Continuously transferring it back to the PC would lose much of the benefits of hardware acceleration. You would need some command to request one off copies.
There are two main APIs for accessing the hardware acceleration features of a graphics card: OpenGL and Direct3D. VirtualBox uses the former, and I'm not sure that the version VirtualBox uses has a method to request image data back from the card. But, it's a big API, so I maybe just missed it and there's some other reason why the VBox 3D accelerated graphics driver doesn't use the feature.
Re: Unable to screenshot properly
Posted: 20. Feb 2016, 23:57
by MaggiePaggie
From what I understood from your reply it's the 3dacceleration options fault. I tried turning it off and I was indeed able to take a regular screenshot without flickering or complete white solid colours. The game I'm trying to screenshot however suffers from extreme lag to the point where it takes 10 seconds for text to change or so, after having done this. Is there some way to keep the screenshot functionality while still being able to somewhat operate the game too by any chance?
Re: Unable to screenshot properly
Posted: 21. Feb 2016, 00:00
by mpack
Is there a way to be accelerated while not being accelerated? Not at the moment.
Re: Unable to screenshot properly
Posted: 21. Feb 2016, 11:37
by MaggiePaggie
mpack wrote:Is there a way to be accelerated while not being accelerated? Not at the moment.
I see. How does this work outside a VM though? And why is it impossible to implement the same method within a VM?
Re: Unable to screenshot properly
Posted: 21. Feb 2016, 11:57
by mpack
I think my previous explanation was about as clear as I can make it.
Re: Unable to screenshot properly
Posted: 21. Feb 2016, 12:32
by Martin
MaggiePaggie wrote:mpack wrote:Is there a way to be accelerated while not being accelerated? Not at the moment.
I see. How does this work outside a VM though? And why is it impossible to implement the same method within a VM?
When you use a VM with 3D support, the driver sends the 3D parts of the image as commands to the host where the host displays these parts of the image directly. So these parts of the image just don't exist inside the guest and cannot be seen by the screenshot.
If you run such a game directly on the host you just have the single display image of the host where it can be grabbed by a screenshot.
Re: Unable to screenshot properly
Posted: 21. Feb 2016, 16:37
by MaggiePaggie
Martin wrote:MaggiePaggie wrote:mpack wrote:Is there a way to be accelerated while not being accelerated? Not at the moment.
I see. How does this work outside a VM though? And why is it impossible to implement the same method within a VM?
When you use a VM with 3D support, the driver sends the 3D parts of the image as commands to the host where the host displays these parts of the image directly. So these parts of the image just don't exist inside the guest and cannot be seen by the screenshot.
If you run such a game directly on the host you just have the single display image of the host where it can be grabbed by a screenshot.
Oh, I get it now! Thanks for clearing that up.
