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);
        }
예제 #2
0
 private void SetUp(OpExecutionMode op, SpirvInstructionTreeBuilder treeBuilder)
 {
     EntryPoint = treeBuilder.GetNode(op.EntryPoint);
     Mode       = op.Mode;
     SetUpDecorations(op, treeBuilder);
 }
예제 #3
0
 public ExecutionMode(Node entryPoint, Spv.ExecutionMode mode, string debugName = null)
 {
     this.EntryPoint = entryPoint;
     this.Mode       = mode;
     DebugName       = debugName;
 }
예제 #4
0
 public static ExecutionModeId ThenExecutionModeId(this INodeWithNext node, Node entryPoint, Spv.ExecutionMode mode, string debugName = null)
 {
     return(node.Then(new ExecutionModeId(entryPoint, mode, debugName)));
 }
예제 #5
0
        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);
        }
예제 #6
0
 /// <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);
 }