Not logged in, Join Here! or Log In Below:  
 
News Articles Search    
 


Submitted by Nicolas Capens, posted on January 13, 2005




Image Description, by Nicolas Capens



It's been quite a while since I showed anything new here so I'll tease you with this cryptic development image of my project; swShader. The reason why I have been this quiet lately is not because I'm phasing things out, on the contrary, I'm too busy turning it into a finished product!

The image is a screenshot of the WHQL DCT, which is a free Direct3D conformance test suite from Microsoft. I've only recently started using it, but I expect it will be quite useful to test swShader's capabilities. The screenshot shows the simplest test of all, which checks whether pixels are filled correctly by comparing it to the reference rasterizer. Even with this simple test I detected a bug in the swShader render core and several in my Direct3D interface implementation. The good news is that things -can- now become practically bugfree.

Ironically, I was able to run a popular game before being able to run DCT tests! Of course most of you would rather see a screenshot of the game, but I'm keeping that for later to have a bigger impact. And let's face it, passing DCT tests is a more important breakthrough. ;-) I'm also in close contact with a company willing to invest in it so I can finally make some good money with it. That's probably bad news for anyone who wished to work with it for free, but I promise I'll keep contributing to the community as much as I can!

If you haven't already, please visit my new homepage for some more information: http://sw-shader.sourceforge.net

Best regards,
Nicolas "Nick" Capens


[prev]
Image of the Day Gallery
www.flipcode.com

[next]

 
Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
 
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
 
Nick

January 17, 2005, 10:54 AM

It just makes your demo invalid.

It's a proof-of-concept. Making it 'valid' is trivial and doesn't make it any less of a demo. In fact its conformance is fantastic considering I used no formal testing (like comparing to the reference rasterizer) and the shader core and parser were written in one month (in my spare time).

So what are you really getting at?

 
Rui Martins

January 17, 2005, 12:11 PM

DO you guys remember a game called "Command & Conquer" ?
There was a unit in this game (a commando), which sometimes said
"Keep them comming".

Seriously isn't this enough already !?

 
Nick

January 17, 2005, 12:11 PM

You sure know how to impress people.

Thank you.

 
Nick

January 17, 2005, 12:40 PM

Don't worry, it seems like he's about to give up - already. ;-)

 
zdax

January 17, 2005, 12:41 PM

This is great fun :-)

 
Scali

January 17, 2005, 12:57 PM

I could have continued the discussion at your level, but I couldn't think of any clever yomomma remarks.

 
Nick

January 17, 2005, 01:12 PM

Scali wrote: I could have continued the discussion at your level, but I couldn't think of any clever yomomma remarks.

Say hi to mi momma! http://capens.net/pictures/Family/Lien/Mama%20Buiten.jpg

So haw's yo momma doin?

 
Nick

January 17, 2005, 01:18 PM

By the way, there's an 'ignore posts from this author' feature in the new forum. I haven't tested it yet, but it can probaly hide whole subthreads...

 
Scali

January 17, 2005, 01:22 PM

If you must continue this nonsense, I suggest you do it in private, at least.

 
Jacco Bikker

January 17, 2005, 03:39 PM

Even if your tech is up to scratch, you still have a long way to go dude. If PS was an abbreviation of 'personal style', you would still be 1.1 at best.

 
Nick

January 17, 2005, 04:57 PM

Jacco Bikker wrote: Even if your tech is up to scratch, you still have a long way to go dude. If PS was an abbreviation of 'personal style', you would still be 1.1 at best.

Hi Jacco,

My discussion with Scali, or rather Scali's discussion with me, is definitely not representative with my average PS on forums. We've got a history, which started escalating on Beyond3D. Just like here, he managed to start pointless discussions (things that just lead nowhere) with twisted arguments, while touching some personal matter in a subtle way. They nearly kicked him of the forum for that.

Seriously, you should feel lucky he didn't say the work on your raytracer is worthless because SaarCOR is faster, while still asking to join your team and share his endless expertise...

The only thing you could blame me for is to feed the troll. Yes, I become arrogant when people don't listen to my technical arguments while they have no proofs at all. If someone has a problem with something I keep replying until we come to an agreement. Even if that's agreeing to disagree. That works with 99.99% of all people at flipCode, that's everybody, except Scali.

