summaryrefslogtreecommitdiff
path: root/src/broadcom/common/v3d_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/broadcom/common/v3d_util.h')
-rw-r--r--src/broadcom/common/v3d_util.h47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/broadcom/common/v3d_util.h b/src/broadcom/common/v3d_util.h
index b9804f235ae..cc6b57b27b2 100644
--- a/src/broadcom/common/v3d_util.h
+++ b/src/broadcom/common/v3d_util.h
@@ -1,5 +1,5 @@
/*
- * Copyright © 2021 Raspberry Pi
+ * Copyright © 2021 Raspberry Pi Ltd
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -24,7 +24,10 @@
#ifndef V3D_UTIL_H
#define V3D_UTIL_H
+#include "util/macros.h"
#include "common/v3d_device_info.h"
+#include "compiler/shader_enums.h"
+#include "util/format/u_formats.h"
uint32_t
v3d_csd_choose_workgroups_per_supergroup(struct v3d_device_info *devinfo,
@@ -34,4 +37,46 @@ v3d_csd_choose_workgroups_per_supergroup(struct v3d_device_info *devinfo,
uint32_t num_wgs,
uint32_t wg_size);
+void
+v3d_choose_tile_size(const struct v3d_device_info *devinfo,
+ uint32_t color_attachment_count,
+ uint32_t max_internal_bpp,
+ uint32_t total_color_bpp,
+ bool msaa,
+ bool double_buffer,
+ uint32_t *width,
+ uint32_t *height);
+
+uint32_t
+v3d_translate_pipe_swizzle(enum pipe_swizzle swizzle);
+
+uint32_t
+v3d_hw_prim_type(enum mesa_prim prim_type);
+
+uint32_t
+v3d_internal_bpp_words(uint32_t internal_bpp);
+
+/* Some configuration packets want the size on log2, but starting at 0 for
+ * size 8.
+ */
+static inline uint8_t
+log2_tile_size(uint32_t size)
+{
+ switch(size) {
+ case 8:
+ return 0;
+ case 16:
+ return 1;
+ case 32:
+ return 2;
+ case 64:
+ return 3;
+ default:
+ unreachable("Unsupported tile width/height");
+ }
+}
+
+uint32_t
+v3d_compute_rt_row_row_stride_128_bits(uint32_t tile_width,
+ uint32_t bpp);
#endif