Example #1
0
        private DescriptorSetCollection CreateBufferImage(CommandBufferScoped cbs, ref HandleSet key, int setIndex, DescriptorType type)
        {
            var dsc = _gd.DescriptorSetManager.AllocateDescriptorSet(_gd.Api, _descriptorSetLayouts[setIndex]).Get(cbs);

            Span <BufferView> texelBufferView = stackalloc BufferView[key.Count];

            for (int i = 0; i < key.Count; i++)
            {
                texelBufferView[i] = new BufferView(key.Handles[i]);
            }

            dsc.UpdateBufferImages(0, 0, texelBufferView, type);

            return(dsc);
        }
Example #2
0
        private DescriptorSetCollection CreateImage(CommandBufferScoped cbs, ref HandleSet key)
        {
            var dsc = _gd.DescriptorSetManager.AllocateDescriptorSet(_gd.Api, _descriptorSetLayouts[PipelineBase.ImageSetIndex]).Get(cbs);

            Span <DescriptorImageInfo> imageInfos = stackalloc DescriptorImageInfo[key.Count];

            for (int i = 0; i < key.Count; i++)
            {
                imageInfos[i] = new DescriptorImageInfo()
                {
                    ImageLayout = ImageLayout.General,
                    ImageView   = new ImageView(key.Handles[i])
                };
            }

            dsc.UpdateImages(0, 0, imageInfos, DescriptorType.StorageImage);

            return(dsc);
        }
Example #3
0
 private DescriptorSetCollection CreateBufferImage(CommandBufferScoped cbs, ref HandleSet key)
 {
     return(CreateBufferImage(cbs, ref key, PipelineBase.BufferImageSetIndex, DescriptorType.StorageTexelBuffer));
 }
Example #4
0
 public DescriptorSetCollection GetBufferImage(CommandBufferScoped cbs, ref HandleSet key)
 {
     return(GetOrCreate(cbs, ref key, _bICache, CreateBufferImage));
 }