Size: a a a

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

2021 January 01

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: WebGL то понятно что безопасный. Тут вопрос про обычный gl/gles
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Ssbo не поддерживаются?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Если тру-безопасность не цель, как может АПИ быть не unsafe?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: там где совсем никак без unsafe - оно unsafe
но в большинстве случаев удалось обложится асертами и остаться safe
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Как вы гарантируете, что glVertexAttribPointer, к примеру, совместим с тем, что ожидает шейдер? Используете какую-либо интроспекцию?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: ssbo тоже далек от webgl1
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Что будет, если пользователь подсунул integer текстуру там, где шейдер ожидает floating-point?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: > Как вы гарантируете, что glVertexAttribPointer, к примеру, совместим с тем, что ожидает шейдер? Используете какую-либо интроспекцию?

а там разве UB при ошибке?
источник

ВМ

Виталий Медоваров... in Rust GameDev — русскоговорящее сообщество
Кварк в очередной раз решил пофайтиться с чужими решениями? 🙂
Почему столько вопросов про сейфность? Мне казалось что квады не заявляются как сейфные либы
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: насколько я помню для glVertexAttribPointer я проверяю размеры структуры/буферов, а если размеры те, а лайаут не тот - ну, не повезло, gl ничего не нарисует/кинет ошибку
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@theoraclebot:matrix.org> <code>Madwareus</code><br>Кварк в очередной раз решил пофайтиться с чужими решениями? 🙂
> Почему столько вопросов про сейфность? Мне казалось что квады не заявляются как сейфные либы

В смысле, не заявляются? Там safe API или unsafe?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Мы просто в свое время прошли через эту боль, и я думаю, чем раньше об этом думать, тем лучше.
В чем проблема с вопросами? Лучше не задавать?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: я хочу что бы растовые гарантии на цпу-память соблюдались
где не получается их соблюсти - апи unsafe
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@ffddr_:matrix.org> насколько я помню для glVertexAttribPointer я проверяю размеры структуры/буферов, а если размеры те, а лайаут не тот - ну, не повезло, gl ничего не нарисует/кинет ошибку

Оно разве по спецификации обязано кинуть ошибку в таком случае?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: Non goals

   Ultimate type safety. Library should be entirely safe in Rust's definition of safe - no UB or memory unsafety. But correct GPU
state is not type guaranteed. Feel free to provide safety abstraction in the user code then!
(из ридми)

я думаю(надеюсь) что у пользователей не создается иллюзий что у миниквада много гпу-безопасности
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@ffddr_:matrix.org> я хочу что бы растовые гарантии на цпу-память соблюдались
> где не получается их соблюсти - апи unsafe

В граффике в целом любая gpu память может оказаться на цпу. То есть любое неопределённое поведение на gpu - это unsafe в расте.
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: > Оно разве по спецификации обязано кинуть ошибку в таком случае?

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

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: И я не говорю о type safety. Мне кажется ultimate type safety - только сбивает с толку.
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: > <@ffddr_:matrix.org> Non goals
>
>     Ultimate type safety. Library should be entirely safe in Rust's definition of safe - no UB or memory unsafety. But correct GPU
> state is not type guaranteed. Feel free to provide safety abstraction in the user code then!
> (из ридми)
>
> я думаю(надеюсь) что у пользователей не создается иллюзий что у миниквада много гпу-безопасности

Gpu-безопасность неотъемлема от cpu-безопасности. Если только вы не виртуализируетет GPU.
источник

o

operator in Rust GameDev — русскоговорящее сообщество
ffddr_: то есть - особенность реализации драйверов тут важнее чем обязательства(или их остутствие) спеки на мемори сейфти от неправильных вызовов
источник