Hi everybody,

u_gen_mipmap doesn't disable queries, so all active queries are
incremented, even though mipmap generation shouldn't have any effect
on queries. Hardware drivers can disable queries, but this feature is
not exposed via the gallium interface. Generally, we want to disable
all queries except for the time_elapsed query for u_gen_mipmap. I
propose the following solutions to this problem:

1) Add pipe_context::pause_all_queries(pipe) and
resume_all_queries(pipe). It's self-explanatory.

2) Add pipe_context::pause_query(pipe, query) and resume_query(pipe,
query). This has the disadvantage of having to enumerate all active
queries in u_gen_mipmap.

3) Add pipe_rasterizer_state::disable_all_queries:1, or separate bits
disable_occlusion_queries:1 and disable_streamout_queries:1 (this
includes the primitives_generated query too).

4) Rewrite u_gen_mipmap to use pipe->blit.

Please comment.

Thanks.

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to