Posts

Post not yet marked as solved
2 Replies
69 Views
with the latest Xcode that runs with Mac OS 14.5 Developer Beta has messages with a time and date in them There are also some other fields of an indeterminate origin/type. "2024-05-06 15:37:32.383996-0500 RoomPlanExampleApp[24190:1708576] [CAMetalLayerDrawable texture] should not be called after already presenting this drawable. Get a nextDrawable instead." specifically I need to know how the string [24190:1708576] relates to a location in my application so I can act on the message. I certainly can't find the text in the "[CAMetalLayerDrawable texture]". field anywhere in the user documentation OR the Development documentation. In order for a diagnostic message to be Actionable and remedied by a user it must identify the module and source line of the initiating code and there must be accessible documentation for users to access to get an explanation of potential remedies.. This interface fails to supply enough information to diagnose the problem. The label in [CAMetalLayerDrawable texture] cannot even be found in a search of the package information attached to the Xcode Release paired with the IOS and Mac OS system releases.
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
179 Views
Where do I start with this error? I am using the Metal Debugger and have.a bunch of stuck command buffers. how do I look at the command buffers to see the errors? My suspicion is that the cause is some sort of memory leak. Not having access to the source for Metal leaves me stuck. The following message shows up in the logging pane of the execution. Execution of the command buffer was aborted due to an error during execution. Ignored (for causing prior/excessive GPU errors) (00000004:kIOGPUCommandBufferCallbackErrorSubmissionsIgnored) Type: Error | Timestamp: 2024-04-11 14:16:13.464336-05:00 | Library: Metal | Subsystem: Metal | Category: Default | TID: 0x2a0b8c I just need some guidance
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
3 Replies
256 Views
It appears that when a class like the following: " class RoomCaptureViewController: UIViewController, RoomCaptureViewDelegate,ARSCNViewDelegate, MTKViewDelegate, ARSessionDelegate, RoomCaptureSessionDelegate. " has multiple delegates, the ordering of the priority of each message is delivered to a delegate by a priority sensitive order based algorithm and that one message can be processed by only one delegate and not passed off to other delegates if they don't have the proper entry points. Specifically I noted that changing the order seems to result in a delegate not getting a message that it should be seeing. Is there a "handoff" call that can be made after a delegate has seen a message but needs to pass it off to another delegate for processing? This is a protocol typically utilized in Interrupt handlers for PCIe and other messaging protocols and I have not been able to find a similar capability In the voluminous documentation available for IOS and Mac systems. I would also like to know how a message is dispatched by a class to the particular delegate for which the message was intended. Is there a detailed document that explains how the messaging protocol works that is not so fragmented as to require having multiple monitors open in order to form a coherent picture of the messaging interface for Delegates belonging to a class?
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
1 Replies
223 Views
When running a modified version of the RoomPlan Demo I get frequent Session Interrupted conditions. In looking at the traces I find a status of SensorDidPause in the interruption Side of the error but am mystified as to how to determine which sensor it was that paused and how to diagnose it. It appears there is a bitmap of available and active sensor devices in the sensor info passed with the session data on the error. In looking at the error status I can see that one or two of the motion sensors have had a problem. How do I do further diagnostic checks on what the cause of the error is? I am also curious why the error occurred as soon as the AR Session for my test started via the “session.run” call. The documentation in this area seems difficult to find. Attached are traces from running the test and stack dumps for the calls. Please send me guidance on how to proceed. The device in question is an iPad iPhone(3) that is attached to the Mac mini named “Hawkeye”. There is no known direct involvement for the Hawkeye system
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
1 Replies
339 Views
I am running a modified RoomPllan app in my test environment I get two ARSessions active, sometimes more. It appears that the first one is created by Scene Kit because it is related go ARSCNView. Who controls that and what gets processed through it? I noticed that I get a lot of Session Interruptions from Sensor Failure when I am doing World Tracking and the first one happens almost immediately. When I get the room capture delegates fired up I start getting images to the delegate via a second session that is collecting images. How do I tell which session is the scene kit session and which one is the RoomCapture session on thee fly when it comes through the delegate? Is there a difference in the object desciptor that I can use as a differentiator? Relying on the Address of the ARSession buffer being different is okay if you get your timing right. It wasn't clear from any of the documentation that there would be TWO or more AR Sessions delivering data through the delegates. The books on the use of ARKIT are not much help in determining the partition of responsibilities between the origins. The buffer arrivals at the functions supported by the delegates do not have a clear delineation of what function is delivered through which delegate discernible from the highly fragmented documentation provided by the Developer document library. Can someone give me some guidance here? Are there sources for CLEAR documentation of what is delivered via which delegate for the various interfaces?
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
3 Replies
1.8k Views
I am running the RoomPlan Demo app and keep getting the above error and when I try to find someplace to get the archive in the Metal Libraries my searches come up blank. There are no files that show up in a search that contain such identifiers. A number of messages are displayed about "deprecated" interfaces also. Is it normal to send out demo apps that are hobbled in this way?
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
342 Views
it appears that the Metal Debugging interface does not support this method, at least the function hashing algorithm does not have a pattern for it in the symbol dictionary as presented. Where do we get updated C- libraries and functions that sync with the things that are presented in the Demo Kits and Samples that Apple puts in the user domain? Why does this stuff get out into the wild insufficiently tested? It seems thet the demo kits made available to users should be included in the test domain used to verify new code releases. I came from a development environment where the 6 month release cycle involved automated execution of the test suite before it went beta or anywhere else.
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
2 Replies
504 Views
The Dynamic library build for the Metal Library fails when built from the downloaded copy. It uses the name of the download as the directory name which has spaces and does not give a syntactically correct file name. Renaming the folder in which the build files reside seems to resolve that problem. Then the header files for the Dynamic library get an access denied error when trying to compile. Why are these demos released with such trivial problems? Surely someone has tried to run it previously and the demo should have been fixed or the short Readme should have been updated with instructions on how to set it up.
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
621 Views
When Running RoomPlan in a Debug session Pausing in the middle of the job to look at the data structures being carried it was noted that there were no Polygon Edges nor Polygon Corners in the data set. When are they created? One would think that they would be created when the Polygon was so they could be joined up when the sibling surfaces came into existence. roomDataForProcessing RoomPlan.CapturedRoomData keyframes [Foundation.UUID : RSKeyframe] 24 key/value pairs coreAsset RSAsset 0x0000000281ebbd20 baseNSObject@0 NSObject _isCaptured bool 0x0000000000000000 _floorPlan RSFloorPlan? 0x00000002820e69a0 baseNSObject@0 NSObject groupId unsigned int 0x0000000000000000 ceilingHeight float 0x000000003fecf048 floorHeight float 0x00000000bf2557a1 rotationAngleAlongZ float 0x0000000000000000 walls __NSArrayI * 5 elements 0x0000000280847f00 [0] RS3DSurface? 0x0000000102819a20 baseNSObject@0 NSObject isa Class RS3DSurface 0x010000025bdbf4b9 type unsigned char '\0' individualUpdate char '\x01' merged bool false removed bool false confidence float 0.98292613 groupId unsigned int 0 wallStatus int 1 parentWallStatus int -1 offset float 0 depth float 0 depthWeight float 1 identifier __NSConcreteUUID * 0x28198e2a0 0x000000028198e2a0 parentIdentifier id 0x0 0x0000000000000000 room_id unsigned long long 0 room_class_idx unsigned long long 0 multiroom_all_idx unsigned long long 0 storyLevel long long 0 [1] RS3DSurface? 0x0000000102819b70 [2] RS3DSurface? 0x000000010282a620 [3] RS3DSurface? 0x000000010282a770 [4] RS3DSurface? 0x000000010281c250 doors __NSArrayM * 1 element 0x0000000281e4d200 windows __NSArrayM * 0 elements 0x0000000281e4cf60 openings __NSArrayM * 1 element 0x0000000281e4d140 opendoors __NSArrayM * 0 elements 0x0000000281e4f8d0 objects _TtCs19__EmptyArrayStorage * 0x207680b60 0x0000000207680b60 curvedWalls __NSArray0 * 0 elements 0x000000020be723b8 roomTypes __NSArray0 * 0 elements 0x000000020be723b8 floors __NSSingleObjectArrayI * 1 element 0x00000002850c6e00 curvedWindows __NSArrayM * 0 elements 0x0000000281e4c750 curvedDoors __NSArrayM * 0 elements 0x0000000281e4d260 wallLists id 0x0 0x0000000000000000 storyLevel long long 0x0000000000000000 _mirrorPoints __NSArray0 * 0 elements 0x000000020be723b8 _version long long 0x0000000000000002 _rawFloorPlan RSFloorPlan? 0x00000002820e6640 error Error? worldTrackingFailure self RoomPlanExampleApp.RoomCaptureViewController 0x0000000106811c00
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
518 Views
In the presentation there was a reference to a Parent/Child relationship. The parent for doors and Windows might be Walls but the relationship between Walls or multiple Windows or doors would be that of a "Sibling" or "Peer" component to maintain logical consistency of the objects. I would also recommend a Junction Object, which means more than an Edge because it would describe the two peer objects that were being joined, and the angle of that junction between the objects. The Junction could also describe the shape of the junction to capture any curvature or discontinuity of the junction. Multiple junctions might also be peers because they would have a junction between other adjoining surfaces giving a more complete description to the structure of the room. The parent of all of these surfaces and junctions would be the Room itself. Such a description would be useful in an architectural review of the room structure.
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
554 Views
I was happy to see the improvements in the Capture Side of RoomPlan, particularly the Polygon handling for the walls. Unfortunately, the Walls with 5 Vertices (Great Room Ceilings, Garage exteriors, etc) are projected in the viewers as having 4 Vertices and the top edge of the wall is projected upwards to the highest point between the two vertices leading to the peak. I am presuming that from this manifestation there must be some presumed 4-ness of all walls that leads to use of the Extent of the uppermost point rather than a projection of the lines to the point where the lines meet at the top. What viewer can be used that properly handles this misrepresentation of the imagery? I have imagery but your download only accepts pure files and will not take a USDZ file even retyped as TXT files
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
0 Replies
577 Views
ARKit is not correctly building "polygonEdge" items with correct Edge enumeration values. It appears to be finding an edge that is of the set Top/Bottom/Left/Right and leaving garbage in the field that should identify where the edge belongs resulting in some confusion later on when processing. I attached the data for the edges of the polygons when I displayed it In the debugger panel. When the debugger finds an edge type that it does not recognize it dumps the raw value in the field out to the text. If it is valid, the enumeration label for the field is dumped. That is why I think that garbage is being passed along because of the early bailout of the edge classification processing and the attributes of the edge not having a known classification processing for the object This is from a posting for a bug in the Xcode Debugger pane, When running the Debugger for a session, the data for the PolygonEdges field is displayed for enumerated fields that contain unknown enumerations with shown for the label, With the selection of “raw data” one would presumably see the hex representing the value that fit the labeled enumerated field of the structure but that is not what shows. Attached is a somewhat lengthy sample of the data for the field. The fact that the fields are invalid will be taken up with those responsible for the ARKit implementation in another venue. It appears that formatting preferences really don’t mean anything and are ignored ([RoomPlan.CapturedRoom.Surface.Edge]) polygonEdges = 1456 values { [0] = (0xa9) [1] = (0xc5) [2] = (0xa2) [3] = (0xe1) [4] = right [5] = top [6] = top [7] = top [8] = (0xb2) [9] = (0x10) [10] = top [11] = top [12] = top [13] = top [14] = top [15] = top [16] = (0x40) [17] = (0x1a) [18] = (0x58) [19] = (0x4) [20] = bottom [21] = top [22] = top [23] = top [24] = (0xa9) [25] = (0xc5) [26] = (0xa2) [27] = (0xe1) [28] = right [29] = top [30] = top [31] = top [32] = (0xcb) [33] = (0x19) [34] = top [35] = top [36] = top [37] = top [38] = top [39] = top [40] = (0x40) [41] = (0x1a) [42] = (0x58) [43] = (0x4) [44] = bottom [45] = top [46] = top [47] = top [48] = (0xa9) [49] = (0xc5) [50] = (0xa2) [51] = (0xe1) [52] = right [53] = top [54] = top [55] = top [56] = (0x2f) [57] = (0x1c) [58] = top [59] = top [60] = top [61] = top [62] = top [63] = top [64] = (0x40) [65] = (0x1a) [66] = (0x58) [67] = (0x4) [68] = bottom [69] = top [70] = top [71] = top [72] = (0xa9) [73] = (0xc5) [74] = (0xa2) [75] = (0xe1) [76] = right [77] = top [78] = top [79] = top [80] = (0xd0) [81] = (0xc) [82] = top [83] = top [84] = top [85] = top [86] = top [87] = top [88] = (0x40) [89] = (0x1a) [90] = (0x58) [91] = (0x4) [92] = bottom [93] = top [94] = top [95] = top [96] = (0xa9) [97] = (0xc5) [98] = (0xa2) [99] = (0xe1) [100] = right [101] = top [102] = top [103] = top [104] = (0x92) [105] = (0xa) [106] = top [107] = top [108] = top [109] = top [110] = top [111] = top [112] = (0x40) [113] = (0x1a) [114] = (0x58) [115] = (0x4) [116] = bottom [117] = top [118] = top [119] = top [120] = (0xa9) [121] = (0xc5) [122] = (0xa2) [123] = (0xe1) [124] = right [125] = top [126] = top [127] = top [128] = (0x8) [129] = (0x1d) [130] = top [131] = top [132] = top [133] = top [134] = top [135] = top [136] = (0x40) [137] = (0x1a) [138] = (0x58) [139] = (0x4) [140] = bottom [141] = top [142] = top [143] = top [144] = (0xa9) [145] = (0xc5) [146] = (0xa2) [147] = (0xe1) [148] = right
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
1 Replies
598 Views
The definition for PolygonCorners given in the document at the index https://developer.apple.com/documentation/roomplan/capturedroom/surface/polygoncorners. Is woefully lacking. To validly link the sides of a polygon from the definition of a corner there needs to be an incoming and outgoing line descriptor that points to the next subsequent corner of the polygon. Just like a line has two endpoints, the edges of a polygon have corners to which any corner may be linked and it is an ordered set forwards and backwards, in the case of a 2D polygon. In the case of a 3D polygon, such a corner would likely have at the very least third directional connection giving depth of that point. In a 3D geometry you may have one point that has multiple points going in another direction much like the facet cuts of a Brilliant Cut Diamond. This sibling relationship of the corner points would complicate the definition but not impossibly so.
Posted
by mfstanton.
Last updated
.
Post not yet marked as solved
1 Replies
698 Views
Application fails almost immediately after initial entry to rendering code. Could not locate file '.' in bundle. Class for component already registered Registering library () that already exists in shader manager. Library will be overwritten. Resolving material name 'engine:BuiltinRenderGraphResources/AR/suFeatheringCreateMergedOcclusionMask.rematerial' as an asset path -- this usage is deprecated; instead provide a valid bundle What additional packages need updates to run successfully? I have updated the Xcode and other packages available in Beta set
Posted
by mfstanton.
Last updated
.