Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2010, 22:52   #61
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

2all: Извиняюсь, не смог осилить все посты, уж очень много букв пишите Но по-моему правильно Ulex сказал: все равно все останутся при своих мнениях. Я не знаю, может быть вы не видели, но я выкладывал пару моих програмок, приложу на всякий случай еще раз. Первая программа (dotsss.exe) - считает и рисует фигуру в таймере. Получаем ничтожную загрузку CPU и предел в 64 fps. Вторая программа (3dTor.exe) рисует в отдельном потоке, в цикле которого после каждого кадра стоит Sleep(1). (отключается опцианально). Получаем максимальный fps (у меня ~400 fps), но и большую загрузку процессора (но не 100-процентную, потому как отдаем ресурсы системе процедурой Sleep(1) ). Если снять галочку с Idle 1 ms, получаем еще больший fps, но уже загрузку 100%.

2Beermonza: Про процедуру помню, чертовски не хватает времени. Как только смогу - так сразу отпишусь. Но! я не забыл.
Вложения
Тип файла: rar GDI_demos.rar (333.8 Кб, 14 просмотров)
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 20.10.2010, 00:03   #62
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Tronix, ничего страшного, я не тороплю.

Цитата:
Сообщение от Ulex Посмотреть сообщение
Не не не. Ты про передачу готового кадра уже говоришь (ну, по крайней мере я так понял).
Я говорю про все сразу. У меня в примере сейчас есть отключение BitBlt, ставлю таймер в 20 мс (фиг с ним точно или нет) и вижу 31% загрузка, при 253 объектах (перегрузка по заполнению в игре), ...отключаю BitBlt, получаю 4%, 0%, 1%, 5%, 0% и т.д. от 0 до 6%.

Цитата:
Сообщение от Ulex
Ну а обработка, само формирование этого кадра? DIB-ы они где, правильно, в ОЗУ. А к ОЗУ обращаешься как? Правильно - по шине. А шина у нас что? А шина на этих конфигурациях привязана к памяти (потому что память синхронная SDRAM), а память PC 100.
...это с математической моделью, с построением кадра в ОЗУ, но без вывода на экран через BitBlt. Это схема ОЗУ - CPU - ОЗУ, как ни крути эта схема быстрее схемы ОЗУ - CPU - видеопамять - CPU - ОЗУ на любых компах. Нужно либо сидеть в ОЗУ полностью и только последний кадр отправлять на вывод, либо создавать его наместе в видеопамяти карты и выводить здесь же, что и делается в OpenGL и DirectX/3D.

Цитата:
Сообщение от Ulex
MMX вроде должен спасти, но это максимум в 2.5 раза, благодаря пакетной обработке. И можно ещё надеяться, что эти инструкции просто быстрее. Но то что у меня получалось сделать и потестировать на Celerone - показало, что инструкции блока MMX сами по себе не быстрее целочисленных инструкций CPU, а выигрывают благодаря пакетной обработке и не более. Поэтому я не уверен, пролезут ли эти 30 кадров в секунду с учётом их формирования 30 раз в секунду.
Я использовал сначала регистры обычные, по 4 байта пересылались, после перехода на SSE (как оказалось), но с использованием как ММX по 8 байт, я увеличил скорость (с помощью форумчан) в 6 раз, и да, там тоже говорили про небольшой ожидаемый прирост, однако оно вот так. Условия одинаковые, при одной и той же частоте шины, специальные регистры существенно ускоряют процесс. Так должно быть и на твоем Celeron'е.

Цитата:
Сообщение от Ulex
Ну и про экономию, вот ты про экономию ресурсов говоришь. Но почему то под экономией ресурсов подразумеваешь только загрузку процессора. А когда я сказал про видеокарту (DX и OGL), то ты как то так возразил интересно - дескать у меня в игре графических данных на 100+ мегабайт, и в видеопамять они просто не влезут. Я чёт сначала внимания этому не придал, ну да, действительно - не влезут. А ты полагаешь, что в ОЗУ на таких конфигурациях они влезут? Вот у меня на этом компе 256М ОЗУ.
Я первый раз вижу пользователя компа, да еще и не совсем старого, да еще у которого ниразу не выделялись средства на покупку второй платки на 256М, ...странно ...рассчитывал на старые компы, а тут такие дела, за столько лет уж точно что-то меняется в компе, или он сам на свежую модель, или купленную с рук по дешевке, 5-6 летней давности, а там уже 2х512М, ...ну да ладно, бывает и такие случаи. Чего-то вы меня озадачили, может подумать и про ZX Spectrum? ...во всяком случае, переключение на 16 бит текстуры предусмотрено, там память будет экономнее расходоваться.

