void * vl_vb_get_ves_mv(struct pipe_context *pipe) { struct pipe_vertex_element vertex_elems[NUM_VS_INPUTS]; assert(pipe); memset(&vertex_elems, 0, sizeof(vertex_elems)); vertex_elems[VS_I_RECT] = vl_vb_get_quad_vertex_element(); /* Position element */ vertex_elems[VS_I_VPOS].src_format = PIPE_FORMAT_R16G16_SSCALED; vl_vb_element_helper(&vertex_elems[VS_I_VPOS], 1, 1); /* motion vector TOP element */ vertex_elems[VS_I_MV_TOP].src_format = PIPE_FORMAT_R16G16B16A16_SSCALED; /* motion vector BOTTOM element */ vertex_elems[VS_I_MV_BOTTOM].src_format = PIPE_FORMAT_R16G16B16A16_SSCALED; vl_vb_element_helper(&vertex_elems[VS_I_MV_TOP], 2, 2); return pipe->create_vertex_elements_state(pipe, NUM_VS_INPUTS, vertex_elems); }
void * vl_vb_get_ves_ycbcr(struct pipe_context *pipe) { struct pipe_vertex_element vertex_elems[NUM_VS_INPUTS]; assert(pipe); memset(&vertex_elems, 0, sizeof(vertex_elems)); vertex_elems[VS_I_RECT] = vl_vb_get_quad_vertex_element(); /* Position element */ vertex_elems[VS_I_VPOS].src_format = PIPE_FORMAT_R8G8B8A8_USCALED; vl_vb_element_helper(&vertex_elems[VS_I_VPOS], 1, 1); /* block num element */ vertex_elems[VS_I_BLOCK_NUM].src_format = PIPE_FORMAT_R16G16_SSCALED; vl_vb_element_helper(&vertex_elems[VS_I_BLOCK_NUM], 1, 2); return pipe->create_vertex_elements_state(pipe, 3, vertex_elems); }