gallium: remove occlusion_count flag from depth-stencil state
Drivers can just keep track of whether they are within a query by monitoring the begin/end query callbacks. The flag adds no information beyond that. Only softpipe was examining this flag -- it has been fixed up and retested with demos/arbocclude.
This commit is contained in:
parent
3259f52a92
commit
57fd202375
|
@ -92,6 +92,7 @@ struct softpipe_context {
|
|||
* queries.
|
||||
*/
|
||||
uint64_t occlusion_count;
|
||||
unsigned active_query_count;
|
||||
|
||||
/** Mapped vertex buffers */
|
||||
ubyte *mapped_vbuffer[PIPE_MAX_ATTRIBS];
|
||||
|
|
|
@ -80,7 +80,7 @@ sp_build_quad_pipeline(struct softpipe_context *sp)
|
|||
sp_push_quad_first( sp, sp->quad[i].blend, i );
|
||||
}
|
||||
|
||||
if (sp->depth_stencil->depth.occlusion_count) {
|
||||
if (sp->active_query_count) {
|
||||
sp_push_quad_first( sp, sp->quad[i].occlusion, i );
|
||||
}
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "util/u_memory.h"
|
||||
#include "sp_context.h"
|
||||
#include "sp_query.h"
|
||||
#include "sp_state.h"
|
||||
|
||||
struct softpipe_query {
|
||||
uint64_t start;
|
||||
|
@ -69,6 +70,8 @@ softpipe_begin_query(struct pipe_context *pipe, struct pipe_query *q)
|
|||
struct softpipe_query *sq = softpipe_query(q);
|
||||
|
||||
sq->start = softpipe->occlusion_count;
|
||||
softpipe->active_query_count++;
|
||||
softpipe->dirty |= SP_NEW_QUERY;
|
||||
}
|
||||
|
||||
|
||||
|
@ -78,7 +81,9 @@ softpipe_end_query(struct pipe_context *pipe, struct pipe_query *q)
|
|||
struct softpipe_context *softpipe = softpipe_context( pipe );
|
||||
struct softpipe_query *sq = softpipe_query(q);
|
||||
|
||||
softpipe->active_query_count--;
|
||||
sq->end = softpipe->occlusion_count;
|
||||
softpipe->dirty |= SP_NEW_QUERY;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -271,7 +271,6 @@ void trace_dump_depth_stencil_alpha_state(const struct pipe_depth_stencil_alpha_
|
|||
trace_dump_member(bool, &state->depth, enabled);
|
||||
trace_dump_member(bool, &state->depth, writemask);
|
||||
trace_dump_member(uint, &state->depth, func);
|
||||
trace_dump_member(bool, &state->depth, occlusion_count);
|
||||
trace_dump_struct_end();
|
||||
trace_dump_member_end();
|
||||
|
||||
|
|
Loading…
Reference in New Issue