hayodea
601c7857f4
VSCode: don't display inline greyed out hints
2025-11-23 07:28:04 -04:00
hayodea
0c2a14434b
livoxGen1:OCl:collate: cast comparison to float
2025-11-23 07:25:53 -04:00
hayodea
ce690bc3f4
PcloudStimProducer,OClCollMeshEngn: Produce ambience stim feature
...
The collation kernel now also produces the ambience stim feature
values into the ambience stimbuff frames.
2025-11-23 07:20:55 -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
f57236530d
OClCollMeshEngn: print intensities from intensity stimframes
2025-11-23 06:07:37 -04:00
hayodea
79df8b3f74
OClCollMeshEngn,PcloudStimProd: Produce into intensity stimbuff
...
PcloudStimulusBuffer::produceFrameReq():
Now correctly produces into the stim frames for the
PcloudIntensityStimulusBuffer object that's attached to the
PcloudStimulusProducer. If there's no attached I stimbuff, then
the OpenCL kernel will simply not write out the intensity data.
This is the first moment when we actually use the SP-MC ringbuffer
properly and actually cycle through the frames, producing into
them one by one.
2025-11-23 05:57:20 -04:00
hayodea
a025d13fce
CMake: Add support got clangd in cursor
2025-11-23 04:05:18 -04:00
hayodea
2c891bd2f3
Mrntt: Re-add exceptionInd
...
This now ensures that finalizeReq is indeed called from mrntt,
since exception-experiencing threads will post an exceptionInd
to mrntt, which will then call finalizeReq.
2025-11-23 03:27:18 -04:00
hayodea
3747dee8a7
CPack: Target ubuntu; deb now works in gdebi
2025-11-20 22:18:05 -04:00
hayodea
9ce1ced92d
PcloudStimBuff,IoUringAssmEngn: add frame assembly perf profiling
...
We now time the frame assembly sequence.
2025-11-20 03:26:43 -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
9d9644cb31
PCloudStimBuff: Call stop=>start in destroyAttachedStimBuff
...
This ensures that we can avoid races when adding and removing
stimbuffs to a stimproducer.
At least in theory. I can think of some ways in which this current
design may result in races or other bad conditions.
2025-11-20 02:18:25 -04:00
hayodea
1bf0a195aa
PcloudStimBuff: call stop=>start when adding new StimBuff
2025-11-20 02:10:11 -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
ee6405048a
OClCollMeshEngn: use the central ComputeMgr APIs
...
We no longer create our own context and get our own OpenCL device
in OClCollMeshEngn::setup. We now request a device from the central
ComputeManager.
2025-11-20 00:55:19 -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
a910909ad5
Tests: Add test for StagingBuffer
2025-11-19 03:12:43 -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
a4493b26a1
Move/RN computeNSlotsPerDgram to Device::getNSlotsPerDgram
2025-11-16 12:37:25 -04:00
hayodea
a18fab04a5
livoxGen1:Add openClIntensityConstraints to prep for StimBuff impl
2025-11-16 04:54:13 -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
44435c61eb
Formatting
2025-11-16 02:40:37 -04:00
hayodea
af5046c933
Devices: Avia0: add mesh, pcloudIntensity and pcloudAmbience qualeIfaceApis
2025-11-16 02:34:33 -04:00
hayodea
c5ed453bb4
StimBuff: Make virtual so we can dynamic_cast in getOrCreateStimBuff
2025-11-16 02:23:53 -04:00
hayodea
addd2e275d
livoxGen1: Rn PcloudIStimulusBuffer=>PcloudIntensityStimulusBuffer
2025-11-16 00:31:47 -04:00
hayodea
336bc52a9d
livoxGen1: Rename PcloudXyzStimulusBuffer=>MeshStimulusBuffer
2025-11-16 00:10:33 -04:00
hayodea
c060463e82
Gitignore: ignore .tmp files
2025-11-16 00:03:18 -04:00
hayodea
1f7c7f5f28
livoxGen1: n-dgrams-per-frame default value 30=>84
2025-11-15 22:22:08 -04:00
hayodea
bed10df499
livoxGen1: add n-dgrams-per-frame param
2025-11-15 22:12:48 -04:00
hayodea
b3743560bb
IoUringAssmEngn: detect assembly end condition w/eventfdDesc validity
...
We can simplify and universalize the logic here by acknowledging that
assemblyCycleComplete() will always destroy the current eventfdDesc
object, so we can just check that to see whether we should continue
the assembly cycle.
2025-11-15 22:02:30 -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
2d1c026cc2
livoxGen1: Add correctness checks to attachDeviceReq
2025-11-15 19:46:24 -04:00
hayodea
340604c4ea
Avia: update qualeIface to mesh
2025-11-15 16:21:48 -04:00
hayodea
2632917c63
livoxGen1: Execute delays on lib's assigned CompThread
2025-11-15 15:59:34 -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
188b09319c
livoxProto1: Rn Device::nAttachedStimBuffs=>nAttachedStimulusProducers
...
More semantically precise name.
2025-11-15 00:56:20 -04:00
hayodea
475f67d36e
Todo: update
2025-11-15 00:08:35 -04:00
hayodea
16b51a3b66
Rename PcloudDataProducer=>PcloudStimulusProducer
2025-11-14 23:50:31 -04:00
hayodea
7d86ecadc4
livoxGen1: Rn attachedDataProducers=>attachedStimulusProducers
...
Also compare producers only by device selector and not by the rest
of their stored DASpec.
2025-11-14 23:26:13 -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