Sign in to follow this  
Nads

Frame Rate + Hardware Acceleration Problem [SOLVED]

Recommended Posts

Hi Guys, Im afraid I need your help again! Recently I had a scene with a few mesh models (.x) some were taken from directX and some were not. I also had a skybox in position with texture resolution of 1024x1024. The game was running fine and I was getting FPS of about 60. But recently I wanted to update my game scene with more models (to make it look like a game scene), hence I got some models from the internet like 2 different houses, some 3d Grass, and a Car model. All of these were in 3dsmax format. So I then converted them to .x format using Panda Plugin. Now I have put them into my game, but im getting horrible FPS of about 12?!? THe game is slowing down dramatically too. I know there probably is a variety of reasons why this might be happening, and it could be difficult to pinpoint what is going wrong. But does anyone have any ideas? Is there a problem with my code? or is just that the models are most likely converted/developed wrongly (too high poly count)? I thought about the second option, so I commented out the drawings to the scene for the car and house, then I was able to get back to 60FPS. Then what I tried is I replaced those models with current ones I was using, and the FPS didnt fall as badly but it still fell by a bit, the more times I drew those models on the screen the more the FPS kept falling! How can I combat this? Surely there must be a way as games nowadays have thousands of models on the screen, without any slowdown! And im only have around 6-7 models before my game starts to slow down! I know that most games use Low Level of Detail for the models far away in the scene to save memory etc.. But my scene so far I dont think is too big it seems reasonably sized for a small Scene. I can send code over for review if required or post some here? I can also post screenshots here if someone told me how to upload them here :D Thanks everyone in advance for help and sujjestions! [Edited by - Nads on February 29, 2008 9:41:14 AM]

Share this post


Link to post
Share on other sites
How many triangles are in your models? And how many subsets? The more subsets there are, the worse performance will be, since making repeated DrawSubset() calls is particularly expensive as it breaks batching.

Also, are you using the Debug runtimes? Any warnings or errors from them?

Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
How many triangles are in your models? And how many subsets? The more subsets there are, the worse performance will be, since making repeated DrawSubset() calls is particularly expensive as it breaks batching.

Also, are you using the Debug runtimes? Any warnings or errors from them?


Hi EvilSteve,

Thanks for the help.

Im not getting any errors or warnings currently. But I will make sure im using those debug runtimes when I go home tonight! Then if I get any errors or warning I will let you know.

Im not sure how many triangles and subsets are in the models, can I check them using the direct X model viewer?

Im not particurly making too many calls to DrawSubset(), I would say about 15 calls to it every frame. Is that too much?

Just so that you know, I am creating all my models and textures in the initialise D3D function I have in my main.cpp, this is called once just before going into the main run loop.

Then in my render loop function I am calling the function to draw the models onto the scene!

thanks.

Share this post


Link to post
Share on other sites
How big are the textures on these models? Would they all fit in video ram? If not that can cause big slowdowns. If that's the problem then resizing the textures, or converting them to DXT should help.

What video card are you running this on?

Share this post


Link to post
Share on other sites
Quote:
Original post by Adam_42
How big are the textures on these models? Would they all fit in video ram? If not that can cause big slowdowns. If that's the problem then resizing the textures, or converting them to DXT should help.

What video card are you running this on?


Hi Adam,

I dont think the textures are causing a problem. This is because the texture sizes are in KB and are very small. Even then theres only 2 models using textures the rest of them arnt!!

I have tried it on two cards. Generally I program on my laptop, which is what I use all my development for, i think it has a ATI X1400.

The desktop i tried it on had a Geforce 6100 nForce 430 (work computer).

Althought they both are not very high specs my laptop is good enough to run most pre-modern games such as Half Life 2, World of Warcraft etc..

I think the problem might lie in the actual models(as EvilSteve mentioned) or my code!

thanks

Share this post


Link to post
Share on other sites
15 DrawSubset() calls per frame is fine, if it was 1500 then I'd start to worry, even 150 shouldn't be too bad [smile]

You could try running NVPerfHUD (Which you can get from nVidia), that'll tell you where the bottleneck is.

Share this post


Link to post
Share on other sites


Hi EvilSteve,

I played around with a few things, I also have some questions about the Debug Runtime!


Firstly I think it is because of the models i was getting low FPS. This is because I loaded the .x files in DirectX viewer and ticked the statistics checkbox, it showed me that the normal models i had earlier from dx sdk (which worked fine at 60fps) all were being displayed at 60fps in the viewer!

