How does transparent sprites affect mobile performance?

I have a 2D platformer/runner game and I’m trying to optimize it so it runs fine on older devices. As one of several aspects, I’m currently investigating fill rate. As explained here by Robot Invader, fill rate issues occur when you write to a pixel many times. The more times you write the same pixel, the higher the performance cost. Transparent sprites causes pixels to be written to several times, since the engine can’t tell if something behind that pixel should also be drawn. That is at least my understanding of it.

When we use sprites in our game, we use the SpriteRenderer component with the Sprites-Default shader. From the quote below (again, Robot Invader), it seems that the Sprites-Default shader would be highly inefficient for sprites that are opaque.

You pay for transparency anytime you
render anything with a transparent
shader, whether or not the texture you
are rendering actually has an alpha
channel. If it’s marked as a
transparent object (i.e. put in
Unity’s “Transparent” queue), it will
be sorted back to front, and drawn
with a shader that performs a
multiplication of the current pixel
value with the value of the computed
color the shader is drawing (the
actual math can be controlled using
the Blend command in the shader’s
pass). The way to think about this
cost is in terms of the number of
pixels that are touched by
potentially-transparent things.

This tells me that anytime we use the Sprites-Default shader to render opaque sprites, and then render more sprites behind that sprite (i.e overdraw), those pixels will be drawn to several times because the Sprites-Default shader always calculates transparency. This eventually leads to poor performance on mobile devices because the fill rate skyrockets.

So what should I do about it? The obvious answer I come up with is to use another shader for sprites that are opaque. A shader that doesn’t take transparency into account and thus doesn’t draw stuff behind that opaque sprite. Yet when I google “Unity3D Sprites-Default Opaque” or something similar, I can’t find a shader like that. Either it’s really easy to do and being sucky at shaders, I don’t know how, or this whole theory is wrong and Unity3D handles opaque sprites correctly anyway. In the latter case Robot Invader is wrong.

tl;dr: Is there a sprite shader for opaque sprites that is fill-rate efficient because it doesn’t use the transparent queue?

I know this is an old thread. But I would like to share what we have discovered in order to reduce overdraw.

Unity has Screen.SetResolution function which can update the current resolution of the device. If you lower the resolution, the amount of overdraw reduces.