glsl: Allow non-constant UBO array indexing with GLSL4/ARB_gpu_shader5.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Mark entire UBO array active if indexed with non-constant.

Without doing a lot more work, we have no idea which indices may
be used at runtime, so just mark them all.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
derp
debug
glsl: Accept nonconstant array references in lower_ubo_reference

Instead of falling back to just the block name (which we won't find),
look for the first element of the block array. We'll deal with the rest
in the backend by arranging for the blocks to be laid out contiguously.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Convert uniform_block in lower_ubo_reference to ir_rvalue.

Previously this was a block index with special semantics for -1.
With ARB_gpu_shader5, this need not be a compile-time constant, so
allow any rvalue here and convert the -1 to a NULL pointer.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Plumb through UBO array indexing expressions

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: No longer require ubo block index to be constant in ir_validate

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Cast signed ubo array indices to unsigned

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>