-
Notifications
You must be signed in to change notification settings - Fork 8
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
Run gRPC service independently #158
base: main
Are you sure you want to change the base?
Conversation
I put this PR as a draft to validate the implementation. Please let me know if I am moving in the right track. |
c3ac50b
to
cf7a861
Compare
you'll also need to update the Vulkan side as well, otherwise the server will be started twice for Vulkan application. |
b32a615
to
952b9b9
Compare
I added also a global object to initialize the server for an Vulkan app, however, it is not working. It seems the server is closed. When I move the server initialization to |
@@ -515,6 +523,10 @@ extern "C" | |||
return (PFN_vkVoidFunction)&DiveInterceptEnumerateInstanceExtensionProperties; | |||
if (0 == strcmp(func, "vkCreateInstance")) | |||
return (PFN_vkVoidFunction)&DiveInterceptCreateInstance; | |||
if (0 == strcmp(func, "vkDestroyInstance")) | |||
{ | |||
LOGI("vkDestroyInstance"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need this func? only for debug log?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if you mean to stop the server in vkDestroyInstance, you will need to implement the interception functions, similar in the openxr layer.
layer/openxr_layer.cc
Outdated
|
||
XrSessionData() : | ||
server(GetServerRunner()) | ||
struct Server |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
better to put the server initialization in a separate shared place, so there's no duplicated code. probably you can put it into layer_common.cc
Did you find out why? In theory it should, as it's just move the place of initialization. |
int server_main(); | ||
} | ||
void StopServer(); | ||
int server_main(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you help unify the code style here
void StopServer(); | ||
}; | ||
|
||
extern Server server; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
instead of using extern, maybe it's better to using the tricky of GetServer()
as you've implemented.
No description provided.