I then tried the other models one by one, and I got much lower FPS for all the models, some were 5-10fps lower, while others were at 30fps!

I guess thats why my game is being slowed down? Whats the solution to this? Better models? A better Graphics card and Laptop?


Now going to the Debug Runtimes, I implemented them from the properties.
BUT there is a few problems.

The first one is that when I tick the Allow Hardware Acceleration box, and run my program I get a error:

access violating reading location 0x00000000.

It breaks at this line in my render frame function:
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET,  D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);


Second problem is when I tick use Debug version D3d.
This works, it compiles and runs.

But theres some odd things happeneing. For example, I have a Red spotlight set in my scene pointing in middle of scene on some boxes. But when I enable debug version of d3d then I dont get a red spotlight anymore (supposed to happen on pressing Enter Key), instead it lights up 1/4 of scene with a bright white light!

Any idea what could be wrong?

Also after I exit the program in the end of the debug ouput I notice the line:

Direct3D9: (ERROR) :Total Memory Unfreed From Current Process = 48505356 bytes

That doesnt look to healthy?

thanks

Share this post


Link to post
Share on other sites
It sounds like you grabbed models offline from random. So I'm guessing they are really high poly.

To find the vert counts, right-click the files and open in notepad. .X is a txt file. It says something like verts towards the top. It'll be a number in the thousands if you don't see it.

Share this post


Link to post
Share on other sites
Often you will find (in my case this is 100%) that discrepencies between the visuals when switching between debug and release runtimes come down to missing state changes that cause different behaviors. You should focus on tracking these down to make sure you don't compound them with further development.

A very useful tool for both performance tracking and render state changing is PIX. This was originally a 360 performance tool and now there is a PC version that is orientated around graphical debugging and performance. Using is has been a little hit or miss on my laptops (seems somewhat prone to crashing) but when working it has provided very useful information - esp when debugging pixel and vertex shaders.

PIX will show you how long each draw call / render state change takes and you can get information on the paramters passed and even wireframe views of draw calls pre and post transformation.

Share this post


Link to post
Share on other sites
The debug runtimes will try to break things. Sort of. They're just extremely uncooperative, which is a good thing - they're there to warn you if something just so happens on your card, and is because your driver is being nice to you.
The debug runtimes will be slower (obviously), so you shouldn't use them for performance testing, but they should be on most of the time you're developing to be sure that your app will work on most hardware.
One example of things it does is fill surfaces with known data when you Lock() them with flags saying "I will write to the entire surface" (E.g. D3DLOCK_DISCARD), so if you accidently rely on any values being kept, they get trashed so you'll notice (This is particularly noticible if you don't clear your backbuffer ad use D3DSWAPEFFECT_DISCARD - debug runtimes will flash the backbuffer green and magenta, where the release ones will probably "just work").

The access violation reading 0x00000000 means you have a null pointer. If it's on that line, it means your D3D device is null. If you look at the debug output you should see output like in that link I posted ("Direct3D9: (ERROR) Blah"). That'll tell you why your device pointer is null (That's assuming it's null because CreateDevice failed, not that it's null because you Release()'d it then set it to null).
A little offtopic here, you should normally be clearing the backbuffer and Z-buffer in one go by OR-ing the flags together. It's better for performance to do that, since it means one clear instead of two. I.e. your line of code should be:
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);

As for the spotlight bug, I'm not sure really. Are there any relevant warnings or messages in the debug output? Did you pass sensible parameters to SetLight() (E.g. are the angles for the spotlight in radians rather than degrees)?

The last thing is because you have a memory leak in your app. Unfortunately, they're a bit difficult to track down, because not releasing one surface means that loads of resources aren't freed because they all hold links to each other.
I'd recommend first checking that every time you get a pointer to an interface from D3D, either from a Create*() call or a Get*() call that you Release() it, and if you can't spot the problem then start commenting out chunks of your code until it goes away. When that happens, you know that the last thing you commented out was causing the leak.

Share this post


Link to post
Share on other sites


Thanks for all your help guys!


@EvilSteve

d3ddev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);

done that now, thanks.

Yeh, I am getting d3d device to be null?!!? I dont understand why though. This only happens when hardware acceleration is on!

This is how it is declared:

