summaryrefslogtreecommitdiffstats
path: root/src/mesa/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main')
-rw-r--r--src/mesa/main/mtypes.h3
-rw-r--r--src/mesa/main/queryobj.c15
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
}