[PATCH i-g-t 02/14] lib/igt_draw: Extend the API to support 64bpp colors
Ville Syrjala
ville.syrjala at linux.intel.com
Fri Oct 4 10:41:09 UTC 2024
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
Pass the color as uint64_t to igt_draw in preparation
for supporting 64bpp pixel formats.
Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
lib/igt_draw.c | 28 ++++++++++++++--------------
lib/igt_draw.h | 6 +++---
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/lib/igt_draw.c b/lib/igt_draw.c
index 3ebfaad6ef31..917cc37a2175 100644
--- a/lib/igt_draw.c
+++ b/lib/igt_draw.c
@@ -363,7 +363,7 @@ static void tile4_pos_to_x_y_linear(int tiled_pos, uint32_t stride,
*y = tile_origin_y + subtile_origin_y + oword_num;
}
-static void set_pixel(void *_ptr, int index, uint32_t color, int bpp)
+static void set_pixel(void *_ptr, int index, uint64_t color, int bpp)
{
if (bpp == 16) {
uint16_t *ptr = _ptr;
@@ -403,7 +403,7 @@ static void switch_blt_tiling(struct intel_bb *ibb, uint32_t tiling, bool on)
}
static void draw_rect_ptr_linear(void *ptr, uint32_t stride,
- struct rect *rect, uint32_t color, int bpp)
+ struct rect *rect, uint64_t color, int bpp)
{
int x, y, line_begin;
@@ -415,7 +415,7 @@ static void draw_rect_ptr_linear(void *ptr, uint32_t stride,
}
static void draw_rect_ptr_tiled(void *ptr, uint32_t stride, uint32_t tiling,
- int swizzle, struct rect *rect, uint32_t color,
+ int swizzle, struct rect *rect, uint64_t color,
int bpp)
{
int x, y, pos;
@@ -444,7 +444,7 @@ static void draw_rect_ptr_tiled(void *ptr, uint32_t stride, uint32_t tiling,
}
static void draw_rect_mmap_cpu(int fd, struct buf_data *buf, struct rect *rect,
- uint32_t tiling, uint32_t swizzle, uint32_t color)
+ uint32_t tiling, uint32_t swizzle, uint64_t color)
{
void *ptr;
@@ -479,7 +479,7 @@ static void draw_rect_mmap_cpu(int fd, struct buf_data *buf, struct rect *rect,
}
static void draw_rect_mmap_gtt(int fd, struct buf_data *buf, struct rect *rect,
- uint32_t color)
+ uint64_t color)
{
void *ptr;
@@ -495,7 +495,7 @@ static void draw_rect_mmap_gtt(int fd, struct buf_data *buf, struct rect *rect,
}
static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
- uint32_t tiling, uint32_t swizzle, uint32_t color)
+ uint32_t tiling, uint32_t swizzle, uint64_t color)
{
void *ptr;
@@ -542,7 +542,7 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
}
static void draw_rect_pwrite_untiled(int fd, struct buf_data *buf,
- struct rect *rect, uint32_t color)
+ struct rect *rect, uint64_t color)
{
int i, y, offset;
int pixel_size = buf->bpp / 8;
@@ -559,7 +559,7 @@ static void draw_rect_pwrite_untiled(int fd, struct buf_data *buf,
static void draw_rect_pwrite_tiled(int fd, struct buf_data *buf,
uint32_t tiling, struct rect *rect,
- uint32_t color, uint32_t swizzle)
+ uint64_t color, uint32_t swizzle)
{
int i;
int tiled_pos, x, y, pixel_size;
@@ -624,7 +624,7 @@ static void draw_rect_pwrite_tiled(int fd, struct buf_data *buf,
static void draw_rect_pwrite(int fd, struct buf_data *buf,
struct rect *rect, uint32_t tiling,
- uint32_t swizzle, uint32_t color)
+ uint32_t swizzle, uint64_t color)
{
switch (tiling) {
case I915_TILING_NONE:
@@ -674,7 +674,7 @@ static struct intel_buf *create_buf(int fd, struct buf_ops *bops,
static void draw_rect_blt(int fd, struct cmd_data *cmd_data,
struct buf_data *buf, struct rect *rect,
- uint32_t tiling, uint32_t color)
+ uint32_t tiling, uint64_t color)
{
struct intel_bb *ibb;
struct intel_buf *dst;
@@ -785,7 +785,7 @@ static void draw_rect_blt(int fd, struct cmd_data *cmd_data,
static void draw_rect_render(int fd, struct cmd_data *cmd_data,
struct buf_data *buf, struct rect *rect,
- uint32_t tiling, uint32_t color)
+ uint32_t tiling, uint64_t color)
{
struct intel_buf *src, *dst;
uint32_t devid = intel_get_drm_devid(fd);
@@ -858,7 +858,7 @@ void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
int buf_width, int buf_height,
uint32_t tiling, enum igt_draw_method method,
int rect_x, int rect_y, int rect_w, int rect_h,
- uint32_t color, int bpp)
+ uint64_t color, int bpp)
{
uint32_t buf_tiling, swizzle;
@@ -932,7 +932,7 @@ void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
void igt_draw_rect_fb(int fd, struct buf_ops *bops,
uint32_t ctx, struct igt_fb *fb,
enum igt_draw_method method, int rect_x, int rect_y,
- int rect_w, int rect_h, uint32_t color)
+ int rect_w, int rect_h, uint64_t color)
{
igt_draw_rect(fd, bops, ctx, fb->gem_handle, fb->size, fb->strides[0],
fb->width, fb->height,
@@ -949,7 +949,7 @@ void igt_draw_rect_fb(int fd, struct buf_ops *bops,
*
* This function just paints an igt_fb using the provided color.
*/
-void igt_draw_fill_fb(int fd, struct igt_fb *fb, uint32_t color)
+void igt_draw_fill_fb(int fd, struct igt_fb *fb, uint64_t color)
{
igt_draw_rect_fb(fd, NULL, 0, fb,
igt_draw_supports_method(fd, IGT_DRAW_MMAP_GTT) ?
diff --git a/lib/igt_draw.h b/lib/igt_draw.h
index 1dec95e86e0f..33763812ea4f 100644
--- a/lib/igt_draw.h
+++ b/lib/igt_draw.h
@@ -57,13 +57,13 @@ void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
int buf_width, int buf_height,
uint32_t tiling, enum igt_draw_method method,
int rect_x, int rect_y, int rect_w, int rect_h,
- uint32_t color, int bpp);
+ uint64_t color, int bpp);
void igt_draw_rect_fb(int fd, struct buf_ops *bops,
uint32_t ctx, struct igt_fb *fb,
enum igt_draw_method method, int rect_x, int rect_y,
- int rect_w, int rect_h, uint32_t color);
+ int rect_w, int rect_h, uint64_t color);
-void igt_draw_fill_fb(int fd, struct igt_fb *fb, uint32_t color);
+void igt_draw_fill_fb(int fd, struct igt_fb *fb, uint64_t color);
#endif /* __IGT_DRAW_H__ */
--
2.45.2
More information about the igt-dev
mailing list