lavapipe: interpret inputRate as an enum-value

This isn't an integer, it's an enum, We need to support
VK_EXT_vertex_attribute_divisor if we want to support using values other
than 0 and 1 here.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7930>
This commit is contained in:
Erik Faye-Lund
2020-12-04 19:45:00 +01:00
committed by Dave Airlie
parent eec9d67e44
commit 5b0b03733a
+12 -1
View File
@@ -574,7 +574,18 @@ static void handle_graphics_pipeline(struct lvp_cmd_buffer_entry *cmd,
state->ve[location].src_offset = vi->pVertexAttributeDescriptions[i].offset;
state->ve[location].vertex_buffer_index = vi->pVertexAttributeDescriptions[i].binding;
state->ve[location].src_format = vk_format_to_pipe(vi->pVertexAttributeDescriptions[i].format);
state->ve[location].instance_divisor = vi->pVertexBindingDescriptions[vi->pVertexAttributeDescriptions[i].binding].inputRate;
switch (vi->pVertexBindingDescriptions[vi->pVertexAttributeDescriptions[i].binding].inputRate) {
case VK_VERTEX_INPUT_RATE_VERTEX:
state->ve[location].instance_divisor = 0;
break;
case VK_VERTEX_INPUT_RATE_INSTANCE:
state->ve[location].instance_divisor = 1;
break;
default:
assert(0);
break;
}
if ((int)location > max_location)
max_location = location;