radeonsi: use bounded indexing for constant buffers
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sun, 3 Apr 2016 09:39:52 +0000 (11:39 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 5 Apr 2016 17:19:07 +0000 (19:19 +0200)
Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_shader.c

index 56c575948ab55debd9b0ee24fe723150e540727e..ca2ff4dfcae29531bbfe057479b12f509c28b9d5 100644 (file)
@@ -1328,8 +1328,9 @@ static LLVMValueRef fetch_constant(
        if (reg->Register.Dimension && reg->Dimension.Indirect) {
                LLVMValueRef ptr = LLVMGetParam(ctx->radeon_bld.main_fn, SI_PARAM_CONST_BUFFERS);
                LLVMValueRef index;
-               index = get_indirect_index(ctx, &reg->DimIndirect,
-                                                  reg->Dimension.Index);
+               index = get_bounded_indirect_index(ctx, &reg->DimIndirect,
+                                                  reg->Dimension.Index,
+                                                  SI_NUM_USER_CONST_BUFFERS);
                bufp = build_indexed_load_const(ctx, ptr, index);
        } else
                bufp = ctx->const_buffers[buf];