Lines Matching full:svga
169 svga_init_shader_key_common(const struct svga_context *svga,
175 assert(shader < ARRAY_SIZE(svga->curr.num_sampler_views));
180 key->num_textures = MIN2(svga->curr.num_sampler_views[shader],
181 svga->curr.num_samplers[shader]);
184 struct pipe_sampler_view *view = svga->curr.sampler_views[shader][i];
185 const struct svga_sampler_state *sampler = svga->curr.sampler[shader][i];
257 define_gb_shader_vgpu9(struct svga_context *svga,
262 struct svga_winsys_screen *sws = svga_screen(svga->pipe.screen)->sws;
276 ret = SVGA3D_BindGBShader(svga->swc, variant->gb_shader);
285 define_gb_shader_vgpu10(struct svga_context *svga,
290 struct svga_winsys_context *swc = svga->swc;
295 * SVGA driver will allocate an integer ID for the shader and
298 variant->id = util_bitmask_add(svga->shader_id_bm);
335 util_bitmask_clear(svga->shader_id_bm, variant->id);
347 svga_define_shader(struct svga_context *svga,
354 SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_DEFINESHADER);
358 if (svga_have_gb_objects(svga)) {
359 if (svga_have_vgpu10(svga))
360 ret = define_gb_shader_vgpu10(svga, type, variant, codeLen);
362 ret = define_gb_shader_vgpu9(svga, type, variant, codeLen);
366 variant->id = util_bitmask_add(svga->shader_id_bm);
373 ret = SVGA3D_DefineShader(svga->swc,
381 util_bitmask_clear(svga->shader_id_bm, variant->id);
387 SVGA_STATS_TIME_POP(svga_sws(svga));
397 svga_set_shader(struct svga_context *svga,
408 if (svga_have_gb_objects(svga)) {
412 if (svga_have_vgpu10(svga))
413 ret = SVGA3D_vgpu10_SetShader(svga->swc, type, gbshader, id);
415 ret = SVGA3D_SetGBShader(svga->swc, type, gbshader);
418 ret = SVGA3D_SetShader(svga->swc, type, id);
426 svga_new_shader_variant(struct svga_context *svga)
428 svga->hud.num_shaders++;
434 svga_destroy_shader_variant(struct svga_context *svga,
440 if (svga_have_gb_objects(svga) && variant->gb_shader) {
441 if (svga_have_vgpu10(svga)) {
442 struct svga_winsys_context *swc = svga->swc;
444 ret = SVGA3D_vgpu10_DestroyShader(svga->swc, variant->id);
447 svga_context_flush(svga, NULL);
448 ret = SVGA3D_vgpu10_DestroyShader(svga->swc, variant->id);
450 util_bitmask_clear(svga->shader_id_bm, variant->id);
453 struct svga_winsys_screen *sws = svga_screen(svga->pipe.screen)->sws;
460 ret = SVGA3D_DestroyShader(svga->swc, variant->id, type);
463 svga_context_flush(svga, NULL);
464 ret = SVGA3D_DestroyShader(svga->swc, variant->id, type);
467 util_bitmask_clear(svga->shader_id_bm, variant->id);
474 svga->hud.num_shaders--;
488 svga_rebind_shaders(struct svga_context *svga)
490 struct svga_winsys_context *swc = svga->swc;
491 struct svga_hw_draw_state *hw = &svga->state.hw_draw;
494 assert(svga_have_vgpu10(svga));
501 svga->rebind.flags.vs = 0;
502 svga->rebind.flags.gs = 0;
503 svga->rebind.flags.fs = 0;
508 if (svga->rebind.flags.vs && hw->vs && hw->vs->gb_shader) {
513 svga->rebind.flags.vs = 0;
515 if (svga->rebind.flags.gs && hw->gs && hw->gs->gb_shader) {
520 svga->rebind.flags.gs = 0;
522 if (svga->rebind.flags.fs && hw->fs && hw->fs->gb_shader) {
527 svga->rebind.flags.fs = 0;