Форум: "Игры";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Внизкак узнать объём видео памяти? Найти похожие ветки
← →
vitall (2003-05-18 13:19) [0]Спасибо всем кто откликнется.
← →
vital (2003-05-18 16:38) [1]Удалено модератором
← →
vitall (2003-05-19 13:25) [2]Удалено модератором
← →
NailMan (2003-05-19 14:18) [3]Используя DirectDraw(по-другому не знаю):
FDD : IDirectDraw7 ;
DDSCaps2 : TDDSCaps2;
..Создаешь интерфейс FDD (IDirectDraw7) через левый IDirectDraw, который создаешь через CoInitialize из модуля ActiveX
FillChar(DDSCaps2, SizeOf(DDSCaps2), 0);
DDSCaps2.dwCaps := DDSCAPS_VIDEOMEMORY;
FDD.GetAvailableVidMem(DDSCaps2,VideoMem,VideoMemFree);
убиваешь левый интерфейс и FDD
Правда размер видеопамяти будет возвращаться несколько меньший, с чем связано нынаю.
← →
vitall (2003-05-19 15:53) [4]Благодарю,
может кто занет как получить объём памяти с помощью d3d8?
← →
NailMan (2003-05-19 16:08) [5]Он тебе такого не покажет. Можно только получить размер текстурной памяти, тобишь Local Video mem + AGP mem. Я у себя в игре заюзал именно через DDraw + выводимые им 62.3 Мб, проанализировав привожу его к нормальным 64 мегам видео.
← →
vitall (2003-05-19 16:42) [6]Обидно, что не покажет, but хоть знать теперь буду...
размер текстурной памяти... - если не сложно что имеется ввиду?
Я пробовал подключить DDraw он выдаёт непонятные 1215, - причём пофиг какой изначально объём памяти (32 или 64), либо я что-то не правильно делаю или насколько я понял это проблемма моей в-карты.
← →
NailMan (2003-05-19 17:22) [7]размер текстурной памяти... - если не сложно что имеется ввиду?
Директ имеет только общуу текстурную память, которая бывает в 2 режимах:
1) режим DIME : локальная память на видеоадаптере - видеобуфер - Z-буфер + AGP память с размером апертуры
8 мегов(куда деваются незнаю).
2) режим PCI : локальная память на видеоадаптере - видеобуфер -
Z-буфер + сколько ты выделил мегов на режим PCI(в дровах)
(П2. относится к nVidia`шным карточкам, как у ATI незнаю)
Все это (внешне) нам Директом показывается единой памятью, которую мы забиваем незадумываясь. Сам же Директ внутри себя уже манипулирует куда чего залить для лучшей скорости рендера, в локальную адаптера или выгрузить в AGP.
Я пробовал подключить DDraw он выдаёт непонятные 1215, - причём пофиг какой изначально объём памяти (32 или 64), либо я что-то не правильно делаю или насколько я понял это проблемма моей в-карты.
Ты как его создавал?
CoInitialize;
CreateDirectDraw()//создаем левый директор дров
DD.Query`им от него FDD(dd7) с IID_IDirectDraw7
вытаскиваем по вышеприведенному коду размер в.памяти
COUnInitialize;
← →
vitall (2003-05-19 17:52) [8]Ой как много всего и половина мне не понятна (я не очень хорошо программирую, единственный язык который понимаю = Delphi)
режим PCI - в смысле выделил? <<-- это делается прграмно? Я не задаю никаких параметров по памяти, и второй момент есть ощущение, что все текстуры дублируются в оперативке - может быть такое? (тобишь грузятся и туда и сюда) возможно так и должно быть, я про это к моему сожалению ничего не знаю и где посмотреть не знаю, а очень хочется :)...
nVidia`шные карточки конечно good но я их не люблю тк сплошная рекламма, всё тоже самое можно делать програмно (правда я пока ещё не умею)
CoInitialize;!!! я не запускал :)
CreateDirectDrawEx() ведь делает примерно тоже самое, что и CreateDirectDraw()?
← →
NailMan (2003-05-19 18:15) [9]режим PCI - в смысле выделил? <<-- это делается прграмно? Я не задаю никаких параметров по памяти, и
Ну в смысле в драйверах(по крайней мере у nvidia) есть такой параметр как количество мег выделяемых в качестве дополнительной памяти в режиме когда карта работает в PCI-режиме. Собсно можно определить(не всегда) программно в каком режиме работает карта: AGP(DiME) или PCI. Достаточно проверить флаги у D3DCAPS8, что-то вроде TexuresSystemMemory, TexuresAGPMemory или как-то так(SDK под рукой нет). Если первое включено, то PCI если второе AGP.
второй момент есть ощущение, что все текстуры дублируются в оперативке - может быть такое?
именно так, но несколько иначе. Точнее не скажу - не помню, давно в Фидо проскакивали принципы директовского мэнедмента.
CreateDirectDrawEx() ведь делает примерно тоже самое, что и CreateDirectDraw()?
Я уж не помню почему не сделал черех Ex, видимо чего-то там надо было чего у меня еще не создалось(опять говорю sdk нет - вспомнить не могу). Я сделал через левый DDraw - усе работает. Чего еще надо для спокойствия души?
← →
vitall (2003-05-19 18:36) [10]>>>Я сделал через левый DDraw - усе работает <<<- так у меня то не работает вот душа и не успокаивается... правда я ещё не попробовал твой вариант...
>>>дублируются в оперативке - может быть такое?
именно так, но несколько иначе. <<<- это можно как-то контролировать?
SDK - по DX? если да то где такой взять, я смотрел но всё время натыкаюсь на SDK которые уже после DX <- не знаю как правильно объяснить... :)
>>>не помню почему не сделал черех Ex,видимо ... не создалось <<<- у меня как раз наоборот :) без Ex не работает...
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c