Есть ли библиотеки для загрузки и обработки / разборки байт-кода шейдера Direct3D? - PullRequest
0 голосов
/ 01 октября 2009

Существуют ли библиотеки для загрузки и обработки / дизассемблирования файлов байт-кода шейдера Direct3D (10,11), сгенерированных fxc?

Я знаю, что многие разработчики (и поставщики оборудования) имеют внутренние инструменты для загрузки и обработки форматов байт-кода шейдера D3D, но, поскольку формат байт-кода шейдера является частным и только двоичным, начиная с D3D10, мне интересно, есть ли какие-либо публичные ресурсы для работы с ним.

Ответы [ 2 ]

1 голос
/ 03 октября 2009

Похоже, что вы хотите функцию HRESULT D3DDisassemble() из DirectX SDK: http://msdn.microsoft.com/en-us/library/ee416478(VS.85).aspx.

0 голосов
/ 29 декабря 2013

Если вы не хотите или не можете использовать функцию Direct3D D3DDisassemble, то есть несколько доступных библиотек с открытым исходным кодом:

  • SlimShader - библиотека с открытым исходным кодом .NET, способная анализировать байт-код шейдера Direct3D 10/11. (Отказ от ответственности: я являюсь автором SlimShader.) Существует сопутствующий проект SlimShader.VirtualMachine, который может полностью выполнить демонтированный шейдер на процессоре.
  • fxdis - дизассемблер байт-кода C ++ Direct3D.
  • HLSLCrossCompiler - это библиотека C ++, которая может анализировать байт-код шейдера Direct3D и преобразовывать его в GLSL.
...