commit | ae0ff8097b85d3537a7be1674d55a44a9bd6018e | [log] [tgz] |
---|---|---|
author | Brian Paul <brian.paul@tungstengraphics.com> | Wed Nov 19 14:12:25 2008 -0700 |
committer | Brian Paul <brian.paul@tungstengraphics.com> | Wed Nov 19 14:12:25 2008 -0700 |
tree | 61c822bc84183fce03a329893daaf19d548eb278 | |
parent | e709d68d92ef6f2392b118d0a22452e8f4c53e9a [diff] |
mesa: rework GLSL array code generation We now express arrays in terms of indirect addressing. For example: dst = a[i]; becomes: MOV dst, TEMP[1 + TEMP[2].y]; At instruction-emit time indirect addressing is converted into ARL/ ADDR-relative form: ARL ADDR.x, TEMP[2].y; MOV dst, TEMP[1 + ADDR.x]; This fixes a number of array-related issues. Arrays of arrays and complex array/struct nesting works now. There may be some regressions, but more work is coming.