LPDIRECT3DDEVICE9 d3ddev;

Its showing as:
__vfptr = CXX0030: Error: expression cannot be evaluated


Also I cant find "d3d9d.lib" in my SDK! I only have the normal one without debug! So ive commented this one out.

Im also getting a failure on this line when i debug:

if(FAILED(d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &D3DCaps)))
return false;


which is what is causing the above to be null.

If I miss that line(comment out) then I get a failure on:

d3d->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
VertexProcessing,
&d3dpp,
&d3ddev)



Are all these occuring because I dont have d3d9d.lib? or is it some other problem?

I will also try and catch those memory leaks! With Trial and error i guess!

oh and by the way I am using D3DSWAPEFFECT_DISCARD :)

thanks

Share this post


Link to post
Share on other sites
Quote:
Original post by theonecalledtom
Often you will find (in my case this is 100%) that discrepencies between the visuals when switching between debug and release runtimes come down to missing state changes that cause different behaviors. You should focus on tracking these down to make sure you don't compound them with further development.

A very useful tool for both performance tracking and render state changing is PIX. This was originally a 360 performance tool and now there is a PC version that is orientated around graphical debugging and performance. Using is has been a little hit or miss on my laptops (seems somewhat prone to crashing) but when working it has provided very useful information - esp when debugging pixel and vertex shaders.

PIX will show you how long each draw call / render state change takes and you can get information on the paramters passed and even wireframe views of draw calls pre and post transformation.


OK thanks will look into PIX!

Share this post


Link to post
Share on other sites
Quote:
Original post by dpadam450
It sounds like you grabbed models offline from random. So I'm guessing they are really high poly.

To find the vert counts, right-click the files and open in notepad. .X is a txt file. It says something like verts towards the top. It'll be a number in the thousands if you don't see it.


thanks I had a look, for example one had lots of different mesh and each had its own verts.

Its total comes to about:
49,616

which does seem like a lot doesnt it? or is that normal?

The square of 3d grass even had total of about 10,000.

thanks

Share this post


Link to post
Share on other sites
Yeah, sorry - I've updated my journal entry on the debug runtimes; d3d9d.lib doesn't actually exist, I was talking crap [smile]

If that code crashes on access to your D3D interface, is it NULL too? Any time you have a null pointer, you should look at where you expect that pointer to be intiailised and check it's being initialised properly.

In this case, check that you don't get a null pointer from Direct3DCreate9(). If you do, then it means that no D3D support is available, presumably because you don't have video card drivers installed (do you?). Again, the debug runtimes should tell you if that's the case.

Actually, if I try to run my code through Remote Desktop, I get:

D3DX: (INFO) Using AMD SSE2 Instructions
'TEH ARTYESS.exe': Loaded 'C:\WINDOWS\system32\d3d9d.dll', No symbols loaded.
Direct3D9: :====> ENTER: DLLMAIN(02a3fc50): Process Attach: 00001068, tid=0000058c
Direct3D9: :====> EXIT: DLLMAIN(02a3fc50): Process Attach: 00001068
Direct3D9: (INFO) :Direct3D9 Debug Runtime selected.
Direct3D9: :Device doesn't support mip-maps
Direct3D9: (ERROR) :No hardware acceleration is available in the current mode
Direct3D9: :Device doesn't support mip-maps
Direct3D9: (ERROR) :No hardware acceleration is available in the current mode
Direct3D9: (ERROR) :No hardware acceleration is available in the current mode
Direct3D9: (ERROR) :No ddraw acceleration is available in the current mode


And then GetDeviceCaps() fails with:

D3D9 Helper: IDirect3D9::GetDeviceCaps failed: D3DERR_NOTAVAILABLE


Which looks exactly like what's happening in your case. Do you have up to date video card drivers?

50k vertices isn't that much at all and shouldn't be the cause of your slowdown. Although if you don't have hardware acceleration, drawing anything is going to be painfully slow...

Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
Yeah, sorry - I've updated my journal entry on the debug runtimes; d3d9d.lib doesn't actually exist, I was talking crap [smile]

If that code crashes on access to your D3D interface, is it NULL too? Any time you have a null pointer, you should look at where you expect that pointer to be intiailised and check it's being initialised properly.

In this case, check that you don't get a null pointer from Direct3DCreate9(). If you do, then it means that no D3D support is available, presumably because you don't have video card drivers installed (do you?). Again, the debug runtimes should tell you if that's the case.

