Size: a a a

pro.graphon (and gamedev)

2020 June 23

S

Stas in pro.graphon (and gamedev)
Вжух.

В directX в самом начале было, что надо использовать  FXMVECTOR для первых трёх параметров XMVECTOR и CXMVECTOR для всех остальных.

// 32-bit Windows
typedef const XMVECTOR FXMVECTOR;
typedef const XMVECTOR& CXMVECTOR;
// 64-bit Windows
typedef const XMVECTOR& FXMVECTOR;
typedef const XMVECTOR& CXMVECTOR;

Вопросы начались...

В плюсах есть std::string_view. Его лучше передавать по копии, ибо
а) он невладеющий
б) компилятор может соптимизировать до передачи через регистры, так как его размер равен 2-ум машинных словам. А для оптимизации лучше передавать структуры с размером машинных слов от 2 до 4-ёх.

Или же здесь оптимизации ни при чём?

Иными словами - откуда такое правило, что описал в начале?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
disba1ancer
скоро доживём что в ноутах на 15'6 будут 4к матрицы ставить...
У меня такой рабочий ноут был полтора года назад. Dell XPS 15. Зачем-то ещё сенсорный.
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Stas
Вжух.

В directX в самом начале было, что надо использовать  FXMVECTOR для первых трёх параметров XMVECTOR и CXMVECTOR для всех остальных.

// 32-bit Windows
typedef const XMVECTOR FXMVECTOR;
typedef const XMVECTOR& CXMVECTOR;
// 64-bit Windows
typedef const XMVECTOR& FXMVECTOR;
typedef const XMVECTOR& CXMVECTOR;

Вопросы начались...

В плюсах есть std::string_view. Его лучше передавать по копии, ибо
а) он невладеющий
б) компилятор может соптимизировать до передачи через регистры, так как его размер равен 2-ум машинных словам. А для оптимизации лучше передавать структуры с размером машинных слов от 2 до 4-ёх.

Или же здесь оптимизации ни при чём?

Иными словами - откуда такое правило, что описал в начале?
стрингвьюха этож всетаки шаблон
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
а эта штука откудато из дллей протекает в твою программу
источник
2020 June 24

AF

Aidar Fattakhov in pro.graphon (and gamedev)
если это примитив то может не влиять в зависимости от твоего кода
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
но вобще оптимизировать передачу параметров по ссылке в копию - шиза какаято
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Не. Не шиза. Все штуки, которые "указатель", следует передавать по значению. Иначе double indirection получается лишний.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
*view, reference_wrapper, итераторы, функторы (почти всегда)
источник

S

Stas in pro.graphon (and gamedev)
Aidar Fattakhov
а эта штука откудато из дллей протекает в твою программу
Погоди-ка. (я не работал с dll если что). У нас ведь .dll и .h как в обычной либе.
Причём тут твои объяснения про .dll, если оптимизация (как я понимаю) должна проводиться на основе структуры самого типа?
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
Stas
Погоди-ка. (я не работал с dll если что). У нас ведь .dll и .h как в обычной либе.
Причём тут твои объяснения про .dll, если оптимизация (как я понимаю) должна проводиться на основе структуры самого типа?
а д3д где?
источник

AF

Aidar Fattakhov in pro.graphon (and gamedev)
я не знаю примитив это или нет
источник

S

Stas in pro.graphon (and gamedev)
Пойду немного погуглю,  не знаю что именно ответить.
источник

d

disba1ancer in pro.graphon (and gamedev)
Anatoly Tomilov
*view, reference_wrapper, итераторы, функторы (почти всегда)
наверное не функторы, а функшены
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Я имею ввиду класс с оператором "скобки"
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
И данными-членами в общем случае
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Ну или лямбду с капчей
источник

d

disba1ancer in pro.graphon (and gamedev)
Anatoly Tomilov
Я имею ввиду класс с оператором "скобки"
тогда лучше всё-таки по ссылке, ибо такой функтор может быть тяжёлым
источник

d

disba1ancer in pro.graphon (and gamedev)
можно даже через rvalue ref
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
А что это даст?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Только std::for_each возвращает функциональный объект
источник