diff --git a/src/imagination/vulkan/pvr_physical_device.c b/src/imagination/vulkan/pvr_physical_device.c index 4d7f58eb3dd..a8cb9664acd 100644 --- a/src/imagination/vulkan/pvr_physical_device.c +++ b/src/imagination/vulkan/pvr_physical_device.c @@ -600,7 +600,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 */