Sincerely,

Nick

 
Scali

January 17, 2005, 05:00 PM

I think you just dropped from ps1.1 to fixedfunction.

 
Nick

January 17, 2005, 05:03 PM

Actually I think it's likely Scali once had a software rendering project, he tried to sell it, but it never took off. That would explain why he tries to 'warn' me there's no future for my project either, while having this jealous undertone.

Just a thought...

 
tussukka

January 17, 2005, 09:55 PM

Specs mandate minimum precision requirement, not maximum.. infinite precision would be optimal in most cases and well within the specification. ;)

 
tussukka

January 17, 2005, 10:18 PM

Scale, it was you who turned it into flamewar more than anyone else. Secondly, I been reading B3D (wasn't it you who had his account removed there?) and other forums such as flipcode, and your 'help' most of the time has been criticism and trying to point out flaws in Nick's work very little nothing else.

Your so-called help been consistently criticism and I wish that I could tell it was constructive. For example look at start of this thread, what's so constructive or helpful about that? Nothing I would say, you are trying to demonstrate that he doesn't pass conformance tests, which he apparently does and extra precision is within the specs, which you also try to prove that is incorrect and that he is, quote, "cheating". Cheating!? WTF? Calling someone close to a liar and cheater is not flaming???


I been working on hardware conformance testing for over a year, although in OpenGL side of things the requirements are still very similiar in nature. A lot of things are specified very carefully, but I have yet to find a single instance where extra precision is not actually a preferable trait. Currently I am working on much more interesting things but that's another topic. Back to the topic, passing conformance tests is all good, but they test so little.. it is just a start. If you, Nick, want a solid system you must write a lot of exhaustive tests yourself and validate yourself against the refrast (which also has bugs, I personally found or became aware of more than two ;-) Also not really bugs, the refrast sets up some default values against the specs, so when you are testing you better manually setup everything the way you want or prepare to find bogus bugs aswell.. basicly even Microsoft still has some work left so don't let Scali discourage you ;-)


Let's face it: you came into this thread to belittle Nick's work. Even if it isn't as amazing as Nick might believe himself (which I am not saying is true or not) it doesn't matter because the reason you posted. OK, if you honestly believe you were just posting facts to help the flipcoders with accurate information just makes things worse: that would mean you don't even understand what you were doing in the first place (I mean the effect it might have on the readers). If on the other hand you did, that doesn't give a good impression either this is a lose-lose situation for your argument.

I don't personally care which of you "wins" but that's just my observations and opinion formed through them. ;)

 
tussukka

January 17, 2005, 10:25 PM

You are starting to really annoy me, can't you give the guy a rest? You always use the same tactic, you keep provocating your target and when he reacts, which is just natural, you turn it against him -- even when it is caused by you.

Why not just go fuck yourself, how about that?

 
tussukka

January 17, 2005, 11:15 PM

.. says the guy who is continuing the nonsense he started. ;----o

 
Scali

January 18, 2005, 01:53 AM

Excuse me... Do I even know you? Or more to the point... do you even know me?
And what exactly is it that you hope to achieve by insulting people like this?

 
Scali

January 18, 2005, 02:04 AM

For example look at start of this thread, what's so constructive or helpful about that? Nothing I would say, you are trying to demonstrate that he doesn't pass conformance tests, which he apparently does and extra precision is within the specs, which you also try to prove that is incorrect and that he is, quote, "cheating". Cheating!? WTF? Calling someone close to a liar and cheater is not flaming???


You apparently didn't get the point, just like Nick didn't get it at first.
Let me point it out, see the Remarks section on this page: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/AssemblyLanguageShaders/PixelShaders/Registers/InputColor.asp

He is using signed data, which is outside the spec.

As for B3D, that had nothing to do with Nick. I had to be banned because I pointed out that 3Dc would not work well in 3DMark05, even though ATi was saying this in public. Since B3D is very much ATi-biased, there was no option but to remove me with lots of display of power. The official explanation was that I insulted the staff... By what? By pointing out that ATi was spreading false information, or by pointing out that they didn't understand that ATi was doing this?

