gles: Only clamp default block uniform indexes

UBOs can be significantly larger than our constant register file. Don't
clamp indexes into them.

We *should* catch accesses outside the bound region of the UBO as well,
but that's a preexisting bug (consider a UBO region smaller than the
constant register file), and we don't have the limit available here.

Bug: b/145227408
Change-Id: I67aae6ba9a10290c1b69587808e274c481925078
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/38708
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Chris Forbes <chrisforbes@google.com>
diff --git a/src/Shader/PixelProgram.cpp b/src/Shader/PixelProgram.cpp
index 46f87c2..959e63e 100644
--- a/src/Shader/PixelProgram.cpp
+++ b/src/Shader/PixelProgram.cpp
@@ -1110,7 +1110,10 @@
 
 			Int4 index = Int4(i) + As<Int4>(a) * Int4(src.rel.scale);
 
-			index = Min(As<UInt4>(index), UInt4(VERTEX_UNIFORM_VECTORS));   // Clamp to constant register range, c[VERTEX_UNIFORM_VECTORS] = {0, 0, 0, 0}
+			if (src.bufferIndex == -1)
+			{
+				index = Min(As<UInt4>(index), UInt4(VERTEX_UNIFORM_VECTORS));   // Clamp to constant register range, c[VERTEX_UNIFORM_VECTORS] = {0, 0, 0, 0}
+			}
 
 			Int index0 = Extract(index, 0);
 			Int index1 = Extract(index, 1);
diff --git a/src/Shader/VertexProgram.cpp b/src/Shader/VertexProgram.cpp
index ca0a24a..c3f5de8 100644
--- a/src/Shader/VertexProgram.cpp
+++ b/src/Shader/VertexProgram.cpp
@@ -911,7 +911,10 @@
 
 			Int4 index = Int4(i) + As<Int4>(a) * Int4(src.rel.scale);
 
-			index = Min(As<UInt4>(index), UInt4(VERTEX_UNIFORM_VECTORS));   // Clamp to constant register range, c[VERTEX_UNIFORM_VECTORS] = {0, 0, 0, 0}
+			if (src.bufferIndex == -1)
+			{
+				index = Min(As<UInt4>(index), UInt4(VERTEX_UNIFORM_VECTORS));   // Clamp to constant register range, c[VERTEX_UNIFORM_VECTORS] = {0, 0, 0, 0}
+			}
 
 			Int index0 = Extract(index, 0);
 			Int index1 = Extract(index, 1);