Unable to build RenderSystem_Direct3D9

Unable to build RenderSystem_Direct3D9

Hello Smoke team. I am using Win XP SP3 (32 bit) and VS 2008 to run the smoke demo.I am following the video presented by Omar titled A Step by step approach to build Smoke demo. I have followed the instructions given out in the video.

After building OgreMain and various Plugins,, i am not able to build the final subsystem i.e., RenderSystem_Direct3d9.

Below is the build log..

1>------ Build started: Project: RenderSystem_Direct3D9, Configuration: Release Win32 ------
1>Compiling...
1>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1>OgreD3D9Texture.cpp
1>..\src\OgreD3D9Texture.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9RenderWindow.cpp
1>..\src\OgreD3D9RenderWindow.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9RenderSystem.cpp
1>..\src\OgreD3D9RenderSystem.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9Plugin.cpp
1>..\src\OgreD3D9Plugin.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9MultiRenderTarget.cpp
1>..\src\OgreD3D9MultiRenderTarget.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9Mappings.cpp
1>..\src\OgreD3D9Mappings.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HLSLProgramFactory.cpp
1>..\src\OgreD3D9HLSLProgramFactory.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HLSLProgram.cpp
1>..\src\OgreD3D9HLSLProgram.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HardwareVertexBuffer.cpp
1>..\src\OgreD3D9HardwareVertexBuffer.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HardwarePixelBuffer.cpp
1>..\src\OgreD3D9HardwarePixelBuffer.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HardwareOcclusionQuery.cpp
1>..\src\OgreD3D9HardwareOcclusionQuery.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HardwareIndexBuffer.cpp
1>..\src\OgreD3D9HardwareIndexBuffer.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9HardwareBufferManager.cpp
1>..\src\OgreD3D9HardwareBufferManager.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9GpuProgramManager.cpp
1>..\src\OgreD3D9GpuProgramManager.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9GpuProgram.cpp
1>..\src\OgreD3D9GpuProgram.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9EngineDll.cpp
1>..\src\OgreD3D9EngineDll.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9DriverList.cpp
1>..\src\OgreD3D9DriverList.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>OgreD3D9Driver.cpp
1>..\src\OgreD3D9Driver.cpp : error C2471: cannot update program database 'c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\obj\release\vc90.pdb'
1>c:\program files\smokesource\smoke\code\extern\ogre1_9\rendersystems\direct3d9\include\OgreD3D9Prerequisites.h(48) : fatal error C1083: Cannot open include file: 'dxerr9.h': No such file or directory
1>Build log was saved at "file://c:\Program Files\SmokeSource\Smoke\code\extern\Ogre1_9\RenderSystems\Direct3D9\obj\Release\BuildLog.htm"
1>RenderSystem_Direct3D9 - 36 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I am using DirectX SDK AUg 2009 . In its include directory it doesn't have the " dxerr9.h" file.

How do i proceed ?

Thanks
Abhay

12 帖子 / 0 全新
最新文章
如需更全面地了解编译器优化,请参阅优化注意事项

Hmm. In Visual Studio, did you add the DX include and lib directories at Tools -> Options -> Projects and Solutions ->VC++ Directories? Also, it looks like some of the .pdb files are read-only. You migth want to make sure every file in the OGRE directory does not have the read-only flag set.

I hope that helps,
Orion

Quoting - Orion Granatir (Intel)

Hmm. In Visual Studio, did you add the DX include and lib directories at Tools -> Options -> Projects and Solutions ->VC++ Directories? Also, it looks like some of the .pdb files are read-only. You migth want to make sure every file in the OGRE directory does not have the read-only flag set.

I hope that helps,
Orion

Also, Omar's video was done on a slightly older version of Smoke that did not build correctly with VS 2008. In addition to Orion's tip about setting the DirectX paths in Visual Studio, please make sure you're building the latest Smoke (which now DOES support VS 2008). We posted R1.2 on the Smoke download page a few weeks ago.

Also also :-) we're using VS 2008 with SP1; I don't recall what changed in SP1 butplease make sure you'rerunning it.

HTH, Paul

Quoting - Paul Lindberg (Intel)

Also, Omar's video was done on a slightly older version of Smoke that did not build correctly with VS 2008. In addition to Orion's tip about setting the DirectX paths in Visual Studio, please make sure you're building the latest Smoke (which now DOES support VS 2008). We posted R1.2 on the Smoke download page a few weeks ago.

