vulkan/overlay: Add a control socket.
[mesa.git] / src / vulkan / overlay-layer / overlay_params.c
index 2a09b6cf081d9ebebea41d009345ecd0ea1567ee..afc17ec07a92451b4a9d23eff9741ce51815d180 100644 (file)
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <string.h>
+#include <errno.h>
 
 #include "overlay_params.h"
 
+#include "util/os_socket.h"
+
 static enum overlay_param_position
 parse_position(const char *str)
 {
@@ -47,6 +51,21 @@ parse_output_file(const char *str)
    return fopen(str, "w+");
 }
 
+static int
+parse_control(const char *str)
+{
+   int ret = os_socket_listen_abstract(str, 1);
+   if (ret < 0) {
+      fprintf(stderr, "ERROR: Couldn't create socket pipe at '%s'\n", str);
+      fprintf(stderr, "ERROR: '%s'\n", strerror(errno));
+      return ret;
+   }
+
+   os_socket_block(ret, false);
+
+   return ret;
+}
+
 static uint32_t
 parse_fps_sampling_period(const char *str)
 {
@@ -148,6 +167,7 @@ parse_overlay_env(struct overlay_params *params,
    params->enabled[OVERLAY_PARAM_ENABLED_frame_timing] = true;
    params->fps_sampling_period = 500000; /* 500ms */
    params->width = params->height = 300;
+   params->control = -1;
 
    if (!env)
       return;