Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 September 28

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Но да, а как мне поможет битмапа.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
То есть, мне ведь придётся выбрать маленький размер блока.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
И затем искать непрерывные последовательности бит нужной длины.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А я могу это без цикла с шифтом делать?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Все очень просто
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
У тебя битмапа на каждый размер блока. Но размеры только power of two, так что разных размеров не очень много
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
При аллокации для T, на самом деле аллоцируешь блок size_of::<T>().next_power_of_two()
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Ну и под каждый размер рядом с битмапой массив чанков
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Все блоки из одного массива чанков одного размера, так что искать ничего не надо
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
бит - свободный чанк соответсвующего размера
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Аааа.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Ай копи.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Такой алгоритм используется в wgpu аллокаторе :)
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Только он там рекурсивный еще, и вот с рекурсией было сложно. Тебе же рекурсия не нужна
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А рекурсия для чего?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Чанк под размер N создается из блока размером N * 64, который сам в большем чанке лежить
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А, ай копи
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Так вот, пока они были жестко по 64 блока в чанке, то очень быстро память кончалась
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Потому что на блоки по 1кб выделялась целая иерархия блоков. А на блоки 2кб отдельная иерархия
источник