1 Reply Latest reply on Sep 18, 2008 3:07 PM by MicahVillmow

    3D and CAL

    Methylene
      This one has been floating around a bit...

      I've done a very rudimentary test that showed DRI worked alongside CAL on the same card.  However, I would very much like to know more about the details and expected problems on this matter.

      I will most likely using CAL mainly as a backend to update my ROAM algorithm to generate terrain, to maximize output and minimize the need to recalculate recently used vertices.

      I'm hoping to seperate these operations so that they run parallel.  I will have the ROAM algorithm request as necessary to calculate the queued vertices, and upon successful completion I will lock the vertex buffer and update it.  However this process would mean rendering and calculation may occur concurrently and very frequently.

      How does the GPU handle this exactly?  What problems should I expect?

      The worst case scenario in a single GPU setup would be to prevent rendering and computation from happening at the same time...  But must I for reliable results?

      Total Vertices: 10000000
       GPU Total Time: 0.947465
       GPU Millions of Random Vertices Per Second: 10.554476
      Press enter to exit...

      Those are the results of a test generating random vertices, the equation is very far completion, and the results are anything but polished to acceptable standards... 10 million random numbers per second is still more than plenty, as I must take into account my current 512mb limitation and that I will need plenty more memory for other operations on the card.  Also, I am not generating an entire mesh every time, the whole mesh will be sitting next door in GFX memory for the OpenGL server.

      Any information on this situation would be appreciated.

        • 3D and CAL
          MicahVillmow
          Methylene,
          Although I have not programmed this type of interactions myself. I do know that you have to serial the interaction between CAL and the 3D when accessing the memory locations. The only thing you have to make sure is that calCtxIsEventDone returns CAL_RESULT_OK before you access the data generated by CAL and that you don't execute a CAL kernel until all the data is correctly copied over to the cal device. Outside of this, I am not sure what else to expect.