Как получить «round_z» в коде asm с помощью HLSL?

#assembly #shader #hlsl

#сборка #шейдер #hlsl

Вопрос:

Когда я читаю код asm, я не знаю, как получить инструкцию «round_» чуть ниже. Какую функцию я должен использовать в HLSL для ее получения? Или это было заменено обновлением версий? Ниже приведен код asm: round_z r15.x

Ответ №1:

Похоже, что его нет, вы можете легко его реализовать:

 dst = sign(src) * floor(abs(src))
  

Ответ №2:

Функция, которую вы ищете, является modf . В следующем фрагменте, i является результатом round_z :

 float i;
modf(input, i);