Memory accesses to image variables declared using the "const" storage qualifier may only read the underlying memory, which is treated as read-only. It is an error to pass an image variable qualified with "const" to imageStore() or imageAtomic*().
In image variable declarations, the "coherent", "volatile", "restrict", and "const" qualifiers can be positioned anywhere in the declaration, either before or after the data type of the variable being qualified. Qualifiers before the type name apply to the image data referenced by the image variable; qualifiers after the type name apply to the image variable itself. It is an error to specify "restrict" prior to the type name, as "restrict" can only qualify the image variable itself.