Vulkan/Debug: Expose Frames from Thread

Previously Frame was an Thread-internally managed structure, with special accessors for the variable containers of the top most frame.

With this change, the Frame can be modified by calling `Thread::update()`. This allows for more powerful edits of the frame, while still preserving a mutex lock over the structure.

Bug: b/145351270
Change-Id: I81e87884e26bdd6f22b47e8f71b37bbfc91c7830
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39882
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Tested-by: Ben Clayton <bclayton@google.com>
diff --git a/src/Vulkan/Debug/Context.hpp b/src/Vulkan/Debug/Context.hpp
index 790587d..4c4d8af 100644
--- a/src/Vulkan/Debug/Context.hpp
+++ b/src/Vulkan/Debug/Context.hpp
@@ -89,9 +89,10 @@
 		// files() returns the full list of files.
 		std::vector<std::shared_ptr<File>> files();
 
-		// createFrame() returns a new frame for the given file.
+		// createFrame() returns a new frame for the given file and function
+		// name.
 		std::shared_ptr<Frame> createFrame(
-		    const std::shared_ptr<File> &file);
+		    const std::shared_ptr<File> &file, std::string function);
 
 		// get() returns the frame with the given ID, or null if the frame
 		// does not exist or no longer has any external shared_ptr references.