Visit Gigasoft's Web Site
 ProEssentials v10 Help

CircularBuffers

Scope

Pesgo, Pe3do

Type

Boolean/Int32

Default

FALSE

.NET

PeData.CircularBuffers

Ocx|Vcl

CircularBuffers

DLL

PEP_bCIRCULARBUFFERS

 

Purpose

Set to True to enable CircularBuffers within data property arrays such as YData, XData, ZData. 

 

CircularBuffers are used with ProEssentials'  AppendYData and similar features used in partial-data updating real-time use-cases. 

 

CircularBuffers is a feature within the property array memory storage logic.  Instead of having to physically shift data within memory (CircularBuffers = false), CircularBuffers=true enables a pointer to keep track of the newest data position within memory.  Traditional non-jagged data as well as jagged data is supported.  CircularBuffers are most beneficial for RenderEngine = Direct3D combined with ComputeShaders = true.  CircularBuffers improve data shifting performance, but harm incrementally accessing data.  ComputeShader logic works with blocks of memory and avoids incrementally handling data, thus the combination of CircularBuffers and ComputeShaders is where the true value of CircularBuffers shines.   

 

Setting

Description

TRUE

Enable Circular Buffers, append logic does not shift data

FALSE

Disable Circular Buffers, append logic shifts data 

 

Comments

One can enable for non-RenderEngine = Direct3D charts, however, the performance gain in shifting is offset by performance loss in incrementally accessing data while constructing chart cpu side. 

 

Legacy example 410 and new v10 examples 145, 148 and 413 implement CircularBuffers providing your best information for studying this use-case. 

 

PeData.CircularBuffers members of Pesgo.PeData, Pe3do.PeData