Fixes constlen overflow in
dEQP-GLES31.functional.shaders.builtin_var.compute.num_work_groups and
dEQP-GLES31.functional.image_load_store.buffer.image_size.readonly_32
and probably others.
Reviewed-by: Rob Clark <robdclark@gmail.com>
dims[off + 1] = ffs(dims[off + 0]) - 1;
}
}
dims[off + 1] = ffs(dims[off + 0]) - 1;
}
}
+ uint32_t size = MIN2(ARRAY_SIZE(dims), v->constlen * 4 - offset * 4);
ring_wfi(ctx->batch, ring);
ctx->emit_const(ring, v->type, offset * 4,
ring_wfi(ctx->batch, ring);
ctx->emit_const(ring, v->type, offset * 4,
- 0, ARRAY_SIZE(dims), dims, NULL);
[IR3_DP_LOCAL_GROUP_SIZE_Y] = info->block[1],
[IR3_DP_LOCAL_GROUP_SIZE_Z] = info->block[2],
};
[IR3_DP_LOCAL_GROUP_SIZE_Y] = info->block[1],
[IR3_DP_LOCAL_GROUP_SIZE_Z] = info->block[2],
};
+ uint32_t size = MIN2(ARRAY_SIZE(compute_params),
+ v->constlen * 4 - offset * 4);
ctx->emit_const(ring, MESA_SHADER_COMPUTE, offset * 4, 0,
ctx->emit_const(ring, MESA_SHADER_COMPUTE, offset * 4, 0,
- ARRAY_SIZE(compute_params), compute_params, NULL);
+ size, compute_params, NULL);