reckfellENGINE

RDShaderSpirV

Байткод SPIR-V и диагностика по этапам шейдера.

На этой странице
class RDShaderSpirVReckfellSharpНаследует Resource

RDShaderSpirV содержит байты и ошибки этапов. Наличие объекта не доказывает успех компиляции: проверяйте ошибку нужного этапа и наличие байткода. Затем создайте шейдер на конкретном RenderingDevice.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

RDShaderSpirVКонструктор
# RDShaderSpirV
C#
public RDShaderSpirV();

Создаёт Resource с пустыми bytecode и строкой ошибки каждой стадии. Пустая ошибка здесь означает лишь отсутствие сообщения: никакая стадия ещё не скомпилирована. Объект не является GPU RID.

Свойства20

BytecodeAnyHitСвойство
# BytecodeAnyHit
C#
public byte[] BytecodeAnyHit { get; set; }

Байты SPIR-V стадии any-hit: обработка кандидата пересечения, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorAnyHit и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeClosestHitСвойство
# BytecodeClosestHit
C#
public byte[] BytecodeClosestHit { get; set; }

Байты SPIR-V стадии closest-hit: обработка ближайшего пересечения, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorClosestHit и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeComputeСвойство
# BytecodeCompute
C#
public byte[] BytecodeCompute { get; set; }

Байты SPIR-V compute-этапа, а не текст GLSL и не готовый RID pipeline. Проверяйте CompileErrorCompute перед созданием GPU-шейдера.

BytecodeFragmentСвойство
# BytecodeFragment
C#
public byte[] BytecodeFragment { get; set; }

Байты SPIR-V стадии fragment: выход фрагмента, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorFragment и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeIntersectionСвойство
# BytecodeIntersection
C#
public byte[] BytecodeIntersection { get; set; }

Байты SPIR-V стадии intersection: пользовательское пересечение процедурной геометрии, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorIntersection и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeMissСвойство
# BytecodeMiss
C#
public byte[] BytecodeMiss { get; set; }

Байты SPIR-V стадии miss: обработка луча без попадания, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorMiss и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeRaygenСвойство
# BytecodeRaygen
C#
public byte[] BytecodeRaygen { get; set; }

Байты SPIR-V стадии ray generation: запуск лучей, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorRaygen и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeTesselationControlСвойство
# BytecodeTesselationControl
C#
public byte[] BytecodeTesselationControl { get; set; }

Байты SPIR-V стадии tessellation control: управление patch, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorTesselationControl и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeTesselationEvaluationСвойство
# BytecodeTesselationEvaluation
C#
public byte[] BytecodeTesselationEvaluation { get; set; }

Байты SPIR-V стадии tessellation evaluation: вычисление tessellated patch, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorTesselationEvaluation и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

BytecodeVertexСвойство
# BytecodeVertex
C#
public byte[] BytecodeVertex { get; set; }

Байты SPIR-V стадии vertex: обработка вершин, изначально пустые. Getter даёт копию byte[]; setter сохраняет данные без проверки, не очищает CompileErrorVertex и не вызывает Changed. Для tessellation/ray наличие поля не подтверждает поддержку GPU.

CompileErrorAnyHitСвойство
# CompileErrorAnyHit
C#
public string CompileErrorAnyHit { get; set; }

Сохранённая диагностика стадии any-hit: обработка кандидата пересечения, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeAnyHit. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorClosestHitСвойство
# CompileErrorClosestHit
C#
public string CompileErrorClosestHit { get; set; }

Сохранённая диагностика стадии closest-hit: обработка ближайшего пересечения, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeClosestHit. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorComputeСвойство
# CompileErrorCompute
C#
public string CompileErrorCompute { get; set; }

Диагностика компиляции compute-этапа. Проверяйте её до ShaderCreateFromSpirV; непустая ошибка означает, что создавать шейдер из этого результата нельзя. Пустая строка не заменяет проверку наличия нужного байткода.

CompileErrorFragmentСвойство
# CompileErrorFragment
C#
public string CompileErrorFragment { get; set; }

Сохранённая диагностика стадии fragment: выход фрагмента, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeFragment. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorIntersectionСвойство
# CompileErrorIntersection
C#
public string CompileErrorIntersection { get; set; }