The rest of your post is too ridiculous to even respond to, and I suggest you revise your opinion, now you understand the issue I was pointing out.

 
Jacco Bikker

January 18, 2005, 03:29 AM

I know it's anoying when someone does not appreciate your work, and I also know your technical expertise is up to scratch.

Problem is, if you want to sell a product, you deal with people. So besides tech, you also need to know how to deal with guys like Scali. I don't care whether he has a point or not (hard for me to judge), but you have to be aware of the fact that he might be a) your collegue one day, b) your boss, c) a client, d) an advisor to a client, e) even more remotely in a position where he could harm your business. It's thus better to let things like this rest. In the above discussion you did not only go into a public war with this guy, making working with him in the future virtually impossible, you also showed that you are though (to extremes) when you disagree.

And finally, he claims he advised you. Even if that's not true, it's better to keep that opinion for yourself, or you could discourage future advisors. We both know how dependent we are of knowledge sharing. There's bound to be noise in that process.

In short: Ignore negative comments. If someone else corrects them, good for you. Otherwise, reply once, kindly, and no more. I know I make plenty mistakes in things like this (see the PS insult for an example, apologies) but I found it to be extremely important to pay attention to.

 
Nick

January 18, 2005, 05:01 AM

Thanks tussukka. Much appreciated.

I been working on hardware conformance testing for over a year, although in OpenGL side of things the requirements are still very similiar in nature. A lot of things are specified very carefully, but I have yet to find a single instance where extra precision is not actually a preferable trait. Currently I am working on much more interesting things but that's another topic. Back to the topic, passing conformance tests is all good, but they test so little.. it is just a start. If you, Nick, want a solid system you must write a lot of exhaustive tests yourself and validate yourself against the refrast (which also has bugs, I personally found or became aware of more than two ;-) Also not really bugs, the refrast sets up some default values against the specs, so when you are testing you better manually setup everything the way you want or prepare to find bogus bugs aswell.. basicly even Microsoft still has some work left so don't let Scali discourage you ;-)

The DCT is no panacea of course. But like you say, it's a start, and I believe it's a quite significant step for my project. Not passing them, or worse, not taking the tests and claiming it all works flawlessly, would have terrible long-term consequences I believe.

Once I pass the relevant DCT tests, it will be much easier to run complex applications. Unlike hardware verification, this can happen in real-time and point out stability problems at a very early stage. So, unless you meant some other extensive tests, I believe I got it all covered now.

Thanks for warning me about the reference rasterizer flaws! I once read the REF is supposed to supersede the specifications, but I probably shouldn't take that too literal...

 
Nick

January 18, 2005, 05:31 AM

He is using signed data, which is outside the spec.

It sais, literally: "...guaranteed to have 8 bits of unsigned data in the range (0, +1)."

Floats are guaranteed to have 8 bits of unsigned data in the range (0, +1).

I did seem to have forgotton to clamp the values when they come out of the vertex pipeline though. But seriously, that's fixable in a second.

 
tussukka

January 18, 2005, 10:00 AM

/*
As for B3D, that had nothing to do with Nick. I had to be banned because I pointed out that 3Dc would not work well in 3DMark05, even though ATi was saying this in public. Since B3D is very much ATi-biased, there was no option but to
*/

Selective memory? I recall a thread about tiled renderer with you and Nick..

/*
The rest of your post is too ridiculous to even respond to, and I suggest you revise your opinion, now you understand the issue I was pointing out.
*/

I don't think you understand the issue very well yourself, quote from the Microsoft document:

".. guaranteed to have 8 bits of unsigned data in the range (0, +1)."

That applies to the intermediate shader assembly language, say, if you translate this into microcode, assuming it is not identical with the intermediately language used here it is enough if the *implementation* satisfies this requirement.

Nick's code is translated from the intermediate language and satisfies this condition. It may be waste to use more precision but that is implementation issue. Implementation is rarely wrong to issue more precision, specificly, it would be wrong to use more gates for precision that is not mandated. However, when the available hardware is fixed there is less choise. Nick could pack sse or mmx register into 32 bit scalar just to pass value to other part of the shader, but that would serve no other purpose in this case but to (possibly) waste resources.

 
tussukka

January 18, 2005, 10:10 AM

> Do I even know you?

I wouldn't care.

