[igt-dev] [PATCH i-g-t 1/6] lib/intel_bufops: Add bufops reference and relaxate stride requirement
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Tue May 12 08:23:57 UTC 2020
Add bufops reference to intel_buf to allow acquire drm fd against which
buffer was created.
Relax stride limitation for intel_buf for non-tiled buffers.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
---
lib/intel_bufops.c | 20 +++++++++++++++++++-
lib/intel_bufops.h | 3 +++
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index 804b2a0a..cdf6b114 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -686,6 +686,8 @@ static void __intel_buf_init(struct buf_ops *bops,
memset(buf, 0, sizeof(*buf));
+ buf->bops = bops;
+
if (compression) {
int aux_width, aux_height;
@@ -721,7 +723,10 @@ static void __intel_buf_init(struct buf_ops *bops,
size = buf->aux.offset + aux_width * aux_height;
} else {
- buf->stride = ALIGN(width * (bpp / 8), 128);
+ if (buf->tiling)
+ buf->stride = ALIGN(width * (bpp / 8), 128);
+ else
+ buf->stride = width * (bpp / 8);
buf->size = buf->stride * height;
buf->tiling = tiling;
buf->bpp = bpp;
@@ -1038,6 +1043,19 @@ void buf_ops_destroy(struct buf_ops *bops)
free(bops);
}
+/**
+ * buf_ops_getfd
+ * @bops: pointer to buf_ops
+ *
+ * Returns: drm fd
+ */
+int buf_ops_getfd(struct buf_ops *bops)
+{
+ igt_assert(bops);
+
+ return bops->fd;
+}
+
/**
* buf_ops_set_software_tiling
* @bops: pointer to buf_ops
diff --git a/lib/intel_bufops.h b/lib/intel_bufops.h
index f3d6aed8..cd7b74bd 100644
--- a/lib/intel_bufops.h
+++ b/lib/intel_bufops.h
@@ -2,10 +2,12 @@
#define __INTEL_BUFOPS_H__
#include <stdint.h>
+#include "igt_aux.h"
struct buf_ops;
struct intel_buf {
+ struct buf_ops *bops;
uint32_t handle;
uint32_t stride;
uint32_t tiling;
@@ -58,6 +60,7 @@ intel_buf_aux_height(int gen, const struct intel_buf *buf)
struct buf_ops *buf_ops_create(int fd);
void buf_ops_destroy(struct buf_ops *bops);
+int buf_ops_getfd(struct buf_ops *bops);
bool buf_ops_set_software_tiling(struct buf_ops *bops,
uint32_t tiling,
--
2.26.0
More information about the igt-dev
mailing list