Lines Matching defs:svga

275 svga_init_shader_key_common(const struct svga_context *svga,
283 assert(shader_type < ARRAY_SIZE(svga->curr.num_sampler_views));
288 key->num_textures = MAX2(svga->curr.num_sampler_views[shader_type],
289 svga->curr.num_samplers[shader_type]);
298 svga_use_sampler_state_mapping(svga, svga->curr.num_samplers[shader_type]);
304 struct pipe_sampler_view *view = svga->curr.sampler_views[shader_type][i];
306 *sampler = svga->curr.sampler[shader_type][i];
438 if (svga->curr.sampler[shader_type][j] == sampler) {
471 if (svga_have_gl43(svga)) {
479 key->uav_splice_index = svga->state.hw_draw.uavSpliceIndex;
485 &svga->curr.image_views[shader_type][0];
487 for (unsigned i = 0; i < ARRAY_SIZE(svga->curr.image_views[shader_type]);
520 &svga->curr.shader_buffers[shader_type][0];
522 for (unsigned i = 0; i < ARRAY_SIZE(svga->curr.shader_buffers[shader_type]);
531 const struct svga_shader_buffer *cur_buf = &svga->curr.atomic_buffers[0];
533 for (unsigned i = 0; i < ARRAY_SIZE(svga->curr.atomic_buffers);
549 svga->state.raw_constbufs[shader_type]) {
550 key->raw_buffers = svga->state.raw_constbufs[shader_type];
557 key->clamp_vertex_color = svga->curr.rast ?
558 svga->curr.rast->templ.clamp_vertex_color : 0;
598 define_gb_shader_vgpu9(struct svga_context *svga,
602 struct svga_winsys_screen *sws = svga_screen(svga->pipe.screen)->sws;
613 svga->hud.shader_mem_used += codeLen;
618 ret = SVGA3D_BindGBShader(svga->swc, variant->gb_shader);
627 define_gb_shader_vgpu10(struct svga_context *svga,
631 struct svga_winsys_context *swc = svga->swc;
640 variant->id = util_bitmask_add(svga->shader_id_bm);
652 svga->hud.shader_mem_used += len;
682 util_bitmask_clear(svga->shader_id_bm, variant->id);
694 svga_define_shader(struct svga_context *svga,
700 SVGA_STATS_TIME_PUSH(svga_sws(svga), SVGA_STATS_TIME_DEFINESHADER);
704 if (svga_have_gb_objects(svga)) {
705 if (svga_have_vgpu10(svga))
706 ret = define_gb_shader_vgpu10(svga, variant, codeLen);
708 ret = define_gb_shader_vgpu9(svga, variant, codeLen);
712 variant->id = util_bitmask_add(svga->shader_id_bm);
719 ret = SVGA3D_DefineShader(svga->swc,
727 util_bitmask_clear(svga->shader_id_bm, variant->id);
733 SVGA_STATS_TIME_POP(svga_sws(svga));
743 svga_set_shader(struct svga_context *svga,
757 if (svga_have_gb_objects(svga)) {
761 if (svga_have_vgpu10(svga))
762 ret = SVGA3D_vgpu10_SetShader(svga->swc, type, gbshader, id);
764 ret = SVGA3D_SetGBShader(svga->swc, type, gbshader);
767 ret = SVGA3D_SetShader(svga->swc, type, id);
775 svga_new_shader_variant(struct svga_context *svga, enum pipe_shader_type type)
804 svga->hud.num_shaders++;
811 svga_destroy_shader_variant(struct svga_context *svga,
814 if (svga_have_gb_objects(svga) && variant->gb_shader) {
815 if (svga_have_vgpu10(svga)) {
816 struct svga_winsys_context *swc = svga->swc;
818 SVGA_RETRY(svga, SVGA3D_vgpu10_DestroyShader(svga->swc, variant->id));
819 util_bitmask_clear(svga->shader_id_bm, variant->id);
822 struct svga_winsys_screen *sws = svga_screen(svga->pipe.screen)->sws;
829 SVGA_RETRY(svga, SVGA3D_DestroyShader(svga->swc, variant->id,
831 util_bitmask_clear(svga->shader_id_bm, variant->id);
839 svga->hud.num_shaders--;
851 svga_rebind_shaders(struct svga_context *svga)
853 struct svga_winsys_context *swc = svga->swc;
854 struct svga_hw_draw_state *hw = &svga->state.hw_draw;
857 assert(svga_have_vgpu10(svga));
864 svga->rebind.flags.vs = 0;
865 svga->rebind.flags.gs = 0;
866 svga->rebind.flags.fs = 0;
867 svga->rebind.flags.tcs = 0;
868 svga->rebind.flags.tes = 0;
873 if (svga->rebind.flags.vs && hw->vs && hw->vs->gb_shader) {
878 svga->rebind.flags.vs = 0;
880 if (svga->rebind.flags.gs && hw->gs && hw->gs->gb_shader) {
885 svga->rebind.flags.gs = 0;
887 if (svga->rebind.flags.fs && hw->fs && hw->fs->gb_shader) {
892 svga->rebind.flags.fs = 0;
894 if (svga->rebind.flags.tcs && hw->tcs && hw->tcs->gb_shader) {
899 svga->rebind.flags.tcs = 0;
901 if (svga->rebind.flags.tes && hw->tes && hw->tes->gb_shader) {
906 svga->rebind.flags.tes = 0;
921 struct svga_context *svga = svga_context(pipe);
927 shader->id = svga->debug.shader_id++;
944 shader->stream_output = svga_create_stream_output(svga, shader,
958 svga_compile_shader(struct svga_context *svga,
967 variant = svga_tgsi_compile_shader(svga, shader, key);
976 variant = shader->get_dummy_shader(svga, shader, key);
979 else if (svga_shader_too_large(svga, variant)) {
987 svga_destroy_shader_variant(svga, variant);
990 variant = shader->get_dummy_shader(svga, shader, key);
997 ret = svga_define_shader(svga, variant);
999 svga_destroy_shader_variant(svga, variant);