diff --git a/src/imagination/vulkan/pvr_physical_device.c b/src/imagination/vulkan/pvr_physical_device.c index ccb1efc154e..83b11d89a02 100644 --- a/src/imagination/vulkan/pvr_physical_device.c +++ b/src/imagination/vulkan/pvr_physical_device.c @@ -599,7 +599,17 @@ static bool pvr_physical_device_get_properties( .maxVertexInputBindings = 16U, .maxVertexInputAttributeOffset = 2048U - 1U, .maxVertexInputBindingStride = 2048U, - .maxVertexOutputComponents = 64U, + + /* + * This should probably come from pvr_get_max_user_vertex_output_components + * however Zink reserves 64 of these for streamout and gles3 + * requires a min value of 64 meaning there is an implied minimum of 128. + * On cores where this value would be 64 we can get away with increasing + * this value to 128 as long as the extra 64 are only used for streamout + * which will always be the case as we don't support geometry or + * tesselation shaders on such cores. + */ + .maxVertexOutputComponents = 128U, /* Tessellation Limits */ /* Requires tessellationShader */