mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 03:08:05 +02:00
gallium: only call vertex/prim queue flush when there is something to flush
This commit is contained in:
parent
85d7e7ceee
commit
f7e64c323f
3 changed files with 17 additions and 4 deletions
|
|
@ -63,8 +63,7 @@ static void draw_prim_queue_flush( struct draw_context *draw )
|
|||
fprintf(stdout,"Flushing with %d prims, %d verts\n",
|
||||
draw->pq.queue_nr, draw->vs.queue_nr);
|
||||
|
||||
if (draw->pq.queue_nr == 0)
|
||||
return;
|
||||
assert (draw->pq.queue_nr != 0);
|
||||
|
||||
/* NOTE: we cannot save draw->pipeline->first in a local var because
|
||||
* draw->pipeline->first is often changed by the first call to tri(),
|
||||
|
|
@ -109,10 +108,12 @@ void draw_do_flush( struct draw_context *draw, unsigned flags )
|
|||
|
||||
|
||||
if (flags >= DRAW_FLUSH_SHADER_QUEUE) {
|
||||
draw_vertex_shader_queue_flush(draw);
|
||||
if (draw->vs.queue_nr)
|
||||
draw_vertex_shader_queue_flush(draw);
|
||||
|
||||
if (flags >= DRAW_FLUSH_PRIM_QUEUE) {
|
||||
draw_prim_queue_flush(draw);
|
||||
if (draw->pq.queue_nr)
|
||||
draw_prim_queue_flush(draw);
|
||||
|
||||
if (flags >= DRAW_FLUSH_VERTEX_CACHE) {
|
||||
draw_vertex_cache_invalidate(draw);
|
||||
|
|
|
|||
|
|
@ -158,6 +158,14 @@ FETCH_ATTRIB( A8R8G8B8_UNORM, 4, CVT_8_UNORM )
|
|||
|
||||
static fetch_func get_fetch_func( enum pipe_format format )
|
||||
{
|
||||
#if 0
|
||||
{
|
||||
char tmp[80];
|
||||
pf_sprint_name(tmp, format);
|
||||
_mesa_printf("%s: %s\n", __FUNCTION__, tmp);
|
||||
}
|
||||
#endif
|
||||
|
||||
switch (format) {
|
||||
case PIPE_FORMAT_R64_FLOAT:
|
||||
return fetch_R64_FLOAT;
|
||||
|
|
@ -317,6 +325,8 @@ void draw_update_vertex_fetch( struct draw_context *draw )
|
|||
{
|
||||
unsigned nr_attrs, i;
|
||||
|
||||
// _mesa_printf("%s\n", __FUNCTION__);
|
||||
|
||||
/* this may happend during context init */
|
||||
if (!draw->vertex_shader)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -201,6 +201,8 @@ draw_vertex_shader_queue_flush(struct draw_context *draw)
|
|||
{
|
||||
unsigned i, j;
|
||||
|
||||
assert(draw->vs.queue_nr != 0);
|
||||
|
||||
/* XXX: do this on statechange:
|
||||
*/
|
||||
draw_update_vertex_fetch( draw );
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue