From 027c01bd8f6d1551e856c4d0771147d1212aac28 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 29 Apr 2024 09:17:22 +0200 Subject: [PATCH] v3d,v3dv: stop hard-coding max attrib divisor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/common/v3d_limits.h | 2 ++ src/broadcom/vulkan/v3dv_device.c | 4 ++-- src/broadcom/vulkan/v3dvx_pipeline.c | 2 +- src/gallium/drivers/v3d/v3dx_state.c | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/broadcom/common/v3d_limits.h b/src/broadcom/common/v3d_limits.h index 354c8784914cf..e8da10523850b 100644 --- a/src/broadcom/common/v3d_limits.h +++ b/src/broadcom/common/v3d_limits.h @@ -69,4 +69,6 @@ #define V3D_MAX_ARRAY_LAYERS 2048 +#define V3D_MAX_VERTEX_ATTRIB_DIVISOR 0xffff + #endif /* V3D_LIMITS_H */ diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index b88923ca51b1c..8bd20f62c7e86 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -1459,13 +1459,13 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: { VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *props = (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT *)ext; - props->maxVertexAttribDivisor = 0xffff; + props->maxVertexAttribDivisor = V3D_MAX_VERTEX_ATTRIB_DIVISOR; break; } case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR: { VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR *props = (VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR *)ext; - props->maxVertexAttribDivisor = 0xffff; + props->maxVertexAttribDivisor = V3D_MAX_VERTEX_ATTRIB_DIVISOR; props->supportsNonZeroFirstInstance = true; break; } diff --git a/src/broadcom/vulkan/v3dvx_pipeline.c b/src/broadcom/vulkan/v3dvx_pipeline.c index 616a7730cd483..125adfa7a4b05 100644 --- a/src/broadcom/vulkan/v3dvx_pipeline.c +++ b/src/broadcom/vulkan/v3dvx_pipeline.c @@ -616,7 +616,7 @@ pack_shader_state_attribute_record(struct v3dv_pipeline *pipeline, attr.read_as_int_uint = desc->channel[0].pure_integer; attr.instance_divisor = MIN2(pipeline->vb[binding].instance_divisor, - 0xffff); + V3D_MAX_VERTEX_ATTRIB_DIVISOR); attr.type = get_attr_type(desc); } } diff --git a/src/gallium/drivers/v3d/v3dx_state.c b/src/gallium/drivers/v3d/v3dx_state.c index 389c744300382..de66640e183e5 100644 --- a/src/gallium/drivers/v3d/v3dx_state.c +++ b/src/gallium/drivers/v3d/v3dx_state.c @@ -374,7 +374,7 @@ v3d_vertex_state_create(struct pipe_context *pctx, unsigned num_elements, attr.normalized_int_type = desc->channel[0].normalized; attr.read_as_int_uint = desc->channel[0].pure_integer; attr.instance_divisor = MIN2(elem->instance_divisor, - 0xffff); + V3D_MAX_VERTEX_ATTRIB_DIVISOR); switch (desc->channel[0].type) { case UTIL_FORMAT_TYPE_FLOAT: