GC7000L - comparison to GC3000
Lucas Stach
l.stach at pengutronix.de
Tue Oct 17 08:52:42 UTC 2017
Hi Wladimir,
Am Montag, den 16.10.2017, 20:47 +0200 schrieb Wladimir J. van der Laan:
[...]
> - Something strange seems to be the case with pixel shaders, I haven't
> investigated in detail yet but at least texture instructions are sometimes
> duplicated:
>
> void main()
> {
> gl_FragColor = 3.0 * vVaryingColor * texture2D(in_texture, coord);\n"
> }
>
> Gets assembled to:
>
> 0: texld t3, tex0, ?4?1.xyyy, void, void ; !bit_3_13=1!
> 1: texld t3, tex0, ?4?1.zwww, void, void ; !bit_3_24=1!
> 2: mul t1, u0.xxxx, t2, void ; tex not used but fields non-zero (id=0,amode=5,swiz=0)
> 3: mul t1, t1, t3, void ; tex not used but fields non-zero (id=0,amode=5,swiz=0)
>
> Could it be that two invocations of the pixel shader are somehow combined into one shader?
> It might be that this is only done for simple pixel shaders.
Could this be some strange way to drive the shader when only half
precision aka FP16 is used and it's packing 2 pixel colors into a
single output register?
Does the assembled shader change if you use the highp attribute in
GLSL?
Regards,
Lucas
More information about the etnaviv
mailing list