Lines Matching refs:draw
84 struct draw_context *draw = CALLOC_STRUCT( draw_context ); in draw_create_context() local
85 if (!draw) in draw_create_context()
93 draw->llvm = draw_llvm_create(draw, (LLVMContextRef)context); in draw_create_context()
97 draw->pipe = pipe; in draw_create_context()
98 draw->constant_buffer_stride = (sizeof(float) * 4); in draw_create_context()
100 if (!draw_init(draw)) in draw_create_context()
103 draw->ia = draw_prim_assembler_create(draw); in draw_create_context()
104 if (!draw->ia) in draw_create_context()
107 return draw; in draw_create_context()
110 draw_destroy( draw ); in draw_create_context()
145 boolean draw_init(struct draw_context *draw) in draw_init() argument
153 ASSIGN_4V( draw->plane[0], -1, 0, 0, 1 ); in draw_init()
154 ASSIGN_4V( draw->plane[1], 1, 0, 0, 1 ); in draw_init()
155 ASSIGN_4V( draw->plane[2], 0, -1, 0, 1 ); in draw_init()
156 ASSIGN_4V( draw->plane[3], 0, 1, 0, 1 ); in draw_init()
157 ASSIGN_4V( draw->plane[4], 0, 0, 1, 1 ); /* yes these are correct */ in draw_init()
158 ASSIGN_4V( draw->plane[5], 0, 0, -1, 1 ); /* mesa's a bit wonky */ in draw_init()
159 draw->clip_xy = TRUE; in draw_init()
160 draw->clip_z = TRUE; in draw_init()
162 draw->pt.user.planes = (float (*) [DRAW_TOTAL_CLIP_PLANES][4]) &(draw->plane[0]); in draw_init()
163 draw->pt.user.eltMax = ~0; in draw_init()
165 if (!draw_pipeline_init( draw )) in draw_init()
168 if (!draw_pt_init( draw )) in draw_init()
171 if (!draw_vs_init( draw )) in draw_init()
174 if (!draw_gs_init( draw )) in draw_init()
177 draw->quads_always_flatshade_last = !draw->pipe->screen->get_param( in draw_init()
178 draw->pipe->screen, PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION); in draw_init()
180 draw->floating_point_depth = false; in draw_init()
193 void draw_new_instance(struct draw_context *draw) in draw_new_instance() argument
195 draw_geometry_shader_new_instance(draw->gs.geometry_shader); in draw_new_instance()
196 draw_prim_assembler_new_instance(draw->ia); in draw_new_instance()
200 void draw_destroy( struct draw_context *draw ) in draw_destroy() argument
205 if (!draw) in draw_destroy()
208 pipe = draw->pipe; in draw_destroy()
215 if (draw->rasterizer_no_cull[i][j][k]) { in draw_destroy()
216 pipe->delete_rasterizer_state(pipe, draw->rasterizer_no_cull[i][j][k]); in draw_destroy()
222 for (i = 0; i < draw->pt.nr_vertex_buffers; i++) in draw_destroy()
223 pipe_vertex_buffer_unreference(&draw->pt.vertex_buffer[i]); in draw_destroy()
231 draw_prim_assembler_destroy(draw->ia); in draw_destroy()
232 draw_pipeline_destroy( draw ); in draw_destroy()
233 draw_pt_destroy( draw ); in draw_destroy()
234 draw_vs_destroy( draw ); in draw_destroy()
235 draw_gs_destroy( draw ); in draw_destroy()
237 if (draw->llvm) in draw_destroy()
238 draw_llvm_destroy( draw->llvm ); in draw_destroy()
241 FREE( draw ); in draw_destroy()
246 void draw_flush( struct draw_context *draw ) in draw_flush() argument
248 draw_do_flush( draw, DRAW_FLUSH_BACKEND ); in draw_flush()
259 void draw_set_zs_format(struct draw_context *draw, enum pipe_format format) in draw_set_zs_format() argument
263 draw->floating_point_depth = in draw_set_zs_format()
266 draw->mrd = util_get_depth_format_mrd(desc); in draw_set_zs_format()
271 draw_is_vs_window_space(struct draw_context *draw) in draw_is_vs_window_space() argument
273 if (draw->vs.vertex_shader) { in draw_is_vs_window_space()
274 struct tgsi_shader_info *info = &draw->vs.vertex_shader->info; in draw_is_vs_window_space()
283 draw_update_clip_flags(struct draw_context *draw) in draw_update_clip_flags() argument
285 bool window_space = draw_is_vs_window_space(draw); in draw_update_clip_flags()
287 draw->clip_xy = !draw->driver.bypass_clip_xy && !window_space; in draw_update_clip_flags()
288 draw->guard_band_xy = (!draw->driver.bypass_clip_xy && in draw_update_clip_flags()
289 draw->driver.guard_band_xy); in draw_update_clip_flags()
290 draw->clip_z = (!draw->driver.bypass_clip_z && in draw_update_clip_flags()
291 draw->rasterizer && draw->rasterizer->depth_clip_near) && in draw_update_clip_flags()
293 draw->clip_user = draw->rasterizer && in draw_update_clip_flags()
294 draw->rasterizer->clip_plane_enable != 0 && in draw_update_clip_flags()
296 draw->guard_band_points_xy = draw->guard_band_xy || in draw_update_clip_flags()
297 (draw->driver.bypass_clip_points && in draw_update_clip_flags()
298 (draw->rasterizer && in draw_update_clip_flags()
299 draw->rasterizer->point_tri_clip)); in draw_update_clip_flags()
304 draw_update_viewport_flags(struct draw_context *draw) in draw_update_viewport_flags() argument
306 bool window_space = draw_is_vs_window_space(draw); in draw_update_viewport_flags()
308 draw->bypass_viewport = window_space || draw->identity_viewport; in draw_update_viewport_flags()
316 void draw_set_rasterizer_state( struct draw_context *draw, in draw_set_rasterizer_state() argument
320 if (!draw->suspend_flushing) { in draw_set_rasterizer_state()
321 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_rasterizer_state()
323 draw->rasterizer = raster; in draw_set_rasterizer_state()
324 draw->rast_handle = rast_handle; in draw_set_rasterizer_state()
325 draw_update_clip_flags(draw); in draw_set_rasterizer_state()
340 void draw_set_driver_clipping( struct draw_context *draw, in draw_set_driver_clipping() argument
346 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_driver_clipping()
348 draw->driver.bypass_clip_xy = bypass_clip_xy; in draw_set_driver_clipping()
349 draw->driver.bypass_clip_z = bypass_clip_z; in draw_set_driver_clipping()
350 draw->driver.guard_band_xy = guard_band_xy; in draw_set_driver_clipping()
351 draw->driver.bypass_clip_points = bypass_clip_points; in draw_set_driver_clipping()
352 draw_update_clip_flags(draw); in draw_set_driver_clipping()
361 void draw_set_rasterize_stage( struct draw_context *draw, in draw_set_rasterize_stage() argument
364 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_rasterize_stage()
366 draw->pipeline.rasterize = stage; in draw_set_rasterize_stage()
373 void draw_set_clip_state( struct draw_context *draw, in draw_set_clip_state() argument
376 draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE); in draw_set_clip_state()
378 memcpy(&draw->plane[6], clip->ucp, sizeof(clip->ucp)); in draw_set_clip_state()
385 void draw_set_viewport_states( struct draw_context *draw, in draw_set_viewport_states() argument
391 draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE); in draw_set_viewport_states()
396 memcpy(draw->viewports + start_slot, vps, in draw_set_viewport_states()
399 draw->identity_viewport = (num_viewports == 1) && in draw_set_viewport_states()
406 draw_update_viewport_flags(draw); in draw_set_viewport_states()
412 draw_set_vertex_buffers(struct draw_context *draw, in draw_set_vertex_buffers() argument
419 util_set_vertex_buffers_count(draw->pt.vertex_buffer, in draw_set_vertex_buffers()
420 &draw->pt.nr_vertex_buffers, in draw_set_vertex_buffers()
427 draw_set_vertex_elements(struct draw_context *draw, in draw_set_vertex_elements() argument
435 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_vertex_elements()
437 memcpy(draw->pt.vertex_element, elements, count * sizeof(elements[0])); in draw_set_vertex_elements()
438 draw->pt.nr_vertex_elements = count; in draw_set_vertex_elements()
446 draw_set_mapped_vertex_buffer(struct draw_context *draw, in draw_set_mapped_vertex_buffer() argument
450 draw->pt.user.vbuffer[attr].map = buffer; in draw_set_mapped_vertex_buffer()
451 draw->pt.user.vbuffer[attr].size = size; in draw_set_mapped_vertex_buffer()
456 draw_set_mapped_constant_buffer(struct draw_context *draw, in draw_set_mapped_constant_buffer() argument
468 draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE); in draw_set_mapped_constant_buffer()
472 draw->pt.user.vs_constants[slot] = buffer; in draw_set_mapped_constant_buffer()
473 draw->pt.user.vs_constants_size[slot] = size; in draw_set_mapped_constant_buffer()
476 draw->pt.user.gs_constants[slot] = buffer; in draw_set_mapped_constant_buffer()
477 draw->pt.user.gs_constants_size[slot] = size; in draw_set_mapped_constant_buffer()
480 draw->pt.user.tcs_constants[slot] = buffer; in draw_set_mapped_constant_buffer()
481 draw->pt.user.tcs_constants_size[slot] = size; in draw_set_mapped_constant_buffer()
484 draw->pt.user.tes_constants[slot] = buffer; in draw_set_mapped_constant_buffer()
485 draw->pt.user.tes_constants_size[slot] = size; in draw_set_mapped_constant_buffer()
493 draw_set_mapped_shader_buffer(struct draw_context *draw, in draw_set_mapped_shader_buffer() argument
505 draw_do_flush(draw, DRAW_FLUSH_PARAMETER_CHANGE); in draw_set_mapped_shader_buffer()
509 draw->pt.user.vs_ssbos[slot] = buffer; in draw_set_mapped_shader_buffer()
510 draw->pt.user.vs_ssbos_size[slot] = size; in draw_set_mapped_shader_buffer()
513 draw->pt.user.gs_ssbos[slot] = buffer; in draw_set_mapped_shader_buffer()
514 draw->pt.user.gs_ssbos_size[slot] = size; in draw_set_mapped_shader_buffer()
517 draw->pt.user.tcs_ssbos[slot] = buffer; in draw_set_mapped_shader_buffer()
518 draw->pt.user.tcs_ssbos_size[slot] = size; in draw_set_mapped_shader_buffer()
521 draw->pt.user.tes_ssbos[slot] = buffer; in draw_set_mapped_shader_buffer()
522 draw->pt.user.tes_ssbos_size[slot] = size; in draw_set_mapped_shader_buffer()
534 draw_wide_point_threshold(struct draw_context *draw, float threshold) in draw_wide_point_threshold() argument
536 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_wide_point_threshold()
537 draw->pipeline.wide_point_threshold = threshold; in draw_wide_point_threshold()
545 draw_wide_point_sprites(struct draw_context *draw, boolean draw_sprite) in draw_wide_point_sprites() argument
547 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_wide_point_sprites()
548 draw->pipeline.wide_point_sprites = draw_sprite; in draw_wide_point_sprites()
557 draw_wide_line_threshold(struct draw_context *draw, float threshold) in draw_wide_line_threshold() argument
559 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_wide_line_threshold()
560 draw->pipeline.wide_line_threshold = roundf(threshold); in draw_wide_line_threshold()
568 draw_enable_line_stipple(struct draw_context *draw, boolean enable) in draw_enable_line_stipple() argument
570 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_enable_line_stipple()
571 draw->pipeline.line_stipple = enable; in draw_enable_line_stipple()
579 draw_enable_point_sprites(struct draw_context *draw, boolean enable) in draw_enable_point_sprites() argument
581 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_enable_point_sprites()
582 draw->pipeline.point_sprite = enable; in draw_enable_point_sprites()
596 draw_alloc_extra_vertex_attrib(struct draw_context *draw, in draw_alloc_extra_vertex_attrib() argument
603 slot = draw_find_shader_output(draw, semantic_name, semantic_index); in draw_alloc_extra_vertex_attrib()
608 num_outputs = draw_current_shader_outputs(draw); in draw_alloc_extra_vertex_attrib()
609 n = draw->extra_shader_outputs.num; in draw_alloc_extra_vertex_attrib()
611 assert(n < ARRAY_SIZE(draw->extra_shader_outputs.semantic_name)); in draw_alloc_extra_vertex_attrib()
613 draw->extra_shader_outputs.semantic_name[n] = semantic_name; in draw_alloc_extra_vertex_attrib()
614 draw->extra_shader_outputs.semantic_index[n] = semantic_index; in draw_alloc_extra_vertex_attrib()
615 draw->extra_shader_outputs.slot[n] = num_outputs + n; in draw_alloc_extra_vertex_attrib()
616 draw->extra_shader_outputs.num++; in draw_alloc_extra_vertex_attrib()
618 return draw->extra_shader_outputs.slot[n]; in draw_alloc_extra_vertex_attrib()
627 draw_remove_extra_vertex_attribs(struct draw_context *draw) in draw_remove_extra_vertex_attribs() argument
629 draw->extra_shader_outputs.num = 0; in draw_remove_extra_vertex_attribs()
638 draw_get_shader_info(const struct draw_context *draw) in draw_get_shader_info() argument
641 if (draw->gs.geometry_shader) { in draw_get_shader_info()
642 return &draw->gs.geometry_shader->info; in draw_get_shader_info()
643 } else if (draw->tes.tess_eval_shader) { in draw_get_shader_info()
644 return &draw->tes.tess_eval_shader->info; in draw_get_shader_info()
646 return &draw->vs.vertex_shader->info; in draw_get_shader_info()
662 draw_prepare_shader_outputs(struct draw_context *draw) in draw_prepare_shader_outputs() argument
664 draw_remove_extra_vertex_attribs(draw); in draw_prepare_shader_outputs()
665 draw_prim_assembler_prepare_outputs(draw->ia); in draw_prepare_shader_outputs()
666 draw_unfilled_prepare_outputs(draw, draw->pipeline.unfilled); in draw_prepare_shader_outputs()
667 if (draw->pipeline.aapoint) in draw_prepare_shader_outputs()
668 draw_aapoint_prepare_outputs(draw, draw->pipeline.aapoint); in draw_prepare_shader_outputs()
669 if (draw->pipeline.aaline) in draw_prepare_shader_outputs()
670 draw_aaline_prepare_outputs(draw, draw->pipeline.aaline); in draw_prepare_shader_outputs()
690 draw_find_shader_output(const struct draw_context *draw, in draw_find_shader_output() argument
693 const struct tgsi_shader_info *info = draw_get_shader_info(draw); in draw_find_shader_output()
703 for (i = 0; i < draw->extra_shader_outputs.num; i++) { in draw_find_shader_output()
704 if (draw->extra_shader_outputs.semantic_name[i] == semantic_name && in draw_find_shader_output()
705 draw->extra_shader_outputs.semantic_index[i] == semantic_index) { in draw_find_shader_output()
706 return draw->extra_shader_outputs.slot[i]; in draw_find_shader_output()
724 draw_num_shader_outputs(const struct draw_context *draw) in draw_num_shader_outputs() argument
726 const struct tgsi_shader_info *info = draw_get_shader_info(draw); in draw_num_shader_outputs()
730 count += draw->extra_shader_outputs.num; in draw_num_shader_outputs()
743 draw_total_vs_outputs(const struct draw_context *draw) in draw_total_vs_outputs() argument
745 const struct tgsi_shader_info *info = &draw->vs.vertex_shader->info; in draw_total_vs_outputs()
747 return info->num_outputs + draw->extra_shader_outputs.num; in draw_total_vs_outputs()
757 draw_total_gs_outputs(const struct draw_context *draw) in draw_total_gs_outputs() argument
761 if (!draw->gs.geometry_shader) in draw_total_gs_outputs()
764 info = &draw->gs.geometry_shader->info; in draw_total_gs_outputs()
766 return info->num_outputs + draw->extra_shader_outputs.num; in draw_total_gs_outputs()
773 draw_total_tcs_outputs(const struct draw_context *draw) in draw_total_tcs_outputs() argument
777 if (!draw->tcs.tess_ctrl_shader) in draw_total_tcs_outputs()
780 info = &draw->tcs.tess_ctrl_shader->info; in draw_total_tcs_outputs()
789 draw_total_tes_outputs(const struct draw_context *draw) in draw_total_tes_outputs() argument
793 if (!draw->tes.tess_eval_shader) in draw_total_tes_outputs()
796 info = &draw->tes.tess_eval_shader->info; in draw_total_tes_outputs()
798 return info->num_outputs + draw->extra_shader_outputs.num; in draw_total_tes_outputs()
807 draw_texture_sampler(struct draw_context *draw, in draw_texture_sampler() argument
813 draw->vs.tgsi.sampler = sampler; in draw_texture_sampler()
816 draw->gs.tgsi.sampler = sampler; in draw_texture_sampler()
819 draw->tcs.tgsi.sampler = sampler; in draw_texture_sampler()
822 draw->tes.tgsi.sampler = sampler; in draw_texture_sampler()
836 draw_image(struct draw_context *draw, in draw_image() argument
842 draw->vs.tgsi.image = image; in draw_image()
845 draw->gs.tgsi.image = image; in draw_image()
848 draw->tcs.tgsi.image = image; in draw_image()
851 draw->tes.tgsi.image = image; in draw_image()
865 draw_buffer(struct draw_context *draw, in draw_buffer() argument
871 draw->vs.tgsi.buffer = buffer; in draw_buffer()
874 draw->gs.tgsi.buffer = buffer; in draw_buffer()
877 draw->tcs.tgsi.buffer = buffer; in draw_buffer()
880 draw->tes.tgsi.buffer = buffer; in draw_buffer()
889 void draw_set_render( struct draw_context *draw, in draw_set_render() argument
892 draw->render = render; in draw_set_render()
901 draw_set_indexes(struct draw_context *draw, in draw_set_indexes() argument
909 draw->pt.user.elts = elements; in draw_set_indexes()
910 draw->pt.user.eltSizeIB = elem_size; in draw_set_indexes()
912 draw->pt.user.eltMax = elem_buffer_space / elem_size; in draw_set_indexes()
914 draw->pt.user.eltMax = 0; in draw_set_indexes()
920 void draw_do_flush( struct draw_context *draw, unsigned flags ) in draw_do_flush() argument
922 if (!draw->suspend_flushing) in draw_do_flush()
924 assert(!draw->flushing); /* catch inadvertant recursion */ in draw_do_flush()
926 draw->flushing = TRUE; in draw_do_flush()
928 draw_pipeline_flush( draw, flags ); in draw_do_flush()
930 draw_pt_flush( draw, flags ); in draw_do_flush()
932 draw->flushing = FALSE; in draw_do_flush()
944 draw_current_shader_outputs(const struct draw_context *draw) in draw_current_shader_outputs() argument
946 if (draw->gs.geometry_shader) in draw_current_shader_outputs()
947 return draw->gs.num_gs_outputs; in draw_current_shader_outputs()
948 return draw->vs.num_vs_outputs; in draw_current_shader_outputs()
957 draw_current_shader_position_output(const struct draw_context *draw) in draw_current_shader_position_output() argument
959 if (draw->gs.geometry_shader) in draw_current_shader_position_output()
960 return draw->gs.position_output; in draw_current_shader_position_output()
961 if (draw->tes.tess_eval_shader) in draw_current_shader_position_output()
962 return draw->tes.position_output; in draw_current_shader_position_output()
963 return draw->vs.position_output; in draw_current_shader_position_output()
972 draw_current_shader_viewport_index_output(const struct draw_context *draw) in draw_current_shader_viewport_index_output() argument
974 if (draw->gs.geometry_shader) in draw_current_shader_viewport_index_output()
975 return draw->gs.geometry_shader->viewport_index_output; in draw_current_shader_viewport_index_output()
976 else if (draw->tes.tess_eval_shader) in draw_current_shader_viewport_index_output()
977 return draw->tes.tess_eval_shader->viewport_index_output; in draw_current_shader_viewport_index_output()
978 return draw->vs.vertex_shader->viewport_index_output; in draw_current_shader_viewport_index_output()
986 draw_current_shader_uses_viewport_index(const struct draw_context *draw) in draw_current_shader_uses_viewport_index() argument
988 if (draw->gs.geometry_shader) in draw_current_shader_uses_viewport_index()
989 return draw->gs.geometry_shader->info.writes_viewport_index; in draw_current_shader_uses_viewport_index()
990 else if (draw->tes.tess_eval_shader) in draw_current_shader_uses_viewport_index()
991 return draw->tes.tess_eval_shader->info.writes_viewport_index; in draw_current_shader_uses_viewport_index()
992 return draw->vs.vertex_shader->info.writes_viewport_index; in draw_current_shader_uses_viewport_index()
1003 draw_current_shader_clipvertex_output(const struct draw_context *draw) in draw_current_shader_clipvertex_output() argument
1005 if (draw->gs.geometry_shader) in draw_current_shader_clipvertex_output()
1006 return draw->gs.clipvertex_output; in draw_current_shader_clipvertex_output()
1007 if (draw->tes.tess_eval_shader) in draw_current_shader_clipvertex_output()
1008 return draw->tes.clipvertex_output; in draw_current_shader_clipvertex_output()
1009 return draw->vs.clipvertex_output; in draw_current_shader_clipvertex_output()
1013 draw_current_shader_ccdistance_output(const struct draw_context *draw, int index) in draw_current_shader_ccdistance_output() argument
1016 if (draw->gs.geometry_shader) in draw_current_shader_ccdistance_output()
1017 return draw->gs.geometry_shader->ccdistance_output[index]; in draw_current_shader_ccdistance_output()
1018 if (draw->tes.tess_eval_shader) in draw_current_shader_ccdistance_output()
1019 return draw->tes.tess_eval_shader->ccdistance_output[index]; in draw_current_shader_ccdistance_output()
1020 return draw->vs.ccdistance_output[index]; in draw_current_shader_ccdistance_output()
1025 draw_current_shader_num_written_clipdistances(const struct draw_context *draw) in draw_current_shader_num_written_clipdistances() argument
1027 if (draw->gs.geometry_shader) in draw_current_shader_num_written_clipdistances()
1028 return draw->gs.geometry_shader->info.num_written_clipdistance; in draw_current_shader_num_written_clipdistances()
1029 if (draw->tes.tess_eval_shader) in draw_current_shader_num_written_clipdistances()
1030 return draw->tes.tess_eval_shader->info.num_written_clipdistance; in draw_current_shader_num_written_clipdistances()
1031 return draw->vs.vertex_shader->info.num_written_clipdistance; in draw_current_shader_num_written_clipdistances()
1035 draw_current_shader_num_written_culldistances(const struct draw_context *draw) in draw_current_shader_num_written_culldistances() argument
1037 if (draw->gs.geometry_shader) in draw_current_shader_num_written_culldistances()
1038 return draw->gs.geometry_shader->info.num_written_culldistance; in draw_current_shader_num_written_culldistances()
1039 if (draw->tes.tess_eval_shader) in draw_current_shader_num_written_culldistances()
1040 return draw->tes.tess_eval_shader->info.num_written_culldistance; in draw_current_shader_num_written_culldistances()
1041 return draw->vs.vertex_shader->info.num_written_culldistance; in draw_current_shader_num_written_culldistances()
1056 draw_get_rasterizer_no_cull( struct draw_context *draw, in draw_get_rasterizer_no_cull() argument
1059 …if (!draw->rasterizer_no_cull[base_rast->scissor][base_rast->flatshade][base_rast->rasterizer_disc… in draw_get_rasterizer_no_cull()
1061 struct pipe_context *pipe = draw->pipe; in draw_get_rasterizer_no_cull()
1069 rast.half_pixel_center = draw->rasterizer->half_pixel_center; in draw_get_rasterizer_no_cull()
1070 rast.bottom_edge_rule = draw->rasterizer->bottom_edge_rule; in draw_get_rasterizer_no_cull()
1071 rast.clip_halfz = draw->rasterizer->clip_halfz; in draw_get_rasterizer_no_cull()
1073 …draw->rasterizer_no_cull[base_rast->scissor][base_rast->flatshade][base_rast->rasterizer_discard] = in draw_get_rasterizer_no_cull()
1076 …return draw->rasterizer_no_cull[base_rast->scissor][base_rast->flatshade][base_rast->rasterizer_di… in draw_get_rasterizer_no_cull()
1080 draw_set_mapped_so_targets(struct draw_context *draw, in draw_set_mapped_so_targets() argument
1086 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_mapped_so_targets()
1089 draw->so.targets[i] = targets[i]; in draw_set_mapped_so_targets()
1091 draw->so.targets[i] = NULL; in draw_set_mapped_so_targets()
1093 draw->so.num_targets = num_targets; in draw_set_mapped_so_targets()
1097 draw_set_sampler_views(struct draw_context *draw, in draw_set_sampler_views() argument
1107 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_sampler_views()
1110 draw->sampler_views[shader_stage][i] = views[i]; in draw_set_sampler_views()
1111 for (i = num; i < draw->num_sampler_views[shader_stage]; ++i) in draw_set_sampler_views()
1112 draw->sampler_views[shader_stage][i] = NULL; in draw_set_sampler_views()
1114 draw->num_sampler_views[shader_stage] = num; in draw_set_sampler_views()
1118 draw_set_samplers(struct draw_context *draw, in draw_set_samplers() argument
1128 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_samplers()
1131 draw->samplers[shader_stage][i] = samplers[i]; in draw_set_samplers()
1133 draw->samplers[shader_stage][i] = NULL; in draw_set_samplers()
1135 draw->num_samplers[shader_stage] = num; in draw_set_samplers()
1138 if (draw->llvm) in draw_set_samplers()
1139 draw_llvm_set_sampler_state(draw, shader_stage); in draw_set_samplers()
1144 draw_set_images(struct draw_context *draw, in draw_set_images() argument
1154 draw_do_flush( draw, DRAW_FLUSH_STATE_CHANGE ); in draw_set_images()
1157 draw->images[shader_stage][i] = &views[i]; in draw_set_images()
1158 for (i = num; i < draw->num_sampler_views[shader_stage]; ++i) in draw_set_images()
1159 draw->images[shader_stage][i] = NULL; in draw_set_images()
1161 draw->num_images[shader_stage] = num; in draw_set_images()
1165 draw_set_mapped_texture(struct draw_context *draw, in draw_set_mapped_texture() argument
1178 if (draw->llvm) in draw_set_mapped_texture()
1179 draw_llvm_set_mapped_texture(draw, in draw_set_mapped_texture()
1189 draw_set_mapped_image(struct draw_context *draw, in draw_set_mapped_image() argument
1200 if (draw->llvm) in draw_set_mapped_image()
1201 draw_llvm_set_mapped_image(draw, in draw_set_mapped_image()
1266 draw_collect_pipeline_statistics(struct draw_context *draw, in draw_collect_pipeline_statistics() argument
1269 draw->collect_statistics = enable; in draw_collect_pipeline_statistics()
1275 void draw_collect_primitives_generated(struct draw_context *draw, in draw_collect_primitives_generated() argument
1278 draw->collect_primgen = enable; in draw_collect_primitives_generated()
1289 draw_stats_clipper_primitives(struct draw_context *draw, in draw_stats_clipper_primitives() argument
1292 if (draw->collect_statistics) { in draw_stats_clipper_primitives()
1295 draw->statistics.c_invocations += in draw_stats_clipper_primitives()
1314 draw_will_inject_frontface(const struct draw_context *draw) in draw_will_inject_frontface() argument
1316 unsigned reduced_prim = u_reduced_prim(draw->pt.prim); in draw_will_inject_frontface()
1317 const struct pipe_rasterizer_state *rast = draw->rasterizer; in draw_will_inject_frontface()
1329 draw_set_tess_state(struct draw_context *draw, in draw_set_tess_state() argument
1334 draw->default_outer_tess_level[i] = default_outer_level[i]; in draw_set_tess_state()
1336 draw->default_inner_tess_level[i] = default_inner_level[i]; in draw_set_tess_state()
1340 draw_set_disk_cache_callbacks(struct draw_context *draw, in draw_set_disk_cache_callbacks() argument
1349 draw->disk_cache_find_shader = find_shader; in draw_set_disk_cache_callbacks()
1350 draw->disk_cache_insert_shader = insert_shader; in draw_set_disk_cache_callbacks()
1351 draw->disk_cache_cookie = data_cookie; in draw_set_disk_cache_callbacks()
1354 void draw_set_constant_buffer_stride(struct draw_context *draw, unsigned num_bytes) in draw_set_constant_buffer_stride() argument
1356 draw->constant_buffer_stride = num_bytes; in draw_set_constant_buffer_stride()