Drivers that only use tgsi_shader_info won't break. Drivers that process tgsi_full_declaration manually and interpret Range.First .. Range.Last correctly won't break either.
A driver can only break if it doesn't handle Range.Last correctly. If that's the case, the driver should be fixed, because this is a basic TGSI feature that has always been there. Marek On Sun, May 24, 2015 at 5:45 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > While I'm all for doing this, won't this break every driver if it no > longer has all the decl's? It'll take special logic to convert > > DECL IN[0..5], GENERIC[0] > > into > > DECL IN[0], GENERIC[0] > DECL IN[1], GENERIC[1] > etc > > Perhaps this should be guarded by a cap? Or an audit of all drivers > should be done? > > On Sun, May 24, 2015 at 7:19 AM, Marek Olšák <mar...@gmail.com> wrote: >> Hi, >> >> The reason I add this is that TGSI doesn't allow indirect indexing of inputs >> and outputs. Consider this: >> >> MOV OUT[ADDR[0]-1000], IMM[0] >> >> There is no way to know where the output array starts here. It could be for >> example OUT[6]=GENERIC4 or anything else. The problem is some outputs are >> physically stored in a different memory domain than others. Per-patch >> (tessellation) outputs are one such example. Does the MOV instruction write >> a per-vertex or per-patch output? There is no way to know. >> >> The problem can be avoided by using carefully-generated unoptimized TGSI >> where the relative index is the same as the base of the array, which is >> OUT[6] here: >> >> UADD TEMP[0].x, TEMP[0].x, -1006 >> UARL ADDR[0], TEMP[0].x >> MOV OUT[ADDR[0]+6], IMM[0] >> >> This hack helps for this case, but the drivers which do move outputs to >> temps are still unable to allocate registers efficiently, because there is >> no way to know the actual array size. >> >> This patch series adds proper TGSI support for IN/OUT arrays. It works in >> the same way as temp arrays and it's a requirement for tessellation. >> >> Please review. >> >> Marek >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev