On 11.03.2013 19:33, Brian Paul wrote: > On 03/11/2013 06:44 AM, Christian König wrote: >> Hi everybody, >> >> this problem has been open for quite some time now, with a bunch of >> different >> opinions and sometimes even patches floating on the list. >> >> The solutions proposed or implemented so far all more or less >> incomplete, so >> this approach was designed in mind with both completeness and >> compatibility >> with existing code. >> >> Over all it's just an implementation of what Tom Stellard named >> solution #4 in >> this eMail thread: >> http://lists.freedesktop.org/archives/mesa-dev/2013-January/033264.html >> >> Please review and as usual comments are welcome, > > I still don't quite get what's going on here. > > In Christoph's reply, it seems he tested your patch and got TGSI code > that looks like this: > > DCL IN[0] > DCL IN[1] > DCL IN[2] > DCL OUT[0], POSITION > DCL OUT[1], GENERIC[12] > DCL OUT[2], GENERIC[13] > DCL OUT[3], GENERIC[14] > DCL OUT[4], GENERIC[15] > DCL CONST[0..1] > DCL TEMP[0..3], LOCAL > DCL TEMP[4], LOCAL > DCL ADDR[0] > IMM[0] FLT32 { 0.0000, 0.0000, 0.0000, 0.0000} > 0: UARL ADDR[0].x, CONST[1].xxxx > 1: MOV TEMP[4], IN[ADDR[0].x] <<< (not the bug) but this is invalid as > there is no IN array, just single ones > 2: MOV TEMP[0], IN[0] > 3: MOV TEMP[1], IN[1] > 4: MOV TEMP[2], IMM[0].xxxx > 5: MOV TEMP[3], IMM[0].xxxx > 6: UARL ADDR[0].x, CONST[0].xxxx > 7: MOV TEMP[1][ADDR[0].x], IN[2] > > What exactly does "LOCAL" mean on the temp declarations? > That the register isn't used for parameter passing between subroutines. Has been introduced a long time ago. See commit 2644952bd4dfa3b75112dee8dfd287a12d770705.
> But in Jose's example, he wrote: > > DCL TEMP[1][0..70] > DCL TEMP[2][0..7] > MOV OUT[1], TEMP[1][ADDR[0].x] > > In this code, each chunk of temporaries has an explicit name as Marek > suggested in his comments to the "#4" proposal. > The point is that TEMP (and all other spaces likewise) are still a single space, i.e. without duplicate indices. The only real change is that an indirect access is supplied with the index of the declaration of which the range will be accessed. > What exactly is your proposal doing? > > Can you please provide some more sample TGSI code to illustrate what > you're doing? And, how it would be extended for inputs/outputs? > > Thanks. > > -Brian > > > _______________________________________________ > 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