ATI's MoJo enables games developers to get groovy

Sabastian

Regular
http://mirror.ati.com/companyinfo/press/2002/4535.html

"the MoJo Developer Forum saw ATI host a series of lectures to expound the virtues of Pixel Shader 2.0, High dynamic range rendering, the RADEON 9700 PRO graphics card, and HLSL (High Level Shading Language) - Microsoft's new programming language for graphics which removes the need for proprietary solutions."

Proprietary solutions.... would they be speaking in reference to Cg? ;)
 
Sabastian said:
http://mirror.ati.com/companyinfo/press/2002/4535.html

"the MoJo Developer Forum saw ATI host a series of lectures to expound the virtues of Pixel Shader 2.0, High dynamic range rendering, the RADEON 9700 PRO graphics card, and HLSL (High Level Shading Language) - Microsoft's new programming language for graphics which removes the need for proprietary solutions."

Proprietary solutions.... would they be speaking in reference to Cg? ;)

*cough* It's just speculation! ;) There is no evidence! ;) :D :D :D *cough*
 
no they mean Rendermonkey ;) (I know its isn't a language)

How many times;

Cg is both DX and OGL and therefore potentially more flexible than M$ HLSL
 
Randell said:
no they mean Rendermonkey ;) (I know its isn't a language)

How many times;

Cg is both DX and OGL and therefore potentially more flexible than M$ HLSL

I don't see how it can be OGL if other vendors don't support it with OGL extensions?

Aren't all shader instruction sets available only with proprietary OGL extensions so far?
 
I believe there are three types of extentions. EXT, ARB and proprietary. EXT means it's not ARB sanctioned yet, ie. not in the core. EXT means IHVs are using it. Matrox, ATi and quite a few others came up with an EXT set for pixel and vertex shaders. The vertext shader extentions were brought into OGL 1.4, IIRC.
 
antlers4 said:
Randell said:
Cg is both DX and OGL and therefore potentially more flexible than M$ HLSL

I don't see how it can be OGL if other vendors don't support it with OGL extensions?

Aren't all shader instruction sets available only with proprietary OGL extensions so far?

Well vertex programs are now standardizied. fragment programs are still iffy, but the Cg backend could easily be extended to use whatever proprietary fragment shader extensions other IHVs are creating. All it would take is one enterprising hacker.
 
ATi has submitted their ATI_fragment_program extension for ARB approval, hopefully they can agree about something though. This is also the reason why no new fragment shading extensions are yet exposed on the Radeon 9700, they want to wait until the ARB have decided so they don't end up with two different extensions for the same purpose.
 
Does the ATI fragment extension support the R300's shader feature set? I am getting my R300 next week and I don't want to wait till DX9 is shipped before I play with it. :)

If not, is ATI gonna ship any proprietary beta extensions (e.g. for experimentation only) in the meantime to hold us over?
 
yes, but my point is, does it expose R300 DirectX9 level fragment shaders?

I really hate the procedural interface ATI uses for these extensions. The procedural interface for "building up a shader" via procedural calls is good for IDEs and tools that need to dynamically build them, but it is not very readable code for the developer.

At minimum, ATI should include a method called something like ParseFragmentShaderATI() that parses a string serialized representation of a shader and makes the appropriate procedure calls on your behalf.

Reading something like

mov r0, r1.xzwy
dp3 r2, r0, r3
add r4, r2, r4

is much clearer in your code then reading a whole pages of procedural calls with 6+ arguments. Yes, most developers could throw together a utility function to do this, using their own private fragment shading language syntax, but it's better if it is part of the API and common to everyone.


NVidia did the same thing with register combiners, it was horrible. Later they had to introduce a parser to do the dirty work for the development.
 
You know what, Democoder? I don't know...you tell me. I'm sure you're more familiar with what came in the past. If it's more functionality than is available in DX8, then it is almost certainly either full, or nearly so, R300 fragment shader functionality.
 
Oh, crud, guess so, sorry :(

I guess that solves it. This is most certainly a Radeon 8500 extension.

For example:

- Made number of registers (REG_x_ATI) explicit: 6.

Sorry for the confusion...
 
DemoCoder: From what I see it does not... There are only 6 temp registers and it also says:
A ColorFragmentOp[1..3]ATI followed by an AlphaFragmentOp[1..3]ATI is considered to be an instruction pair, and 8 such pairs may be specified per pass.
Ohh, and it's still function based...
 
DemoCoder said:
Does the ATI fragment extension support the R300's shader feature set? I am getting my R300 next week and I don't want to wait till DX9 is shipped before I play with it. :)

DemoCoder getting a R300! You're really gonna let some people down by doing this. ;)

Just imagine how messed up people get in their heads, when they realize that others aren't intrenched in a ATI-camp vs NV-camp world, that they are 'supposed' to. Are you gonna bring chaos to this neatly arranged universe?

The horror, the horror!!!! ;)

BTW: I'm going to buy one myself if I can get decent money for my old card.
 
DemoCoder said:
Does the ATI fragment extension support the R300's shader feature set? I am getting my R300 next week and I don't want to wait till DX9 is shipped before I play with it. :)

If not, is ATI gonna ship any proprietary beta extensions (e.g. for experimentation only) in the meantime to hold us over?

The GL_ATI_fragment_program is based on the GL_ARB_vertex_program framework, so it's a text parsing interface. There are currently no additions to the older GL_ATI_fragment_shader, except more constants and stuff I suppose.
There are some hope for the old R200 too, came across this one more or less of a concidence: http://developer.apple.com/opengl/extensions/ati_text_fragment_shader.html
It's basically a text parsing interface for the old R8500 shaders.

Here's also a list over all currently supported extensions:
http://www.delphi3d.net/hardware/viewreport.php?report=485
 
Back
Top