aruslan: (Default)
[personal profile] aruslan
Иногда создается ощущение, что проблемы диагностики бинарной несовместимости не были решены обычным дайджестом лет сорок назад.
Т.е. не на Microsoft 360, а на вполне себе IBM 360.

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

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

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

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

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

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

Date: Dec. 20th, 2007 18:32 (UTC)
From: [identity profile] shodan-ru.livejournal.com
А чего не в блог? :)
Хоть размочил бы!!!

Date: Dec. 20th, 2007 21:49 (UTC)
From: [identity profile] aruslan.livejournal.com
Совсем тривиальщина без морали? Не хочу.

Date: Dec. 21st, 2007 00:32 (UTC)
From: [identity profile] shodan-ru.livejournal.com
Ну эта.
Блог он типа не для мега-гениев с мозгом Ленина во-1х.
Плюс на тривиальщине регулярно накалываются и мега-гении во-2х.
Типа мы там тоже не ОТО обсуждаем как ты заметил ;)

Date: Dec. 21st, 2007 07:56 (UTC)
From: [identity profile] doc-allegator.livejournal.com
И то верно. мораль должна место быть и иметь :)

Profile

aruslan: (Default)
aruslan

January 2014

S M T W T F S
   1234
56789 1011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 5th, 2026 20:30
Powered by Dreamwidth Studios