Здравствуйте Avtii, вы писали:
A>Здравствуйте Sasparella, вы писали:
S>>Говорит "Not Enough storage to process this command....."
A>Кто говорит — GetLastError?
Угу... Причем очень интересно происходит. При каком-то "критическом" значении размера битмепа начинает глючить ф-ю wglCreateContext — она возвращает успех, и при этом выставляет ласт еррор в Нот Инаф сторыдж ту процесс.....
При еще большем значении размера — все правильно не работает — то есть возвращается FALSE и код ошибки ему соответствующий ошибке.
Это черт с ним — непонятно другое -ПОЧЕМУ я НЕ могу создать битмеп 50Мб?????? Ибо в каком-то другом моем проекте все отлично работает...
Подобные глюки (если это глюк) оычно бывали если я гдето затирал память, и летело чтото совсем неожиданное. Но тут я баундс чекером вдоль и поперек все прочесал....
странно..
Вот и думаю — может проекту надо какието опции чтобы он мог многло памяти аллокировать — хотя понимаю, что вопрос достаточно маразматичен...
Здравствуйте Avtii, вы писали:
A>Саша, не поверишь но на W2K Sp2 Твой сырец возвратил SUCCCEEEESSSS!!! :0) A>У меня Visual Studio SP5 может в этом грабли?
Здравствуйте Sasparella, вы писали:
AO>>Угу, Whistler Server b3505. Та же фигня. Если не возражаешь, я могу накатать по нему баг-репорт, упомянув твое авторство ошибки.
S>Угу, конечно не возражаю — у меня просто нет опыта катания подобных вещей......
Усе, баг по Вистлеру уехал. Было бы еще неплохо его послать, как баг SP2, но сервиспаки я, к сожалению, не тестирую. :(
Тачка №2
98 DX6.1 = FAIL: The operation conpleted successfully, file a.cpp line 24
2k DX8 SP2 = OK
2k clean install = OK
2k cb SP2 = FAIL: The handle is invalid, file a.cpp line 24
XP build 2600 = OK
Возможно, проблема в драйверах видева. И в видевожелезе собственно.
Здравствуйте Sasparella, вы писали:
S>Здравствуйте Snax, вы писали:
S>>Тачка №1 S>>2k SP2 = OK
S>>Тачка №2 S>>98 DX6.1 = FAIL: The operation conpleted successfully, file a.cpp line 24
S>Насчет этого все правильно — на 9x созданный битмеп не может превышать 16Mb.
S>>2k DX8 SP2 = OK S>>2k clean install = OK S>>2k cb SP2 = FAIL: The handle is invalid, file a.cpp line 24
S>Значит все-таки SP2 что то портит.....
S>>XP build 2600 = OK
S>>Возможно, проблема в драйверах видева. И в видевожелезе собственно.
S>Хммм. свежая идея. Сейчас вот проверил, вот рез S> S>OЗУ OS Video Video Driver TEST
S>300Mb, W2000sp2 Sis 8Mb Native, Win2000 — OK S>700Mb, W2000sp2 TNT2 M64 32Mb Detonator 5.12 — FAIL S>700Mb, W2000sp2 TNT2 M64 32Mb Detonator 5.12 — FAIL /* второй такой-же комп*/ S>196Mb, W2000 no sp S3 Virge DX 4Mb S3 Common — OK S>196Mb, W2000 no sp Saturn GL (Permedia)8Mb Native SaturnGL — OK S>320Mb, W2000 sp1 ATI Rage Pro 2X 8Mb Native Win2000 — OK S>1Gb, W2000 Elsa Gloria 64Mb Elsa native — OK S>1Gb NT4 SP6 Metrox G200 Matrox native — OK S>512Mb W2000 sp2 TNT2 M64 16Mb Detonator ?.?? — FAIL /* не помню точно версию*/
S>Но странно, чтобы продукция nVidia так глючила....
S>В общем, благодаря Павлу, обрисовалось направление поиска — Теперь можно проверить разные детонаторы или поставить родные асусовские дрова.
S>В общем из моих тестов четко следует только что w2000+sp2+Detonator+TNT2 = кранты.
S>Все равно странно, он что, к видеоподсистеме обращается когда битмеп создает???? Странно.
S>Спасибо за поддержку!!!!
S>Саша
Саша, у меня полный FAIL и у Саши тут рядом тоже. LineIndex — 24. (VC++6 без SP).
Здравствуйте Sasparella, вы писали:
S>Все равно странно, он что, к видеоподсистеме обращается когда битмеп создает???? Странно.
Ничего странного. Вызов CreateCompatibleBitmap идет прямиком в дисплей-драйвер под именем DrvCreateDeviceBitmap. Это дает возможность драйверу создать битмап прямо в видеопамяти, что значительно ускоряет последующую работу с ним. Так что очень вероятно, что драйвер здесь причастен.
Здравствуйте sasha, вы писали:
S>>>Возможно, проблема в драйверах видева. И в видевожелезе собственно.
Да, мы с братом пришли к такому же выводу. Дело в видеодрайверах.
S>>Хммм. свежая идея. Сейчас вот проверил, вот рез S>> S>>OЗУ OS Video Video Driver TEST
S>>300Mb, W2000sp2 Sis 8Mb Native, Win2000 — OK S>>700Mb, W2000sp2 TNT2 M64 32Mb Detonator 5.12 — FAIL S>>700Mb, W2000sp2 TNT2 M64 32Mb Detonator 5.12 — FAIL /* второй такой-же комп*/ S>>196Mb, W2000 no sp S3 Virge DX 4Mb S3 Common — OK S>>196Mb, W2000 no sp Saturn GL (Permedia)8Mb Native SaturnGL — OK S>>320Mb, W2000 sp1 ATI Rage Pro 2X 8Mb Native Win2000 — OK S>>1Gb, W2000 Elsa Gloria 64Mb Elsa native — OK S>>1Gb NT4 SP6 Metrox G200 Matrox native — OK S>>512Mb W2000 sp2 TNT2 M64 16Mb Detonator ?.?? — FAIL /* не помню точно версию*/
S>>Но странно, чтобы продукция nVidia так глючила....
Увы, так глючит не только nVidia. У меня на работе та же картина на i810, причем как с родными Xpшными драйверами, так и с последними интеловскими. В любом случае, при использовании встроенных в систему драйверов, это нужно рассматривать как 100% баг ОС.
Моя программа рисует тайловую картинку, приходится заранее загружать много битмапов. Обнаружил, что при превышени какого-то порога (памяти видеокарты скорее всего) не проходят с виду безобидные вызовы CreateDIBitmap, CreateCompatibleBitmap и даже LoadBitmap. Картинки небольших размеров. Памяти и свопа на машине с избытком.
Заметил вот еще что — если в свойствах монитора поиграть ползунком "аппаратное ускорение", то момент прекращения работы изменяется, но он все равно наступает.
Никто еще на разобрался как с этим бороться ?
Здравствуйте, Всеволод, Вы писали:
В>Я, видимо, наступил на эти же грабли !
В>Моя программа рисует тайловую картинку, приходится заранее загружать много битмапов. Обнаружил, что при превышени какого-то порога (памяти видеокарты скорее всего) не проходят с виду безобидные вызовы CreateDIBitmap, CreateCompatibleBitmap и даже LoadBitmap. Картинки небольших размеров. Памяти и свопа на машине с избытком. В>Заметил вот еще что — если в свойствах монитора поиграть ползунком "аппаратное ускорение", то момент прекращения работы изменяется, но он все равно наступает. В>Никто еще на разобрался как с этим бороться ?
Поставил свежие видеодрайверы — стало лучше, грузит больше картинок, но все равно потом дает отлуп по ошибке номер 8 (не хватает памяти).
На моей машине вот такой простой тест повторяет ситуацию
HDC hDC=::GetDC(NULL);
HANDLE hBmp;
for (int i=0; ; i++)
{
hBmp=CreateCompatibleBitmap(hDC, 256, 256);
if (hBmp==NULL)
{
вот здесь мы будем при i=944
}
}
Здравствуйте, Sasparella, Вы писали:
S>..Не может создать 5000x2500x32 битмеп (~50Мб), при том, что на машине 700Мб OЗУ, 1.5 Гб своп, и стоит WIn200 Prof Sp2.
S>Говорит "Not Enough storage to process this command....."
ОЗУ тут ни при чем, compatible bitmap создается в видеопамяти. Используй CreateDIBSection().