152 reputation
7
bio website ebomike.com
location Oceanside, CA
age 37
visits member for 3 years, 1 month
seen Jan 6 '13 at 1:16

Professional video game developer and hobby Android and website developer.

Some games from my professional career include Red Dead Redemption (2010, Xbox 360 and PS3), Gauntlet: Seven Sorrows (2005, Xbox and PS2), Mission: Impossible (1999, PS1).

Hobby projects include Android apps EboBirthday and EboIPTools, and contributions to DroidSpray.


Jan
4
awarded  Popular Question
Apr
20
comment Adding a simple mix() destroys the framerate
@notabene: I'm aware of that, but since this post is about how a simple mix() killed the framerate, I wasn't too inclined to throw in a pow to finish it off.
Apr
20
comment Adding a simple mix() destroys the framerate
Btw, since you're Mr. Unity, feel free to double-check my findings. I may have missed something. Also, I suspect that the problem could be that mix() will internally always use mediump (or worse) for the computations. If I use a mediump for fogDiff in the above example, I get back to the same performance numbers I had with mix().
Apr
20
comment Adding a simple mix() destroys the framerate
I would have thought even the most primitive compiler would convert d=mix(a,b,c) into d+=(b-a)*c. Oh well, you know what they say - if you want to get the job done right, you have to do it yourself. Thanks again for all your help.
Apr
20
comment Adding a simple mix() destroys the framerate
@Ellis: This tool is absolutely brilliant. See the edit to my original question, I got it back to 29fps by simply changing the mix() to something else. Does mix() internally saturate, or why is it so ridiculously slow?
Apr
20
revised Adding a simple mix() destroys the framerate
Added answer
Apr
20
comment Adding a simple mix() destroys the framerate
According to the editor, that mix() brings the shader from 4 cycles to 12 cycles, and twice as many GPRs. Wow.
Apr
20
comment Adding a simple mix() destroys the framerate
The editor is fantastic. I wish I could upvote your answer three times...
Apr
20
awarded  Commentator
Apr
20
comment Adding a simple mix() destroys the framerate
@Ellis: Is there a way to see the actual compiled shader fragment code? I'm writing GLSL code, but I'd love to see what the compiler makes out of it.
Apr
20
comment Adding a simple mix() destroys the framerate
@Nevermind: I should let Ellis answer, but in general, everything becomes a bottleneck. Each instruction needs to be executed for each pixel, and since mix will probably translate into at least two pixel shader instructions, this adds up quickly if your GPU is slow. Then, of course, there COULD be bottlenecks if you use too many GPRs, which stall out your shader unit because it can't parallelize as well.
Apr
20
comment Adding a simple mix() destroys the framerate
This is one of the cases where I wish I could upvote an answer twice.
Apr
20
accepted Adding a simple mix() destroys the framerate
Apr
20
comment Adding a simple mix() destroys the framerate
My goal is 30fps at least for the Droid and EVO. I vaguely remember games like Backbreaker that SEEM to look quite nice (been a while since I've seen it, I might be wrong). What's the secret here? I have no overdraw, I barely use alpha blending, and this shader is primitive. Do you have any idea? (Btw, will accept answer in a few hours, don't worry :) )
Apr
20
comment Adding a simple mix() destroys the framerate
You're breaking my heart! What about the HTC Evo? Wouldn't the Adreno 200 at least be able to handle that? Even for a weak GPU, that seems unreasonably pathetic.
Apr
20
asked Adding a simple mix() destroys the framerate
Apr
11
comment Is there a command line ATI texture compression tool?
Thanks! I've use the PVRTexTool on Linux and it works like a charm. Still no solution for the ATI tool, it doesn't work right under Wine. I've actually resigned to using PVR and ETC only at this point. I'll consider DXT5 for alpha textures.
Mar
17
comment Is there a command line ATI texture compression tool?
Oh well... I decided to run the compressonator under VirtualBox, which can access my Linux file system, so I can still fully automate it. And at least I can do all my DXT textures with the same tool too.
Mar
17
comment Is there a command line ATI texture compression tool?
Indeed! It's quite terrible under Wine, and I haven't gotten it to work yet... but I guess that's the only option.
Mar
17
accepted Is there a command line ATI texture compression tool?