So, I've really extensivly tried to debug this problem. Still sitting at my desk a lot later than I had planned!
Here's what I see...
If I use dcl_lds_id(0), then uav data written to addresses where address%0x100==0, are trash. No matter what I try to write, it's the same trash, but not the same trash at every address where%0x100==0. Trash none-the-less
If I use dcl_lds_id(1), I get different trash than id(0)
If I used id(2), id(4), I get the same trash as id(1)
With me so far?
Switched uavs, initially tried 3, switchted to 8. Same trash as before, i.e. no effect.
Switched which card I was running it on, tried both 6990 cores, and a 6970 core. No effect, same trash shows up with the same lds values. (So bad ram is ruled out)
No other kernel I have used has had this problem, but no other kernel I've written used the lds.
Other kernels I have on my machine still appear to work, but they don't write much data (total of 32 bytes)
So either I have 3 sets of dead ram, which is somehow effected by the lds, there's some bug, there's something obvious I'm missing, or some software needs updating. Machine is windows 7 x64 ultimate. Doesn't appear to be SP1. (though I had thought it would have come with that).Driver packaging information is 8.93-111205a-132104C-ATI.
Yeah, I'm at a loss!