Mesa (main): pvr: Split pvr_dev_addr_t into a separate header

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jul 15 10:00:41 UTC 2022


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

Author: Matt Coster <matt.coster at imgtec.com>
Date:   Wed Jun 29 16:23:02 2022 +0100

pvr: Split pvr_dev_addr_t into a separate header

This type is useful beyond the scope of winsys.

It can now be used without being lumbered with a dependency on
pvr_winsys.h. Since pvr_winsys.h is used by pvr_private.h, this can be
a common cause for circular dependencies during development.

Signed-off-by: Matt Coster <matt.coster at imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil at imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17488>

---

 src/imagination/include/hwdef/rogue_hw_utils.h     |  2 +-
 src/imagination/include/pvr_types.h                | 41 ++++++++++++++++++++++
 src/imagination/vulkan/pvr_bo.c                    |  1 +
 src/imagination/vulkan/pvr_cmd_buffer.c            |  1 +
 src/imagination/vulkan/pvr_csb.h                   |  1 +
 src/imagination/vulkan/pvr_descriptor_set.c        |  1 +
 src/imagination/vulkan/pvr_device.c                |  1 +
 src/imagination/vulkan/pvr_job_common.h            |  2 +-
 src/imagination/vulkan/pvr_job_context.c           |  1 +
 src/imagination/vulkan/pvr_job_context.h           |  1 +
 src/imagination/vulkan/pvr_job_render.c            |  2 ++
 src/imagination/vulkan/pvr_job_render.h            |  3 +-
 src/imagination/vulkan/pvr_pipeline.c              |  2 +-
 src/imagination/vulkan/pvr_private.h               |  1 +
 src/imagination/vulkan/pvr_tex_state.h             |  1 +
 src/imagination/vulkan/winsys/pvr_winsys.h         | 12 ++-----
 src/imagination/vulkan/winsys/pvr_winsys_helper.c  |  1 +
 src/imagination/vulkan/winsys/pvr_winsys_helper.h  |  7 +++-
 src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c   |  1 +
 .../vulkan/winsys/pvrsrvkm/pvr_srv_bo.c            |  1 +
 .../vulkan/winsys/pvrsrvkm/pvr_srv_bo.h            |  1 +
 .../vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c        |  1 +
 .../vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h        |  2 +-
 .../vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c    |  1 +
 24 files changed, 72 insertions(+), 16 deletions(-)

diff --git a/src/imagination/include/hwdef/rogue_hw_utils.h b/src/imagination/include/hwdef/rogue_hw_utils.h
index db95dfce0df..1b06fdd8f44 100644
--- a/src/imagination/include/hwdef/rogue_hw_utils.h
+++ b/src/imagination/include/hwdef/rogue_hw_utils.h
@@ -31,7 +31,7 @@
 
 #include <stdint.h>
 
-#include "pvr_winsys.h"
+#include "pvr_types.h"
 
 #define __pvr_address_type pvr_dev_addr_t
 #define __pvr_get_address(pvr_dev_addr) (pvr_dev_addr).addr
diff --git a/src/imagination/include/pvr_types.h b/src/imagination/include/pvr_types.h
new file mode 100644
index 00000000000..82a65b8aaa4
--- /dev/null
+++ b/src/imagination/include/pvr_types.h
@@ -0,0 +1,41 @@
+/*
+ * 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_TYPES_H
+#define PVR_TYPES_H
+
+#include <stdint.h>
+
+/*****************************************************************************
+   Device virtual addresses
+*****************************************************************************/
+
+typedef struct pvr_dev_addr {
+   uint64_t addr;
+} pvr_dev_addr_t;
+
+/* clang-format off */
+#define PVR_DEV_ADDR_INVALID (pvr_dev_addr_t){ .addr = 0 }
+/* clang-format on */
+
+#endif /* PVR_TYPES_H */
diff --git a/src/imagination/vulkan/pvr_bo.c b/src/imagination/vulkan/pvr_bo.c
index a7450805889..e24a285ff7f 100644
--- a/src/imagination/vulkan/pvr_bo.c
+++ b/src/imagination/vulkan/pvr_bo.c
@@ -28,6 +28,7 @@
 
 #include "pvr_bo.h"
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "vk_alloc.h"
 #include "vk_log.h"