Цитата:
Сообщение от Ulex
Главное, чтобы требуемые поверхности были уже загружены в видеопамять. Ну вот для формирования конечного кадра, тебе же ведь не нужны все 100 Мб графических данных, нужна только их какая-то часть. Вот - простор для оптимизации. Просто когда разработчик берёт DX или OGL он почему то сразу считает, что тут оптимизировать нечего, карта всё сделает сама.
В том и дело, что только подложка и буфер кадра весят 5,5М, анимация одного дерева - 7,8М (15М), два вида дерева - 30М, ...оно по определению не лезет в 8, 16, 32М карты. Разработчик в таких карта древних, использовал качество 8/16 бит, объекты были крохотные, или собранные из повторяющихся частей, ...брали геймплеем. Это в 2D, а в 3D обходились размазыванием одной текстуры на все случаи жизни по всем 3D объектам. Теперь все поменялось, ...видеопамяти по 256-2048М, ...я же предполагал, что в старых компах видеопамяти только до 32М максимум, а ОЗУ побольше в 10 раз.

Цитата:
Сообщение от Ulex
А чем тебя MM таймер не устроил? Он хотя бы не врёт.
У меня его нет.

Цитата:
Сообщение от Ulex
Не понял, что значит собственное обновление видеокарты.
Я в самом начале пути создания собрал тест на OpenGL, т.е. как принято с видеопамятью, ...на фон в виде фотографии наложил спрайт прицела, управляемого мышью, ...запустил на ноутбуке и получил 64 fps, и это значение не меняется, как бы не дергал усердно курсором. Пошел за Pentium 4 3GHz, там карта ASUS GeForce 8600 GT 256M, ...выдает 480 fps и это значение плавает от усердия движения курсором. Вот я и не пойму, почему так, ...любой любительский или учебный пример на этой Intel X3100 больше 64 fps не показывает, а на GeForce показывает когда как, но всегда за 200-ти.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 20.10.2010, 03:21   #63
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Я говорю про все сразу. У меня в примере сейчас есть отключение BitBlt, ставлю таймер в 20 мс (фиг с ним точно или нет) и вижу 31% загрузка, при 253 объектах (перегрузка по заполнению в игре), ...отключаю BitBlt, получаю 4%, 0%, 1%, 5%, 0% и т.д. от 0 до 6%.
Опять я чёт не понимаю. Включил BitBlt - получил 31%, выключил от 0 - до 6. А при чём тут количество объектов в сцене. Как я это дело понимал - BitBlt, это последний штрих и он есть каждый кадр, независимого от того, есть анимации в сцене или нет.
Я вот позапускал оба теста. При 10 объектах загрузка болтается около 0. Вопрос - где BitBlt со своей загрузкой. Почему при 253 человеках (если ты утверждаешь, что на всё остальное уходит 0-6) загрузка сразу резко подскакивает до 24. Или там опять интеллектуальный таймер, который рендерит кадр только когда в нём что-то поменялось?

Цитата:
Условия одинаковые, при одной и той же частоте шины, специальные регистры существенно ускоряют процесс. Так должно быть и на твоем Celeron'е.
Посмотрим

Цитата:
Цитата:
Сообщение от Ulex
А чем тебя MM таймер не устроил? Он хотя бы не врёт.
У меня его нет.
Чёт система у тебя подозрительная какая-то. Сейчас специально на XP-хе посмотрел - winmm.dll датируется тем же числом и временем, что и kernel32.dll Не ставится она с играми. Она как минимум с системой должна ставиться.

Цитата:
Я в самом начале пути создания собрал тест на OpenGL, т.е. как принято с видеопамятью, ...на фон в виде фотографии наложил спрайт прицела, управляемого мышью, ...запустил на ноутбуке и получил 64 fps, и это значение не меняется, как бы не дергал усердно курсором. Пошел за Pentium 4 3GHz, там карта ASUS GeForce 8600 GT 256M, ...выдает 480 fps и это значение плавает от усердия движения курсором. Вот я и не пойму, почему так, ...любой любительский или учебный пример на этой Intel X3100 больше 64 fps не показывает, а на GeForce показывает когда как, но всегда за 200-ти.
V_SYNC - у меня предположений больше нет. У себя на ноуте я кстати тоже не знаю как его принудительно вырубить.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 20.10.2010, 14:41   #64
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Опять я чёт не понимаю. Включил BitBlt - получил 31%, выключил от 0 - до 6. А при чём тут количество объектов в сцене. Как я это дело понимал - BitBlt, это последний штрих и он есть каждый кадр, независимого от того, есть анимации в сцене или нет.
Я вот позапускал оба теста. При 10 объектах загрузка болтается около 0. Вопрос - где BitBlt со своей загрузкой. Почему при 253 человеках (если ты утверждаешь, что на всё остальное уходит 0-6) загрузка сразу резко подскакивает до 24. Или там опять интеллектуальный таймер, который рендерит кадр только когда в нём что-то поменялось?
Вот отключение BitBlt:

Код:
If CheckBox1.Checked then
  Begin
    // контекст главной формы
    DCs := GetDC(Form1.Handle);
    BitBlt(DCs,-24,-12,1176,750,ZoneBitmap.Canvas.Handle,0,0,SRCCOPY);
    ReleaseDC(Form1.Handle, DCs);
  end;
