public override void Parse(WordReader reader, uint wordCount) { var end = reader.Position + wordCount - 1; EntryPoint = Spv.IdRef.Parse(reader, end - reader.Position); Mode = Spv.ExecutionMode.Parse(reader, end - reader.Position); }
private void SetUp(OpExecutionMode op, SpirvInstructionTreeBuilder treeBuilder) { EntryPoint = treeBuilder.GetNode(op.EntryPoint); Mode = op.Mode; SetUpDecorations(op, treeBuilder); }
public ExecutionMode(Node entryPoint, Spv.ExecutionMode mode, string debugName = null) { this.EntryPoint = entryPoint; this.Mode = mode; DebugName = debugName; }
public static ExecutionModeId ThenExecutionModeId(this INodeWithNext node, Node entryPoint, Spv.ExecutionMode mode, string debugName = null) { return(node.Then(new ExecutionModeId(entryPoint, mode, debugName))); }
public static void AddExecutionMode(FrontEndTranslator translator, ShaderEntryPointInfo entryPointInfo, ShaderFunction entryPointFn, Spv.ExecutionMode executionMode) { var library = translator.mCurrentLibrary; var executionModeLiteral = translator.CreateConstantLiteral(library.FindType(new TypeKey(typeof(int))), ((int)executionMode).ToString()); var executionModeOp = translator.CreateOp(OpInstructionType.OpExecutionMode, null, new List <IShaderIR> { entryPointFn, executionModeLiteral }); entryPointInfo.mExecutionModesBlock.mOps.Add(executionModeOp); }
/// <summary> /// Read instruction operands from the bytecode source. /// </summary> /// <param name="reader">Bytecode source.</param> /// <param name="end">Index of a next word right after this instruction.</param> public override void ParseOperands(WordReader reader, uint end) { EntryPoint = Spv.IdRef.Parse(reader, end - reader.Position); Mode = Spv.ExecutionMode.Parse(reader, end - reader.Position); }