PDA

View Full Version : how too do hardware matrix multiplications without opengl???



wildeyedboyfromfreecloud
03-27-2002, 02:03 PM
i think i remember swearing to myself never to post here again. but i got this question urking me, and my fingers are crossed that someone cool can drop me a line. so everywhere i look... i read that in this day and age matrix multiplication is handled ultra fast in a lot of graphics cards. so i'm just curious how i can reap the benefits of this feature without opengl. a pointer to some useful information would more than satisfy me and be most apreciated. i'm using a Geforce3 chipset if that helps. my apologies if i upset someone. and please spare everyone your grief and only respond if you are a sincere person with an answer that specifically applies to the posed question. again my apologies for my idiosyncracies

SirKnight
03-27-2002, 02:14 PM
Sure you can do matrix math in hardware with out opengl. Its called the Direct 3D API. http://www.opengl.org/discussion_boards/ubb/smile.gif If you mean you want to access the GPU directly yourself well you cant. The chip is designed only to do math in hardware for opengl and direct3d only. You cant really access the video card manually any more. Well you can but you can only use the basic stuff like the mode 13h stuff like in the ol dos days. But i mean as far as accessing the GPU harware yourself to do hardware math and whatnot, cant be done.

-SirKnight

zeckensack
03-27-2002, 04:26 PM
You may want to have a look at some optimization manuals for 'SSE' and '3DNow!' instructions. This is still not using graphics hardware, but it is a good way to speed things up a bit. This should be done with inline assemby language.

The 'AMD Athlon Processor x86 Code Optimization Guide' pdf I have here does contain sample code for fully optimized matrix transforms using 3DNow!. That pdf is here (http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/22007.pdf) .

Intel sure offers something similar for SSE (P3 and up, AthlonXP/4, Duron1GHz+), but I haven't digged around enough to find it yet.

dorbie
03-27-2002, 10:22 PM
This forum isn't bad just "Don't feed the trolls". If you keep it on topic, ask clearly defined questions and don't ramble or get defensive you'll probably do better in future. If someone says you're OT you probably are, just don't argue over it, read the helpful stuff if any and move on. If you don't get an answer then the question is usually incoherent or ill defined. I've seen threads where people struggle to help you then give up because of your posting style.

In your thread about the normals you were spectacularly rude and ignorant with it, then tried to say you were advanced. Than gets the trolls excited, so does a preamble to an OT post that insults the forum. Don't do it, it is beyond bad netiquette. You can also edit your posts instead of posting 3 followups, write less verbage especially the conversational stuff and complaints as people are helping you. You will find that you get better results.

[This message has been edited by dorbie (edited 03-28-2002).]

Olive
03-27-2002, 11:58 PM
Everyone that discovers OpenGL and the matrix stack want's at one point to use that functionnality for something else than just graphics (I know I did). Unfortunately the specialised and pipelined matrix features of 3D chips are extremely slow when reading back the results of matrix operations. Remember you also have to transfer the data back through AGP and in the end you're far better off keeping non T&L matrix operations on the CPU.

[This message has been edited by Olive (edited 03-28-2002).]

Devulon
03-29-2002, 08:56 AM
Yeah they really should make the agp bus better. I don't mean more bandwidth but look at what happens if you want feedback. Stuff has to come over the bus. It is bidirectional but still, its like a 6 lane highway with all lanes heading towards the video card, dont' get on the exit ramp in the wrong direction.

Devulon
Happy Coding.

zeckensack
03-29-2002, 11:13 AM
Originally posted by Devulon:
Yeah they really should make the agp bus better. I don't mean more bandwidth but look at what happens if you want feedback. Stuff has to come over the bus. It is bidirectional but still, its like a 6 lane highway with all lanes heading towards the video card, dont' get on the exit ramp in the wrong direction.

Devulon
Happy Coding.

This is probably rather an issue with coherency versus deep pipelining. PCI masters can - depending on the chipset - write to memory at close to the theoretical maximum speed of 132MB/s. As AGP is just an extension of PCI protocols, it should be able to do reach at least the same writeback bandwith.

zed
03-29-2002, 11:55 AM
this has been discussed quite often 'check the archives' but the main jist is
even though the card can do calculations very quick this is not gonna be of benifit for you cause presumably u will want the answer to the calculations. and getting the card to send the answer back to u is gonna be far slower than just doing it all yourself on the cpu.

Ozzy
03-29-2002, 12:48 PM
In other words, use your own math library using FPU,SSE,3DNOW or whatever... ;) to make your hierarchical calculations for animations for instance.. Moreover, nice maths routines should be usefull for plenty of other things such as vectors manipulations, physics and so on and so forth..
Just let OpenGL drivers deal with projection and other maths used for rendering then if you ve got a nice GPU onboard with T&L you ll take advantage of this.

Ozzy
03-29-2002, 12:50 PM
oopps i forgot to add havea look at libsimd project could be cool if they make it real ;)