Actually, if I try to run my code through Remote Desktop, I get:
*** Source Snippet Removed ***
And then GetDeviceCaps() fails with:
*** Source Snippet Removed ***
Which looks exactly like what's happening in your case. Do you have up to date video card drivers?

50k vertices isn't that much at all and shouldn't be the cause of your slowdown. Although if you don't have hardware acceleration, drawing anything is going to be painfully slow...


OK thanks EvilSteve, I pressume I have video card drivers installed otherwise i wouldnt be able to play any games on my laptop right? (like Half Life 2)

Being up to date is another thing though, I havnt physically been to the ATI site to update my graphics card in the last 2-3 months!
But I have Vista installed a few months ago and that was the time when I updated everything so it should be fairly up to date, does it require the absolute latest drivers?

Yes the deviceCaps is failing and breaking out of the function.

d3d device has the value null everywhere its not being set in the CreateDevice function. I am at work so cant check the error messages, but will see what i get from it tonight.

thanks


As for the models, perhaps hardware acceleration is the problem then why im getting low fps with those models!
Perhaps it is the drivers stuff then rather then my code :D (which is a good thing to hear if its the case)

Share this post


Link to post
Share on other sites
Quote:
Original post by Nads
OK thanks EvilSteve, I pressume I have video card drivers installed otherwise i wouldnt be able to play any games on my laptop right? (like Half Life 2)
Hmm, that's a good point. I'm not really sure what's going on then :/

Quote:
Original post by Nads
Being up to date is another thing though, I havnt physically been to the ATI site to update my graphics card in the last 2-3 months!
But I have Vista installed a few months ago and that was the time when I updated everything so it should be fairly up to date, does it require the absolute latest drivers?
Nah, so long as you have some sort of drivers (Even the ones that come with Vista might be enough), there shouldn't be a problem. It can't hurt to get the latest drivers in any case.

Quote:
Original post by Nads
Yes the deviceCaps is failing and breaking out of the function.

d3d device has the value null everywhere its not being set in the CreateDevice function. I am at work so cant check the error messages, but will see what i get from it tonight.
If it's failing, it'll be returning an error code and the debug runtimes will show what that error is and why. So long as the D3D pointer isn't null anyway, since that should never be the case. If the device pointer is null, that's not too bad - since it just means CreateDevice failed, which it can do for loads of reasons.


Still, I'm confused as to why Half Life 2 can work properly when D3D says there's no hardware acceleration available. Unless it's using OpenGL for rendering?

Share this post


Link to post
Share on other sites
Quote:
Original post by Evil Steve
Quote:
Original post by Nads
OK thanks EvilSteve, I pressume I have video card drivers installed otherwise i wouldnt be able to play any games on my laptop right? (like Half Life 2)
Hmm, that's a good point. I'm not really sure what's going on then :/

Quote:
Original post by Nads
Being up to date is another thing though, I havnt physically been to the ATI site to update my graphics card in the last 2-3 months!
But I have Vista installed a few months ago and that was the time when I updated everything so it should be fairly up to date, does it require the absolute latest drivers?
Nah, so long as you have some sort of drivers (Even the ones that come with Vista might be enough), there shouldn't be a problem. It can't hurt to get the latest drivers in any case.

Quote:
Original post by Nads
Yes the deviceCaps is failing and breaking out of the function.

d3d device has the value null everywhere its not being set in the CreateDevice function. I am at work so cant check the error messages, but will see what i get from it tonight.
If it's failing, it'll be returning an error code and the debug runtimes will show what that error is and why. So long as the D3D pointer isn't null anyway, since that should never be the case. If the device pointer is null, that's not too bad - since it just means CreateDevice failed, which it can do for loads of reasons.


Still, I'm confused as to why Half Life 2 can work properly when D3D says there's no hardware acceleration available. Unless it's using OpenGL for rendering?


I think that is the problem I am having the d3d device is being NULL because CreateDevice is failing! Anyway I can find out why create device might be failing? I think yesterday on checking it I might have noticed some warning message on the break at createdevice, something about HND ?!? (Does it ring any bells? I can probably give more info on it tonight though if required)

As for the graphics card, how can i check that half life 2 is rendering with openGL rather then hardware or directx? (is there even a easy way?)

thnx for your help

Share this post


