Commit Graph

7 Commits

Author SHA1 Message Date
Ben Marsh
0db70692a8 Horde: Fix remote execution errors on Mac.
- Max length for semaphore name is 31 characters on MacOS.
- Also add some custom assert/verify macros, and include errno strings in errors.

[CL 26678594 by Ben Marsh in ue5-main branch]
2023-07-28 13:25:31 -04:00
Ben Marsh
705931a7ec Horde: Unifying C#/C++ implementations of remote execution code.
- Handle ref counting in the same way for each implementation.
- Writers now need to be created explicitly, and are marked complete when their last writer is released.
- Added -InProc command line argument to sample app, which runs C# assemblies in the same process when possible.

[CL 26675350 by Ben Marsh in ue5-main branch]
2023-07-28 11:51:34 -04:00
Ben Marsh
7f2bdd427d Horde: First pass at cross-platform support for worker remote execution lib.
[CL 26641283 by Ben Marsh in ue5-main branch]
2023-07-27 11:14:50 -04:00
Ben Marsh
61e44b1cbe Horde: C++ Remote Execution improvements.
- Multiple readers can now be allocated from a single buffer dynamically. Readers are ref-counted separately to the underlying buffer, and are released once their ref count reaches zero.
- Detaching readers is now supported independently to marking the buffer as complete.

[CL 26556510 by Ben Marsh in ue5-main branch]
2023-07-24 17:25:42 -04:00
Ben Marsh
1f60ee0824 Horde: Unifying C#/C++ implementations of remote execution API.
- Abstract out platform specific implementation details into ComputePlatform.cpp/h.
- Add an overridable transport implementation of ComputeSocket, similar to what is available in C#.
- Add some local tests for C++ implementation.
- Various refactoring to converge implementation details/names/etc...

[CL 26535754 by Ben Marsh in ue5-main branch]
2023-07-22 14:17:04 -04:00
Ben Marsh
5f6c49fe70 Horde: Refactor compute API to support attachment of arbitrary buffers from workers.
#preflight none

[CL 25555811 by Ben Marsh in ue5-main branch]
2023-05-19 21:50:03 -04:00
Ben Marsh
da8149d19b Horde: Various compute API improvements.
* All standard buffers now implement IComputeBuffer directly, and do not need to have ToSharedInstance() called to create a ref-counted version.
* Workers can now construct a socket directly, allowing multiple buffers to be attached.
* Control messages are sent whenever a receive buffer is attached, allowing the remote to wait for it to be available.

#preflight none

[CL 25169238 by Ben Marsh in ue5-main branch]
2023-04-24 15:21:04 -04:00