GeForceFX stripped to the bone

Started by
7 comments, last by Dark_Guy 19 years, 5 months ago
Hi Does anyone know where I could find some real documentation about the GeForceFX chip ? I am especially interrested in the register description, and everything related to the GPU as low level as possible. I am looking for something stripped to the level of no operating system. (I am developing a new Operating System that can only support a low level programming language optimized for 3D. It would run it's own programs have it's own Kernel and memory managment and so on. Right now I'm working on gathering documentation about a graphics accelerator to fit my new OS, and I need a card that has as much low level documentation as possible.)
"Find the path, follow the Master... Follow the master, understand the master... Overcome the master !"
Advertisement
Woah.

...are you sure you don't want to start on something easy like an MMORPG?
Ummm...no..not really.. I'm pretty shure that this is what I want..

I am working with a team of students, and this project will be for our Thesys in Computer Science. Now we are at the phase of gathering as much information as possible, to figure out on what line should we get started with this. And also to chose a gpu. (geforce seemed fast and nice enaugh to work with)

[Edited by - Dark_Guy on November 23, 2004 3:44:04 AM]
"Find the path, follow the Master... Follow the master, understand the master... Overcome the master !"
Quote:Original post by fractoid
Woah.

...are you sure you don't want to start on something easy like an MMORPG?


Wow. ++fractoid!
It's not common for such detailed low-level information on a graphics chipset to be released to the general public, unless it's been leaked without permission that is. Search around a bit and see what you can find. Apart from that, your best bet is to contact nVidia directly and ask, though I don't think you'll get much from them. I honestly don't think you'll find information that is detailed enough to apply directly. Most of the time involved in emulating systems is spent reverse-engineering this kind of information.
I've got the feeling that unless you are:

1) a nVidia employee
2) a console manufacturer (with NDA)
3) lucky to the extent that buying a lottery ticket is an investment

You're not going to get much documentation from nVidia. People have
tried and failed (think DRI, XFree etc.,).

Look for cards that *do* have Open Source drivers, like,

Matrox G200/G400
ATi Rage 128
nVidia Riva128

or other cards supported by stuff like http://dri.sourceforge.net/

You also look at Playstation 2 (hint, Linux kit [and you should be able to get an educational discount] can be used to boot NetBSD and presumably any OS of your choosing. It comes with official docs) or Dreamcast (there is unofficial documentation. I don't know how accurate).

Basically, you're not going to get anything remotely new to play with, unless you're doing something on behalf of someone with power and influence (or you are someone with same, in which case you'd know how to get it).

-- Jonathan
OK, having made teh funnay, I will now attempt to be helpful. :)

I'd start by trying to find Linux drivers (with source) for the graphics card you want to use. That way you can get a feel for how to talk to the graphics card 'on the metal', and either implement your own drivers for it as part of your OS or write documentation explaining to application programmers how to use the hardware.

However you approach it, writing your own operating system is not a small task. Where you say 'thesis', do you mean honours thesis (~1 year project) or PhD thesis (~3 year project)? I'd be hesitant to try and finish a project like this even in three years, regardless of the size of my team. Also, I don't know what the academic climate is like where you study but when I went to university it was made abundantly clear to us that we were studying 'computer science', not 'engineering' or anything else where merit was awarded for actually making something that worked. Most (computer) academics I have worked with value scientific method and 'new' results and algorithms far more than 'merely' building functional software.
Quote:Original post by fractoid
OK, having made teh funnay, I will now attempt to be helpful. :)

I'd start by trying to find Linux drivers (with source) for the graphics card you want to use. That way you can get a feel for how to talk to the graphics card 'on the metal', and either implement your own drivers for it as part of your OS or write documentation explaining to application programmers how to use the hardware.

However you approach it, writing your own operating system is not a small task. Where you say 'thesis', do you mean honours thesis (~1 year project) or PhD thesis (~3 year project)? I'd be hesitant to try and finish a project like this even in three years, regardless of the size of my team. Also, I don't know what the academic climate is like where you study but when I went to university it was made abundantly clear to us that we were studying 'computer science', not 'engineering' or anything else where merit was awarded for actually making something that worked. Most (computer) academics I have worked with value scientific method and 'new' results and algorithms far more than 'merely' building functional software.

Well, I had to build a functional multi-tasking OS from the ground up (we were only provided with boot loader code) for a term paper. Building a rudimentary OS for a fixed set of hardware isn't that hard. It's not like you have to do everything from scratch - algorithms are there, sample implementations are there. I agree, though, that an OS with a GUI that even requires 3D hardware acceleration is not a simple thing to do. Microsoft has been researching in this field for years and will still not ship their Avalon system with the first version of Longhorn. And I don't think they lack the manpower or knowlegde...

Dark_Guy, you and your team should really consider focusing on a more specialised field like a 3D window manager or Windows shell. This would enable you to build on an existing infrastructure while still being able to experiment with innovative OS ideas.
It's hard enough to design and implement a solid OS kernel. I highly doubt you will be able to design and implement a stable OS with a graphical UI in a reasonable period of time.

Just a thought - you could of course take some existing GFX driver module and write an interface system for your custom kernel. Look for BeOS, Linux or *BSD drivers. Also take a look at the Mesa3D source code to see how they interface with the drivers. Maybe you can get something out of that.

As LucidIon already mentioned it is unlikely for you to gain access to low-level specs of any recent GFX hardware. Conclusion: either focus on older hardware for which information is available or use an existing driver and see if you can interface it from your kernel.

Good luck,
Pat.
Hi everyone. Thanks for the replies.

The project we are starting on looks ahead at a developing timeframe of at least 2-3 years just to land the basis of the actual project. I myself am only a student in the 2nd year of studying. The idea to do this project came from a fellow student who is in he’s terminal year and also holds seminars at the university. He will be pretty much in charge with the coding of the OS itself, so that is not really my field. I will be handling most of the aspects related to the graphics, and before I start coding I want to enumerate all the possibilities for choosing a card to work with. I referred to nVidia, because when taking a quick run through their site, I stumbled into CG language supported by the FX series. (However later I found out that this was not what I wanted, I need something lower)

[Lucid Ion]
I will do a search on the cards you’ve mentioned.
You also suggested I take a look at the PS2. I am a passionate user of the PS2 and already did some research on it, but I couldn’t get the documentation I wanted. I don’t have the resources to buy the Linux Kit just yet, but if it’s worth it, I would invest in it.
My question is: does it differ a lot from PC’s? I know that the PS1 does, but the ps2 starts looking to m a lot like a PC. Where could I find more info on this device?

I will also try to contact nVidia for more info, on the behalf of our University, but before contacting them, I have to show them that I am serious and did my “homework” on graphics hardware.

[Fractoid]
Our university often regards people with higher esteem if they do something that hasn’t been done before, rather that those who only bring innovations to existing platforms. We focus more on the technical and mathematical sides of things. (It’s just our profile, I am not discussing the “value” of one or another. The both are very important for the development of the industry)

[Darookee]
Since I am still in the learning stage, and the project is only in it’s concept design period, I will look at subjects you’ve covered. Thanks.

There will be a small homepage to the project soon. I will post it here as soon as it’s ready, in case someone will be interested in the future about this.

The project should be a 64Bit OS that uses a graphical interface, and is optimized to display large amounts of 3D for several purposes. (Our first idea for a use of this was to use it to display the projection of quternated fractals into 3D, in real-time)


"Find the path, follow the Master... Follow the master, understand the master... Overcome the master !"

This topic is closed to new replies.

Advertisement