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