/// <summary> /// Write instruction operands into bytecode stream. /// </summary> /// <param name="writer">Bytecode writer.</param> public override void WriteOperands(WordWriter writer) { Accel.Write(writer); RayFlags.Write(writer); CullMask.Write(writer); SBTOffset.Write(writer); SBTStride.Write(writer); MissIndex.Write(writer); RayOrigin.Write(writer); RayTmin.Write(writer); RayDirection.Write(writer); RayTmax.Write(writer); PayloadId.Write(writer); }
/// <summary> /// Calculate number of words to fit complete instruction bytecode. /// </summary> /// <returns>Number of words in instruction bytecode.</returns> public override uint GetWordCount() { uint wordCount = 0; wordCount += Accel.GetWordCount(); wordCount += RayFlags.GetWordCount(); wordCount += CullMask.GetWordCount(); wordCount += SBTOffset.GetWordCount(); wordCount += SBTStride.GetWordCount(); wordCount += MissIndex.GetWordCount(); wordCount += RayOrigin.GetWordCount(); wordCount += RayTmin.GetWordCount(); wordCount += RayDirection.GetWordCount(); wordCount += RayTmax.GetWordCount(); wordCount += PayloadId.GetWordCount(); return(wordCount); }