Also also :-) we're using VS 2008 with SP1; I don't recall what changed in SP1 butplease make sure you'rerunning it.

HTH, Paul

Thanks Paul and Orion. Build went on good with zero errors.However as soon as i hit the "start without debugging" button.. it gives me a BSOD as below.

[IMG]http://i49.tinypic.com/33l1izt.jpg[/IMG]

I get the same BSOD even by launching through installer.I have a feeling that it might be related to the display driver.I am using the latest drivers from Nvidia 195.62. Which version was used while testing Smoke.? Perhaps if i switch back to that particular driver it might work.

Cheers
Abhay

Best Reply

Quoting - Abhay

Thanks Paul and Orion. Build went on good with zero errors.However as soon as i hit the "start without debugging" button.. it gives me a BSOD as below.

[IMG]http://i49.tinypic.com/33l1izt.jpg[/IMG]

I get the same BSOD even by launching through installer.I have a feeling that it might be related to the display driver.I am using the latest drivers from Nvidia 195.62. Which version was used while testing Smoke.? Perhaps if i switch back to that particular driver it might work.

Cheers
Abhay

Abhay, first off, I'm glad the build issues got sorted out. Sorry you're now having crashes - that's no fun! This blue screen looks like it's in RtkHDAud.sys, which is a Realtek High Def Audio driver. Can you check if there are updated drivers for your audio device, and let us know if that changes anything? To pinpoint this more, you can also try disabling your audio hardware. Smoke should run just fine with no audio device, and it should not crash in the audio driver.

Which OS are you running - XP SP3? We've tested Smoke in various configurations on XP, Vista, and Windows 7, but we're mostly running it on Windows 7 at the moment.R1.2 was tested on the then-latest Nvidia driver (191.07) on all OSes, which is fairly current, soI don't expect changing video drivers to change anything.

Paul

My mistake, sorry, I was not reading carefully enough. I see you're running on XP SP3.

Paul

Quoting - Paul Lindberg (Intel)
My mistake, sorry, I was not reading carefully enough. I see you're running on XP SP3.

Paul

Thanks Paul :) Your solution worked :) I disabled the audio driver and the Smoke ran well.
However i updated my audio driver to the latest one i.e., 5.10.0.5995 (dated 12/3/2009) and tried,but it again gave me the same earlier BSOD :(
Audio driver is perhaps the culprit then .

Anyways i am glad that i could build and run the demo. :)

PS: I was looking for the source code of the demo given out by Jeff here in this video . This video was mainly targetted on how to thread a game for dual core.Since we have moved on to quad i wanted to play around with it in a quad core based system :)

Cheers

Quoting - Abhay

Thanks Paul :) Your solution worked :) I disabled the audio driver and the Smoke ran well.
However i updated my audio driver to the latest one i.e., 5.10.0.5995 (dated 12/3/2009) and tried,but it again gave me the same earlier BSOD :(
Audio driver is perhaps the culprit then .

Anyways i am glad that i could build and run the demo. :)

PS: I was looking for the source code of the demo given out by Jeff here in this video . This video was mainly targetted on how to thread a game for dual core.Since we have moved on to quad i wanted to play around with it in a quad core based system :)

Cheers

Glad that worked, although it's a bummer that you have audio woes on that machine.

I've separately asked Jeff to reply to your post on that video; I have no idea where the code might be for that. I suspect that the Smoke code is newer and more complete, though.

Paul

Quoting - Paul Lindberg (Intel)

Glad that worked, although it's a bummer that you have audio woes on that machine.

I've separately asked Jeff to reply to your post on that video; I have no idea where the code might be for that. I suspect that the Smoke code is newer and more complete, though.

Paul

Thanks for the heads up Paul. I was just wondering what might be the reason for Realtek Audio drivers to cause the BSOD while running Smoke. Has anyone with Realtek Audio driver faced similar problems before?

Quoting - Abhay

Thanks for the heads up Paul. I was just wondering what might be the reason for Realtek Audio drivers to cause the BSOD while running Smoke. Has anyone with Realtek Audio driver faced similar problems before?

