From 8bca29dcf0ae01c23215bbee2193bdde1956def4 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 25 Jan 2022 13:47:12 -0500 Subject: [PATCH] zink: return 256 for PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT this isn't the minimum allowed by the driver, but zink doesn't return the minimum allowed by the driver anyway and hasn't in a very long time instead, it suballocates using a minimum alignment of 256 bytes, so use that instead fixes (in caselists): KHR-GL46.map_buffer_alignment.functional Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_bo.c | 2 +- src/gallium/drivers/zink/zink_screen.c | 2 +- src/gallium/drivers/zink/zink_screen.h | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_bo.c b/src/gallium/drivers/zink/zink_bo.c index 8411b4a85fa..f2292a01029 100644 --- a/src/gallium/drivers/zink/zink_bo.c +++ b/src/gallium/drivers/zink/zink_bo.c @@ -1184,7 +1184,7 @@ zink_bo_init(struct zink_screen *screen) total_mem / 8, screen, (void*)bo_destroy, (void*)bo_can_reclaim); - unsigned min_slab_order = 8; /* 256 bytes */ + unsigned min_slab_order = MIN_SLAB_ORDER; /* 256 bytes */ unsigned max_slab_order = 20; /* 1 MB (slab size = 2 MB) */ unsigned num_slab_orders_per_allocator = (max_slab_order - min_slab_order) / NUM_SLAB_ALLOCATORS; diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index c662fb954b4..fdf7179b2d5 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -554,7 +554,7 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) screen->timestamp_valid_bits > 0; case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT: - return screen->info.props.limits.minMemoryMapAlignment; + return 1 << MIN_SLAB_ORDER; case PIPE_CAP_CUBE_MAP_ARRAY: return screen->info.feats.features.imageCubeArray; diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h index 5b3eba1b011..3e0a3ea031b 100644 --- a/src/gallium/drivers/zink/zink_screen.h +++ b/src/gallium/drivers/zink/zink_screen.h @@ -61,6 +61,7 @@ enum zink_descriptor_type; #define ZINK_DEBUG_VALIDATION 0x8 #define NUM_SLAB_ALLOCATORS 3 +#define MIN_SLAB_ORDER 8 enum zink_descriptor_mode { ZINK_DESCRIPTOR_MODE_AUTO,