Jump to content


directX + debug stability


  • You cannot reply to this topic
7 replies to this topic

#1 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 19 January 2009 - 09:15 PM

I'm having quite a mysterious problem here...

Here's the situation:
I write my engine on my laptop, however it has a much less powerful card than my desktop (although both are dx10 compatable 8 series cards).

I wanted to test the performance of it on my desktop, so I took the debug version of the program (the one generated from just saying "Run without debugging" in VC++ 2008), imported all the same texture/mesh resources to its folder, and then transfered it to my desktop.

The program ran fine and performed very fast, however, every vertex buffer or mesh I drew was drawing one extra polygon. They stretched all over the screen and caused z-fighting on almost all the surfaces and it just looked awful.

I then opened fraps to check the framerate, but as soon as I did, the problem disappeared, and everything drew fine. Then I closed it and it came back. I transfered the program several different times and made sure that no resources were missing, the problem remained though. Unfortunatley I didn't think to transfer the "release" version of the program.

Then finally I installed VC++ 2008 on my desktop and suddenly the problem no longer existed no matter what I did.

Can someone please tell me whats going on? :(
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#2 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 20 January 2009 - 02:57 AM

Nevermind, I figured it out. All of my vertex buffers use indexed primitives, and to get the numer of faces I had a GetNumFaces() function. Well apparently I accidently returned the number of indicies instead. It was pulling out random crap from memory and using it as an index buffer (explaining the randomness of it all).

Still though, its strange I didn't see the error appear on my laptop at any point.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#3 Goz

    Senior Member

  • Members
  • PipPipPipPip
  • 574 posts

Posted 20 January 2009 - 01:13 PM

starstutter said:

Still though, its strange I didn't see the error appear on my laptop at any point.

You will find loads more "How did this ever work?" bugs as time progresses :)

I sure do ...

#4 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 20 January 2009 - 02:46 PM

I find it even wierder that fraps is apparently the cure-all for errors 0_o
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#5 Goz

    Senior Member

  • Members
  • PipPipPipPip
  • 574 posts

Posted 20 January 2009 - 04:22 PM

starstutter said:

I find it even wierder that fraps is apparently the cure-all for errors 0_o

I had a VERY similar problem. This time, though, the software ONLY worked when i ran it through PIX ;)

#6 Rofar

    Member

  • Members
  • PipPip
  • 99 posts

Posted 20 January 2009 - 04:51 PM

Did you have the same video driver version on your desktop and laptop?

#7 starstutter

    Senior Member

  • Members
  • PipPipPipPip
  • 1039 posts

Posted 20 January 2009 - 06:26 PM

Rofar said:

Did you have the same video driver version on your desktop and laptop?
well no actullay. My desktop uses and official nVidia driver and, get a load of this, my laptop uses one thrown together by a third party group to fix a toshiba compatability problem that I was having with some games.

Backwards much?

The only explaination I can come up with (and its probably not a very good one) is that my laptop driver was somehow modified to use the last component of valid memory and repeating it, rather than pulling random past information out. That's probably a very bad guess though =/

An additional note here: About my laptop driver though, the reason I downloaded it is pretty hillarious <sarcasm>. I bought a toshiba, and their main selling point was that it was beefy enough to run bioshock, images of the game litterally plastered all over the thing. In fact, it was actually dubbed the "adapt to survive" version. So I get home, start installing a few of my games on it (half life ep2, team fortress 2, portal) and they all work great... then I go to install one of my games that crashes on the very first screen... and take a guess, just take a wild guess what that game was...

The game that the computer was built for didn't work on it... and I wasn't the only one who couldn't run bioshock. Almost every person who bought this model had the same problem with THE GAME THAT WAS PLASTERED ON THE #|(@^&$(@ FRONT OF THE LAPTOP!!!. Does anyone even test that crap before it heads out the front door?

Fortunatley though I can look back on it and laugh because it was pretty easy and fast to install the driver (which the toshiba website made no mention of btw). So it wasn't a huge problem but... the irony...

EDIT: I thought I should make it clear that despite my rant, their laptops are actually very good. I love this current one and besides the driver issue I've never had any real problems with it.
(\__/)
(='.'=)
This is Bunny. Copy and paste bunny into
(")_(") your signature to help him gain world domination.
bunny also wants to fight spam: Click Here Bots!

#8 Goz

    Senior Member

  • Members
  • PipPipPipPip
  • 574 posts

Posted 20 January 2009 - 10:31 PM

starstutter said:

The only explaination I can come up with (and its probably not a very good one) is that my laptop driver was somehow modified to use the last component of valid memory and repeating it, rather than pulling random past information out. That's probably a very bad guess though =/

OR ... maybe running it through fraps moved the base memory location so that when it started randomly reading through memory it wasn't reading from a regularly used bit of memory (and hence full of crap) it was reading from a barely used bit of memory that was full of the same numbers ...

Thats what I assumed was the case with my pix based issue (Admittedly that was after I'd threatened to throw my laptop out the window).





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users