On 12 December 2012 09:09, Marek Olšák <span dir="ltr"><<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
R300 and R400 support 4 texture indirections (as defined by<br>
ARB_fragment_program). Adding ALU instructions before the first TEX<br>
instruction increases the number of texture indirections by 1, which<br>
might make some shaders not be executable on the hardware at all.<br>
<br>
I think this optimization should be disabled on drivers where the<br>
texture indirection limit is too low.<br>
<span class="HOEnZb"><font color="#888888"><br>
Marek<br>
</font></span></blockquote></div><br>Hmm, I see.  Follow up question:<br><br>My patches implement varying packing in two ways: (a) within a composite varying (such as a matrix or array varying) and (b) between varyings.  Disabling (b) on some drivers would be pretty simple.  Disabling (a) would be more of a pain, because it would require there to be two paths to handle transform feedback, one that understands how to do feedback for packed varyings, and one that understands how to do feedback for unpacked varyings.  I was kind of hoping we could avoid that.  Do you think it would be adequate to disable just (b) on R300 and R400, or do you think we have to disable both (a) and (b) on R300 and R400?<br>
</div>