Home | History | Annotate | Download | only in softpipe

Lines Matching refs:softpipe

48 invalidate_vertex_layout(struct softpipe_context *softpipe)
50 softpipe->vertex_info.num_attribs = 0;
63 softpipe_get_vertex_info(struct softpipe_context *softpipe)
65 struct vertex_info *vinfo = &softpipe->vertex_info;
69 const struct tgsi_shader_info *fsInfo = &softpipe->fs_variant->info;
70 struct vertex_info *vinfo_vbuf = &softpipe->vertex_info_vbuf;
71 const uint num = draw_num_shader_outputs(softpipe->draw);
117 if (softpipe->rasterizer->flatshade)
126 src = draw_find_shader_output(softpipe->draw,
131 src = draw_find_shader_output(softpipe->draw,
137 softpipe->psize_slot = draw_find_shader_output(softpipe->draw,
139 if (softpipe->psize_slot > 0) {
141 softpipe->psize_slot);
154 * Note that there's actually two different vertex layouts in softpipe.
162 * When the softpipe vbuf code begins drawing, the normal vertex layout
166 softpipe_get_vbuf_vertex_info(struct softpipe_context *softpipe)
168 (void) softpipe_get_vertex_info(softpipe);
169 return &softpipe->vertex_info_vbuf;
208 update_tgsi_samplers( struct softpipe_context *softpipe )
212 softpipe_reset_sampler_variants( softpipe );
214 for (sh = 0; sh < Elements(softpipe->tex_cache); sh++) {
216 struct softpipe_tex_tile_cache *tc = softpipe->tex_cache[sh][i];
233 update_fragment_shader(struct softpipe_context *softpipe, unsigned prim)
240 key.polygon_stipple = softpipe->rasterizer->poly_stipple_enable;
242 if (softpipe->fs) {
243 softpipe->fs_variant = softpipe_find_fs_variant(softpipe,
244 softpipe->fs, &key);
247 softpipe->fs_variant->prepare(softpipe->fs_variant,
248 softpipe->fs_machine,
249 (struct tgsi_sampler **) softpipe->
253 softpipe->fs_variant = NULL;
265 if (softpipe->fs_variant) {
266 draw_bind_fragment_shader(softpipe->draw,
267 softpipe->fs_variant->draw_shader);
270 draw_bind_fragment_shader(softpipe->draw, NULL);
282 update_polygon_stipple_pattern(struct softpipe_context *softpipe)
287 tex = util_pstipple_create_stipple_texture(&softpipe->pipe,
288 softpipe->poly_stipple.stipple);
289 pipe_resource_reference(&softpipe->pstipple.texture, tex);
292 view = util_pstipple_create_sampler_view(&softpipe->pipe,
293 softpipe->pstipple.texture);
294 pipe_sampler_view_reference(&softpipe->pstipple.sampler_view, view);
308 update_polygon_stipple_enable(struct softpipe_context *softpipe, unsigned prim)
311 softpipe->fs_variant->key.polygon_stipple) {
312 const unsigned unit = softpipe->fs_variant->stipple_sampler_unit;
315 softpipe->samplers[PIPE_SHADER_FRAGMENT][unit] = softpipe->pstipple.sampler;
318 pipe_sampler_view_reference(&softpipe->sampler_views[PIPE_SHADER_FRAGMENT][unit],
319 softpipe->pstipple.sampler_view);
321 sp_tex_tile_cache_set_sampler_view(softpipe->tex_cache[PIPE_SHADER_FRAGMENT][unit],
322 softpipe->pstipple.sampler_view);
324 softpipe->dirty |= SP_NEW_SAMPLER;
333 softpipe_update_derived(struct softpipe_context *softpipe, unsigned prim)
335 struct softpipe_screen *sp_screen = softpipe_screen(softpipe->pipe.screen);
339 if (softpipe->tex_timestamp != sp_screen->timestamp) {
340 softpipe->tex_timestamp = sp_screen->timestamp;
341 softpipe->dirty |= SP_NEW_TEXTURE;
345 if (softpipe->dirty & SP_NEW_STIPPLE)
347 update_polygon_stipple_pattern(softpipe);
350 if (softpipe->dirty & (SP_NEW_RASTERIZER |
352 update_fragment_shader(softpipe, prim);
355 if (softpipe->dirty & (SP_NEW_RASTERIZER |
358 update_polygon_stipple_enable(softpipe, prim);
361 if (softpipe->dirty & (SP_NEW_SAMPLER |
365 update_tgsi_samplers( softpipe );
367 if (softpipe->dirty & (SP_NEW_RASTERIZER |
370 invalidate_vertex_layout( softpipe );
372 if (softpipe->dirty & (SP_NEW_SCISSOR |
375 compute_cliprect(softpipe);
377 if (softpipe->dirty & (SP_NEW_BLEND |
381 sp_build_quad_pipeline(softpipe);
383 softpipe->dirty = 0;