<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 10.02.2015 15:33, Rūdolfs Bundulis wrote:<br>
<blockquote
cite="mid:CAHtFw62A3ex-gmqPYhjk=wwgzTCu2mOtgy2WyJ3UO5TcA4FW-Q@mail.gmail.com"
type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>I also wanted to ask are there any known release dates for
the next version where the GUI processes will be separated and
won't face the hardening issues?</div>
</div>
</blockquote>
We'll do the announcement when the code is out. If you look at
previous releases it's reasonable to extrapolate that there will be
a beta/release candidate quite a while before the next major
version will be finalized.<br>
<br>
Of course we can't stop you from trying out the latest code
anyway...<br>
<blockquote
cite="mid:CAHtFw62A3ex-gmqPYhjk=wwgzTCu2mOtgy2WyJ3UO5TcA4FW-Q@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>I've seen bugs regarding crashes with multiple CPUs (like <a
moz-do-not-send="true"
href="https://www.virtualbox.org/ticket/13319">https://www.virtualbox.org/ticket/13319</a>
) being solved in 4.3.20 so I wanted to know if a release of
that codebase without the hardening is planned in foreseeable
future, that could also address the crashes I'm having. Just a
general inquiry.</div>
</div>
</blockquote>
I thought we answered this question many times already (not in this
thread, but elsewhere). There will be no VirtualBox for Windows
releases without the hardening. We were forced to do this by a
security report (which does have a point), and as this security
issue has not that much to do with VirtualBox we can't drop it. It's
more an issue with Windows being inherently insecure and we're
having to compensate for that by going extremely paranoid.<br>
<br>
Klaus<br>
<blockquote
cite="mid:CAHtFw62A3ex-gmqPYhjk=wwgzTCu2mOtgy2WyJ3UO5TcA4FW-Q@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Best Regards,</div>
<div>Rudolfs Bundulis </div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-02-09 12:54 GMT+02:00 Rūdolfs
Bundulis <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:rudolfs.bundulis@gmail.com" target="_blank">rudolfs.bundulis@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi Klaus,
<div><br>
</div>
<div>thanks for the response, yeah I suspected that the
path was read from somewhere, since running regsvr32 to
unregister VBoxC.dll from installation directory and
then registering it from my path didn't chagne anything,
but I'm happy - it's not an issue to run my binaries
from the installation folder, the main thing is that
things seem to be working. Now the only thing I need is
to see if I can make OpenGL render to a custom FBO so I
can live without the window and access the OpenGL pixel
data, but that is my issue, if I come up with anything
interesting maybe that can be use fro you too. At least
as far as I understand right now, due to the need of a
window on the host, VBoxHeadless.exe does not provide
any 3D acceleration support right?</div>
<div><br>
</div>
<div>Sorry to bother you so much, but the issue I'm more
troubled by is the crash I get - I've already described
it before but I have made little progress. Basically
what happens is whenever I start my VM with my custom
frontend with more than 1 CPU it crashes on Windows
startup (longjmp_internal from Microsoft C runtime fails
with unaligned stack, the last stack entry I saw from
VBoxREM.dll was cpu_exit_loop or smth) - since
VBoxREM.dll is built with MinGW visual studio does not
help a lot, and when running under debug version under
MinGW I also was unable to obtain any valuable info.
With 1 CPU it always works fine. I've tried CRT debug
heap, Application Verifier etc. to find potential issues
with my code (since the default Qt frontend does not
crash with the same configuration) I blame my part of
the code, but still maybe there are some peculiarities
with the COM interface. Do you know any bugs that have
reported similar issues to what I'm seeing? Or maybe you
can give any pointers since currently I'm kind of stuck.</div>
<div><br>
</div>
<div>Again, great thanks for the support, my research
would have hit dead end without your help, yesterday I
finally finished splitting so thanks to VirtualBox I am
able to run a single virtual 9600x5400 display on
VirtualBox (what is weird, even with WDDM drivers) and
split/encode it to 25 displays, basically this cannot be
done with hardware (well in terms of a single
homogeneous display) so I'm very happy.</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Rudolfs Bundulis</div>
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-02-09 12:21 GMT+02:00
Klaus Espenlaub <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:klaus.espenlaub@oracle.com"
target="_blank">klaus.espenlaub@oracle.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> Rūdolfs,<span><br>
<br>
<div>On 09.02.2015 10:28, Rūdolfs Bundulis
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi,
<div><br>
</div>
<div>yeah it turned out that when running
from the VirtualBox installation path 3D
support works for my frontend, seems
that it comes from the fact that the COM
API is using the dll's from the
installation folder. I'm just gonna
leave this information here in case
anyone else stumbles on the same issue.</div>
</div>
</blockquote>
</span> VBoxC.dll contains "in-process" COM
components (which live in the "API client"
process), and the path to it is kept in the
registry. Normal COM stuff.<span><br>
<blockquote type="cite">
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-02-07 18:37
GMT+02:00 Rūdolfs Bundulis <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr">Hi,
<div><br>
</div>
<div>again thanks for all the
previous help, I managed to build
VBox with the LogRel() but when I
copied the dll's over the
installation i got a ton of errors
about invalid image hashes (I
guess that just copying over is
not the way to go). Anyhow, I came
up with a different approach and
made a small frontend that would
basically do the same stuff as my
app but also draw the output to a
window. When I launch the
application from the VirtualBox
installation folder everything
works fine - 3D support works,
when I take the app and all the
virtualbox binaries and put them
in a random folder, it again stops
working. And what is interresting
that using Process Explorer I was
able to see that actually two
copies of VBoxC.dll are loaded
(one from the installation folder
and one from my folder) and one
VBoxRT.dll (only from the
VirtualBox installation folder). I
assume the ones from the
installation folder are loaded by
the COM object? Is this a very
very bad practice to try and
deploy the VirtualBox binaries
outside the installation path?</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</span> The invalid image hashes most likely
mean that VirtualBox isn't accepting the
signature in your binaries. It only accepts the
"one signer" of everything, so if you mix Oracle
and your own build then it won't work very well.<br>
<br>
Deploying VirtualBox binaries outside the
installation path isn't exactly forbidden, but
we don't test it right now. This will stay for a
while, we have still way too much noise on the
hardening related tickets.<span><font
color="#888888"><br>
<br>
Klaus</font></span>
<div>
<div><br>
<blockquote type="cite">
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2015-01-26
15:25 GMT+02:00 Rūdolfs
Bundulis <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr">Hi Vitali,
<div><br>
</div>
<div>this was what I was
looking for, much
appreciated :)</div>
<div><br>
</div>
<div>Best Regards,</div>
<div>Rudolfs Bundulis</div>
</div>
<div>
<div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2015-01-26
14:59 GMT+02:00
Vadim Galitsyn <span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:vadim.galitsyn@oracle.com"
target="_blank">vadim.galitsyn@oracle.com</a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
style="word-wrap:break-word">
<div>Hi
Rudolfs,</div>
<div><br>
</div>
<div>you could
add LogRel()
messages and
they should
appear in
release log
(VBox.log
file) once
VBox has been
built w/
corresponding
flag. Note,
that this only
works for
guest R0 code
(miniport).
Adding
LogRel() to R3
code (display
driver) will
not result in
extra messages
in log.</div>
<div><br>
</div>
<div>Please
consider to
add VBOX_WITH_R0_LOGGING=1
into
LocalConfig.kmk
in order to
enable
LogRel()’s.</div>
<span><font
color="#888888">
<div><br>
</div>
<div>Vadim</div>
</font></span>
<div>
<div><br>
<div>
<blockquote
type="cite">
<div>On 26 Jan
2015, at
15:26, Rūdolfs
Bundulis <<a
moz-do-not-send="true" href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>>
wrote:</div>
<br>
<div>
<div dir="ltr">Hi
Vadim,
<div><br>
</div>
<div>ok clear,
thanks for the
info. We'll so
far I haven't
patched
anything in
the VBox code
itself, as I
said I have a
custom
frontend. Does
that code help
you in any
way? I'll make
a debug build
and look for
more messages
and mail back
if it gives
any additional
info, thanks
for all the
help so far.
The main thing
I wanted to
understand was
is there any
way to see the
output from
the WARN
macros in the
miniport
driver, and as
far as I
understand
there is none.</div>
<div><br>
</div>
<div>Best
Regards,</div>
<div>Rudolfs
Bundulis</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2015-01-26
13:42
GMT+02:00
Vadim Galitsyn
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:vadim.galitsyn@oracle.com"
target="_blank">vadim.galitsyn@oracle.com</a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
style="word-wrap:break-word">
<div>Hi
Rudolfs,</div>
<div><br>
</div>
<div>Debug
build of VBox
itself would
probably add a
bit more
messages to
VBox.log (and
to debug log
as well), but
this
definitely
will not
prevent the
fact that
debug version
of GAs cause
BSOD. Is it
possible if
you share a
patch to OSE
tree with your
changes, so I
could take a
look at it
later this
week (or
another)?</div>
<span><font
color="#888888">
<div><br>
</div>
<div>Vadim</div>
</font></span>
<div>
<div><br>
<div>
<blockquote
type="cite">
<div>On 26 Jan
2015, at
14:00, Rūdolfs
Bundulis <<a
moz-do-not-send="true" href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>>
wrote:</div>
<br>
<div>
<div dir="ltr">Hi
Vadim,
<div><br>
</div>
<div>Well
since I also
came to the
the conclusion
that the WinId
could cause
this, I tried
making a dummy
window for
each of the
IFramebuffer
instances, but
nothing
changed.
Though the
windows do not
have any logic
in the message
loop, and I do
not resize
them when the
resolutions
change - maybe
this causes
some errors.
That is why I
asked if any
logs from the
miniport
driver is
available to
see where does
it actually
crash. If I
make a debug
VirtualBox
build then
would debug
GAs work?</div>
<div><br>
</div>
<div>Best
Regards,</div>
<div>Rudolfs
Bundulis</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2015-01-26
12:50
GMT+02:00
Vadim Galitsyn
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:vadim.galitsyn@oracle.com"
target="_blank">vadim.galitsyn@oracle.com</a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
style="word-wrap:break-word">
<div>Hi
Rudolfs,</div>
<div><br>
</div>
<div>As far as
I can
understand,
returning NULL
WinID might
cause the
behaviour you
are observing
on Windows
host (please
note, I have
not tried that
locally, take
it like a
gesture).
Seems, you
also already
have 3D host
service
running. Can
you try to
provide valid
WinID to
Main/src-client
stuff as an
experiment and
see if things
changed?</div>
<div><br>
</div>
<div>Regarding
to GAs, I am
afraid you’ll
have a BSOD in
guest once you
attempt to
boot VM with
debug GAs
installed. We
currently have
some debug R0
assertion
there.</div>
<span><font
color="#888888">
<div><br>
</div>
<div>Vadim</div>
</font></span>
<div>
<div><br>
<div>
<blockquote
type="cite">
<div>On 26 Jan
2015, at
13:12, Rūdolfs
Bundulis <<a
moz-do-not-send="true" href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>>
wrote:</div>
<br>
<div>
<div dir="ltr">Hi
Vadim,
<div><br>
</div>
<div>thanks
for the
pointers, I'll
look up the
code, I was
already afraid
that something
is simply
missing.</div>
<div><br>
</div>
<div>To
describe what
I am doing:</div>
<div>I am
running a
research
project in
University of
Latvia where
we are trying
to use
VirtualBox for
large scale
high
resolution
display wall
construction -
basically we
run VirtualBox
with a custom
frontend that
takes the
video data
from the VRAM,
encodes it and
streams over
to a display
wall,
currently
we've been
able to run a
9600x5400
surface with
Windows XPDM
(we set this
resolution as
a hint and
then
internally
split it to
5*5 1920x1080
displays) ,
which is
really
impressive, so
thanks again
for the great
software. In
terms of
resolution I
guess this is
as far as the
existing 256MB
VRAM limit in
VirtualBox can
go (at least
according to
the
calculations
for
framebuffer
needs provided
by Klaus
Erspenlaub and
mentioned in
your code).
Since the
resolution
limit is
reached we are
trying to
address two
more issues -
3D support and
a weird
unaligned
stack crash in
VBoxREM.dll
with more than
1 CPU shared
to the machine
(for the
second issue I
need to do
some more
research as to
where it is
coming from
before I ask
any help
here). As for
the 3D - we'd
basically want
our software
to function in
the same way
the VirtualBox
QT client
does, but
currently it
does not.
Thanks for the
pointer about
the
HGCM/OpenGL
service, I'll
check out that
code and see
what I can
adapt.</div>
<div><br>
</div>
<div>Our
software
basically uses
the VirtualBox
COM interface
to create the
needed
machine, set
the number of
displays/resolutions,
injects the
IFramebuffer
instances and
powers up the
machine via
the IConsole
interface. So
I examined all
the
IFramebuffer
implementations
in VirtualBox
frontends, and
didn't see
anything very
special in the
3D related
callbacks
there. As for
the log - I
tried to
compare the
log of a
session from
our software
with a session
from the same
machine under
QT fronted
where the 3D
acceleration
works.
Basically
there were no
errors and
differences,
in both cases
the logs
contained the
lines about
OpenGL support
(i guess this
comes from the
OpenGL
capability
test exe),
I'll send both
logs as soon
as I get back
to that
machine but I
doubt they'll
give much
help, since
they don't
have any
errors, and in
both of them
the guest
additions log
line states
that
acceleration
is supported.
Basically the
only thing
that differs
is that the
D3D/OpenGL
(we've tried
both API's,
since the test
application is
built on Unity
it is trivial
to force
either mode)
device
creation fails
on our
frontend. That
is why I asked
about the
get_WinId, I
examined the
miniport
driver code
and as far as
I understood
it uses the
window id
value to
create a swap
chain. Out
frontend does
not have an
actual window,
so I am always
returning
NULL, can this
cause an
error? I also
saw that the
miniport
driver has a
lot of WARN
macros, is
the output
visible
anywhere? I
tried using
DebugView but
that didn't
help? Should I
try building a
debug version
of guest
additions to
get some log
information?</div>
<div><br>
</div>
<div>Best
Regards,</div>
<div>Rudolfs
Bundulis</div>
</div>
<div
class="gmail_extra"><br>
<div
class="gmail_quote">2015-01-26
10:34
GMT+02:00
Vadim Galitsyn
<span
dir="ltr"><<a
moz-do-not-send="true" href="mailto:vadim.galitsyn@oracle.com"
target="_blank">vadim.galitsyn@oracle.com</a>></span>:<br>
<blockquote
class="gmail_quote"
style="margin:0
0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">Hi
Rudolfs,<br>
<br>
In order to
provide 3D
acceleration,
VBox
HGCM/OpenGL
host service
should be
running. It is
currently a
part of
VirtualBoxVM
process
(ShCrOpenGL
thread). In
order to
provide 3D
acceleration
support for
your frontend,
I am afraid,
you need to
adapt stuff
from this
thread for
your code. And
I am afraid
this might be
not that easy
(there is a
bit of magic
when VBox GUI
conversates w/
3D stuff).
Please refer
to
src/VBox/HostServices/SharedOpenGL
and
src/VBox/GuestHost/OpenGL
sources.<br>
<br>
Btw, if you
describe a
little bit
more why do
you need this
and what you
already have
done, maybe I
could explain
you more
things/steps
you need to do
in order to
reach the
goal. VBox.log
also might be
helpful.<br>
<br>
Vadim<br>
<div>
<div
class="moz-signature"><br>
<br>
> On 24 Jan
2015, at
14:14, Rūdolfs
Bundulis <<a
moz-do-not-send="true" href="mailto:rudolfs.bundulis@gmail.com"
target="_blank">rudolfs.bundulis@gmail.com</a>>
wrote:<br>
><br>
> Hi,<br>
><br>
> I'm
having a bit
of a hard time
understanding
why my custom
framebuffer
cannot use the
3D
acceleration
feature. I
have a Windows
7 guest
machine (3D
acceleration
enabled, guest
additions
installed) and
a Unity demo
application.
Under the
default QT GUI
the
application
launches fine,
while under my
frontend Unity
is not able to
create the D3D
device. First
I though that
this could be
due to
incorrect
implementation
of
IFramebuffer,
but when I
looked at
UIFrameBuffer::Notify3DEvent(ULONG
uType, BYTE
*pData) in
UIFrameBuffer.cpp
there wasn't
any special
magic there.
Are there any
hints to guide
me towards
understanding
the cause of
this? Is there
any tracing
facilities for
the guest
miniport
driver? Also,
I don't have a
window handle
for my
frontend since
there is no
actual window.
If I am
returning 0 in
get_WinId in
my framebuffer
can that mess
things up?<br>
><br>
> Best
Regards,<br>
> Rudolfs
Bundulis<!-- This signature was generated by the MyDesktop Oracle Business Signature utility version 4.2 -->
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>