/// <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)
 {
     SampledImage  = Spv.IdRef.Parse(reader, end - reader.Position);
     Coordinate    = Spv.IdRef.Parse(reader, end - reader.Position);
     D_ref         = Spv.IdRef.Parse(reader, end - reader.Position);
     ImageOperands = Spv.ImageOperands.Parse(reader, end - reader.Position);
 }
Пример #2
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)
 {
     Image         = Spv.IdRef.Parse(reader, end - reader.Position);
     Coordinate    = Spv.IdRef.Parse(reader, end - reader.Position);
     Texel         = Spv.IdRef.Parse(reader, end - reader.Position);
     ImageOperands = Spv.ImageOperands.ParseOptional(reader, end - reader.Position);
 }
Пример #3
0
 public ImageFetch(SpirvTypeBase resultType, Node image, Node coordinate, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.ResultType    = resultType;
     this.Image         = image;
     this.Coordinate    = coordinate;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }
Пример #4
0
 private void SetUp(OpImageWrite op, SpirvInstructionTreeBuilder treeBuilder)
 {
     Image         = treeBuilder.GetNode(op.Image);
     Coordinate    = treeBuilder.GetNode(op.Coordinate);
     Texel         = treeBuilder.GetNode(op.Texel);
     ImageOperands = op.ImageOperands;
     SetUpDecorations(op, treeBuilder);
 }
Пример #5
0
 public ImageWrite(Node image, Node coordinate, Node texel, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.Image         = image;
     this.Coordinate    = coordinate;
     this.Texel         = texel;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }
Пример #6
0
        public override void Parse(WordReader reader, uint wordCount)
        {
            var end = reader.Position + wordCount - 1;

            Image         = Spv.IdRef.Parse(reader, end - reader.Position);
            Coordinate    = Spv.IdRef.Parse(reader, end - reader.Position);
            Texel         = Spv.IdRef.Parse(reader, end - reader.Position);
            ImageOperands = Spv.ImageOperands.ParseOptional(reader, end - reader.Position);
        }
        public override void Parse(WordReader reader, uint wordCount)
        {
            var end = reader.Position + wordCount - 1;

            IdResultType = Spv.IdResultType.Parse(reader, end - reader.Position);
            IdResult     = Spv.IdResult.Parse(reader, end - reader.Position);
            reader.Instructions.Add(this);
            SampledImage  = Spv.IdRef.Parse(reader, end - reader.Position);
            Coordinate    = Spv.IdRef.Parse(reader, end - reader.Position);
            ImageOperands = Spv.ImageOperands.Parse(reader, end - reader.Position);
        }
 public ImageSampleProjImplicitLod(SpirvTypeBase resultType, Node sampledImage, Node coordinate, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.ResultType    = resultType;
     this.SampledImage  = sampledImage;
     this.Coordinate    = coordinate;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }
 public ImageSampleFootprintNV(SpirvTypeBase resultType, Node sampledImage, Node coordinate, Node granularity, Node coarse, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.ResultType    = resultType;
     this.SampledImage  = sampledImage;
     this.Coordinate    = coordinate;
     this.Granularity   = granularity;
     this.Coarse        = coarse;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }
Пример #10
0
 public ImageGather(SpirvTypeBase resultType, Node sampledImage, Node coordinate, Node component, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.ResultType    = resultType;
     this.SampledImage  = sampledImage;
     this.Coordinate    = coordinate;
     this.Component     = component;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }
Пример #11
0
 public static ImageWrite ThenImageWrite(this INodeWithNext node, Node image, Node coordinate, Node texel, Spv.ImageOperands imageOperands, string debugName = null)
 {
     return(node.Then(new ImageWrite(image, coordinate, texel, imageOperands, debugName)));
 }
Пример #12
0
 public ImageDrefGather(SpirvTypeBase resultType, Node sampledImage, Node coordinate, Node d_ref, Spv.ImageOperands imageOperands, string debugName = null)
 {
     this.ResultType    = resultType;
     this.SampledImage  = sampledImage;
     this.Coordinate    = coordinate;
     this.D_ref         = d_ref;
     this.ImageOperands = imageOperands;
     DebugName          = debugName;
 }