You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
zip -r hxcpp-${{ env.hxcpp_release }}.zip hxcpp-${{ env.hxcpp_release }}
127
133
128
134
- name: Create Release
129
-
id: create_release
130
-
uses: actions/create-release@v1
131
-
env:
132
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
135
+
uses: ncipollo/release-action@v1
133
136
with:
134
-
tag_name: v${{ env.hxcpp_release }}
135
-
release_name: Release ${{ env.hxcpp_release }}
137
+
tag: v${{ env.hxcpp_release }}
138
+
commit: ${{ github.head_ref }}
139
+
name: Release ${{ env.hxcpp_release }}
136
140
draft: false
137
141
prerelease: false
138
-
139
-
- name: Upload Release Asset
140
-
id: upload-release-asset
141
-
uses: actions/upload-release-asset@v1
142
-
env:
143
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
144
-
with:
145
-
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
To activate the tracy integration, compile your app with:
5
+
6
+
```
7
+
-D HXCPP_TRACY
8
+
-D HXCPP_TELEMETRY
9
+
-D HXCPP_STACK_TRACE
10
+
-D HXCPP_STACK_LINE
11
+
```
12
+
13
+
and use the following call in your mainloop:
14
+
15
+
```
16
+
cpp.vm.tracy.TracyProfiler.frameMark();
17
+
```
18
+
19
+
Then start either Tracy's UI-App or cmdline server listening on localhost and start your hxcpp-made binary.
20
+
21
+
22
+
## Some notes about the integration
23
+
24
+
### Haxe-Code
25
+
We integrate Tracy into hxcpp as a Telemetry option which utilizes `hx::StackPosition` and offer a set of static functions to set zones and other tracy functionality. Through this all your haxe-code will be captured in a profiler-session.
26
+
27
+
There are however native parts of hxcpp that wont be visible by default in Tracy (bc there are no ZoneScopes).
28
+
29
+
> Note: Exceptions are in a few spots in the GC-Code, so GC becomes visible for us.
30
+
31
+
> Note: Hxcpp's native calls will become visible if you use the option to capture callstacks.
32
+
33
+
> Note: We capture source-locations and their filepaths. By default these are relative to your project and thus the sourcecode preview / browsing in Tracy wont work since it expects absolute paths. To solve this you can use `-D absolute-path` in your builds.
34
+
35
+
### externs
36
+
The same is true about externs you might be using in your project. If you want to make these visible, you need to `@:include('hx/TelemetryTracy.h')` and you gain access to Tracy's C-Macros that you can use in your extern's c/cpp-code. Please refer to the official Tracy documentation: https://github.com/wolfpld/tracy/releases/latest/download/tracy.pdf
37
+
38
+
### externs with static/dynamic libs
39
+
Another special case are static or dynamic libs your externs might be using. For these you will have to make more changes that are beyond the scope of this doc here, please refer to Tracy's official documentation over here: https://github.com/wolfpld/tracy/releases/latest/download/tracy.pdf
40
+
41
+
## Optional Features
42
+
43
+
### Memory Profiling
44
+
45
+
The following define adds tracking (de-)allocations of hxcpp's small & large object heap.
46
+
47
+
```
48
+
-D HXCPP_TRACY_MEMORY
49
+
```
50
+
51
+
### Capture Callstacks
52
+
53
+
By default we only track zones. If you wanna inspect the actual callstack per zone, you should use the following define:
54
+
55
+
```
56
+
-D HXCPP_TRACY_INCLUDE_CALLSTACKS
57
+
```
58
+
59
+
> Note: This will inflate the telemetry data A LOT and cost more performance. Please be aware.
60
+
61
+
62
+
### On Demand Profiling
63
+
64
+
By default this integration will start sampling & collecting telemetry with the start of your application. You can change this behavior by the following define and your app will only generate telemetry if the Tracy Profiler app is open and reachable.
65
+
66
+
```
67
+
-D HXCPP_TRACY_ON_DEMAND
68
+
```
69
+
70
+
### Short-lived Application Support
71
+
72
+
In cases where you dont have a mainloop or a very short-lived application you can use the following define to let your application stay around to complete sending telemetry data it has collected.
0 commit comments