Mesa (main): pvr: debug: Implement PVR_DEBUG variable

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jun 8 10:18:46 UTC 2022


Module: Mesa
Branch: main
Commit: 0fbcaa4b3aa6eb41399ae5a5a419cf4223476cc1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fbcaa4b3aa6eb41399ae5a5a419cf4223476cc1

Author: Matt Coster <matt.coster at imgtec.com>
Date:   Thu May  5 11:10:53 2022 +0100

pvr: debug: Implement PVR_DEBUG variable

Signed-off-by: Matt Coster <matt.coster at imgtec.com>
Reviewed-by: Frank Binns <frank.binns at imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16907>

---

 src/imagination/common/meson.build  |  1 +
 src/imagination/common/pvr_debug.c  | 48 +++++++++++++++++++++++++++++++++++++
 src/imagination/common/pvr_debug.h  | 39 ++++++++++++++++++++++++++++++
 src/imagination/vulkan/pvr_device.c |  3 +++
 4 files changed, 91 insertions(+)

diff --git a/src/imagination/common/meson.build b/src/imagination/common/meson.build
index 6948c8da014..cd9f9138bde 100644
--- a/src/imagination/common/meson.build
+++ b/src/imagination/common/meson.build
@@ -22,6 +22,7 @@
 libpowervr_common = static_library(
   'powervr_common',
   [
+    'pvr_debug.c',
     'pvr_device_info.c',
   ],
   include_directories : [
diff --git a/src/imagination/common/pvr_debug.c b/src/imagination/common/pvr_debug.c
new file mode 100644
index 00000000000..94f235453bb
--- /dev/null
+++ b/src/imagination/common/pvr_debug.c
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2022 Imagination Technologies Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <stdint.h>
+
+#include "util/u_debug.h"
+#include "pvr_debug.h"
+
+uint32_t PVR_DEBUG = 0;
+
+static const struct debug_named_value debug_control[] = {
+   /* Define debug values here in the same order as in "pvr_debug.h". Example:
+   { "some_option", PVR_DEBUG_SOME_OPTION,
+     "This is a description for some option" },
+    */
+   DEBUG_NAMED_VALUE_END
+};
+
+DEBUG_GET_ONCE_FLAGS_OPTION(pvr_debug, "PVR_DEBUG", debug_control, 0)
+
+void pvr_process_debug_variable(void)
+{
+   PVR_DEBUG = debug_get_option_pvr_debug();
+
+   /* Perform any automatic selections. For example, if one debug option
+    * implies another it should be set here.
+    */
+}
diff --git a/src/imagination/common/pvr_debug.h b/src/imagination/common/pvr_debug.h
new file mode 100644
index 00000000000..7c92f630bf9
--- /dev/null
+++ b/src/imagination/common/pvr_debug.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright © 2022 Imagination Technologies Ltd.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef PVR_DEBUG_H
+#define PVR_DEBUG_H
+
+#include <stdint.h>
+
+#include "util/macros.h"
+
+extern uint32_t PVR_DEBUG;
+
+/* Define debug values here. Example:
+#define PVR_DEBUG_SOME_OPTION                    BITFIELD_BIT(0)
+ */
+
+void pvr_process_debug_variable(void);
+
+#endif /* PVR_DEBUG_H */
diff --git a/src/imagination/vulkan/pvr_device.c b/src/imagination/vulkan/pvr_device.c
index 8af30156c8e..14cb853f054 100644
--- a/src/imagination/vulkan/pvr_device.c
+++ b/src/imagination/vulkan/pvr_device.c
@@ -42,6 +42,7 @@
 #include "pvr_bo.h"
 #include "pvr_csb.h"
 #include "pvr_csb_enum_helpers.h"
+#include "pvr_debug.h"
 #include "pvr_device_info.h"
 #include "pvr_job_render.h"
 #include "pvr_limits.h"
@@ -162,6 +163,8 @@ VkResult pvr_CreateInstance(const VkInstanceCreateInfo *pCreateInfo,
       return vk_error(NULL, result);
    }
 
+   pvr_process_debug_variable();
+
    instance->physical_devices_count = -1;
 
    VG(VALGRIND_CREATE_MEMPOOL(instance, 0, false));



More information about the mesa-commit mailing list