Page 1 of 1

D3D9 Render System Exception

Posted: 04 Feb 2014, 08:17
by Nir Hasson
During the rendering execution I'm getting an exception with the following error description
Error on [.\Render\DX9RenderSystem\Src\DX9RenderSystem.cpp line 2658] desc D3DERR_NOTAVAILABLE[0x8876086a]: mDevice->CreateQuery(D3DQUERYTYPE_TIMESTAMP, &query)
This error occurs on two different machines with intel(R) 4 Series Express Chipset Family and ATI MOBILITY FireGL V5200.
I assume you use the query for GPU profiling..

Can you handle this situation where query is not available by just throwing an error instead of exception or crash ?
Can you provide a way to determine in runtime if the device is supported by Noesis ?

Re: D3D9 Render System Exception

Posted: 04 Feb 2014, 12:43
by jsantos
Hi Nir,

Yes, we should never show that error and detect if the card supports GPU queries. Could you please file a bug to track this?

But, and we should improve the documentation about this, you should never use the DLL that comes with the SDK within your program. You should use the corresponding runtime (win_x86 for this case I assume) because they are a bit faster (not instrumented, log disabled and no profiler).

Re: D3D9 Render System Exception

Posted: 04 Feb 2014, 13:01
by Nir Hasson
Hello Jesus,

I just opened a bug for that :)

I think that you should change the SDK structure to include the redist version of the dll and lib.
Having two different folders to use and is a bit confusing and error prone IMO :?
Maybe you can do that by adding some sub-folders under the SDK.

Sdk/Bin/Profile will contain the profile dll and lib
Sdk/Bin/Release will contain the release dll for redist purpose.
Same goes for the lib files and include files should be the same I guess...

Anyway, for now if I'll use the redist dll it wouldn't generate the exception ?


Re: D3D9 Render System Exception

Posted: 04 Feb 2014, 21:31
by jsantos
Thanks for reporting the bug!

In theory we though the current structure (SDK in a zip and each runtime in a different zip) to minimize downloads. That way, you only download the parts you need. You can download each part by separate and organize it the way you are describing (although the include folder can be shared among all the versions).

We are evaluating now is we should release a single package with everything inside. And adding missing features that should be there: debug versions of the dlls, symbols for debugging, etc. This will make the package huge, but I think there is no alternative.
Anyway, for now if I'll use the redist dll it wouldn't generate the exception ?
It shouldn't because GPU queries are not used in that version. In fact, that DLL is compiled without exception (to optimize even more the generated code). In that version, errors are considered fatal.

Re: D3D9 Render System Exception

Posted: 26 Feb 2014, 00:50
by timashev
I'm having the same problem in Windows 8.1 x64 virtual machine (running under VM Fusion on Mac). Unity displays no UI when I click the Play button and just crashes when I release it. While in Play mode I see the error message in the console:
Exception: D3DERR_NOTAVAILABLE[0x8876086a]: mDevice->CreateQuery(D3DQUERYTYPE_TIMESTAMP, &query)
Noesis.Error.Check () (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisError.cs:49)
Noesis.UIRenderer.Noesis_UpdateRenderer (Int32 rendererId, Double timeInSeconds) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRendererImports.cs:141)
Noesis.UIRenderer.Update (Double timeInSeconds, AntialiasingMode aaMode, TessellationMode tessMode, TessellationQuality tessQuality, RendererFlags flags, Boolean enableMouse, Boolean enableTouch) (at Assets/Plugins/NoesisGUI/Scripts/Core/NoesisUIRenderer.cs:85)
NoesisGUIPanel.LateUpdate () (at Assets/Plugins/NoesisGUI/Scripts/NoesisGUIPanel.cs:97)
Is there any workaround for that? It's not quite comfortable to run Unity on Mac and copy XAML files edited in Blend from the Windows virtual machine each time...

Re: D3D9 Render System Exception

Posted: 26 Feb 2014, 03:11
by jsantos
Although there is no workaround for this in the current version, we fixed this problem in v1.1.5 whose release is going to happen in less than 24h.

Re: D3D9 Render System Exception

Posted: 27 Feb 2014, 23:21
by timashev
Thanks! Just upgraded my projects to v1.1.5, and now it works fine on my Windows 8.1 x64 running in VMware Fusion!