Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

State files #1660

Draft
wants to merge 1 commit into
base: dev
Choose a base branch
from
Draft

State files #1660

wants to merge 1 commit into from

Conversation

panos-lunarg
Copy link
Contributor

No description provided.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 233634.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4580 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 233656.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4581 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4581 failed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 233707.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4582 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4582 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 236219.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4607 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4607 failed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 237687.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4613 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4613 failed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 237862.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4614 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4614 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 239156.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4623 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4623 failed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 239191.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4624 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4624 failed.

USAGE_android.md Outdated
@@ -306,6 +306,9 @@ option values.
| Capture Specific Frames | debug.gfxrecon.capture_frames | STRING | Specify one or more comma-separated frame ranges to capture. Each range will be written to its own file. A frame range can be specified as a single value, to specify a single frame to capture, or as two hyphenated values, to specify the first and last frame to capture. Frame ranges should be specified in ascending order and cannot overlap. Note that frame numbering is 1-based (i.e. the first frame is frame 1). Example: `200,301-305` will create two capture files, one containing a single frame and one containing five frames. Default is: Empty string (all frames are captured). |
| Quit after capturing frame ranges | debug.gfxrecon.quit_after_capture_frames | BOOL | Setting it to `true` will force the application to terminate once all frame ranges specified by `debug.gfxrecon.capture_frames` have been captured. Default is: `false` |
| Capture trigger for Android | debug.gfxrecon.capture_android_trigger | BOOL | Set during runtime to `true` to start capturing and to `false` to stop. If not set at all then it is disabled (non-trimmed capture). Default is not set. |
| Use asset file | debug.gfxrecon.capture_use_asset_file | BOOL | When set to `true` assets (images, buffers and descriptors) will be stored separately into an asset file instead of the capture file. |
| Use asset file | debug.gfxrecon.capture_android_dump_assets | BOOL | Setting this triggers a dump of all assets into the asset file. Since android options cannot be set by the layer, dumping is done whenever this option switches between from `false` to `true` or from `true` to `false`. Default is: `false` |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be "Dump asset file" instead of "Use asset file"?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also wonder if this should only trigger on the false -> true setting?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be "Dump asset file" instead of "Use asset file"?

Right, copy paste mistake

I also wonder if this should only trigger on the false -> true setting?

Initially that was my idea too but then I realized that this is problematic. If an asset dump is triggered by the android property, once the assets are dumped the property must be transitioned to false, otherwise it will keep dumping every frame. The option needs to be cleared by the application but, at least as far as I can tell, android apps do not have permission to do that.

@@ -261,7 +261,9 @@ option values.
| Capture Specific Frames | GFXRECON_CAPTURE_FRAMES | STRING | Specify one or more comma-separated frame ranges to capture. Each range will be written to its own file. A frame range can be specified as a single value, to specify a single frame to capture, or as two hyphenated values, to specify the first and last frame to capture. Frame ranges should be specified in ascending order and cannot overlap. Note that frame numbering is 1-based (i.e. the first frame is frame 1). Example: `200,301-305` will create two capture files, one containing a single frame and one containing five frames. Default is: Empty string (all frames are captured). |
| Quit after capturing frame ranges | GFXRECON_QUIT_AFTER_CAPTURE_FRAMES | BOOL | Setting it to `true` will force the application to terminate once all frame ranges specified by `GFXRECON_CAPTURE_FRAMES` have been captured. Default is: `false` |
| Hotkey Capture Trigger | GFXRECON_CAPTURE_TRIGGER | STRING | Specify a hotkey (any one of F1-F12, TAB, CONTROL) that will be used to start/stop capture. Example: `F3` will set the capture trigger to F3 hotkey. One capture file will be generated for each pair of start/stop hotkey presses. Default is: Empty string (hotkey capture trigger is disabled). |
| Hotkey Capture Trigger Frames | GFXRECON_CAPTURE_TRIGGER_FRAMES | STRING | Specify a limit on the number of frames to be captured via hotkey. Example: `1` will capture exactly one frame when the trigger key is pressed. Default is: Empty string (no limit) |
| Hotkey Capture Trigger Frames | GFXRECON_CAPTURE_TRIGGER_FRAMES | STRING | Specify a limit on the number of frames to be captured via hotkey. Example: `1` will capture exactly one frame when the trigger key is pressed. Default is: Empty string (no limit) |
| Use asset file | GFXRECON_CAPTURE_USE_ASSET_FILE | BOOL | When set to `true` assets (images, buffers and descriptors) will be stored separately into an asset file instead of the capture file. |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wouldn't desktop also benefit from a dump asset file trigger like android has?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure that doesn't make sense, for the same reason capture_android_trigger doesn't exist on desktop - you can't modify environment variables at runtime (but android properties can be modified at runtime). Though a hotkey on desktop would make more sense.

@@ -403,6 +403,12 @@ VKAPI_ATTR uint64_t VKAPI_CALL GetBlockIndexGFXR()
return manager->GetBlockIndex();
}

VKAPI_ATTR void VKAPI_CALL WriteAssetsGFXR()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe you mentioned during our sync meeting that there was a private API that our layer could trigger to force an asset dump outside of a capture trigger, is this that function?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on 87ce650, I'm pretty sure it is.

Copy link
Contributor Author

@panos-lunarg panos-lunarg Aug 21, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, WriteAssetsGFXR is exposed just like GetBlockIndexGFXR ( 87ce650#diff-4cd2c76addccf755b343693d32cb024f7b90d9d4d2fd2ecc7d997921ee1c533bL35 ) that you use in the perfetto layer and in the same fashion it should be discoverable through the vulkan loader (I haven't tested it but crossing fingers that it should work)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Realized that the naming I used was very inconsistent. Changed it to
{ "DumpAssetsGFXR", reinterpret_cast<PFN_vkVoidFunction>(encode::DumpAssetsGFXR) }
Function should now be discoverable through the Vulkan loader by vkGetInstanceProcAddr([instance], "DumpAssetsGFXR");

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 239724.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4633 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4813 failed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 254934.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4816 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4816 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 255288.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4820 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4820 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 256905.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4833 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4833 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 263799.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4893 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4893 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 267612.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 267615.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4927 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4927 passed.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 268676.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4938 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4938 passed.

@bradgrantham-lunarg bradgrantham-lunarg added the P1 Prevents an important capture from being replayed label Oct 7, 2024
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 285027.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5159 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 5159 passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 Prevents an important capture from being replayed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants