L1 and L2 are both R/W on Southern Islands GPUs. L1 is non-coherent so writes have to be marked as writing through to L2 and reads have to be marked as reading from L2 to guarantee correct behaviour.
Both caches were read-only on earlier archs with separate caches handling writes to memory.
Thanks for the explanation. A few more questions though
What do these caches corrospond to in graphics pipeline. (I am always confused whether texture cache and L2 cache are the same or not?)
Also I understand that L1 cache is available to every read, but L2 cache is (2D type) and used only for images. Is this true?