hayodea
582aefb02c
OClEngn: Split isSetup/Running into collate+compact
2025-11-09 19:58:45 -04:00
hayodea
aef251b7e5
IoUringEngn: add random dummy slot generator for debugging
2025-11-09 19:34:02 -04:00
hayodea
ad0b8058a4
ClCollMeshEngn: big reworks to clean up.
2025-11-09 19:28:55 -04:00
hayodea
b331af4f03
ClCollMeshEngn: Split start into start[Collate|Compact]Kernel()
...
These prepare each kernel separately. We'll unify them further.
2025-11-09 16:12:10 -04:00
hayodea
683e107b04
livoxG1:OClCollMeshEngn: Wrestling and massaging
2025-11-09 15:18:53 -04:00
hayodea
c8cbaed3b1
OClCollAndMeshEngn: formatting
2025-11-09 12:37:30 -04:00
hayodea
5f03e4c392
livoxG1:collateDgrams.cl: Clarify collation offsetting
2025-11-09 12:12:08 -04:00
hayodea
55116b1d41
livoxG1:collateDgrams.cl: Fix unaligned reads
2025-11-09 11:48:53 -04:00
hayodea
7977f0bcc9
OClCollatingMeshingEngn: Compile both kernels side by side
2025-11-09 04:49:37 -04:00
hayodea
6264a128a8
livoxG1: Add point cloud frame collator OpenCL kernel
2025-11-09 04:48:15 -04:00
hayodea
01ba68f2b5
livoxG1:OCLEngine: compile compactor program
2025-11-09 03:44:56 -04:00
hayodea
511f1796e8
livoxG1:slotCompactor.cl: mental-validate and refactor
2025-11-09 03:40:46 -04:00
hayodea
a0a5aa49ad
livoxG1: Add new OpenCl kernel to compact dgrams before collation
2025-11-09 02:39:09 -04:00
hayodea
d2e2d9bc3b
StagingBuffer: Prefer mlock to io_uring_register_buffers
2025-11-09 01:16:17 -04:00
hayodea
010ba9c7bd
Bugfix,IoUringEngn: fill unassembled slots w/dummy; use separate iovecs
...
We implemented the feature to fill unassembled slots w/dummy header
values for the livox pcloud header.
We also fixed a bug where io uring was writing into the last slot
only because we were using the same iovec for every SQE.
2025-11-09 00:55:58 -04:00
hayodea
72a3415553
Bugfix: Don't use eventfdDesc after stop()
...
We call stop() inside the assembleFrameReq3, so when it returns,
the eventfdDesc should be destroyed. Don't allow a possibly stale
eventfdDesc obj to permit us to re-arm the eventfdDesc read_some
call.
2025-11-08 23:09:14 -04:00
hayodea
a0ab5538df
StimBuff: Add mnemonic wrapper for unlocking frameAssmLimiter
2025-11-08 22:07:52 -04:00
hayodea
5b7b4f215a
IoUringAssmEngine: Acquire spinlock in stall timeout branch
2025-11-08 21:54:11 -04:00
hayodea
d8a3999ad5
PcloudStimBuff: call OClCollMessEngn::setup/finalize in start/stop
2025-11-08 12:23:13 -04:00
hayodea
5ff6a4ee0b
OClCollMeshEngn: implement start/stop/setup/finalize
2025-11-08 12:23:13 -04:00
hayodea
6a5bb47e0e
PcloudStimBuff: Add OpenClCollatingAndMeshingEngine instance
2025-11-08 12:23:10 -04:00
hayodea
073cdde08f
livoxG1: StagingBuff: add getClEngineIovec
2025-11-08 12:18:55 -04:00
hayodea
e1042724fc
livoxGen1: nitpicking: use .-prefixed symbol for end
2025-11-08 11:11:05 -04:00
hayodea
28e56653ea
livoxGen1: unmangle symbols, add .sizes
2025-11-08 11:09:09 -04:00
hayodea
5dbed56e38
livoxG1: Make collateKernelNBytes a uint32_t for 32bit portability
2025-11-08 10:59:08 -04:00
hayodea
9233f7fdc8
livoxG1: Add OpenCl kernels for collation
2025-11-08 10:26:17 -04:00
hayodea
bc56c83fad
Rename: OpenGlSplittingEngine=>OpenGlCollatingAndMeshingEngine
2025-11-08 01:48:56 -04:00
hayodea
cb493d7598
StagingBuff: set OpenCL constraints
2025-11-08 01:45:47 -04:00
hayodea
1c50fc0e29
StagingBuff: Move constructor into .cpp file
2025-11-08 00:21:24 -04:00
hayodea
7497f2fd95
StagingBuff: Enhance IoConstraints with frame constraints
...
Now StagingBuff instances must meed both frame and slot
constraints.
2025-11-08 00:15:29 -04:00
hayodea
0b21cdd2ba
OClSplitEngn: fix build warnings
2025-11-07 22:20:44 -04:00
hayodea
f5146738e1
PcloudStimBuff: Add collationBuffer
2025-11-07 22:07:27 -04:00
hayodea
479219db2d
StagingBuff: Unify constraints into IOEngineConstraints
2025-11-07 22:05:01 -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
db30001140
livoxG1: Rename stagingBuffer=>assemblyBuffer
...
This is in preparation for re-using StagingBuffer to also serve
as the collation buffer that we'll use as the intermediate stage
for producing the final output mesh.
2025-11-06 14:09:10 -04:00
latentprion
d69636bf7b
IoUringAssmEngn: destroy prev cb obj
...
This should ensure that the sh_ptr<contin> from the prev object
gets destroyed properly.
2025-11-06 09:10:44 -04:00
hayodea
59a584561d
CMake:livoxGen1: advise on libOpenCL.so ubuntu pkg name
2025-11-06 09:09:51 -04:00
hayodea
f7aba4af4e
livoxGen1: find OpenCL using both CMake & pkgConfig
2025-11-06 09:02:05 -04:00
hayodea
aacbdd5864
livoxGen1: Add OpenClSplittingEngine
2025-11-06 01:20:02 -04:00
hayodea
bb59f47549
IoUringAssmEngn: add assembleFrameReq
...
Invoke it instimFrameProductionTimesliceInd.
Also, we discovered:
* stream_descriptor::release() doesn't fully release all metadata
from the fd it was assigned. This suggests that we should go
through the codebase and do: release()=>reset() whenever we
wish to release().
* We've confirmed that spinlocks can be used to prevent race
conditions between stop() and handler methods.
2025-11-06 01:04:10 -04:00
hayodea
d29ebafea0
IoUringAssmEngine: Add start/stop() for frame assembly.
...
With these two functions implemented, this class now actually
assembles frames.
2025-11-05 19:23:30 -04:00
hayodea
94982d50b9
IoUringAssmEngn: map StagingBuff w/mmap; reg w/io_uring; add eventFd
...
StagingBuffer:
We now allocate memory with mmap(MAP_ANONYMOUS) so that we can be
sure it can be pinned with io_uring_register_buffers(). This
ensures that if DMA is possible, it should be usable.
IoUringAssemblyEngine:
We now register an eventfd with io_uring so that we can listen
for CQEs with boost::asio.
2025-11-05 15:34:23 -04:00
hayodea
0503705a13
PcloudStimBuff: invoke IOUringAsmEngn::setup/stop in start()
2025-11-04 15:33:55 -04:00
hayodea
ef9eef2bc3
PCloudStimBuff: Add useful dbg msg for thread affinity rigour
2025-11-04 00:56:46 -04:00
hayodea
f3a4c69597
StimBuff: DevAttSpec should be a sh_ptr, not a plain ref
2025-11-04 00:47:01 -04:00
hayodea
7a55a65589
LivoxProto1: Rename pcloudDataSocketDesc=>pcloudDataFdDesc
2025-11-03 23:22:50 -04:00
hayodea
14b97a52ed
IoUringAsmEngn: Use pcloudDataSocket from UdpCmdDemux
2025-11-03 23:10:24 -04:00
hayodea
5845f1a41d
Bug:Boost: Use shlibs instead of header-only for call_stack::top_
...
This symbol is defined as a static member object inside of a
boost detail header. When boost headers are used in a project
that uses Boost in both the main binary as well as dlopen()'d
shlibs, the top_ symbol gets duplicated and the metadata gets
partitioned.
We use the Boost shlib to unify both the main binary and the
shlibs to use the same memory address for top_.
This involves marking the templated object call_stack::top_ as
"extern" and then declaring to Boost that we intend to use the
shlibs.
2025-11-03 22:59:52 -04:00