[Mesa-dev] [PATCH 3/3] anv: Implement VK_EXT_vertex_attribute_divisor

Caio Marcelo de Oliveira Filho caio.oliveira at intel.com
Mon Jul 2 22:24:48 UTC 2018


Patches 1-3 are

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>

But consider comment below.


> @@ -1430,6 +1431,18 @@ anv_pipeline_init(struct anv_pipeline *pipeline,
>           anv_subpass_view_count(pipeline->subpass);
>     }
>  
> +   const VkPipelineVertexInputDivisorStateCreateInfoEXT *vi_div_state =
> +      vk_find_struct_const(pCreateInfo->pNext,
> +                           PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT);
> +   if (vi_div_state) {
> +      for (uint32_t i = 0; i < vi_div_state->vertexBindingDivisorCount; i++) {
> +         const VkVertexInputBindingDivisorDescriptionEXT *desc =
> +            &vi_div_state->pVertexBindingDivisors[i];
> +
> +         pipeline->vb[desc->binding].instance_divisor *= desc->divisor;
> +      }
> +   }

I don't think the spec restricts the divisor descriptions to be unique
(i.e. only one description per binding), so to be slightly more robust
maybe do

    pipeline->vb[desc->binding].instance_divisor *= anv_subpass_view_count(pipeline->subpass) * desc->divisor;



Thanks,
Caio


More information about the mesa-dev mailing list