[Bf-blender-cvs] [6e3158cb005] soc-2019-openxr: Only print info messages with --debug-xr enabled

Julian Eisel noreply at git.blender.org
Tue Jul 9 17:51:00 CEST 2019


Commit: 6e3158cb005d11b8880a98f2797612b3854cd268
Author: Julian Eisel
Date:   Tue Jul 9 17:49:54 2019 +0200
Branches: soc-2019-openxr
https://developer.blender.org/rB6e3158cb005d11b8880a98f2797612b3854cd268

Only print info messages with --debug-xr enabled

===================================================================

M	intern/ghost/intern/GHOST_Xr.cpp
M	intern/ghost/intern/GHOST_XrEvent.cpp
M	intern/ghost/intern/GHOST_Xr_intern.h

===================================================================

diff --git a/intern/ghost/intern/GHOST_Xr.cpp b/intern/ghost/intern/GHOST_Xr.cpp
index 53937732d85..63d1ebd3381 100644
--- a/intern/ghost/intern/GHOST_Xr.cpp
+++ b/intern/ghost/intern/GHOST_Xr.cpp
@@ -27,14 +27,11 @@
 
 #include "GHOST_Xr_intern.h"
 
-/* Toggle printing of available OpenXR extensions and API-layers. Should probably be changed to use
- * CLOG at some point */
-#define USE_EXT_LAYER_PRINTS
-
 /**
  * \param layer_name May be NULL for extensions not belonging to a specific layer.
  */
