From dc770eb9bb7f3e87c4fd652211ab1e2fb30b37b2 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Wed, 16 Nov 2022 13:18:54 +0100 Subject: [PATCH] zink: check maxImageDimension1D as well as maxImageDimension2D According to the docs for PIPE_CAP_MAX_TEXTURE_2D_SIZE, it's the limit both for 2D *and* 1D textures. So let's take the min of the two vulkan features here instead of assuming they're the same. Reviewed-by: Jesse Natalie Part-of: --- docs/drivers/zink.rst | 1 + src/gallium/drivers/zink/VP_ZINK_requirements.json | 1 + src/gallium/drivers/zink/zink_screen.c | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index 989ceafe80b..af483c16af8 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -157,6 +157,7 @@ supported: * ``VkPhysicalDeviceLimits`` + * ``maxImageDimension1D`` ≥ 16384 * ``maxImageDimension2D`` ≥ 16384 * ``maxViewports`` ≥ 16 diff --git a/src/gallium/drivers/zink/VP_ZINK_requirements.json b/src/gallium/drivers/zink/VP_ZINK_requirements.json index 262a690993d..83d73f05c5c 100644 --- a/src/gallium/drivers/zink/VP_ZINK_requirements.json +++ b/src/gallium/drivers/zink/VP_ZINK_requirements.json @@ -153,6 +153,7 @@ "properties": { "VkPhysicalDeviceProperties": { "limits": { + "maxImageDimension1D": 16384, "maxImageDimension2D": 16384, "maxViewports": 16 } diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index b0182224800..3304ed492d6 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -676,7 +676,8 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) } case PIPE_CAP_MAX_TEXTURE_2D_SIZE: - return screen->info.props.limits.maxImageDimension2D; + return MIN2(screen->info.props.limits.maxImageDimension1D, + screen->info.props.limits.maxImageDimension2D); case PIPE_CAP_MAX_TEXTURE_3D_LEVELS: return 1 + util_logbase2(screen->info.props.limits.maxImageDimension3D); case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: