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

Track Buffer-Device-Addresses #1712

Merged
merged 12 commits into from
Sep 17, 2024

Conversation

fabian-lunarg
Copy link
Contributor

@fabian-lunarg fabian-lunarg commented Sep 5, 2024

  • Add VulkanBufferTracker class -> map device-addresses (ranges) to BufferInfo*, O(log n)
  • Add OverrideGetBufferDeviceAddress, track capture/replay buffer-addresses during replay
  • Add OverrideCmdTraceRaysKHR, sprinkle asserts using buffer-tracker queries
  • Augment OverrideBindBufferMemory with tracking logic

Building up necessary foundation as demonstrated by @bartosz-muszarski-arm's portable-raytracing branch

- codegen adapted to forward device-addresses to overrides
- store both capture/replay addresses
- do some sanity-checks with new buffer-tracker and
- check sbt-properties, add warning
- trimming: covers case when no vkGetBufferDeviceAddress was captured
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 249835.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4767 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 249858.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4768 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4768 passed.

@fabian-lunarg
Copy link
Contributor Author

belongs to portable raytracing issue

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 250067.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4773 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4773 passed.

@per-mathisen-arm
Copy link
Contributor

per-mathisen-arm commented Sep 10, 2024

I suspect that in the end we won't actually need the replayer address lookup functionality, just for the capture address. We have a patch in review that removes the last uses of this in our raytracing branch.

@fabian-lunarg
Copy link
Contributor Author

I suspect that in the end we won't actually need the replayer address lookup functionality, just for the capture address. We have a patch in review that removes the last uses of this in our raytracing branch.

good point, it could be omitted. I thought the range-based lookup 'might' be useful, also for replay-addresses, in other places but can't give an actual example.

- we'll prob. only require lookup of capture-time addresses
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 253263.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4805 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4805 passed.

@fabian-lunarg fabian-lunarg self-assigned this Sep 10, 2024
@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 253933.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4808 running.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4808 passed.

Copy link
Contributor

@MarkY-LunarG MarkY-LunarG left a comment

Choose a reason for hiding this comment

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

A few questions.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build queued with queue ID 257812.

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4839 running.

@fabian-lunarg
Copy link
Contributor Author

many thanks @charles-lunarg & @MarkY-LunarG!

@ci-tester-lunarg
Copy link

CI gfxreconstruct build # 4839 passed.

@fabian-lunarg fabian-lunarg merged commit 630d3d5 into LunarG:dev Sep 17, 2024
8 checks passed
@fabian-lunarg fabian-lunarg deleted the fabian_device_address_mapping branch September 17, 2024 07:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants