Size: a a a

pro.graphon (and gamedev)

2020 June 26

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Timur Gagiev
(x >> 8) | (y & 0xFF00)

компилятор разворачивает в
shr     ecx, 8
and     edx, 65280
lea     eax, [ecx + edx]

хотя мог бы
mov al, ch
mov ah, dh
Ты уверен что это быстрее?
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Я чет нет, в первом случае первые две инструкции параллелятся а третья - lea
источник

I

Ioann_V in pro.graphon (and gamedev)
Timur Gagiev
(x >> 8) | (y & 0xFF00)

компилятор разворачивает в
shr     ecx, 8
and     edx, 65280
lea     eax, [ecx + edx]

хотя мог бы
mov al, ch
mov ah, dh
если что, количество команд - не показатель. Смотри на то, как пайплайн загружен у процессора. Разные команды, выполняются разными Частями конвейера. Mov и load / stroke operations выполняются одной, and shl - другой и да, and - самая быстрая и пропускная команда в x86/64
источник

I

Ioann_V in pro.graphon (and gamedev)
Aidar Fattakhov
Я чет нет, в первом случае первые две инструкции параллелятся а третья - lea
Да они и так могут распараллелится, используя register renaming, но это если мы про x86, а если Тимур с ГеймБоем возится, то я не знаю как там.
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Anatoly Tomilov
я был в маске
а я слил лицо
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
я видел его в профиле
источник

d

disba1ancer in pro.graphon (and gamedev)
@mrshoor а как бороться с блокировкой цикла сообщений когда нажал что-нибудь в заголовке? (если зажать кнопку мыши на заголовке и не двигать, то всё заморозится, даже таймеры не будут приходить)
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
disba1ancer
@mrshoor а как бороться с блокировкой цикла сообщений когда нажал что-нибудь в заголовке? (если зажать кнопку мыши на заголовке и не двигать, то всё заморозится, даже таймеры не будут приходить)
таймеры будут приходить
источник

d

disba1ancer in pro.graphon (and gamedev)
Alexander Busarov
таймеры будут приходить
в случае с заголовком за который перетаскиваем не блочит, но если нажать на кнопку максимизации (или минимизации и не отпускать) ничего не работает, такое чувство будто виндовый цикл выфильтровывает всё кроме мышиного ввода
источник

d

disba1ancer in pro.graphon (and gamedev)
хотя, возможно, проблема в том что у меня таймер не привязан к окну...
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
disba1ancer
в случае с заголовком за который перетаскиваем не блочит, но если нажать на кнопку максимизации (или минимизации и не отпускать) ничего не работает, такое чувство будто виндовый цикл выфильтровывает всё кроме мышиного ввода
да, если зажимать кнопки окна - то тут уже никак не победить
источник

d

disba1ancer in pro.graphon (and gamedev)
Alexander Busarov
да, если зажимать кнопки окна - то тут уже никак не победить
в твоих проектах оно также ведёт себя?
источник

d

disba1ancer in pro.graphon (and gamedev)
вот блин наворотили...
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
disba1ancer
в твоих проектах оно также ведёт себя?
да
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
хотя можно попробовать слать InvalidateRect из потока
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
щас кстати чекну
источник

d

disba1ancer in pro.graphon (and gamedev)
боюсь не выйдет, если там фильтр
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
disba1ancer
боюсь не выйдет, если там фильтр
там может быть фильтр на часть сообщений
источник

d

disba1ancer in pro.graphon (and gamedev)
Alexander Busarov
там может быть фильтр на часть сообщений
ну походу оно только мышь фильтрует, а остальное лесом
источник