?

Log in

No account? Create an account
Номер версии - Valse oubliée [entries|archive|friends|userinfo]
aruslan

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
[ delicious | aruslan's delicious ]

Links
[Links:| Tags Profile Friends FG1 PP gamedev XNA FF Entries Comments Memories ]

Номер версии [Dec. 20th, 2007|07:27 pm]
aruslan
[Tags|, ]
[Current Mood |angryangry]

Иногда создается ощущение, что проблемы диагностики бинарной несовместимости не были решены обычным дайджестом лет сорок назад.
Т.е. не на Microsoft 360, а на вполне себе IBM 360.

В самом тупом случае используют просто номер версии. Слишком хрупко ибо человеки.
Или CRC32 всего текста шейдера или там описания класса. Это чересчур строго.

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

Например для классов - это хэш от layoutа и сигнатур виртуальных функций плюс layoutа полей.
Для шейдеров - описание внешних связей (порядок, типы, имена/семантика).

И всё - при построении ассета, который требует конкретного шейдера, - считаем дайджест шейдера и пишем его прямо в ассет (32 бита например или там MD5).
А в рантайме берем дайджест теперь уже реального шейдера (из рантайма) и сравниваем с дайджестом что в ассете.

Очевидно следующий шаг - вообще побороть несовместимость, но это обычно дорого и через это ненужно.
Поэтому все или делают дайджесты или делают абсолютно быстрый и прозрачный бандлинг.

И вместо невероятных глюков и access violation спокойно говорят - "сорри, бинарная несовместимость".
LinkReply

Comments:
From: shodan_ru
2007-12-20 06:32 pm (UTC)
А чего не в блог? :)
Хоть размочил бы!!!
(Reply) (Thread)
[User Picture]From: aruslan
2007-12-20 09:49 pm (UTC)
Совсем тривиальщина без морали? Не хочу.
(Reply) (Parent) (Thread)
From: shodan_ru
2007-12-21 12:32 am (UTC)
Ну эта.
Блог он типа не для мега-гениев с мозгом Ленина во-1х.
Плюс на тривиальщине регулярно накалываются и мега-гении во-2х.
Типа мы там тоже не ОТО обсуждаем как ты заметил ;)
(Reply) (Parent) (Thread)
[User Picture]From: doc_allegator
2007-12-21 07:56 am (UTC)
И то верно. мораль должна место быть и иметь :)
(Reply) (Parent) (Thread)