diff --git a/src/imagination/vulkan/pvr_cmd_buffer.c b/src/imagination/vulkan/pvr_cmd_buffer.c
index a740df4d358..6cdcb382788 100644
--- a/src/imagination/vulkan/pvr_cmd_buffer.c
+++ b/src/imagination/vulkan/pvr_cmd_buffer.c
@@ -43,6 +43,7 @@
 #include "pvr_limits.h"
 #include "pvr_pds.h"
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "util/compiler.h"
 #include "util/list.h"
diff --git a/src/imagination/vulkan/pvr_csb.h b/src/imagination/vulkan/pvr_csb.h
index 1ed401b9226..914355a0863 100644
--- a/src/imagination/vulkan/pvr_csb.h
+++ b/src/imagination/vulkan/pvr_csb.h
@@ -36,6 +36,7 @@
 #include <vulkan/vulkan.h>
 
 #include "pvr_bo.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "util/list.h"
 #include "util/macros.h"
diff --git a/src/imagination/vulkan/pvr_descriptor_set.c b/src/imagination/vulkan/pvr_descriptor_set.c
index c56035a2235..af1bc5f9c3f 100644
--- a/src/imagination/vulkan/pvr_descriptor_set.c
+++ b/src/imagination/vulkan/pvr_descriptor_set.c
@@ -31,6 +31,7 @@
 #include "hwdef/rogue_hw_utils.h"
 #include "pvr_bo.h"
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "util/compiler.h"
 #include "util/list.h"
 #include "util/log.h"
diff --git a/src/imagination/vulkan/pvr_device.c b/src/imagination/vulkan/pvr_device.c
index ebcb92788e3..b561bd994e4 100644
--- a/src/imagination/vulkan/pvr_device.c
+++ b/src/imagination/vulkan/pvr_device.c
@@ -49,6 +49,7 @@
 #include "pvr_nop_usc.h"
 #include "pvr_pds.h"
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "rogue/rogue_compiler.h"
 #include "util/build_id.h"
diff --git a/src/imagination/vulkan/pvr_job_common.h b/src/imagination/vulkan/pvr_job_common.h
index fd0b4a1e444..56bf81831a9 100644
--- a/src/imagination/vulkan/pvr_job_common.h
+++ b/src/imagination/vulkan/pvr_job_common.h
@@ -30,7 +30,7 @@
 
 #include "hwdef/rogue_hw_defs.h"
 #include "pvr_private.h"
