if (texture->last)
printf(".last");
+ /* Output modifiers are always interpreted floatly */
+ print_outmod(texture->outmod, false);
+
printf(" ");
print_texture_reg(texture->out_full, texture->out_reg_select, texture->out_upper);
/* While not zero in general, for these simple instructions the
* following unknowns are zero, so we don't include them */
- if (texture->unknown2 ||
- texture->unknown4 ||
+ if (texture->unknown4 ||
texture->unknownA ||
texture->unknown8) {
- printf("// unknown2 = 0x%x\n", texture->unknown2);
printf("// unknown4 = 0x%x\n", texture->unknown4);
printf("// unknownA = 0x%x\n", texture->unknownA);
printf("// unknown8 = 0x%x\n", texture->unknown8);
unsigned mask : 4;
- unsigned unknown2 : 2;
+ /* Intriguingly, textures can take an outmod just like textures. Int
+ * outmods are not supported as far as I can tell, so this is only
+ * meaningful for float samplers */
+ midgard_outmod_float outmod : 2;
unsigned swizzle : 8;
unsigned unknown4 : 8;