Сохранённая диагностика стадии intersection: пользовательское пересечение процедурной геометрии, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeIntersection. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorMissСвойство
# CompileErrorMiss
C#
public string CompileErrorMiss { get; set; }

Сохранённая диагностика стадии miss: обработка луча без попадания, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeMiss. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorRaygenСвойство
# CompileErrorRaygen
C#
public string CompileErrorRaygen { get; set; }

Сохранённая диагностика стадии ray generation: запуск лучей, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeRaygen. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorTesselationControlСвойство
# CompileErrorTesselationControl
C#
public string CompileErrorTesselationControl { get; set; }

Сохранённая диагностика стадии tessellation control: управление patch, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeTesselationControl. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorTesselationEvaluationСвойство
# CompileErrorTesselationEvaluation
C#
public string CompileErrorTesselationEvaluation { get; set; }

Сохранённая диагностика стадии tessellation evaluation: вычисление tessellated patch, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeTesselationEvaluation. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

CompileErrorVertexСвойство
# CompileErrorVertex
C#
public string CompileErrorVertex { get; set; }

Сохранённая диагностика стадии vertex: обработка вершин, изначально пустая. Пустота не доказывает компиляцию: проверьте также BytecodeVertex. Ручная запись меняет только сообщение и не вызывает Changed; она не исправляет шейдер.

Методы5

GetStageBytecodebyte[]
# GetStageBytecode
C#
public byte[] GetStageBytecode(RenderingDevice.ShaderStage stage);

Возвращает byte[] выбранной стадии, изначально пустой. Это копия данных CPU: изменение возвращённого массива не редактирует ресурс и не является GPU readback. Наличие байтов само по себе не подтверждает корректность SPIR-V.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

Возвращает byte[]

Копия byte[] выбранной стадии; может быть пустой или содержать вручную записанные невалидные данные.

GetStageCompileErrorstring
# GetStageCompileError
C#
public string GetStageCompileError(RenderingDevice.ShaderStage stage);

Возвращает сохранённую строку диагностики выбранной стадии, изначально пустую. Не запускает компилятор. Проверяйте также bytecode: у отсутствующей или новой стадии строка тоже пустая.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

Возвращает string

Сохранённое сообщение; пустая строка сама по себе не означает успешную компиляцию.

SetStageBytecode2 перегрузки
# SetStageBytecode · 1/2
C#
public void SetStageBytecode(RenderingDevice.ShaderStage stage, byte[] bytecode);

Сохраняет копию байтов одной стадии; доступны byte[] и ReadOnlySpan<byte>. Не валидирует SPIR-V, не компилирует текст, не очищает ошибку стадии и не пересоздаёт GPU shader. Setter не вызывает Resource.Changed. Передавайте индекс стадии, а не маску …Bit.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
bytecodebyte[]—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

bytecode

Байты или span для копирования в слот стадии. Setter не подтверждает корректность SPIR-V и не очищает stage error.

# SetStageBytecode · 2/2
C#
public void SetStageBytecode(RenderingDevice.ShaderStage stage, ReadOnlySpan<byte> bytecode);

Сохраняет копию байтов одной стадии; доступны byte[] и ReadOnlySpan<byte>. Не валидирует SPIR-V, не компилирует текст, не очищает ошибку стадии и не пересоздаёт GPU shader. Setter не вызывает Resource.Changed. Передавайте индекс стадии, а не маску …Bit.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
bytecodeReadOnlySpan<byte>—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

bytecode

Байты или span для копирования в слот стадии. Setter не подтверждает корректность SPIR-V и не очищает stage error.

SetStageCompileErrorvoid
# SetStageCompileError
C#
public void SetStageCompileError(RenderingDevice.ShaderStage stage, string compileError);

Сохраняет сообщение стадии независимо от её байтов. Пустая строка очищает только диагностику: не компилирует, не восстанавливает bytecode и не делает неверный SPIR-V корректным. Setter не вызывает Resource.Changed.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
compileErrorstring—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

compileError

Диагностическая строка; пустая очищает только сообщение, оставляя bytecode без изменений.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.