X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgallium%2Fdrivers%2Fsvga%2Fsvga_state_fs.c;h=327d17af92110beecac94ddbdfe2a3afaa868130;hb=ee5f5e226906ff4e18f34d0e7d41aa82dcf51f70;hp=c244d5352d9c2c90d78621c1d591dfdbf14fd6d8;hpb=005c8e01062e8e88a86904b955d5422742bd32e7;p=mesa.git diff --git a/src/gallium/drivers/svga/svga_state_fs.c b/src/gallium/drivers/svga/svga_state_fs.c index c244d5352d9..327d17af921 100644 --- a/src/gallium/drivers/svga/svga_state_fs.c +++ b/src/gallium/drivers/svga/svga_state_fs.c @@ -63,7 +63,7 @@ get_dummy_fragment_shader(void) struct ureg_dst dst; unsigned num_tokens; - ureg = ureg_create(TGSI_PROCESSOR_FRAGMENT); + ureg = ureg_create(PIPE_SHADER_FRAGMENT); if (!ureg) return NULL; @@ -90,7 +90,8 @@ translate_fragment_program(struct svga_context *svga, PIPE_SHADER_FRAGMENT); } else { - return svga_tgsi_vgpu9_translate(&fs->base, key, PIPE_SHADER_FRAGMENT); + return svga_tgsi_vgpu9_translate(svga, &fs->base, key, + PIPE_SHADER_FRAGMENT); } } @@ -179,7 +180,7 @@ make_fs_key(const struct svga_context *svga, struct svga_fragment_shader *fs, struct svga_compile_key *key) { - const unsigned shader = PIPE_SHADER_FRAGMENT; + const enum pipe_shader_type shader = PIPE_SHADER_FRAGMENT; unsigned i; memset(key, 0, sizeof *key); @@ -406,6 +407,8 @@ emit_hw_fs(struct svga_context *svga, unsigned dirty) struct svga_fragment_shader *fs = svga->curr.fs; struct svga_compile_key key; + SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_EMITFS); + /* SVGA_NEW_BLEND * SVGA_NEW_TEXTURE_BINDING * SVGA_NEW_RAST @@ -417,13 +420,13 @@ emit_hw_fs(struct svga_context *svga, unsigned dirty) */ ret = make_fs_key(svga, fs, &key); if (ret != PIPE_OK) - return ret; + goto done; variant = svga_search_shader_key(&fs->base, &key); if (!variant) { ret = compile_fs(svga, fs, &key, &variant); if (ret != PIPE_OK) - return ret; + goto done; } assert(variant); @@ -431,7 +434,7 @@ emit_hw_fs(struct svga_context *svga, unsigned dirty) if (variant != svga->state.hw_draw.fs) { ret = svga_set_shader(svga, SVGA3D_SHADERTYPE_PS, variant); if (ret != PIPE_OK) - return ret; + goto done; svga->rebind.flags.fs = FALSE; @@ -439,7 +442,9 @@ emit_hw_fs(struct svga_context *svga, unsigned dirty) svga->state.hw_draw.fs = variant; } - return PIPE_OK; +done: + SVGA_STATS_TIME_POP(svga_sws(svga)); + return ret; } struct svga_tracked_state svga_hw_fs = @@ -451,6 +456,7 @@ struct svga_tracked_state svga_hw_fs = SVGA_NEW_TEXTURE_BINDING | SVGA_NEW_NEED_SWTNL | SVGA_NEW_RAST | + SVGA_NEW_STIPPLE | SVGA_NEW_REDUCED_PRIMITIVE | SVGA_NEW_SAMPLER | SVGA_NEW_FRAME_BUFFER |