hayodea
34d76df7d9
Spinscale: create new namespace sscl
2025-12-27 16:21:22 -04:00
hayodea
45959f9d1c
Libspinscale: begin splitting it off
2025-12-26 01:18:39 -04:00
hayodea
33681059b0
Restore logic.h which was unintentionally deleted previously
2025-12-02 14:15:38 -04:00
hayodea
30f599cde3
Rename RangeDescriptor::bodySpot=>stimulusBufferSpot
2025-11-28 14:57:53 -04:00
hayodea
0116523a66
LG1PCloudAmbStncl: Use RangeDescriptor obj instead of StagingBuffer
...
We directly use an instance of RangeDescriptor to avoid incurring
the memory cost of using a StagingBuffer here. It's unnecessary
since these stencils will always be 32bits large.
2025-11-28 03:34:35 -04:00
hayodea
e51d371f58
LG1PclAmbienceStencil: allocate stencils in constructor
2025-11-26 13:00:24 -04:00
hayodea
8eb7eaba3d
Add PcloudAmbienceStencil, LG1PcloudAmbienceStencil
...
These two classes represent our first foray into stencil
construction. One of them standardizes PcloudAmbience stencils
across all stimbuffs, and the other specifies the internal
memory constraints and requirements for a LivoxGen1 device's
stencils.
2025-11-26 12:32:42 -04:00
hayodea
3b8c1dac32
Stencil: use better examples in documentation comment
2025-11-23 23:12:49 -04:00
hayodea
b0df1ef3d0
[Pcloud]StimProducer: Impl addAttachedStimBuffIfNotExists
...
Reduces code duplication, centralizes checking and enforces consistent
behaviour across producers.
Also reordered the writes to the sh_ptr<StimulusBuffer>s such that
the pointers are written last.
2025-11-23 23:11:23 -04:00
hayodea
e689063a8c
StimFrame: Store ringbuff index as member var
...
Now each StimFrame knows its index within its parent SpMcRingbuff
object.
2025-11-23 06:15:54 -04:00
hayodea
9e64c510cc
SpMcRingBuff: Add getNextIndexForProducer/abortProduction
...
These two methods form the core of the SpMcRingbuffer's wrap-around
behaviour.
2025-11-20 03:06:35 -04:00
hayodea
e233dc51d6
OClCollMeshEngn: hide StagingBuffer's firstSlotOffset
2025-11-20 01:48:59 -04:00
hayodea
51d2a70a3f
StimProducer: add destroyAttachedStimulusBuffer virtual method
...
Implemented in base class and in derived class
PcloudStimulusProducer.
2025-11-20 01:25:46 -04:00
hayodea
2c7e090ef1
Move ClBuffer/ComputeDevice methods into libattachmentSupport
2025-11-20 00:53:28 -04:00
hayodea
0cfb0a9c07
StagingBuffer: Large slots should be aligned to alignment
...
Slots whose stride size is larger than the slot alignment value
should have their size rounded up to the alignment size so that
the slots that follow them will also be aligned.
2025-11-20 00:03:50 -04:00
hayodea
5789a31e23
StagingBuffer: add OpenCL buff handles to StimFrames
2025-11-19 23:43:17 -04:00
hayodea
27b43c6686
Add ComputeManager; add SmoHooks for getting ClDevices, buffers
...
We added a new centralized OpenCL Compute manager. This can later
be extended to support CUDA, SyCL, etc. SMO can be configured at
build time to choose which API it will use for compute.
Moreover, the ComputeMgr allows us to register buffers which are
available to all cl_contexts.
2025-11-19 22:34:25 -04:00
hayodea
41b8385cb2
StimBuff: Use a single StagingBuffer for all StimFrames
...
We now allocate all the stimFrames for a StimBuffer using a
single StagingBuffer. This gives us all the benefits we're
looking for (pinning, alignment, etc).
2025-11-19 03:11:20 -04:00
hayodea
3f04d1b387
Stimulus[Buffer|Frame]: initial impl, unoptimized for mem use
2025-11-16 16:09:35 -04:00
hayodea
f919385088
DASpec:genericize synonymous param parsing
2025-11-16 04:46:42 -04:00
hayodea
3bcb83894b
livoxGen1:PcloudStimProd: move qualeApi param parsing here
2025-11-16 04:38:25 -04:00
hayodea
c5ed453bb4
StimBuff: Make virtual so we can dynamic_cast in getOrCreateStimBuff
2025-11-16 02:23:53 -04:00
hayodea
8e48ce6ceb
stagingBuffer: rename nDgramsPerFrame=>nSlots
2025-11-15 21:29:59 -04:00
hayodea
d277c29394
Move StagingBuffer+FrameAssemblyDesc into libattachmentSupport
...
This is in preparation for using StagingBuffer to implement
StimulusFrame and StimulusBuffer.
2025-11-15 20:47:40 -04:00
hayodea
7a51f02d97
livoxGen1: Implement StimBuff add/del from StimProducers
...
There seems to be a bug where two or more stimProducers
or stimBuffs get initialized at once but we can deal with that
tomorrow.
2025-11-15 04:02:25 -04:00
hayodea
e215e78aa5
StimulusBuffer should take ref to parent; not sh_ptr to common instance
2025-11-15 01:15:57 -04:00
hayodea
98a493a8a1
livoxGen1: Add StimBuffs to PcloudStimProd
...
* PcloudStimulusProducer now has member sh_ptr<StimulusBuffer>s.
* StimulusProducer now has a vector<sh_ptr<StimulusBuffer>s.
Created new stimbuff-type-specific
Pcloud[Xyz|I|Ambience]StimulusBuffer classes for representing each
stim feature exposed by livoxGen1's PcloudStimulusProducer.
2025-11-14 23:19:32 -04:00
hayodea
8a7dc10892
Split StimulusProducer=>StimulusBuffer+StimulusProducer
...
We're getting ready for the last mile of the StimulusBuffer API
and the proto-completion of the LivoxGen1 StimBuffApi.
2025-11-14 20:44:37 -04:00
hayodea
70c0175a8b
Rename StimulusBuffer=>StimulusProducer
...
Next we'll split the StimulusBuffer-related stuff into a new class
StimulusBuffer.
2025-11-14 19:50:51 -04:00
hayodea
0720ed9c76
StimBuff: Make produceFrameReq responsive to stop()
2025-11-14 02:25:51 -04:00
hayodea
324e3d1f6a
SpinLock: Add releasePrematurely for early releases
2025-11-14 01:38:06 -04:00
hayodea
972d5fc9db
AsyncLoop: Add setRemainingIterationsToFailure
2025-11-13 20:52:08 -04:00
hayodea
e446d42b3c
StimBuff: Deferral: print message at start and end; timestamp too
2025-11-13 01:09:30 -04:00
hayodea
116a642a9f
StimBuff: Add opportunity for early lock release
2025-11-12 15:08:44 -04:00
hayodea
1ac6fa4a16
Rename StimFrame=>StimulusFrame
2025-11-09 22:09:19 -04:00
hayodea
a0ab5538df
StimBuff: Add mnemonic wrapper for unlocking frameAssmLimiter
2025-11-08 22:07:52 -04:00
hayodea
b598ca8594
libs: Add smohook for getting cmdline opts
2025-11-07 14:59:28 -04:00
hayodea
457d0f9345
Dbg:Add CallableTracer for callables post()ed to boost.asio
...
This class and its macro allow us to trace the invocation of
callbacks as they're invoked by Boost.asio.
2025-11-06 21:45:16 -04:00
hayodea
af57c4dfd1
Boost: move top_ link fixer to top of files
2025-11-06 15:03:26 -04:00
hayodea
1c7277d141
SpinLock: add RAII Guard class
2025-11-05 22:38:04 -04:00
hayodea
2b3b318abe
Formatting
2025-11-04 00:49:15 -04:00
hayodea
f3a4c69597
StimBuff: DevAttSpec should be a sh_ptr, not a plain ref
2025-11-04 00:47:01 -04:00
hayodea
b3bf0e2cb9
StimBuff,commonLibs: Add libattachmentSupport, move fnptrs into .cpp files
...
We move the methods in StimulusBuffer whose addresses are taken during
program execution into a separate static lib. This guarantees that
they'll have their own, single vaddr at runtime, at least within
each independent code module.
2025-11-02 19:12:28 -04:00
hayodea
10e615e75e
StimBuff: make start/stop virtual;
...
We can now have the derived StimBuff class implement its own
start()/stop() preamble and epilogue.
2025-11-01 22:05:52 -04:00
hayodea
a32b4f05d1
livoxGen1: call PcloudStimulusBuffer::start/stop
...
We now call start()/stop() in attach/detachDeviceReq.
2025-11-01 03:32:05 -04:00
hayodea
67af9f02da
DAPSpecs: Update parseRequiredParamAsInt to support all param lists
2025-11-01 01:11:34 -04:00
hayodea
e824685c19
DAPSpec: Add params to quale-iface-api
...
We add params to the quale iface (soon to be renamed to cologex-api).
This allows us to eventually set the history length for stimbuffs.
2025-11-01 00:57:04 -04:00
hayodea
cdade17905
Add SpMcRingBuffer to base class StimulusBuffer
...
This will hopefully genericise the interface for Stimbuffs.
2025-11-01 00:09:53 -04:00
hayodea
018c1f1e1d
SpMcRingBuffer: Added this new class
...
This will be the foundation for all StimulusBuffers. We can most
likely add this generically to the StimulusBuffer base class rather
than adding it only to StimulusBuffer's derived classes.
2025-10-31 22:58:18 -04:00
hayodea
5e522178d8
SequenceLock: Newly added
...
What can I say? It's a very portable primitive that allows us to
create many RCU-type data structures with many readers and one
writer, locklessly.
2025-10-31 22:12:23 -04:00