diff options
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/mtypes.h | 3 | ||||
-rw-r--r-- | src/mesa/main/queryobj.c | 15 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 3e4c49249a0..52448ee04eb 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -126,6 +126,7 @@ struct gl_pixelstore_attrib; struct gl_texture_format; struct gl_texture_image; struct gl_texture_object; +struct st_context; typedef struct __GLcontextRec GLcontext; typedef struct __GLcontextModesRec GLvisual; typedef struct gl_framebuffer GLframebuffer; @@ -3102,7 +3103,7 @@ struct __GLcontextRec void *swsetup_context; void *swtnl_context; void *swtnl_im; - void *acache_context; + struct st_context *st; void *aelt_context; /*@}*/ }; diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c index 0e59ba615a7..fc04dde3f49 100644 --- a/src/mesa/main/queryobj.c +++ b/src/mesa/main/queryobj.c @@ -30,6 +30,11 @@ #include "queryobj.h" #include "mtypes.h" +#if 1 /*PIPE*/ +#include "pipe/p_context.h" +#include "state_tracker/st_context.h" +#endif + /** * Allocate a new query object. This is a fallback routine called via @@ -220,6 +225,10 @@ _mesa_BeginQueryARB(GLenum target, GLuint id) q->Result = 0; q->Ready = GL_FALSE; +#if 1 /*PIPE*/ + ctx->st->pipe->reset_occlusion_counter(ctx->st->pipe); +#endif + if (target == GL_SAMPLES_PASSED_ARB) { ctx->Query.CurrentOcclusionObject = q; } @@ -282,6 +291,12 @@ _mesa_EndQueryARB(GLenum target) /* if we're using software rendering/querying */ q->Ready = GL_TRUE; } + +#if 1 /*PIPE*/ + if (target == GL_SAMPLES_PASSED_ARB) { + q->Result = ctx->st->pipe->get_occlusion_counter(ctx->st->pipe); + } +#endif } |