Привет всем
Решил попробовать потестировать свою видеокарту Ati Radeon HD4670 (чипсет RV730XT). Система - Gentoo Linux x86, ядро 2.6.36.
Поглядел в дистрибутив FPC - вроде бы Скалогрыз уже и cl.h портировал под паскаль. Спасибо ему!
-Снес открытые драйвера.
-С грехом пополам поставил официальные проприетарные (версии 10.10) с поддержкой OpenCL. KMS конфликтует - ну да черт с ним.
-Установил ati-stream-sdk 2.2. Прописал в /etc/OpenCL/vendors/atiocl32.icd строку libatiocl32.so.
-Погонял примеры на С - вроде все работает.
Теперь под FPC:
-Добавил поддержку Linux в cl.pp (просто объявил функции как cdecl + dynlink). См. ниже
-Пример собрался.
-Пытаюсь запустить пример Скалогрыза - падает с sigfpe.
-По-запускал без особой надежды strace на собранном gcc и fpc - strace для gcc показывает что вроде используется pthreads.so. Ок. Подключил cthreads первым модулем. Результат тот же.
Сделал минимальный пример под gcc и fpc.
Максимально близкий. Делается вызов всего одной функции. Проблема та же. gcc версия работает без проблем, fpc - падает внутри вызова clGetPlatformIDs.
-если удаляю /etc/OpenCL/vendors/atiocl32.icd, то fpc версия clGetPlatformIDs ругается нормальным кодом ошибки. То есть проблема, вроде бы не в неправильном методе вызова функций в cl.pp.
Примеры под gcc и fpc приаттачил.
Может кто-нибудь чего подскажет?