Перейти к содержанию
Fire Monkey от А до Я

Mars M

Пользователи
  • Постов

    63
  • Зарегистрирован

  • Посещение

  • Победитель дней

    4

Активность репутации

  1. Like
    Mars M получил реакцию от Andrey Efimov в Узнать размер видеопамяти   
    Подниму тему. CUDA конечно хорош(а?), но только для nvidia.
    Наткнулся тут на работу с OpenCL в делфи http://www.delphisources.ru/forum/showthread.php?t=28188
    Там по ссылке в первом сообщение в принципе все есть что нужно. Кому оттуда не удобно перезалил все файлы https://yadi.sk/d/t3mPqlJT3HnfiX
    Вот пример использования https://yadi.sk/d/bmDKXZ0k3Hnfny
    Проверял на картах nvidia и ati, конечно же карты должны поддерживать OpenCL.
    Если в MyOpenCL.pas чего то не хватает, можно взять это в CL.pas из GLScene https://sourceforge.net/p/glscene/code/HEAD/tree/trunk/Source/ParallelAPIs/
    Я например добавил константу   CL_DEVICE_LOCAL_MEM_SIZEэ
    А можно использовать родные CL.pas и CL_Platform.pas, в первом архиве есть пример использования.
    В архиве как раз есть рабочий пример вычислений 
  2. Like
    Mars M получил реакцию от Andrey Efimov в Узнать размер видеопамяти   
    Вот так вот вроде работает:
    Только нужно будет закомментировать строчку
    assert(sizeof(TCudaDeviceProp) = 540, 'sizeof(TCudaDeviceProp) <> 540');  
  3. Like
    Mars M получил реакцию от Равиль Зарипов (ZuBy) в Узнать размер видеопамяти   
    Вот так вот вроде работает:
    Только нужно будет закомментировать строчку
    assert(sizeof(TCudaDeviceProp) = 540, 'sizeof(TCudaDeviceProp) <> 540');  
  4. Like
    Mars M отреагировална Евгений Корепов в Узнать размер видеопамяти   
    Вместо утреннего кофе, уперся рогом и сделал получение информации через CUDA, тесовый проект прилагаю.
    В режиме отладки работает отлично, вижу размер видеопамяти, но потом вылетает с access violation (при обращении к визуальным компонентам или просто при продолжении работы). В чем дело понять не могу, сначала грешил на FMX, но проект на VCL выдает те же симптомы. Очень, очень странные дела...
    Код простой, используется cudaRT.pas из CUDA wraper Паскуда https://code.google.com/archive/p/pascuda/source/default/source и cudart32_65.dll идущая вместе с драйверами NVIDIA
    Var CudaDeviceProp : TCudaDeviceProp; hDevice: Integer; GPUMemorySize : Cardinal; LMessage : String; begin hDevice:=0; if CudaGetDeviceProperties(CudaDeviceProp, hDevice)=ceSuccess then begin GPUMemorySize:=CudaDeviceProp.TotalGlobalMem div 1024 div 1024; LMessage:=Format('GPU Memory size = %d Mb', [GPUMemorySize]); Memo.Lines.Add(LMessage); end;  
    test099 Cuda Info VCL.7z
  5. Like
    Mars M получил реакцию от Евгений Корепов в TVertexBuffer, TIndexBuffer максимальный\рекомендованный размер   
    Теперь вот окончательно разобрался что к чему
    Ошибку в коде что я писал уже появилась после того как я код переделал что бы буферы векторов и индексов делить на части.
    Думая что ошибка найдена я вернул все к первоначальному виду и тут та же проблема.
    В общем наткнулся в исходниках fmx на метод Create для индексного буфера.
    TIndexBuffer.Create(const ALength: Integer; const AFormat: TIndexFormat = TIndexFormat.UInt16); Из которого стала понятна причина проблемы
    При создании буфера указал TIndexFormat.UInt32   и первоначальный код заработал без проблем.
    Возможно плохо искал, но сколько инет перерыл не попадалось про это. Хотя на gamedev.ru читал про тоже самое но касательно OpenGL, но не обратил внимание
     
  6. Like
    Mars M отреагировална Rusland в Посоветуйте функционал для приложения   
    Периодически членам партии в пушах присылать призывы поддержать материально (из своего кармана) какое-нибудь благое начинание типа скинуться на: ремонт дороги, школы, больницы...
  7. Like
    Mars M отреагировална Равиль Зарипов (ZuBy) в Количество видимых Items — ?   
    ModernLV.getVisibleCount
  8. Like
    Mars M отреагировална Равиль Зарипов (ZuBy) в [Статья] Онлайн-сервисы в помощь разработчику по дизайну   
    Ссылка: http://blog.rzaripov.kz/2017/01/blog-post.html
    Автор: Зарипов Равиль @ZuBy
    Описание: Онлайн-сервисы в помощь разработчику по дизайну
     
     
  9. Like
    Mars M отреагировална Error в [Статья] VCL, избавляемся от мерцания, раз и навсегда   
    Ссылка: https://habrahabr.ru/post/318876/
    Автор: Error
    Описание:
    Delphi и C++Builder разработчики, использующие VCL не по наслышке знают о вездесущей проблеме мерцания контролов.
    Мерцание происходит при перерисовке, вследствие того, что сначала отрисовываеться фон компонента, и только потом сам компонент.
    И если в случае с наследниками от TWinControl частичным решением проблемы является установка свойства DoubleBuffered в True, что заставляет контрол отрисовываться в буфере(однако DoubleBuffered работает тоже не идеально, к прим.: контрол перестает быть прозрачным), то в случае с TGraphicControl решение с DoubleBuffered просто невозможно, из-за отсутствия у TGraphicControl окна, установка же DoubleBuffered в True у родителя не помогает, из-за того что отрисовка вложенных TGraphicControl-ов происходит уже после прорисовки родителя в буфере.
    Обычно остается только одно — смириться с мерцанием, и максимально упростить отрисовку для минимизации эффекта, или использовать по возможности исключительно TWinControl-ы, что не всегда возможно и удобно.
    Однажды намучившись с мерцанием, я не выдержал и решил решить эту проблему, раз и навсегда!
    ...
  10. Like
×
×
  • Создать...