-static bool openxr_gather_extensions_ex(std::vector<XrExtensionProperties> &extensions,
+static bool openxr_gather_extensions_ex(const GHOST_XrContext *xr_context,
+                                        std::vector<XrExtensionProperties> &extensions,
                                         const char *layer_name)
 {
   const unsigned long old_extension_count = extensions.size();
@@ -58,28 +55,28 @@ static bool openxr_gather_extensions_ex(std::vector<XrExtensionProperties> &exte
     extensions.push_back(ext);
   }
 
-#ifdef USE_EXT_LAYER_PRINTS
   if (layer_name) {
-    printf("Layer: %s\n", layer_name);
+    XR_DEBUG_PRINTF(xr_context, "Layer: %s\n", layer_name);
   }
-#endif
+
   /* Actually get the extensions. */
   xrEnumerateInstanceExtensionProperties(
       layer_name, extension_count, &extension_count, extensions.data());
-#ifdef USE_EXT_LAYER_PRINTS
+  XR_DEBUG_BEGIN(xr_context);
   for (uint32_t i = 0; i < extension_count; i++) {
-    printf("Extension: %s\n", extensions[i + old_extension_count].extensionName);
+    XR_DEBUG_PRINTF(
+        xr_context, "Extension: %s\n", extensions[i + old_extension_count].extensionName);
   }
-#endif
+  XR_DEBUG_END;
 
   return true;
 }
-static bool openxr_gather_extensions(OpenXRData *oxr)
+static bool openxr_gather_extensions(const GHOST_XrContext *xr_context, OpenXRData *oxr)
 {
-  return openxr_gather_extensions_ex(oxr->extensions, nullptr);
+  return openxr_gather_extensions_ex(xr_context, oxr->extensions, nullptr);
 }
 
-static bool openxr_gather_api_layers(OpenXRData *oxr)
+static bool openxr_gather_api_layers(const GHOST_XrContext *xr_context, OpenXRData *oxr)
 {
   uint32_t layer_count = 0;
 
@@ -101,11 +98,10 @@ static bool openxr_gather_api_layers(OpenXRData *oxr)
   /* Actually get the layers. */
   xrEnumerateApiLayerProperties(layer_count, &layer_count, oxr->layers.data());
   for (XrApiLayerProperties &layer : oxr->layers) {
-#ifdef USE_EXT_LAYER_PRINTS
-    printf("Layer: %s\n", layer.layerName);
-#endif
+    XR_DEBUG_PRINTF(xr_context, "Layer: %s\n", layer.layerName);
+
     /* Each layer may have own extensions */
-    openxr_gather_extensions_ex(oxr->extensions, layer.layerName);
+    openxr_gather_extensions_ex(xr_context, oxr->extensions, layer.layerName);
   }
 
   return true;
@@ -174,7 +170,8 @@ static GHOST_TXrGraphicsBinding openxr_graphics_extension_to_enable_get(
 /**
  * Gather an array of names for the API-layers to enable.
  */
-static void openxr_layers_to_enable_get(const OpenXRData *oxr,
+static void openxr_layers_to_enable_get(const GHOST_XrContext *xr_context,
+                                        const OpenXRData *oxr,
                                         std::vector<const char *> &r_ext_names)
 {
   const static std::vector<std::string> try_layers = {"XR_APILAYER_LUNARG_core_validation"};
@@ -184,7 +181,7 @@ static void openxr_layers_to_enable_get(const OpenXRData *oxr,
   for (const std::string &layer : try_layers) {
     if (openxr_layer_is_available(oxr, layer)) {
       r_ext_names.push_back(layer.c_str());
-      printf("Enabling Layer %s\n", layer.c_str());
+      XR_DEBUG_PRINTF(xr_context, "Enabling OpenXR API-Layer %s\n", layer.c_str());
     }
   }
 }
@@ -199,9 +196,9 @@ static void openxr_extensions_to_enable_get(const GHOST_XrContext *context,
 
   const char *gpu_binding = openxr_ext_name_from_wm_gpu_binding(context->gpu_binding_type);
   const static std::vector<std::string> try_ext;
-  const auto add_ext = [&r_ext_names](const char *ext_name) {
+  const auto add_ext = [context, &r_ext_names](const char *ext_name) {
     r_ext_names.push_back(ext_name);
-    printf("Enabling Extension: %s\n", ext_name);
+    XR_DEBUG_PRINTF(context, "Enabling OpenXR Extension: %s\n", ext_name);
   };
 
   r_ext_names.reserve(try_ext.size() + 1); /* + 1 for graphics binding extension. */
@@ -228,7 +225,7 @@ static bool openxr_instance_create(GHOST_XrContext *context)
                               XR_MAX_APPLICATION_NAME_SIZE);
   create_info.applicationInfo.apiVersion = XR_CURRENT_API_VERSION;
 
-  openxr_layers_to_enable_get(oxr, context->enabled_layers);
+  openxr_layers_to_enable_get(context, oxr, context->enabled_layers);
   openxr_extensions_to_enable_get(context, oxr, context->enabled_extensions);
   create_info.enabledApiLayerCount = context->enabled_layers.size();
   create_info.enabledApiLayerNames = context->enabled_layers.data();
@@ -240,7 +237,7 @@ static bool openxr_instance_create(GHOST_XrContext *context)
   return true;
 }
 
-static void openxr_instance_log_print(OpenXRData *oxr)
+static void openxr_instance_log_print(const GHOST_XrContext *xr_context, OpenXRData *oxr)
 {
   assert(oxr->instance != XR_NULL_HANDLE);
 
@@ -248,7 +245,7 @@ static void openxr_instance_log_print(OpenXRData *oxr)
   instanceProperties.type = XR_TYPE_INSTANCE_PROPERTIES;
   xrGetInstanceProperties(oxr->instance, &instanceProperties);
 
-  printf("Connected to OpenXR runtime: %s\n", instanceProperties.runtimeName);
+  XR_DEBUG_PRINTF(xr_context, "Connected to OpenXR runtime: %s\n", instanceProperties.runtimeName);
 }
 
 /**
@@ -265,22 +262,18 @@ GHOST_XrContext *GHOST_XrContextCreate(const GHOST_XrContextCreateInfo *create_i
     xr_context->debug = true;
   }
 
-#ifdef USE_EXT_LAYER_PRINTS
-  puts("Available OpenXR layers/extensions:");
-#endif
-  if (!openxr_gather_api_layers(oxr) || !openxr_gather_extensions(oxr)) {
+  XR_DEBUG_PRINTF(xr_context, "Available OpenXR API-layers/extensions:\n");
+  if (!openxr_gather_api_layers(xr_context, oxr) || !openxr_gather_extensions(xr_context, oxr)) {
     delete xr_context;
     return nullptr;
   }
-#ifdef USE_EXT_LAYER_PRINTS
-  puts("Done printing OpenXR layers/extensions.");
-#endif
+  XR_DEBUG_PRINTF(xr_context, "Done printing OpenXR API-layers/extensions.\n");
 
   xr_context->gpu_binding_type = openxr_graphics_extension_to_enable_get(oxr, create_info);
 
   assert(xr_context->oxr.instance == XR_NULL_HANDLE);
   openxr_instance_create(xr_context);
-  openxr_instance_log_print(oxr);
+  openxr_instance_log_print(xr_context, oxr);
 
   return xr_context;
 }
diff --git a/intern/ghost/intern/GHOST_XrEvent.cpp b/intern/ghost/intern/GHOST_XrEvent.cpp
index 99cb9e7c1d0..ea8880d84a4 100644
--- a/intern/ghost/intern/GHOST_XrEvent.cpp
+++ b/intern/ghost/intern/GHOST_XrEvent.cpp
@@ -50,7 +50,7 @@ GHOST_TSuccess GHOST_XrEventsHandle(GHOST_XrContext *xr_context)
         return GHOST_kSuccess;
 
       default:
-        printf("Unhandled event: %i\n", event->type);
+        XR_DEBUG_PRINTF(xr_context, "Unhandled event: %i\n", event->type);
         return GHOST_kFailure;
     }
   }
diff --git a/intern/ghost/intern/GHOST_Xr_intern.h b/intern/ghost/intern/GHOST_Xr_intern.h
index e7e4deffeb0..3d163560209 100644
--- a/intern/ghost/intern/GHOST_Xr_intern.h
+++ b/intern/ghost/intern/GHOST_Xr_intern.h
@@ -27,6 +27,19 @@
 #include "GHOST_Xr_openxr_includes.h"
 #include "GHOST_XrSession.h"
 
+#define XR_DEBUG_BEGIN(ctx) \
+  if ((ctx)->debug) { \
+    (void)0
+#define XR_DEBUG_END \
+  } \
+  (void)0
+
+#define XR_DEBUG_PRINTF(ctx, ...) \
+  if ((ctx)->debug) { \
+    printf(__VA_ARGS__); \
+  } \
+  (void)0
+
 typedef struct OpenXRData {
   XrInstance instance;



More information about the Bf-blender-cvs mailing list