> Or more to the point... do you even know me?

Unfortunately I do.

> And what exactly is it that you hope to achieve by insulting people like this?

I was hoping that maybe you would get the message that there are people who are getting pretty tired of your act. Apparently not.

 
Scali

January 18, 2005, 11:56 AM

Selective memory? I recall a thread about tiled renderer with you and Nick..


And so? I am just making clear that that thread was completely unrelated to my ban.

For the rest, I clearly stated that the SHADERS were not within DX9-specs, I didn't talk about the implementation of the shader emulator.
So I understand the issue perfectly, you just didn't read it carefully, just re-read my posts.

 
Scali

January 18, 2005, 12:03 PM

I was talking about the shaders. They use the colour registers to interpolate the light- and halfangle vectors in tangentspace (you missed an obvious optimization there anyway: use objectspace and remove 2 matrix muls per vertex).
Since they're normalized direction vectors, they're in the [-1, +1] range (assuming you use an orthonormal matrix!), rather than the [0, +1] range (which is why my code has scale/bias).
So actual DX9 hardware will not interpolate the vectors properly.

 
Nick

January 18, 2005, 04:13 PM

I know it's anoying when someone does not appreciate your work, and I also know your technical expertise is up to scratch.

Thank you.
Problem is, if you want to sell a product, you deal with people. So besides tech, you also need to know how to deal with guys like Scali. I don't care whether he has a point or not (hard for me to judge), but you have to be aware of the fact that he might be a) your collegue one day, b) your boss, c) a client, d) an advisor to a client, e) even more remotely in a position where he could harm your business. It's thus better to let things like this rest. In the above discussion you did not only go into a public war with this guy, making working with him in the future virtually impossible, you also showed that you are though (to extremes) when you disagree.

I have to agree you're right that it's probably better for everyone that I only answer to the technical discussions. I must say though that Scali is a master at not showing a single bit of appreciation for someone's work. At the same time he picks on the smallest details (so it looks like it's some kind of important technical issue), and then claims he can do anything, without further proof. Yes I do get "tough" in these situations. Guitly. I hope it's understandable though... It's not like I have a reputation to defend (yet). I like to understand why Scali acts the way he does, and unfortunately that creates some additional annoyance for others.

Anyway, I'm still a student and I learn the most from my mistakes, both technical and personal. I learned a bit more in the last few days and I'll try to be more careful from now on. I apologise for the annoyance.

All the best,

Nick

 
Scali

January 18, 2005, 04:40 PM

I know I shouldn't respond really... but...

and then claims he can do anything, without further proof.


Where exactly did I claim that? I don't think I made any kind of claims about my abilities anywhere... As far as I am aware, I merely presented some ideas to speed up rendering in high resolutions, and pointed out that the shaders in your demo were operating outside the DX9 spec.

 
Scali

January 18, 2005, 05:52 PM

I've scraped together the old DX9 testbed I once used to write the shaders for the PhongCar demo on, and put Nick's shaders in it (had to add one mov instruction, because he used 2 constant registers in one instruction, which is also outside DX9 specs, and wouldn't compile).
See http://scali.eu.org/~bohemiq/Shaders5.rar
On my R9600Pro at least, there clearly are rendering errors. You can notice weird highlights on eg the doors and on the engine cover of the car.
My old shaders are also included, so you can compare (or compare to swShader).
Now everyone can verify that the shaders indeed don't work properly on DX8/DX9 hardware, as I said. I hope this is the proof people were asking for.

 
Nick

January 18, 2005, 06:15 PM

Scali wrote: On my R9600Pro at least, there clearly are rendering errors. You can notice weird highlights on eg the doors and on the engine cover of the car. My old shaders are also included, so you can compare (or compare to swShader).

At first sight it appears to render correctly on the reference rasterizer. You can use http://sw-shader.sourceforge.net/d3d9.dll and drag that next to the executable to force REF rendering, if you want. I couldn't notice any difference with the old shader, but maybe I'm not looking at the right things. I no longer have a desktop system with ps 2.0 hardware to compare with that.

Thanks for your effort.

 
This thread contains 92 messages.
First Previous ( To view more messages, select a page: 0 1 2 3 ... out of 3) Next Last
 
 
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.