<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Rūdolfs,<br>
<br>
<div class="moz-cite-prefix">On 09.02.2015 10:28, Rūdolfs Bundulis
wrote:<br>
</div>
<blockquote
cite="mid:CAHtFw61DkB1JfDSQs4Lp9Lm+Oar94CWf-YLSL2eRwdEi6kKpMQ@mail.gmail.com"
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>
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.<br>
<blockquote
cite="mid:CAHtFw61DkB1JfDSQs4Lp9Lm+Oar94CWf-YLSL2eRwdEi6kKpMQ@mail.gmail.com"
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>
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.<br>
<br>
Klaus<br>
<blockquote
cite="mid:CAHtFw61DkB1JfDSQs4Lp9Lm+Oar94CWf-YLSL2eRwdEi6kKpMQ@mail.gmail.com"
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 class="HOEnZb">
<div class="h5">
<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 class="moz-signature"><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><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<br>
</div>
</div>
>
_______________________________________________<br>
> vbox-dev
mailing list<br>
> <a
moz-do-not-send="true"
href="mailto:vbox-dev@virtualbox.org" target="_blank">vbox-dev@virtualbox.org</a><br>
> <a
moz-do-not-send="true"
href="https://www.virtualbox.org/mailman/listinfo/vbox-dev"
target="_blank">https://www.virtualbox.org/mailman/listinfo/vbox-dev</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<!-- This signature was generated by the MyDesktop Oracle Business Signature utility version 4.2 -->
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>