Yes, the innerloops were looking perfect. A bit too longer than expected (with having all vars be "a", "aa" etc it's not easy to understand the purpose).
If you don't inline stuff, the javac.exe compiler will never do so. But ProGuard and other obfuscators are the ones that do the inlining. And then the JIT...
On the mobile platforms, types of access (func-local, static, virtual, parent, class-local, interface) matter a lot for optimization. Plus, the standard classes in the packages are the most decelerated implementations possible :( .
P.S. on my first view of the code, I was expecting a fixed-func implementation and didn't look around enough to see the direction of modularity, it was a remark I kept in mind but dissolved when I revised the code today.
Posted on 2009-07-09 15:49:00 by Ultrano

Yes, the innerloops were looking perfect. A bit too longer than expected (with having all vars be "a", "aa" etc it's not easy to understand the purpose).


Longer in what sense? You didn't think anyone was crazy enough to do THAT much work per pixel? :)
The worst one is EMBMGSBFTriCore.class, I think.
These things have a 'normal' name for a reason. They are loaded dynamically, so they couldn't be obfuscated and inlined, because then the croissant9.xml script wouldn't work (that's where the materials are defined).
The naming makes sense, not sure if you were able to decipher it... but:
EMBM: Environment-mapped bumpmapping
G: Gouraud-shaded
S: Saturated (allowing for light intensity of more than just 0...1 range, so you can use specular highlights etc).
BF: Bilinear filtered texturing


If you don't inline stuff, the javac.exe compiler will never do so.


Yea, I'm quite sure that things like 'static' or 'final' had some effect with older compilers though... Then again, back then you had a -O flag, which is now gone. So perhaps they figured it's no longer necessary for the static compiler to do any optimizations, because the JIT does it. As you see, I did use ProGuard on the project (but specifically NOT on the TLCore/TriCore classes, so they don't look as optimized, but with a reason)... but I don't think it had any effect on the performance. I just did it to keep the files as small as possible, and to make it harder for other demosceners to rip off my engine.
Posted on 2009-07-09 16:03:20 by Scali

- one small optimized proc where "DS:[]" was explicitly used - thanks to which the proc became quite fast. I still haven't looked deeper into the DS: trick's reasoning.


Well, I've tried to search through the forum a bit, but I wasn't able to find anything related to this.
I can't really imagine a situation where ds: would be significant...
So I'm curious what it is you're talking about here. Don't think it was any of my code, but I'm always interested in asm gems. So could you tell a bit more about what the code was doing, and what effect the ds: had?
Posted on 2009-07-10 08:48:28 by Scali
Perhaps adding the 1-byte segment override caused a subsequent loop to be aligned? I think it might've been bitRAKE who posted the code. I have a vague recollection of seeing this being used, but can't remember the specifics, sorry.

And btw Scali, you have softened up a bit over the years ;) - it's not only the lack of constant personal assassination attempts that make things easier now. You can still be a bit cocky and "absolutist", and sometimes take things a bit personally. Pride isn't a bad thing, but too much of it can be :)

As for the past, I don't feel like ripping through that again, it tires me. Suffice to say that a lot of harm was done, alt.lang.asm is completely wrecked, and I lost a lot of (but definitely not all :)) interest in assembly and turned my focus elsewhere (a lot of it directed through that weird and scary thing called "real life").
Posted on 2009-07-10 09:25:38 by f0dder
Those are qualities I admire in my 'real life' friends, hehe.
Posted on 2009-07-10 09:47:11 by Homer

Pride isn't a bad thing, but too much of it can be :)


'Too much' is very relative.
I think we can all agree that hutch's assessment of my skills and knowledge wasn't quite fair. I didn't have to take his s***, and that has nothing to do with pride or being cocky.

See, Ultrano admitted himself that he's a bit cocky sometimes... I'll have to agree with him, because he brings up the things he has done, and tries to compare them to me, trying to prove himself. I think that's being cocky.
I rarely talk about the things I've done in such a way. I generally let my code and advice speak for itself. I don't go around saying "I know everything better than you do", instead I actually tell them WHAT they could do better, if I think I have constructive advice to contribute. It's not the same. Yes, maybe I have a LOT of advice to add, but I'm rarely wrong when I say something. I know very well what I know, and I know to shut up when I don't have anything of value to add. You'll rarely catch me on a mistake. I try to avoid those at all cost. I don't bluff. What you see is what you get.


As for the past, I don't feel like ripping through that again, it tires me. Suffice to say that a lot of harm was done, alt.lang.asm is completely wrecked, and I lost a lot of (but definitely not all :)) interest in assembly and turned my focus elsewhere (a lot of it directed through that weird and scary thing called "real life").


Well, I never had a chance to have my say before, I could never tell my side of the story. I think Hiroshimator could have prevented a LOT of this from happening, had he made the right choice.
Posted on 2009-07-10 10:00:18 by Scali

See, Ultrano admitted himself that he's a bit cocky sometimes... I'll have to agree with him, because he brings up the things he has done, and tries to compare them to me, trying to prove himself. I think that's being cocky.


I see this more as confidence than cockiness. More often than not, cockiness is associated with arrogance.

If Ultrano produced newbie-level code, had nothing to show for, acted like he knew it all, and tried comparing to you... that would be cocky.

However, Ultrano's programming abilities are beyond reproach. Anyone here who wouldn't admit as to Ultrano being in the range of decent-to-great programmers, would be cocky.

Ultrano's confidence affords him the same ability you have, the ability to post some code and ask someone to do better. If no one can do better, everyone wins. If someone can do better, everyone wins.

Confident programmers challenging each other is a win-win, because you will always come out on top with the best possible methods.
Posted on 2009-07-10 11:02:15 by SpooK


See, Ultrano admitted himself that he's a bit cocky sometimes... I'll have to agree with him, because he brings up the things he has done, and tries to compare them to me, trying to prove himself. I think that's being cocky.


I see this more as confidence than cockiness. More often than not, cockiness is associated with arrogance.

If Ultrano produced newbie-level code, had nothing to show for, acted like he knew it all, and tried comparing to you... that would be cocky.

However, Ultrano's programming abilities are beyond reproach. Anyone here who wouldn't admit as to Ultrano being in the range of decent-to-great programmers, would be cocky.

Ultrano's confidence affords him the same ability you have, the ability to post some code and ask someone to do better. If no one can do better, everyone wins. If someone can do better, everyone wins.

Confident programmers challenging each other is a win-win, because you will always come out on top with the best possible methods.


Well, I think it's a thin line.
On the one hand I agree that Ultrano is confident about himself, and the little I've seen and heard from him shows that he has a right to, because he has the ability.
However, in this particular thread, he was criticizing my Java code without even giving an example. He was just plainly saying "It's not optimal, I can do it better."
I think that's cocky (and yes, being cocky requires confidence in your abilities).

I think that's the difference between cocky and confident. I won't criticize other people's code unless I'm sure I have something to add.
And when I respond, I will actually tell them WHAT I think they can improve, rather than just saying "I can do it better".

Now, when I asked him about it, his answer became less confident, and as far as I can see, he hadn't really thought the purpose of the design through, and may now have changed his opinion about how optimal the code was.
But I've always had this rule that you NEVER consider any code 'optimal'. The moment you do that, you prevent yourself from looking further.
Usually it's the opposite that helps you find new optimizations.

I've found over the years that some people see me as a 'target'. For Ultrano it's a challenge to try and 'beat' me with better code. If he can beat my code, that means something to him.
I've had the same with bitRAKE for example. He'd study everything I posted, and would try to give alternative versions.
Sometimes that gets a bit annoying.
Posted on 2009-07-10 11:37:33 by Scali
Sometimes that gets a bit annoying.
But on the other hand it can lead to code improvements - you just have to ignore the feeling of being targetted :P
Posted on 2009-07-10 11:59:07 by f0dder

Sometimes that gets a bit annoying.
But on the other hand it can lead to code improvements - you just have to ignore the feeling of being targetted :P


Yea well, it is annoying when people try to 'correct' you, when they are actually wrong.
Like the example with DX10/DX11 with Ultrano... He tried to correct me, while I wasn't wrong in the first place.
That annoys me.
Posted on 2009-07-10 12:13:08 by Scali

Yea well, it is annoying when people try to 'correct' you, when they are actually wrong.
Like the example with DX10/DX11 with Ultrano... He tried to correct me, while I wasn't wrong in the first place.
That annoys me.


Well, you have to work with the reality that the other person doesn't necessarily know what you know, and that people in general are fallible... we are not computers!

With the massive amount of information floating around in the average programmer's head, things are bound to go a little haywire with our sensitive electro-chemical storage systems.

I known times where I've read things too quickly, or drawn off of seemingly correct assumptions, and it was my mistake. I've also known times where I read a reliable source of information and that just happened to be off/incorrect/incomplete/wrong.

Did Ultrano look before leaping? Yes, he isn't a newbie when it comes to DX/Graphics.

Did Ultrano look deep enough? No, but it also wasn't the most critical situation.

Did Ultrano make an assumption based on experience/knowledge? Yes.

Was Ultrano's assumption correct? No, as can happen with assumptions.

Did Ultrano concede his mistake? Yes.

Did Ultrano intend to discredit you? No.

Every time you see someone make a statement, such as "You mean DX11", put a question mark after it. If the statement is incorrect, try to politely correct the misunderstanding.

If they concede, then accept the fact that a human being has made a mistake, and has learned from your knowledge/experience.

If they don't concede and blow smoke instead, like you-know-who, then you have every right to become irritable.

In short, cut people some slack... especially on the internet where tone/context is completely absent.
Posted on 2009-07-10 13:08:29 by SpooK
Well, let's not make a big deal out of it... We didn't really make a big deal out of it then, and no need to do that now either.
I was just saying that in the past there were quite a few people who tried to pick everything I said apart... And Ultrano did admit that he was rather aggressive in his posts towards me because of 'old times'.
But this time it's only Ultrano, and I don't think he intends to continue to do so...
If someone has an honest correction, I'm open to that... I make mistakes aswell.
I just have bad memories of the past where I was second-guessed by various people, about pretty much everything I said... even though most of the time the things I say aren't all that crazy.
Posted on 2009-07-10 13:26:18 by Scali

I just have bad memories of the past where I was second-guessed by various people, about pretty much everything I said... even though most of the time the things I say aren't all that crazy.


Well, while I can't stand by and guarantee that everyone here is fair-minded and will conduct themselves in an appropriate manner, I can guarantee that the established Community Staff are trusted to be impartial... and are fairly effective at stomping out drama/bullshit when they see it ;)

This is a place of knowledge and learning, and as such, I have no intentions of allowing anyone to become anyone else's personal whipping-boy while I'm still around.

Signed, your benevolent semi-dictator, SpooK.
Posted on 2009-07-10 13:54:36 by SpooK

I just have bad memories of the past where I was second-guessed by various people

Strange, my trick to learning stuff is by second-guessing, even initially discarding everything I hear - then I conduct as thorough a research as I can, hopefully with my own experiments or cross-referencing and searching for historical points when knowledge gets corrected. Of course, if a subject isn't interesting enough for me, I accept info about it immediately.
Posted on 2009-07-10 15:00:15 by Ultrano
it's picture tiime!

Posted on 2009-07-10 21:01:58 by HeLLoWorld
Well, I'm glad Scali is back - I remember him to be a very knowledgeable person with a rough edge ;)
Posted on 2009-07-11 12:43:25 by JimmyClif

I don't want to bother with searching for past quarrels.


I am strenuously requesting that you do so. It's the only way for me to prove that whatever you think about me is only in your head. Whatever people said to you, I am 100% sure that what you described was NOT me.
Posted on 2010-02-07 05:58:35 by Scali
Yeah, it was Lingo. But during the search found some nice circus threads caused by you, and the N times Hiro banned you for a reason :)
Posted on 2010-02-07 06:39:05 by Ultrano

Yeah, it was Lingo. But during the search found some nice circus threads caused by you, and the N times Hiro banned you for a reason :)


So, that is cleared up then. I never did anything to you.
As for the rest... there doesn't seem to have been any reason to ban me since hutch no longer uses this forum.
Hiro just picked the wrong side.
Posted on 2010-02-08 10:58:25 by Scali