XNA Creators Club Online
Page 1 of 1 (10 items)
Sort Posts: Previous Next

Texture quad seams - different on some vid cards

Last post 3/3/2009 6:24 AM by Fordfanboi. 9 replies.
  • 3/3/2009 4:28 AM

    Texture quad seams - different on some vid cards

    For some reason, on some video cards, ( running from same networked copy of the client / media ) I will lose textured quads along seams.  Here are the examples.  The missing rows are rows x = 127 / y = 127 ( 0 to 127 ) Any ideas?

    Also, the CPU's are different.  The problem PC is an Intel 6700 with NVidia 260 and the working PC is an AMD FX-60 with NVidia 8800GT.

    Thanks!

    http://www.paydirtsoftware.com/artifact/sshots/03-02-09/260GTX.jpg

    http://www.paydirtsoftware.com/artifact/sshots/03-02-09/8800GT.jpg
  • 3/3/2009 4:33 AM In reply to

    Re: Texture quad seams - different on some vid cards

    More info.  Apparently it isn't tied to the Video card.  An 8800GT on an Intel Pentium 4 ( single core ) CPU has the problem as well.  Is this an Intel issue?
  • 3/3/2009 4:37 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Are you 100% percent certain your vertex/indice data is spot on, all the time?

    btw impressive screenshots.
    Game hobbyist hell-bent on coding a diabolical Matrix
  • 3/3/2009 4:44 AM In reply to

    Re: Texture quad seams - different on some vid cards

    I'll reword that: Are you 100% percent certain your vertex/indice data is valid for the different hardware specs?

    Have you tried debugging with PIX?
    Game hobbyist hell-bent on coding a diabolical Matrix
  • 3/3/2009 4:47 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Thanks for the kind comment!

    Good call - will check the pixels with PIX.

    Will doublecheck that both are running the same device options, but I believe I have them forced currently.

    TY - will check back in with test info.
  • 3/3/2009 4:51 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Tried another AMD Athlon 64 X2 Dualcore PC with Nvidia 6150SE and it has no problem.  Looks like it's tied to Intel chips at the moment.  Still testing tho.
  • 3/3/2009 5:40 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Strange.  Same number of vertices in the mesh on the two PC's ( same mesh file ), but the values of the vertices on the final row are 0.0f/0.0f/0.0f on the Intel PC, but valid on the AMD PC.  Gonna do some more digging.
  • 3/3/2009 5:59 AM In reply to

    Re: Texture quad seams - different on some vid cards

    I believe the problem is the following.  The AMD and Intel chips seem to hold the floating point values retrieved from the vertex buffer differently.

        forint counter = 0; counter < numberVerts; counter++ )  
        {  
            vertex = &pIndices[ counter ];  
     
            x = (int)( pVertices[vertex[0]].p.x - zoneVector.x );  
            y = (int)( pVertices[vertex[0]].p.z - zoneVector.z );  
     
            originalVerts[x][y] = pVertices[vertex[0]];  
        }  
     

    For example, pVertices[vertex[0]].p.x is 64.0 on the AMD and 63.99997 on the INTEL which can end up causing truncation issues.  Not sure if there's a compiler flag or something to solve this.  Any ideas?

    TY!
  • 3/3/2009 6:08 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Sorry I can't help you there, it is beyond my knowledge, but it looks like you are closing in on the bug. Someone else here may know. Good luck.
    Game hobbyist hell-bent on coding a diabolical Matrix
  • 3/3/2009 6:24 AM In reply to

    Re: Texture quad seams - different on some vid cards

    Craig Martin:
    Sorry I can't help you there, it is beyond my knowledge, but it looks like you are closing in on the bug. Someone else here may know. Good luck.


    Thanks for your help - you got me lookin in the right direction.

    I have a temporary workaround by adding 0.01f to the calculation.

    x = (int)( pVertices[vertex[0]].p.x - zoneVector.x + 0.01f );  
    y = (int)( pVertices[vertex[0]].p.z - zoneVector.z + 0.01f );  

    but I'm hoping someone has a compiler switch or somthing to solve it.

    Thanks again!
Page 1 of 1 (10 items) Previous Next