Вело-изобретателиФорумSR2D - софтовый 2D движок

SR2D, тестируем x64 версию. (7 стр)

Страницы: 16 7 8 923 Следующая »
#90
19:05, 2 фев 2021

Вон тут утверждают, что в MSVC можно поставить Clang в качестве компилятора и он поддерживает интеловский ассемблер.
https://stackoverflow.com/a/62104321
Обычно в Clang/gcc работают с ассемблером в AT&T синтаксисе (который с % и всё задом наперёд), но у MS какой-то гибрид Clang-а с родным тулчейном, так что может и правда поддерживает.

Хотя лично мне, например, ковыряться с ассемблером совсем уже не хочется. Даже с интринсиками лень.
Как-то ради развлечения делал эффект DPBM (который ты выкладывал на 1-й странице) на векторных расширениях Clang/gcc, выглядит это так:
https://gcc.godbolt.org/z/ay3z5G
https://gamedev.ru/files/?id=142808
и получалось достаточно быстро, правда я там смухлевал - использовал целочисленное умножение, что даёт более тусклую картинку, без выраженного блика. Но и с плавающей точкой, насколько помню, было не медленнее оригинала.

#91
20:38, 2 фев 2021

invis
> в MSVC можно поставить Clang в качестве компилятора и он поддерживает интеловский ассемблер
Вот это интересно.
Сейчас немного не до того, но после конкурса постараюсь изучить этот вопрос.

#92
18:25, 20 июня 2021

Mikle привет. Ты так и не смотрел про что тебе invis писал?

#93
19:04, 20 июня 2021

SilentPrayerCG
Я посмотрел, оценил количество информации, которую мне придётся переварить, и не стал за это браться.

#94
20:15, 20 июня 2021

Mikle
Понятненько, ясненько.
А то я уж было подумал, что конкурс 5 месяцев идёт...
Я тут недавно проверял, собрал код с SR2D (ну базовый, объявил всю эту ерунду и сделал draw картинки) на .NET 5 вместо обычного Net Framework, и на удивление работает. Но наверное так-же и работает (ну в плане скорости), раз вообще работает, вряд-ли что-то там поменялось, что что-то стало быстрее.

#95
18:01, 28 сен 2021

Mikle привет. А не запилишь быстрый nearest neighbor для скейла, если это не суперсложно?
Я чегото, честно говоря, даже с медленным в прошлый раз не разобрался.

#96
19:26, 28 сен 2021

SilentPrayerCG
Может к выходным освобожусь, гляну. Просто сейчас у меня даже VC++ с 64-битным компилятором не установлена.
SilentPrayerCG
> даже с медленным в прошлый раз не разобрался
Напомни, где я давал этот медленный вариант. Может пока помогу с ним разобраться, это быстрее будет.

#97
20:01, 28 сен 2021

Mikle
https://gamedev.ru/community/bycircle/forum/?id=246671&page=4&m=5084707#m58

  Public Sub HardResizeFromSprite(ByVal Src As Sprite, ByVal W As Integer, ByVal H As Integer)
    Dim WW, HH As Integer

    WW = Src.Width
    HH = Src.Height
    Init(W, H)
    For x As Integer = 0 To W - 1
      For y As Integer = 0 To H - 1
        SetPixel(x, y, Src.GetPixel(x * WW \ W, y * HH \ H))
      Next y
    Next x
  End Sub

я вообще хотел попробовать кое что, но для этого конкретно неарест нужен, и я думаю такой  перебор пикселей будет слишком медленно для того что я задумал.

#98
19:10, 2 окт 2021

Набросал тут движение спрайта кнопками по экрану
Сравнил производительность
тупо считывание кнопок и вывод спрайта в таймере с интервалом 1
и как DPBM (do while c doevent) разница конечно огромная, я даже удивился
в таймере гдето 64 фпса выходит (если я правильно посчитал) в цикле более 800

я никогда ничего такого не делал (точнее делал 1 раз, но там было квадратами перемещение и в таймере в принципе все ок было), даже не знаю, если реалтайм что-то делать это сложно сделать фиксированный фпс? (потому что даже с таймером и фпсом 64, уже виден теаринг, потому что паинттодевайс успевает выводить видимо пока предыдущий паинттодевайс еще не вывел до конца)
или это можно просто thread.sleep сделать и паузу высчитать как-то? Хотя опять-же thread.sleep он в миллисекундах, как таймер.

#99
19:33, 2 окт 2021

SilentPrayerCG
> паинттодевайс успевает выводить видимо пока предыдущий паинттодевайс еще не вывел до конца)
Нет, тут другое. Таймер не синхронизирован с развёрткой монитора, даже если использовать высокоточный QueryPerformanceCounter и выставить ровно 60 fps, изображение будет "плыть". Кроме того, возможно срабатывание развёртки посреди работы PaintToDevice, получится разрыв изображения.
Я когда-то делал демку на VB6 с использованием QueryPerformanceCounter, позволяющую регулировать FPS: [file=92711]
Там стрелки вправо-влево увеличивают-уменьшают FPS с шагом 1. В заголовке тот FPS который реально успевает получиться. Попробуй сделать 60 (или сколько у тебя на мониторе), посмотри результат.

#100
20:21, 2 окт 2021

Mikle
ок. гляну, если разбирусь)

но вообще ты прав, одно дело укладываться в 60 кадров, другое дело вертикальная синхронизация.
хотя вообще в винде не теаринга вроде нет, и в играх запущенных в окнах тоже, может можно и просто в 60 кадров уложиться

ты не смотрел скейл кстати?
я вроде понял как тот работает, правда немного неудобно он работает
вообще я не уверен что какой либо скейл подойдет для того чтобы в реалтайме скейлить и выводить
с другой стороны он мне вроде не для реалтайма был нужен

ps
запустил ехешник, выставил 60 фпс. вроде нормально, 59 уже рывки периодические
надо глянуть исходник, правда это вб 6, не уверен, что смогу на современный это переделать, хотя хз

pps

что процедура tick делает в этом исходнике? она имеет отношение к таймеру этому? который перфоманс каунтер

я вроде сам каунтер типа "портировал", если можно это так назвать, но что-то у меня проблема отделить те моменты где двигаются объекты от таймера

#101
23:13, 2 окт 2021

Засинхронизировать с разверткой можно через D3DKMTWaitForVerticalBlankEvent.

#102
23:18, 2 окт 2021

the trick
Для меня это космический корабль, может пример есть?
в майковских доках даже ничего толком не написано кроме того что она возвращает
https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/d3d… calblankevent

в какой она dll-ке там, итд, как её декларить/использовать, в цикле постоянно её вызывать и если происходит STATUS_SUCCESS то делать отрисовку?
в принципе если так то звучит довольно просто

ps
в Gdi32.dll видимо эта функция, а что такое уннеймед парам?

#103
17:18, 3 окт 2021

SilentPrayerCG
> может пример есть?
http://bbs.vbstreets.ru/viewtopic.php?f=1&t=56666#p6794308
https://www.vbforums.com/showthread.php?885359-Game-in-vb6&p=5467… 1#post5467901

#104
20:50, 3 окт 2021

the trick
спасибо посмотрю может разберусь

Страницы: 16 7 8 923 Следующая »
Вело-изобретателиФорумSR2D - софтовый 2D движок