Hm, I can't guess why Smoke plus its FMOD audio might trigger a blue screen in the audio driver. I'll defer to the community on that; this is the first I've heard of such an issue, but we never specifically tested it. If you want to experiment some more, there are a lot of audio sources in Smoke; you could try selectively turning some off to see if we're exceeding some limit.

Smoke has a hierarchical set of config files (or "definition" files, all called .df files.) The overall game content is set in the Global Def'n File (.gdf); you're using Smoke.gdf by default, or you can start Smoke with any other .gdf file on the command line.

Inyour GDF file, you'll find entries for different subsystems to load (like physics, AI, etc.). Their details are in the .sdf files. You'll also find, at the end of the GDF file,an entry saying which of the many possible scenes will get loaded at startup (Demo.cdf by default). There's where the config fun really begins! :-) The CDF file for your scene (e.g. Demo.cdf) lists all the objects in the scene. Each of THOSE has its own object def'n file (you guessed it, they're .odf files). You can selectively find all sound-emitting objects and turn off their audio. You do this one of two ways.

The easy way applies to some objects, like chickens, that have a single audio configuration. For example, say you want to make thechickens quiet. Notice that there are many chickens defined in the Demo.cdf file, but they all use the same chicken object. Open Chicken.odf, and look for the Audio property. It should look something like this:

You should be able to set "Source"s value to 0 to disable audio, or just comment out the whole property. Voila, silent chickens! The same approach will work for lots of other objects, like horses and birds IIRC.

For the more complex case, someobjects don't havea default audio config in their ODF file (e.g. meteors, fireballs, and trees). These objects have their audio setindividually in the Demo.cdf file.If you want to make them quiet, it's more involved. Walk through the Demo.cdf file, and find similar code, and again turn the sound off one at a time.

Although it's pretty short, you'll find some more info on the config files in the docs folder,in theConfiguration.rtf doc.

If you do try this, let us know what you find, or if you find any other workarounds!

Paul

Quoting Abhay
PS: I was looking for the source code of the demo given out by Jeff here in this video . This video was mainly targetted on how to thread a game for dual core.Since we have moved on to quad i wanted to play around with it in a quad core based system :)

Abhay,

I talked with Jeff, the author of that video; he said that it's pretty old and we seem to have lost track of its code through various site redesigns. :-( He's continuing to look for the code, so here's hoping he can find it! In the meantime, I suggest you start with the Smoke code and "dial it down" to have less content if your machine is struggling with it. See notes elsewhere in this thread for looking through and adjusting the content for the Smoke demo; you can comment out parts of the content to get a lighter workload.

Jeff alsobuilt the core part of the Smoke Framework, so I'd expect some common design between the two code bases (altough I've not seen the code for the older lab, either). I do know that the Smoke code has a more general threading approach (instead of 2 threads, it's built for "n" threads, however many your machine can run simultaneously in hardware).

From scanning that lab video, it sounds like that code wasn't really optimized for the Core 2 Duo, but it was simply built to run well on any 2-core CPU. In principle, you could surely extend that kind of code, to have more work in the existing subsystems, or to add more subsystems. To get each frame drawn quickly enough, you'll need to spread outyour workload, so it uses each core about the same amount. In practice, this can be a little hard to do by hand, and it's "brittle"; it matches one machine exactly but might not match another so you won't get your best performance everywhere. This is one of the reasons that Smoke went with a more general thread pool model, so that each subsystem can subdivide its work, and that work can then get done on whatever thread can run it next.

The general challenge of doing this for big and interesting workloads is to both: Chunk up the work into small-enough parts, and schedule that work wherever it'll get done first. The old lab does the scheduling by hand (you say "this subsystem goes on this thread"); Smoke does that automatically (you say "here's the work for this subsystem, run it when/where you can").

You asked about possibly using TBB; it can help you schedule your work, although you still have to do some work to decide how to chunk it up (but TBB helps with that, too). If youre interested in a very rich way to use TBB, you can look at the TBB Task Manager in Smoke, but its probably overkill for most everyday solutions (it's not plain-vanilla TBB, it's a task/job pool construct built on top of TBB). Weve talked about going back over that code, to see if there are even better ways to do that would that be interesting to you? (Its always nice to know if were doing stuff that the developer community wants.)

HTH!

Paul

Thanks for the solution, I worked after disabling the audio driver ....

thanks a lot

登陆并发表评论。