1 /**************************************************************************
3 * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 **************************************************************************/
28 #include "pipe/p_util.h"
29 #include "pipe/p_screen.h"
33 #include "tr_context.h"
37 trace_context_set_edgeflags(struct pipe_context
*_pipe
,
38 const unsigned *bitfield
)
40 struct trace_context
*tr_ctx
= trace_context(_pipe
);
41 struct pipe_context
*pipe
= tr_ctx
->pipe
;
43 trace_dump_call_begin("pipe_context", "set_edgeflags");
45 trace_dump_arg(ptr
, pipe
);
46 /* FIXME: we don't know how big this array is */
47 trace_dump_arg(ptr
, bitfield
);
49 pipe
->set_edgeflags(pipe
, bitfield
);;
51 trace_dump_call_end();
56 trace_context_draw_arrays(struct pipe_context
*_pipe
,
57 unsigned mode
, unsigned start
, unsigned count
)
59 struct trace_context
*tr_ctx
= trace_context(_pipe
);
60 struct pipe_context
*pipe
= tr_ctx
->pipe
;
63 trace_dump_call_begin("pipe_context", "draw_arrays");
65 trace_dump_arg(ptr
, pipe
);
66 trace_dump_arg(uint
, mode
);
67 trace_dump_arg(uint
, start
);
68 trace_dump_arg(uint
, count
);
70 result
= pipe
->draw_arrays(pipe
, mode
, start
, count
);;
72 trace_dump_ret(bool, result
);
74 trace_dump_call_end();
81 trace_context_draw_elements(struct pipe_context
*_pipe
,
82 struct pipe_buffer
*indexBuffer
,
84 unsigned mode
, unsigned start
, unsigned count
)
86 struct trace_context
*tr_ctx
= trace_context(_pipe
);
87 struct pipe_context
*pipe
= tr_ctx
->pipe
;
90 trace_dump_call_begin("pipe_context", "draw_elements");
92 trace_dump_arg(ptr
, pipe
);
93 trace_dump_arg(ptr
, indexBuffer
);
94 trace_dump_arg(uint
, indexSize
);
95 trace_dump_arg(uint
, mode
);
96 trace_dump_arg(uint
, start
);
97 trace_dump_arg(uint
, count
);
99 result
= pipe
->draw_elements(pipe
, indexBuffer
, indexSize
, mode
, start
, count
);;
101 trace_dump_ret(bool, result
);
103 trace_dump_call_end();
109 static INLINE boolean
110 trace_context_draw_range_elements(struct pipe_context
*_pipe
,
111 struct pipe_buffer
*indexBuffer
,
119 struct trace_context
*tr_ctx
= trace_context(_pipe
);
120 struct pipe_context
*pipe
= tr_ctx
->pipe
;
123 trace_dump_call_begin("pipe_context", "draw_range_elements");
125 trace_dump_arg(ptr
, pipe
);
126 trace_dump_arg(ptr
, indexBuffer
);
127 trace_dump_arg(uint
, indexSize
);
128 trace_dump_arg(uint
, minIndex
);
129 trace_dump_arg(uint
, maxIndex
);
130 trace_dump_arg(uint
, mode
);
131 trace_dump_arg(uint
, start
);
132 trace_dump_arg(uint
, count
);
134 result
= pipe
->draw_range_elements(pipe
,
136 indexSize
, minIndex
, maxIndex
,
139 trace_dump_ret(bool, result
);
141 trace_dump_call_end();
147 static INLINE
struct pipe_query
*
148 trace_context_create_query(struct pipe_context
*_pipe
,
151 struct trace_context
*tr_ctx
= trace_context(_pipe
);
152 struct pipe_context
*pipe
= tr_ctx
->pipe
;
153 struct pipe_query
*result
;
155 trace_dump_call_begin("pipe_context", "create_query");
157 trace_dump_arg(ptr
, pipe
);
158 trace_dump_arg(uint
, query_type
);
160 result
= pipe
->create_query(pipe
, query_type
);;
162 trace_dump_ret(ptr
, result
);
164 trace_dump_call_end();
171 trace_context_destroy_query(struct pipe_context
*_pipe
,
172 struct pipe_query
*query
)
174 struct trace_context
*tr_ctx
= trace_context(_pipe
);
175 struct pipe_context
*pipe
= tr_ctx
->pipe
;
177 trace_dump_call_begin("pipe_context", "destroy_query");
179 trace_dump_arg(ptr
, pipe
);
180 trace_dump_arg(ptr
, query
);
182 pipe
->destroy_query(pipe
, query
);;
184 trace_dump_call_end();
189 trace_context_begin_query(struct pipe_context
*_pipe
,
190 struct pipe_query
*query
)
192 struct trace_context
*tr_ctx
= trace_context(_pipe
);
193 struct pipe_context
*pipe
= tr_ctx
->pipe
;
195 trace_dump_call_begin("pipe_context", "begin_query");
197 trace_dump_arg(ptr
, pipe
);
198 trace_dump_arg(ptr
, query
);
200 pipe
->begin_query(pipe
, query
);;
202 trace_dump_call_end();
207 trace_context_end_query(struct pipe_context
*_pipe
,
208 struct pipe_query
*query
)
210 struct trace_context
*tr_ctx
= trace_context(_pipe
);
211 struct pipe_context
*pipe
= tr_ctx
->pipe
;
213 trace_dump_call_begin("pipe_context", "end_query");
215 trace_dump_arg(ptr
, pipe
);
216 trace_dump_arg(ptr
, query
);
218 pipe
->end_query(pipe
, query
);
220 trace_dump_call_end();
224 static INLINE boolean
225 trace_context_get_query_result(struct pipe_context
*_pipe
,
226 struct pipe_query
*query
,
230 struct trace_context
*tr_ctx
= trace_context(_pipe
);
231 struct pipe_context
*pipe
= tr_ctx
->pipe
;
235 trace_dump_call_begin("pipe_context", "get_query_result");
237 trace_dump_arg(ptr
, pipe
);
239 _result
= pipe
->get_query_result(pipe
, query
, wait
, presult
);;
242 trace_dump_arg(uint
, result
);
243 trace_dump_ret(bool, _result
);
245 trace_dump_call_end();
252 trace_context_create_blend_state(struct pipe_context
*_pipe
,
253 const struct pipe_blend_state
*state
)
255 struct trace_context
*tr_ctx
= trace_context(_pipe
);
256 struct pipe_context
*pipe
= tr_ctx
->pipe
;
259 trace_dump_call_begin("pipe_context", "create_blend_state");
261 trace_dump_arg(ptr
, pipe
);
262 trace_dump_arg(blend_state
, state
);
264 result
= pipe
->create_blend_state(pipe
, state
);;
266 trace_dump_ret(ptr
, result
);
268 trace_dump_call_end();
275 trace_context_bind_blend_state(struct pipe_context
*_pipe
,
278 struct trace_context
*tr_ctx
= trace_context(_pipe
);
279 struct pipe_context
*pipe
= tr_ctx
->pipe
;
281 trace_dump_call_begin("pipe_context", "bind_blend_state");
283 trace_dump_arg(ptr
, pipe
);
284 trace_dump_arg(ptr
, state
);
286 pipe
->bind_blend_state(pipe
, state
);;
288 trace_dump_call_end();
293 trace_context_delete_blend_state(struct pipe_context
*_pipe
,
296 struct trace_context
*tr_ctx
= trace_context(_pipe
);
297 struct pipe_context
*pipe
= tr_ctx
->pipe
;
299 trace_dump_call_begin("pipe_context", "delete_blend_state");
301 trace_dump_arg(ptr
, pipe
);
302 trace_dump_arg(ptr
, state
);
304 pipe
->delete_blend_state(pipe
, state
);;
306 trace_dump_call_end();
311 trace_context_create_sampler_state(struct pipe_context
*_pipe
,
312 const struct pipe_sampler_state
*state
)
314 struct trace_context
*tr_ctx
= trace_context(_pipe
);
315 struct pipe_context
*pipe
= tr_ctx
->pipe
;
318 trace_dump_call_begin("pipe_context", "create_sampler_state");
320 trace_dump_arg(ptr
, pipe
);
321 trace_dump_arg(ptr
, state
);
323 result
= pipe
->create_sampler_state(pipe
, state
);;
325 trace_dump_ret(sampler_state
, result
);
327 trace_dump_call_end();
334 trace_context_bind_sampler_states(struct pipe_context
*_pipe
,
335 unsigned num_states
, void **states
)
337 struct trace_context
*tr_ctx
= trace_context(_pipe
);
338 struct pipe_context
*pipe
= tr_ctx
->pipe
;
340 trace_dump_call_begin("pipe_context", "bind_sampler_states");
342 trace_dump_arg(ptr
, pipe
);
343 trace_dump_arg(uint
, num_states
);
344 trace_dump_arg_array(ptr
, states
, num_states
);
346 pipe
->bind_sampler_states(pipe
, num_states
, states
);;
348 trace_dump_call_end();
353 trace_context_delete_sampler_state(struct pipe_context
*_pipe
,
356 struct trace_context
*tr_ctx
= trace_context(_pipe
);
357 struct pipe_context
*pipe
= tr_ctx
->pipe
;
359 trace_dump_call_begin("pipe_context", "delete_sampler_state");
361 trace_dump_arg(ptr
, pipe
);
362 trace_dump_arg(ptr
, state
);
364 pipe
->delete_sampler_state(pipe
, state
);;
366 trace_dump_call_end();
371 trace_context_create_rasterizer_state(struct pipe_context
*_pipe
,
372 const struct pipe_rasterizer_state
*state
)
374 struct trace_context
*tr_ctx
= trace_context(_pipe
);
375 struct pipe_context
*pipe
= tr_ctx
->pipe
;
378 trace_dump_call_begin("pipe_context", "create_rasterizer_state");
380 trace_dump_arg(ptr
, pipe
);
381 trace_dump_arg(rasterizer_state
, state
);
383 result
= pipe
->create_rasterizer_state(pipe
, state
);;
385 trace_dump_ret(ptr
, result
);
387 trace_dump_call_end();
394 trace_context_bind_rasterizer_state(struct pipe_context
*_pipe
,
397 struct trace_context
*tr_ctx
= trace_context(_pipe
);
398 struct pipe_context
*pipe
= tr_ctx
->pipe
;
400 trace_dump_call_begin("pipe_context", "bind_rasterizer_state");
402 trace_dump_arg(ptr
, pipe
);
403 trace_dump_arg(ptr
, state
);
405 pipe
->bind_rasterizer_state(pipe
, state
);;
407 trace_dump_call_end();
412 trace_context_delete_rasterizer_state(struct pipe_context
*_pipe
,
415 struct trace_context
*tr_ctx
= trace_context(_pipe
);
416 struct pipe_context
*pipe
= tr_ctx
->pipe
;
418 trace_dump_call_begin("pipe_context", "delete_rasterizer_state");
420 trace_dump_arg(ptr
, pipe
);
421 trace_dump_arg(ptr
, state
);
423 pipe
->delete_rasterizer_state(pipe
, state
);;
425 trace_dump_call_end();
430 trace_context_create_depth_stencil_alpha_state(struct pipe_context
*_pipe
,
431 const struct pipe_depth_stencil_alpha_state
*state
)
433 struct trace_context
*tr_ctx
= trace_context(_pipe
);
434 struct pipe_context
*pipe
= tr_ctx
->pipe
;
437 trace_dump_call_begin("pipe_context", "create_depth_stencil_alpha_state");
439 result
= pipe
->create_depth_stencil_alpha_state(pipe
, state
);;
441 trace_dump_arg(ptr
, pipe
);
442 trace_dump_arg(depth_stencil_alpha_state
, state
);
444 trace_dump_ret(ptr
, result
);
446 trace_dump_call_end();
453 trace_context_bind_depth_stencil_alpha_state(struct pipe_context
*_pipe
,
456 struct trace_context
*tr_ctx
= trace_context(_pipe
);
457 struct pipe_context
*pipe
= tr_ctx
->pipe
;
459 trace_dump_call_begin("pipe_context", "bind_depth_stencil_alpha_state");
461 trace_dump_arg(ptr
, pipe
);
462 trace_dump_arg(ptr
, state
);
464 pipe
->bind_depth_stencil_alpha_state(pipe
, state
);;
466 trace_dump_call_end();
471 trace_context_delete_depth_stencil_alpha_state(struct pipe_context
*_pipe
,
474 struct trace_context
*tr_ctx
= trace_context(_pipe
);
475 struct pipe_context
*pipe
= tr_ctx
->pipe
;
477 trace_dump_call_begin("pipe_context", "delete_depth_stencil_alpha_state");
479 trace_dump_arg(ptr
, pipe
);
480 trace_dump_arg(ptr
, state
);
482 pipe
->delete_depth_stencil_alpha_state(pipe
, state
);;
484 trace_dump_call_end();
489 trace_context_create_fs_state(struct pipe_context
*_pipe
,
490 const struct pipe_shader_state
*state
)
492 struct trace_context
*tr_ctx
= trace_context(_pipe
);
493 struct pipe_context
*pipe
= tr_ctx
->pipe
;
496 trace_dump_call_begin("pipe_context", "create_fs_state");
498 trace_dump_arg(ptr
, pipe
);
499 trace_dump_arg(shader_state
, state
);
501 result
= pipe
->create_fs_state(pipe
, state
);;
503 trace_dump_ret(ptr
, result
);
505 trace_dump_call_end();
512 trace_context_bind_fs_state(struct pipe_context
*_pipe
,
515 struct trace_context
*tr_ctx
= trace_context(_pipe
);
516 struct pipe_context
*pipe
= tr_ctx
->pipe
;
518 trace_dump_call_begin("pipe_context", "bind_fs_state");
520 trace_dump_arg(ptr
, pipe
);
521 trace_dump_arg(ptr
, state
);
523 pipe
->bind_fs_state(pipe
, state
);;
525 trace_dump_call_end();
530 trace_context_delete_fs_state(struct pipe_context
*_pipe
,
533 struct trace_context
*tr_ctx
= trace_context(_pipe
);
534 struct pipe_context
*pipe
= tr_ctx
->pipe
;
536 trace_dump_call_begin("pipe_context", "delete_fs_state");
538 trace_dump_arg(ptr
, pipe
);
539 trace_dump_arg(ptr
, state
);
541 pipe
->delete_fs_state(pipe
, state
);;
543 trace_dump_call_end();
548 trace_context_create_vs_state(struct pipe_context
*_pipe
,
549 const struct pipe_shader_state
*state
)
551 struct trace_context
*tr_ctx
= trace_context(_pipe
);
552 struct pipe_context
*pipe
= tr_ctx
->pipe
;
555 trace_dump_call_begin("pipe_context", "create_vs_state");
557 trace_dump_arg(ptr
, pipe
);
558 trace_dump_arg(shader_state
, state
);
560 result
= pipe
->create_vs_state(pipe
, state
);;
562 trace_dump_ret(ptr
, result
);
564 trace_dump_call_end();
571 trace_context_bind_vs_state(struct pipe_context
*_pipe
,
574 struct trace_context
*tr_ctx
= trace_context(_pipe
);
575 struct pipe_context
*pipe
= tr_ctx
->pipe
;
577 trace_dump_call_begin("pipe_context", "bind_vs_state");
579 trace_dump_arg(ptr
, pipe
);
580 trace_dump_arg(ptr
, state
);
582 pipe
->bind_vs_state(pipe
, state
);;
584 trace_dump_call_end();
589 trace_context_delete_vs_state(struct pipe_context
*_pipe
,
592 struct trace_context
*tr_ctx
= trace_context(_pipe
);
593 struct pipe_context
*pipe
= tr_ctx
->pipe
;
595 trace_dump_call_begin("pipe_context", "delete_vs_state");
597 trace_dump_arg(ptr
, pipe
);
598 trace_dump_arg(ptr
, state
);
600 pipe
->delete_vs_state(pipe
, state
);;
602 trace_dump_call_end();
607 trace_context_set_blend_color(struct pipe_context
*_pipe
,
608 const struct pipe_blend_color
*state
)
610 struct trace_context
*tr_ctx
= trace_context(_pipe
);
611 struct pipe_context
*pipe
= tr_ctx
->pipe
;
613 trace_dump_call_begin("pipe_context", "set_blend_color");
615 trace_dump_arg(ptr
, pipe
);
616 trace_dump_arg(blend_color
, state
);
618 pipe
->set_blend_color(pipe
, state
);;
620 trace_dump_call_end();
625 trace_context_set_clip_state(struct pipe_context
*_pipe
,
626 const struct pipe_clip_state
*state
)
628 struct trace_context
*tr_ctx
= trace_context(_pipe
);
629 struct pipe_context
*pipe
= tr_ctx
->pipe
;
631 trace_dump_call_begin("pipe_context", "set_clip_state");
633 trace_dump_arg(ptr
, pipe
);
634 trace_dump_arg(clip_state
, state
);
636 pipe
->set_clip_state(pipe
, state
);;
638 trace_dump_call_end();
643 trace_context_set_constant_buffer(struct pipe_context
*_pipe
,
644 uint shader
, uint index
,
645 const struct pipe_constant_buffer
*buffer
)
647 struct trace_context
*tr_ctx
= trace_context(_pipe
);
648 struct pipe_context
*pipe
= tr_ctx
->pipe
;
650 trace_dump_call_begin("pipe_context", "set_constant_buffer");
652 trace_dump_arg(ptr
, pipe
);
653 trace_dump_arg(uint
, shader
);
654 trace_dump_arg(uint
, index
);
655 trace_dump_arg(constant_buffer
, buffer
);
657 pipe
->set_constant_buffer(pipe
, shader
, index
, buffer
);;
659 trace_dump_call_end();
664 trace_context_set_framebuffer_state(struct pipe_context
*_pipe
,
665 const struct pipe_framebuffer_state
*state
)
667 struct trace_context
*tr_ctx
= trace_context(_pipe
);
668 struct pipe_context
*pipe
= tr_ctx
->pipe
;
670 trace_dump_call_begin("pipe_context", "set_framebuffer_state");
672 trace_dump_arg(ptr
, pipe
);
673 trace_dump_arg(framebuffer_state
, state
);
675 pipe
->set_framebuffer_state(pipe
, state
);;
677 trace_dump_call_end();
682 trace_context_set_polygon_stipple(struct pipe_context
*_pipe
,
683 const struct pipe_poly_stipple
*state
)
685 struct trace_context
*tr_ctx
= trace_context(_pipe
);
686 struct pipe_context
*pipe
= tr_ctx
->pipe
;
688 trace_dump_call_begin("pipe_context", "set_polygon_stipple");
690 trace_dump_arg(ptr
, pipe
);
691 trace_dump_arg(poly_stipple
, state
);
693 pipe
->set_polygon_stipple(pipe
, state
);;
695 trace_dump_call_end();
700 trace_context_set_scissor_state(struct pipe_context
*_pipe
,
701 const struct pipe_scissor_state
*state
)
703 struct trace_context
*tr_ctx
= trace_context(_pipe
);
704 struct pipe_context
*pipe
= tr_ctx
->pipe
;
706 trace_dump_call_begin("pipe_context", "set_scissor_state");
708 trace_dump_arg(ptr
, pipe
);
709 trace_dump_arg(scissor_state
, state
);
711 pipe
->set_scissor_state(pipe
, state
);;
713 trace_dump_call_end();
718 trace_context_set_viewport_state(struct pipe_context
*_pipe
,
719 const struct pipe_viewport_state
*state
)
721 struct trace_context
*tr_ctx
= trace_context(_pipe
);
722 struct pipe_context
*pipe
= tr_ctx
->pipe
;
724 trace_dump_call_begin("pipe_context", "set_viewport_state");
726 trace_dump_arg(ptr
, pipe
);
727 trace_dump_arg(viewport_state
, state
);
729 pipe
->set_viewport_state(pipe
, state
);;
731 trace_dump_call_end();
736 trace_context_set_sampler_textures(struct pipe_context
*_pipe
,
737 unsigned num_textures
,
738 struct pipe_texture
**textures
)
740 struct trace_context
*tr_ctx
= trace_context(_pipe
);
741 struct pipe_context
*pipe
= tr_ctx
->pipe
;
743 trace_dump_call_begin("pipe_context", "set_sampler_textures");
745 trace_dump_arg(ptr
, pipe
);
746 trace_dump_arg(uint
, num_textures
);
747 trace_dump_arg_array(ptr
, textures
, num_textures
);
749 pipe
->set_sampler_textures(pipe
, num_textures
, textures
);;
751 trace_dump_call_end();
756 trace_context_set_vertex_buffers(struct pipe_context
*_pipe
,
757 unsigned num_buffers
,
758 const struct pipe_vertex_buffer
*buffers
)
760 struct trace_context
*tr_ctx
= trace_context(_pipe
);
761 struct pipe_context
*pipe
= tr_ctx
->pipe
;
763 trace_dump_call_begin("pipe_context", "set_vertex_buffers");
765 trace_dump_arg(ptr
, pipe
);
766 trace_dump_arg(uint
, num_buffers
);
768 trace_dump_arg_begin("buffers");
769 trace_dump_struct_array(vertex_buffer
, buffers
, num_buffers
);
770 trace_dump_arg_end();
772 pipe
->set_vertex_buffers(pipe
, num_buffers
, buffers
);;
774 trace_dump_call_end();
779 trace_context_set_vertex_elements(struct pipe_context
*_pipe
,
780 unsigned num_elements
,
781 const struct pipe_vertex_element
*elements
)
783 struct trace_context
*tr_ctx
= trace_context(_pipe
);
784 struct pipe_context
*pipe
= tr_ctx
->pipe
;
786 trace_dump_call_begin("pipe_context", "set_vertex_elements");
788 trace_dump_arg(ptr
, pipe
);
789 trace_dump_arg(uint
, num_elements
);
791 trace_dump_arg_begin("elements");
792 trace_dump_struct_array(vertex_element
, elements
, num_elements
);
793 trace_dump_arg_end();
795 pipe
->set_vertex_elements(pipe
, num_elements
, elements
);;
797 trace_dump_call_end();
802 trace_context_surface_copy(struct pipe_context
*_pipe
,
804 struct pipe_surface
*dest
,
805 unsigned destx
, unsigned desty
,
806 struct pipe_surface
*src
,
807 unsigned srcx
, unsigned srcy
,
808 unsigned width
, unsigned height
)
810 struct trace_context
*tr_ctx
= trace_context(_pipe
);
811 struct pipe_context
*pipe
= tr_ctx
->pipe
;
813 trace_dump_call_begin("pipe_context", "surface_copy");
815 trace_dump_arg(ptr
, pipe
);
816 trace_dump_arg(bool, do_flip
);
817 trace_dump_arg(ptr
, dest
);
818 trace_dump_arg(uint
, destx
);
819 trace_dump_arg(uint
, desty
);
820 trace_dump_arg(ptr
, src
);
821 trace_dump_arg(uint
, srcx
);
822 trace_dump_arg(uint
, srcy
);
823 trace_dump_arg(uint
, width
);
824 trace_dump_arg(uint
, height
);
826 pipe
->surface_copy(pipe
, do_flip
,
828 src
, srcx
, srcy
, width
, height
);
830 trace_dump_call_end();
835 trace_context_surface_fill(struct pipe_context
*_pipe
,
836 struct pipe_surface
*dst
,
837 unsigned dstx
, unsigned dsty
,
838 unsigned width
, unsigned height
,
841 struct trace_context
*tr_ctx
= trace_context(_pipe
);
842 struct pipe_context
*pipe
= tr_ctx
->pipe
;
844 trace_dump_call_begin("pipe_context", "surface_fill");
846 trace_dump_arg(ptr
, pipe
);
847 trace_dump_arg(ptr
, dst
);
848 trace_dump_arg(uint
, dstx
);
849 trace_dump_arg(uint
, dsty
);
850 trace_dump_arg(uint
, width
);
851 trace_dump_arg(uint
, height
);
853 pipe
->surface_fill(pipe
, dst
, dstx
, dsty
, width
, height
, value
);;
855 trace_dump_call_end();
860 trace_context_clear(struct pipe_context
*_pipe
,
861 struct pipe_surface
*surface
,
864 struct trace_context
*tr_ctx
= trace_context(_pipe
);
865 struct pipe_context
*pipe
= tr_ctx
->pipe
;
867 trace_dump_call_begin("pipe_context", "clear");
869 trace_dump_arg(ptr
, pipe
);
870 trace_dump_arg(ptr
, surface
);
871 trace_dump_arg(uint
, clearValue
);
873 pipe
->clear(pipe
, surface
, clearValue
);;
875 trace_dump_call_end();
880 trace_context_flush(struct pipe_context
*_pipe
,
882 struct pipe_fence_handle
**fence
)
884 struct trace_context
*tr_ctx
= trace_context(_pipe
);
885 struct pipe_context
*pipe
= tr_ctx
->pipe
;
887 trace_dump_call_begin("pipe_context", "flush");
889 trace_dump_arg(ptr
, pipe
);
890 trace_dump_arg(uint
, flags
);
891 trace_dump_arg(ptr
, fence
);
893 pipe
->flush(pipe
, flags
, fence
);;
895 trace_dump_call_end();
900 trace_context_destroy(struct pipe_context
*_pipe
)
902 struct trace_context
*tr_ctx
= trace_context(_pipe
);
903 struct pipe_context
*pipe
= tr_ctx
->pipe
;
905 trace_dump_call_begin("pipe_context", "destroy");
907 trace_dump_arg(ptr
, pipe
);
911 trace_dump_call_end();
917 struct pipe_context
*
918 trace_context_create(struct pipe_screen
*screen
,
919 struct pipe_context
*pipe
)
921 struct trace_context
*tr_ctx
;
926 tr_ctx
= CALLOC_STRUCT(trace_context
);
930 tr_ctx
->base
.winsys
= screen
->winsys
;
931 tr_ctx
->base
.screen
= screen
;
932 tr_ctx
->base
.destroy
= trace_context_destroy
;
933 tr_ctx
->base
.set_edgeflags
= trace_context_set_edgeflags
;
934 tr_ctx
->base
.draw_arrays
= trace_context_draw_arrays
;
935 tr_ctx
->base
.draw_elements
= trace_context_draw_elements
;
936 tr_ctx
->base
.draw_range_elements
= trace_context_draw_range_elements
;
937 tr_ctx
->base
.create_query
= trace_context_create_query
;
938 tr_ctx
->base
.destroy_query
= trace_context_destroy_query
;
939 tr_ctx
->base
.begin_query
= trace_context_begin_query
;
940 tr_ctx
->base
.end_query
= trace_context_end_query
;
941 tr_ctx
->base
.get_query_result
= trace_context_get_query_result
;
942 tr_ctx
->base
.create_blend_state
= trace_context_create_blend_state
;
943 tr_ctx
->base
.bind_blend_state
= trace_context_bind_blend_state
;
944 tr_ctx
->base
.delete_blend_state
= trace_context_delete_blend_state
;
945 tr_ctx
->base
.create_sampler_state
= trace_context_create_sampler_state
;
946 tr_ctx
->base
.bind_sampler_states
= trace_context_bind_sampler_states
;
947 tr_ctx
->base
.delete_sampler_state
= trace_context_delete_sampler_state
;
948 tr_ctx
->base
.create_rasterizer_state
= trace_context_create_rasterizer_state
;
949 tr_ctx
->base
.bind_rasterizer_state
= trace_context_bind_rasterizer_state
;
950 tr_ctx
->base
.delete_rasterizer_state
= trace_context_delete_rasterizer_state
;
951 tr_ctx
->base
.create_depth_stencil_alpha_state
= trace_context_create_depth_stencil_alpha_state
;
952 tr_ctx
->base
.bind_depth_stencil_alpha_state
= trace_context_bind_depth_stencil_alpha_state
;
953 tr_ctx
->base
.delete_depth_stencil_alpha_state
= trace_context_delete_depth_stencil_alpha_state
;
954 tr_ctx
->base
.create_fs_state
= trace_context_create_fs_state
;
955 tr_ctx
->base
.bind_fs_state
= trace_context_bind_fs_state
;
956 tr_ctx
->base
.delete_fs_state
= trace_context_delete_fs_state
;
957 tr_ctx
->base
.create_vs_state
= trace_context_create_vs_state
;
958 tr_ctx
->base
.bind_vs_state
= trace_context_bind_vs_state
;
959 tr_ctx
->base
.delete_vs_state
= trace_context_delete_vs_state
;
960 tr_ctx
->base
.set_blend_color
= trace_context_set_blend_color
;
961 tr_ctx
->base
.set_clip_state
= trace_context_set_clip_state
;
962 tr_ctx
->base
.set_constant_buffer
= trace_context_set_constant_buffer
;
963 tr_ctx
->base
.set_framebuffer_state
= trace_context_set_framebuffer_state
;
964 tr_ctx
->base
.set_polygon_stipple
= trace_context_set_polygon_stipple
;
965 tr_ctx
->base
.set_scissor_state
= trace_context_set_scissor_state
;
966 tr_ctx
->base
.set_viewport_state
= trace_context_set_viewport_state
;
967 tr_ctx
->base
.set_sampler_textures
= trace_context_set_sampler_textures
;
968 tr_ctx
->base
.set_vertex_buffers
= trace_context_set_vertex_buffers
;
969 tr_ctx
->base
.set_vertex_elements
= trace_context_set_vertex_elements
;
970 tr_ctx
->base
.surface_copy
= trace_context_surface_copy
;
971 tr_ctx
->base
.surface_fill
= trace_context_surface_fill
;
972 tr_ctx
->base
.clear
= trace_context_clear
;
973 tr_ctx
->base
.flush
= trace_context_flush
;
977 trace_dump_call_begin("", "pipe_context_create");
978 trace_dump_arg_begin("screen");
979 trace_dump_ptr(pipe
->screen
);
980 trace_dump_arg_end();
981 trace_dump_ret(ptr
, pipe
);
982 trace_dump_call_end();
984 return &tr_ctx
->base
;