-#include "pvr_winsys.h"
+#include "pvr_types.h"
 
 enum pvr_pbe_gamma {
    PVR_PBE_GAMMA_NONE,
diff --git a/src/imagination/vulkan/pvr_job_context.c b/src/imagination/vulkan/pvr_job_context.c
index cabbfb4be1f..24e460f8a9a 100644
--- a/src/imagination/vulkan/pvr_job_context.c
+++ b/src/imagination/vulkan/pvr_job_context.c
@@ -35,6 +35,7 @@
 #include "pvr_pds.h"
 #include "pvr_private.h"
 #include "pvr_transfer_eot.h"
+#include "pvr_types.h"
 #include "pvr_vdm_load_sr.h"
 #include "pvr_vdm_store_sr.h"
 #include "pvr_winsys.h"
diff --git a/src/imagination/vulkan/pvr_job_context.h b/src/imagination/vulkan/pvr_job_context.h
index a655abf0010..a3aaafe3aaa 100644
--- a/src/imagination/vulkan/pvr_job_context.h
+++ b/src/imagination/vulkan/pvr_job_context.h
@@ -25,6 +25,7 @@
 #define PVR_JOB_CONTEXT_H
 
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 
 /* Support PDS code/data loading/storing to the 'B' shared register state
diff --git a/src/imagination/vulkan/pvr_job_render.c b/src/imagination/vulkan/pvr_job_render.c
index cdb77ffe2e4..fe31f806e8a 100644
--- a/src/imagination/vulkan/pvr_job_render.c
+++ b/src/imagination/vulkan/pvr_job_render.c
@@ -31,12 +31,14 @@
 #include "pvr_bo.h"
 #include "pvr_csb.h"
 #include "pvr_csb_enum_helpers.h"
+#include "pvr_debug.h"
 #include "pvr_job_common.h"
 #include "pvr_job_context.h"
 #include "pvr_job_render.h"
 #include "pvr_pds.h"
 #include "pvr_private.h"
 #include "pvr_rogue_fw.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "util/compiler.h"
 #include "util/macros.h"
diff --git a/src/imagination/vulkan/pvr_job_render.h b/src/imagination/vulkan/pvr_job_render.h
index d2518f8bd93..bdd846ab67c 100644
--- a/src/imagination/vulkan/pvr_job_render.h
+++ b/src/imagination/vulkan/pvr_job_render.h
@@ -30,12 +30,13 @@
 
 #include "hwdef/rogue_hw_defs.h"
 #include "pvr_limits.h"
-#include "pvr_winsys.h"
+#include "pvr_types.h"
 
 struct pvr_device;
 struct pvr_free_list;
 struct pvr_render_ctx;
 struct pvr_rt_dataset;
+struct pvr_winsys_job_bo;
 struct vk_sync;
 
 /* FIXME: Turn 'struct pvr_sub_cmd' into 'struct pvr_job' and change 'struct
diff --git a/src/imagination/vulkan/pvr_pipeline.c b/src/imagination/vulkan/pvr_pipeline.c
index 9d53839871b..ade658c0774 100644
--- a/src/imagination/vulkan/pvr_pipeline.c
+++ b/src/imagination/vulkan/pvr_pipeline.c
@@ -40,7 +40,7 @@
 #include "pvr_pds.h"
 #include "pvr_private.h"
 #include "pvr_shader.h"
-#include "pvr_winsys.h"
+#include "pvr_types.h"
 #include "rogue/rogue.h"
 #include "rogue/rogue_build_data.h"
 #include "util/log.h"
diff --git a/src/imagination/vulkan/pvr_private.h b/src/imagination/vulkan/pvr_private.h
index 15ad7a7632e..401fadb222b 100644
--- a/src/imagination/vulkan/pvr_private.h
+++ b/src/imagination/vulkan/pvr_private.h
@@ -45,6 +45,7 @@
 #include "pvr_job_render.h"
 #include "pvr_limits.h"
 #include "pvr_pds.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "rogue/rogue.h"
 #include "util/bitscan.h"
diff --git a/src/imagination/vulkan/pvr_tex_state.h b/src/imagination/vulkan/pvr_tex_state.h
index f6f18d93173..66f872eb9a6 100644
--- a/src/imagination/vulkan/pvr_tex_state.h
+++ b/src/imagination/vulkan/pvr_tex_state.h
@@ -29,6 +29,7 @@
 
 #include "hwdef/rogue_hw_defs.h"
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "util/macros.h"
 
 /**
diff --git a/src/imagination/vulkan/winsys/pvr_winsys.h b/src/imagination/vulkan/winsys/pvr_winsys.h
index a895f3cf42b..a312ee49c1b 100644
--- a/src/imagination/vulkan/winsys/pvr_winsys.h
+++ b/src/imagination/vulkan/winsys/pvr_winsys.h
@@ -34,8 +34,9 @@
 #include <vulkan/vulkan.h>
 
 #include "hwdef/rogue_hw_defs.h"
-#include "pvr_rogue_fw.h"
 #include "pvr_limits.h"
+#include "pvr_rogue_fw.h"
+#include "pvr_types.h"
 #include "util/macros.h"
 #include "util/vma.h"
 #include "vk_sync.h"
@@ -43,15 +44,6 @@
 struct pvr_device_info;
 struct pvr_device_runtime_info;
 
-/* device virtual address */
-typedef struct pvr_dev_addr {
-   uint64_t addr;
-} pvr_dev_addr_t;
-
-/* clang-format off */
-#define PVR_DEV_ADDR_INVALID (pvr_dev_addr_t){ .addr = 0 }
-/* clang-format on */
-
 struct pvr_winsys_heaps {
    struct pvr_winsys_heap *general_heap;
    struct pvr_winsys_heap *pds_heap;
diff --git a/src/imagination/vulkan/winsys/pvr_winsys_helper.c b/src/imagination/vulkan/winsys/pvr_winsys_helper.c
index 14eb324985f..2f57bd62be0 100644
--- a/src/imagination/vulkan/winsys/pvr_winsys_helper.c
+++ b/src/imagination/vulkan/winsys/pvr_winsys_helper.c
@@ -28,6 +28,7 @@
 #include <xf86drm.h>
 
 #include "pvr_private.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "pvr_winsys_helper.h"
 #include "util/u_atomic.h"
diff --git a/src/imagination/vulkan/winsys/pvr_winsys_helper.h b/src/imagination/vulkan/winsys/pvr_winsys_helper.h
index dbf619a8064..b27f803e1b6 100644
--- a/src/imagination/vulkan/winsys/pvr_winsys_helper.h
+++ b/src/imagination/vulkan/winsys/pvr_winsys_helper.h
@@ -27,7 +27,12 @@
 #include <stdbool.h>
 #include <stdint.h>
 
-#include "pvr_winsys.h"
+#include "pvr_types.h"
+
+struct pvr_winsys;
+struct pvr_winsys_heap;
+struct pvr_winsys_static_data_offsets;
+struct pvr_winsys_vma;
 
 typedef struct pvr_winsys_vma *(*const heap_alloc_reserved_func)(
    struct pvr_winsys_heap *const heap,
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c
index de3393c50fa..6c24ec604ad 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv.c
@@ -38,6 +38,7 @@
 #include "pvr_srv_public.h"
 #include "pvr_srv_sync.h"
 #include "pvr_srv_job_null.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "pvr_winsys_helper.h"
 #include "util/log.h"
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.c
index 11c917092fc..eafe404e9f5 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.c
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.c
@@ -33,6 +33,7 @@
 #include "pvr_srv.h"
 #include "pvr_srv_bo.h"
 #include "pvr_srv_bridge.h"
+#include "pvr_types.h"
 #include "pvr_winsys_helper.h"
 #include "util/u_atomic.h"
 #include "util/bitscan.h"
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.h b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.h
index a924c9a5b64..3a201550543 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.h
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bo.h
@@ -28,6 +28,7 @@
 
 #include "pvr_private.h"
 #include "pvr_srv.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "util/macros.h"
 
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c
index 8aff3014fe5..3b0e48ae4b4 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.c
@@ -33,6 +33,7 @@
 #include "pvr_private.h"
 #include "pvr_srv.h"
 #include "pvr_srv_bridge.h"
+#include "pvr_types.h"
 #include "util/log.h"
 #include "util/macros.h"
 #include "vk_log.h"
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h
index 99f2fdb8026..0df658c9c38 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_bridge.h
@@ -29,7 +29,7 @@
 
 #include "pvr_private.h"
 #include "pvr_srv.h"
-#include "pvr_winsys.h"
+#include "pvr_types.h"
 #include "util/macros.h"
 
 /******************************************************************************
diff --git a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c
index f1379c3de6b..c9a3d456ef7 100644
--- a/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c
+++ b/src/imagination/vulkan/winsys/pvrsrvkm/pvr_srv_job_render.c
@@ -40,6 +40,7 @@
 #include "pvr_srv_job_common.h"
 #include "pvr_srv_job_render.h"
 #include "pvr_srv_sync.h"
+#include "pvr_types.h"
 #include "pvr_winsys.h"
 #include "util/libsync.h"
 #include "util/log.h"



More information about the mesa-commit mailing list