FOVE SUPPORT CENTER

Unity: Compositor_DeviceMismatch

Comments

2 comments

  • Official comment
    Avatar
    Jeff

    Hi Flavio,

    The device mismatch error indicates that the client is rendering with the wrong GPU. This is also shown in the log that you helpfully posted:

    Renderer: Intel(R) HD Graphics 630 (ID=0x5912)

    (FOVE direct mode currently only supports AMD/NVIDIA, not Intel, so the compositor is running on a different card).

    When the compositor launches, it determines which GPU on your system the FOVE is plugged into, and uses that for rendering. In the case of Optimus laptops and the like, this is a little less obvious as this is determined by software rather than separate physical video-out ports as you might have if you had a tower desktop with multiple PCIe graphics cards.

    All rendering clients must run on the same GPU as the compositor so that your rendered contents can be shared with the compositor (without a very slow copy from memory on one card to the other each frame). We expose the ID of the correct card in our SDK via the Compositor::getAdapterId API call, so clients can ensure they create a rendering context on the correct GPU. Our Unity plugin does not currently do this. We haven't fully looked into whether Unity allows us to choose the GPU or not, so we're not sure yet that it's possible without Unity source.

    That said, if you're on a Optimus laptop there's a fairly easy fix for this, and that is to enable the discreet (NVIDIA) GPU for all rendering. Usually the NVIDIA settings has an option for this, and then once you reboot unity it will use that GPU, which will be the one that the compositor is using, and buffer sharing will commence!

    Comment actions Permalink
  • Avatar
    flavio

    Hi, I've tried to do a project from scratch following this: https://support.getfove.com/hc/en-us/articles/115002148654-Getting-started-with-Unity3D

     

    Anyway, I get the same output as Fove's example i.e. I see the starry sky inside the HMD. Here is application's log. Do you see anything related to the issue? Thank you so much!

     

    Initialize engine version: 2017.4.18f1 (a9236f402e28)
    GfxDevice: creating device client; threaded=1
    Direct3D:
    Version: Direct3D 11.0 [level 11.1]
    Renderer: Intel(R) HD Graphics 630 (ID=0x5912)
    Vendor: Intel
    VRAM: 3166 MB
    Driver: 23.20.16.4973
    Begin MonoManager ReloadAssembly
    - Completed reload, in 0.974 seconds
    <RI> Initializing input.
    XInput1_3.dll not found. Trying XInput9_1_0.dll instead...
    <RI> Input initialized.
    <RI> Initialized touch support.
    UnloadTime: 10.089149 ms
    Creating a Fove HMD interface.
    _sHeadset: Fove.Managed.FVRHeadset
    Detected rendering api: DirectX

    (Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

    FOVE Compositor layer acquired: 1

    (Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

    Connected to FOVE hardware.

    (Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

    Setting up 2 worker threads for Enlighten.
    Thread -> id: 10ec -> priority: 1
    Thread -> id: 1568 -> priority: 1
    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    Source height (1680) does not match desired height (2016)

    (Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    ...

    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    Can't set custom eye projection matrix when not in multipass mode

    (Filename: Line: 2884)

    Quitting interface.

    (Filename: C:\buildslave\unity\build\artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

    Compositor interface being destroyed.0
    Managed FVRHeadset is actually being destructed

    0
    Comment actions Permalink

Please sign in to leave a comment.