Link to post
Share on other sites
Quote:
Original post by Nads
I think that is the problem I am having the d3d device is being NULL because CreateDevice is failing! Anyway I can find out why create device might be failing? I think yesterday on checking it I might have noticed some warning message on the break at createdevice, something about HND ?!? (Does it ring any bells? I can probably give more info on it tonight though if required)
Yeah, CreateDevice() will be failing because there's no hardware support, so you can't create a D3DDEVTYPE_HAL device.
All I can suggest is seeing what the debug output says. I suppose you could also use the DX Caps viewer to see if it lists the HAL device there - but then if HL2 works reasonably well, it should be going fine...

Quote:
Original post by Nads
As for the graphics card, how can i check that half life 2 is rendering with openGL rather then hardware or directx? (is there even a easy way?)

Quote:
Original post by phantom
Just to chime in; Half Life 2 is a purely D3D game, there is no OpenGL renderer in it, so it'll be running some form of D3D code.
Ah, I wasn't sure if it had a D3D / OpenGL renderer, or if it was just D3D.

Share this post


Link to post
Share on other sites

OK thanks,

Will first update drivers, then look into the Create Device function and see if I can find why its failing!

Also EviLSteve can you have a look at my code for that part and see if it looks ok or if it needs any changes:


bool initD3D(HWND hWnd)
{
// This object will allow us to set the display mode of the screen.
D3DDISPLAYMODE DisplayMode;
// Create a struct to hold various device information
D3DPRESENT_PARAMETERS d3dpp;
// This is used to get the capabilities of the hardware.
D3DCAPS9 D3DCaps;

// Create the Direct3D interface
d3d = Direct3DCreate9(D3D_SDK_VERSION);

// Make sure that it was successful.
if(d3d == NULL)
{
MessageBox(NULL, "Error, can not initialize DirectX!","Error!", MB_OK);
return false;
}

// This function will get the display mode of the device and place it in DisplayMode
if(FAILED(d3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &DisplayMode)))
{
MessageBox(NULL, "Error setting the display mode!", "Error!", MB_OK);
return false;
}

// Get the capabilities of the hardware.
if(FAILED(d3d->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &D3DCaps)))
return false;

// Test hardware or software support for vertex processing
DWORD VertexProcessing = 0;

if(D3DCaps.VertexProcessingCaps != 0)
VertexProcessing |= D3DCREATE_HARDWARE_VERTEXPROCESSING;
else
VertexProcessing |= D3DCREATE_SOFTWARE_VERTEXPROCESSING;


ZeroMemory(&d3dpp, sizeof(d3dpp)); // Clear out the struct for use
d3dpp.Windowed = WINDOW_TOGGLE; // Program windowed
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; // Discard old frames
d3dpp.hDeviceWindow = hWnd; // Set the window to be used by Direct3D
d3dpp.BackBufferFormat = DisplayMode.Format; // Set the back buffer format
d3dpp.BackBufferCount = 1; // Number of back buffers
d3dpp.BackBufferWidth = SCREEN_WIDTH; // Set the width of the back buffer
d3dpp.BackBufferHeight = SCREEN_HEIGHT; // Set the height of the back buffer
d3dpp.EnableAutoDepthStencil = TRUE; // Automatically run the z-buffer
d3dpp.AutoDepthStencilFormat = D3DFMT_D16; // 16-bit pixel format for the z-buffer

// Create a device class using this information and the info from the d3dpp struct
if(FAILED(d3d->CreateDevice(D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
VertexProcessing,
&d3dpp,
&d3ddev)))
{
MessageBox(NULL, "CreateDevice() failed! Make sure you have DirectX 9!","Error!", MB_OK);
return false;
}

d3ddev->SetRenderState(D3DRS_LIGHTING, TRUE); // Turn ON the 3D lighting
d3ddev->SetRenderState(D3DRS_ZENABLE, TRUE); // Turn ON the z-buffer
d3ddev->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_XRGB(100, 100, 100)); // Ambient light
d3ddev->SetRenderState(D3DRS_NORMALIZENORMALS, TRUE); // Handle normals in scaling

// This will render the front and back of the triangles.
d3ddev->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); // Disable culling
d3ddev->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_DIFFUSE);

// Set the Camera perspective
SetPerspective();

// Set the image states to get a good quality image
d3ddev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
d3ddev->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);

// Clamp texture co-ordinates to get rid of horrible seam (Used for Skybox)
d3ddev->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
d3ddev->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);