...все остальное остается, и модель, и рисование кадра в ОЗУ, таймер 20 мс (пусть точно это 30 мс или больше), 253 персонажа, с BitBlt - 28-31%, без него 0-6%, ...остается догадываться.

Цитата:
Сообщение от Ulex
Чёт система у тебя подозрительная какая-то. Сейчас специально на XP-хе посмотрел - winmm.dll датируется тем же числом и временем, что и kernel32.dll Не ставится она с играми. Она как минимум с системой должна ставиться.
Ну, да, Vista HP первая, с обновлениями, 3 года как, ...kernel32.dll есть, а winmm.dll нету.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 22.10.2010, 21:55   #65
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

С циклом по-yy разобрался, записал в asm-вставку полную отрисовку и по-x и по-y, ...с 253-мя персонажами загрузка CPU пала с 28-31% до 4-8%, это с BitBlt вместе, без него показывает 0% и не подымается более.

Понял почему не могу брать в ММХ по 8 бай, ...в формуле смешивания нужно попарно умножать байты регистров, и чтобы записать ответ нужно 16 байт, вот и остаются первые 8, остальные теряются. Нужно брать частями, переводить в Word и после умножения обратно и соединять.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 25.10.2010, 21:27   #66
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Что-то молчит любезный Tronix, пришлось тупо закинуть подряд двойную порцию смешивания по 4 байта, и все это с шагом 8, быстрее чуток, чем сразу в цикле по 4 байта, ...не панацея, но работает.
Во вложении тест, нужно чтобы заработало на компах с MMX. Интересует сколько будет загрузка CPU с текущими настройками теста при старте, ...и потом уже с манипуляциями до тормозов. Желательно интервал не трогать, устраивает значение.
Вложения
Тип файла: zip MMX Test 3 2010.zip (613.2 Кб, 23 просмотров)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 26.10.2010, 18:30   #67
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Видно, что тест скачивается, ...только молчать не нужно, отписывайтесь, кто скачал и проверил, будет полезно для дела.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.10.2010, 08:48   #68
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

При начальных настройка 8-17%
1024 персов, 40-45%
50000 персов ОЗУ+интервал ~950ms

Проц. Dual-Core T4200 2.00GHz
Kostia вне форума Ответить с цитированием
Старый 27.10.2010, 15:28   #69
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Kostia, благодарю за помощь. У меня аналогично, но это Core 2 Duo, они хорошо проворачивают. Может у кого есть что-то до P4? ...не стесняемся, принимаем участие.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.10.2010, 19:13   #70
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Я просто уезжал, поэтому отписаться оперативно не смог.

ну вот и результаты:

тест N1:
входные данные - 252 объектов, интервал 20 мс
выходные данные - интервал 62 мс, fps 15, загрузка CPU 99-100%

тест N2:
входные данные - 0 объектов, интервал 20 мс
выходные данные - интервал 51 мс, fps 19, загрузка CPU 99-100%

тест N3:
входные данные - 1 объектов, интервал 60 мс
выходные данные - интервал 61 мс, fps 16, загрузка CPU 69%

тест N4:
входные данные - 100 объектов, интервал 60 мс
выходные данные - интервал 61 мс, fps 16, загрузка CPU 84%

тест N5:
входные данные - 200 объектов, интервал 60 мс
выходные данные - интервал 61 мс, fps 16, загрузка CPU 87%

тест N6:
входные данные - 500 объектов, интервал 60 мс
выходные данные - интервал 72 мс, fps 14, загрузка CPU 99-100%


Цитата:
------------------
System Information
------------------
Time of this report: 10/17/2010, 15:49:30
Machine name: HOME-41J91WM10K
Operating System: Windows XP Professional (5.1, Build 2600) (2600.xpclient.010817-1148)
Language: Russian (Regional Setting: Russian)
System Manufacturer: INTELR
System Model: AWRDACPI
BIOS: Award Modular BIOS v6.00PG
Processor: Intel(R) Celeron(TM) CPU 1300MHz, ~1.2GHz
Memory: 256MB RAM
Page File: 114MB used, 520MB available
Windows Dir: C:\WINDOWS
---------------
Display Devices
---------------
Card name: NVIDIA GeForce FX 5200
Manufacturer: NVIDIA
Chip type: GeForce FX 5200
DAC type: Integrated RAMDAC
Display Memory: 128.0 MB
Current Mode: 1024 x 768 (32 bit) (60Hz)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
wi-fi и скорость stenl1 Компьютерное железо 19 01.06.2010 17:48
Скорость рисования графиков Master07 Общие вопросы C/C++ 3 16.07.2009 21:45
Скорость bakanis Работа с сетью в Delphi 6 05.04.2009 12:39
Скорость скачивания Терминатор Свободное общение 3 30.03.2009 19:03
Скорость проигрывания Bigtyoma Мультимедиа в Delphi 0 30.09.2008 15:57