mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
gallium: added draw_num_vs_outputs() to query number of post-transform vertex attribs
This commit is contained in:
parent
627efcaa80
commit
1774b177b8
3 changed files with 19 additions and 2 deletions
|
|
@ -281,6 +281,19 @@ draw_find_vs_output(struct draw_context *draw,
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return number of vertex shader outputs.
|
||||
*/
|
||||
uint
|
||||
draw_num_vs_outputs(struct draw_context *draw)
|
||||
{
|
||||
uint count = draw->vertex_shader->info.num_outputs;
|
||||
if (draw->extra_vp_outputs.slot >= 0)
|
||||
count++;
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Allocate space for temporary post-transform vertices, such as for clipping.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -112,6 +112,10 @@ int
|
|||
draw_find_vs_output(struct draw_context *draw,
|
||||
uint semantic_name, uint semantic_index);
|
||||
|
||||
uint
|
||||
draw_num_vs_outputs(struct draw_context *draw);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Vertex shader functions
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ softpipe_get_vertex_info(struct softpipe_context *softpipe)
|
|||
|
||||
if (vinfo->num_attribs == 0) {
|
||||
/* compute vertex layout now */
|
||||
const struct pipe_shader_state *vs = &softpipe->vs->shader;
|
||||
const struct sp_fragment_shader *spfs = softpipe->fs;
|
||||
const enum interp_mode colorInterp
|
||||
= softpipe->rasterizer->flatshade ? INTERP_CONSTANT : INTERP_LINEAR;
|
||||
|
|
@ -74,7 +73,8 @@ softpipe_get_vertex_info(struct softpipe_context *softpipe)
|
|||
struct vertex_info *vinfo_vbuf = &softpipe->vertex_info_vbuf;
|
||||
vinfo_vbuf->num_attribs = 0;
|
||||
draw_emit_vertex_attr(vinfo_vbuf, EMIT_ALL, INTERP_NONE, 0);
|
||||
vinfo_vbuf->size = 4 * vs->num_outputs
|
||||
/* size in dwords or floats */
|
||||
vinfo_vbuf->size = 4 * draw_num_vs_outputs(softpipe->draw)
|
||||
+ sizeof(struct vertex_header) / 4;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue