X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fsvga%2Fsvga_swtnl_state.c;h=816fef1c4ea4ec8c26a932754cb184e00f263807;hb=8a4b0d852c1f28c302e0df6fa63dbc08a32bc683;hp=4d21f4f0e6029bf238e11c7bbe7895f31dc9b037;hpb=2dbc20e45689e09766552517a74e2270e49817b5;p=mesa.git diff --git a/src/gallium/drivers/svga/svga_swtnl_state.c b/src/gallium/drivers/svga/svga_swtnl_state.c index 4d21f4f0e60..816fef1c4ea 100644 --- a/src/gallium/drivers/svga/svga_swtnl_state.c +++ b/src/gallium/drivers/svga/svga_swtnl_state.c @@ -48,7 +48,8 @@ #define SVGA_TRIANGLE_ADJ_Y -0.5f -static void set_draw_viewport( struct svga_context *svga ) +static void +set_draw_viewport(struct svga_context *svga) { struct pipe_viewport_state vp = svga->curr.viewport; float adjx = 0.0f; @@ -84,6 +85,9 @@ static void set_draw_viewport( struct svga_context *svga ) adjx += SVGA_TRIANGLE_ADJ_X; adjy += SVGA_TRIANGLE_ADJ_Y; break; + default: + /* nothing */ + break; } } @@ -94,37 +98,38 @@ static void set_draw_viewport( struct svga_context *svga ) } static enum pipe_error -update_swtnl_draw( struct svga_context *svga, - unsigned dirty ) +update_swtnl_draw(struct svga_context *svga, unsigned dirty) { - draw_flush( svga->swtnl.draw ); + SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_SWTNLUPDATEDRAW); + + draw_flush(svga->swtnl.draw); - if (dirty & SVGA_NEW_VS) + if (dirty & SVGA_NEW_VS) draw_bind_vertex_shader(svga->swtnl.draw, svga->curr.vs->draw_shader); - if (dirty & SVGA_NEW_FS) + if (dirty & SVGA_NEW_FS) draw_bind_fragment_shader(svga->swtnl.draw, svga->curr.fs->draw_shader); if (dirty & SVGA_NEW_VBUFFER) draw_set_vertex_buffers(svga->swtnl.draw, 0, - svga->curr.num_vertex_buffers, + svga->curr.num_vertex_buffers, svga->curr.vb); if (dirty & SVGA_NEW_VELEMENT) - draw_set_vertex_elements(svga->swtnl.draw, - svga->curr.velems->count, - svga->curr.velems->velem ); + draw_set_vertex_elements(svga->swtnl.draw, + svga->curr.velems->count, + svga->curr.velems->velem); if (dirty & SVGA_NEW_CLIP) - draw_set_clip_state(svga->swtnl.draw, + draw_set_clip_state(svga->swtnl.draw, &svga->curr.clip); if (dirty & (SVGA_NEW_VIEWPORT | - SVGA_NEW_REDUCED_PRIMITIVE | + SVGA_NEW_REDUCED_PRIMITIVE | SVGA_NEW_RAST)) - set_draw_viewport( svga ); + set_draw_viewport(svga); if (dirty & SVGA_NEW_RAST) draw_set_rasterizer_state(svga->swtnl.draw, @@ -137,10 +142,11 @@ update_swtnl_draw( struct svga_context *svga, * format for no bound depth (PIPE_FORMAT_NONE). */ if (dirty & SVGA_NEW_FRAME_BUFFER) - draw_set_zs_format(svga->swtnl.draw, + draw_set_zs_format(svga->swtnl.draw, (svga->curr.framebuffer.zsbuf) ? svga->curr.framebuffer.zsbuf->format : PIPE_FORMAT_NONE); + SVGA_STATS_TIME_POP(svga_sws(svga)); return PIPE_OK; } @@ -205,7 +211,8 @@ svga_vdecl_to_input_element(struct svga_context *svga, ret = SVGA3D_vgpu10_DefineElementLayout(svga->swc, num_decls, id, elements); if (ret != PIPE_OK) { svga_context_flush(svga, NULL); - ret = SVGA3D_vgpu10_DefineElementLayout(svga->swc, num_decls, id, elements); + ret = SVGA3D_vgpu10_DefineElementLayout(svga->swc, num_decls, + id, elements); assert(ret == PIPE_OK); } @@ -214,7 +221,7 @@ svga_vdecl_to_input_element(struct svga_context *svga, enum pipe_error -svga_swtnl_update_vdecl( struct svga_context *svga ) +svga_swtnl_update_vdecl(struct svga_context *svga) { struct svga_vbuf_render *svga_render = svga_vbuf_render(svga->swtnl.backend); struct draw_context *draw = svga->swtnl.draw; @@ -227,6 +234,8 @@ svga_swtnl_update_vdecl( struct svga_context *svga ) unsigned i; int any_change; + SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_SWTNLUPDATEVDECL); + memset(vinfo, 0, sizeof(*vinfo)); memset(vdecl, 0, sizeof(vdecl)); @@ -245,7 +254,7 @@ svga_swtnl_update_vdecl( struct svga_context *svga ) nr_decls++; for (i = 0; i < fs->base.info.num_inputs; i++) { - const unsigned sem_name = fs->base.info.input_semantic_name[i]; + const enum tgsi_semantic sem_name = fs->base.info.input_semantic_name[i]; const unsigned sem_index = fs->base.info.input_semantic_index[i]; src = draw_find_shader_output(draw, sem_name, sem_index); @@ -279,6 +288,7 @@ svga_swtnl_update_vdecl( struct svga_context *svga ) nr_decls++; break; case TGSI_SEMANTIC_POSITION: + case TGSI_SEMANTIC_FACE: /* generated internally, not a vertex shader output */ break; default: @@ -299,7 +309,7 @@ svga_swtnl_update_vdecl( struct svga_context *svga ) enum pipe_error ret; if (!any_change && svga_render->layout_id != SVGA3D_INVALID_ID) { - return PIPE_OK; + goto done; } if (svga_render->layout_id != SVGA3D_INVALID_ID) { @@ -343,21 +353,22 @@ svga_swtnl_update_vdecl( struct svga_context *svga ) } else { if (!any_change) - return PIPE_OK; + goto done; } memcpy(svga_render->vdecl, vdecl, sizeof(vdecl)); svga->swtnl.new_vdecl = TRUE; - return 0; +done: + SVGA_STATS_TIME_POP(svga_sws(svga)); + return PIPE_OK; } static enum pipe_error -update_swtnl_vdecl( struct svga_context *svga, - unsigned dirty ) +update_swtnl_vdecl(struct svga_context *svga, unsigned dirty) { - return svga_swtnl_update_vdecl( svga ); + return svga_swtnl_update_vdecl(svga); }