return true;
}//End initD3D




The GetDeviceCaps is failing so it is exiting the function altogather!

If I comment that bit out then it fails on: CreateDevice

ANything you might be able to notice from the source code?

thanks

Share this post


Link to post
Share on other sites

ok ive had a look at the ATI website.

ATI doesnt support video card drivers for their mobility cards, it says I need to get them from my laptop manufacturer.
Hence I went to dell website, and the last drivers were updated in 2006 for my video card (Mobility Radeon X1400).

So I already have the latest graphics card!

DOes anyone have any further sujjesstions?

Share this post


Link to post
Share on other sites
Quote:
Original post by Nads
The GetDeviceCaps is failing so it is exiting the function altogather!

If I comment that bit out then it fails on: CreateDevice

ANything you might be able to notice from the source code?
Yeah, as I said in one of my above posts, if there's no hardware support, D3D can't get the device caps or create a device (There's no device there to create or get caps for). The source code looks fine to me.

Quote:
Original post by Nads
ATI doesnt support video card drivers for their mobility cards, it says I need to get them from my laptop manufacturer.
Hence I went to dell website, and the last drivers were updated in 2006 for my video card (Mobility Radeon X1400).

So I already have the latest graphics card!

DOes anyone have any further sujjesstions?
Urgh, I hate it when IHV's do that. You can actually update the drivers using some tool that modifies the offical ATI drivers (My dad had to do this - Half Life 2 said it needed newer drivers, his laptop manufacturer didn't have any). But I don't think that's needed if HL2 and the like work fine already.

All I can suggest is seeing if there's any debug output like I got, saying there's no hardware acceleration available, or if there's any reason why.

Share this post


Link to post
Share on other sites
ATI do have mobility drivers for download. Have you tried them?

The full official way of getting them is:

1. Go to http://ati.amd.com/support/driver.html
2. Select XP Professional / Home (or whatever OS you have)
3. Select Mobility Radeon from the second list.
4. Select your card from the right hand list.
5. Press Go.
6. Download the installation verification software, and run it.


The direct link bypassing all that is: http://www.ati.com/online/mobilecatalyst/

Share this post


Link to post
Share on other sites
Quote:
Original post by Adam_42
ATI do have mobility drivers for download. Have you tried them?

The full official way of getting them is:

1. Go to http://ati.amd.com/support/driver.html
2. Select XP Professional / Home (or whatever OS you have)
3. Select Mobility Radeon from the second list.
4. Select your card from the right hand list.
5. Press Go.
6. Download the installation verification software, and run it.


The direct link bypassing all that is: http://www.ati.com/online/mobilecatalyst/


thanks mate i got that installed now although it was a bit different to above for the vista download! As the website doesnt have a tool for vista so i had to get it from elsewhere.

thanks

Share this post


Link to post
Share on other sites
@EvilSteve

Hi,

Ok last night I had a play around with a few things. (I also installed the new ATI drivers but didnt manage to test the game with it as had to go to sleep by that time :) )

BUT I managed to get some ouput from the debug window, this is what it displays hope there is something usefull here that someone can notice?


...
...
Direct3D9: :====> ENTER: DLLMAIN(6812a170): Process Attach: 0000109c, tid=00000464
Direct3D9: :====> EXIT: DLLMAIN(6812a170): Process Attach: 0000109c
Direct3D9: (INFO) :Direct3D9 Debug Runtime selected.
...
...
D3D9 Helper: Enhanced D3DDebugging disabled; Application was not compiled with D3D_DEBUG_INFO
Direct3D9: (WARN) :HW device not available. GetAdapterCaps fails.
...
...
First-chance exception at 0x00415ef8 in Skybox.exe: 0xC0000005: Access violation reading location 0x00000000.
Unhandled exception at 0x00415ef8 in Skybox.exe: 0xC0000005: Access violation reading location 0x00000000.
The program '[4252] Skybox.exe: Native' has exited with code -1073741819 (0xc0000005).




those were really the only useful messages being displayed before it breaks out.
The only thing that catches my attention here is the application not compiled with D3D_DEBUG_INFO ??

Thanks

EDIT: Also I tried finding D3DDEVTYPE_HAL device using the directX tool you mentioned but I couldnt locate it, might have just missed it though as there was hundreds of them, i wasnt sure which folder to look in.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this