X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi965%2Fbrw_queryobj.c;h=c48f85392759dec332b31a3499659e287df11b18;hb=4f767ded6effc60f7542089f368614f3d51bbba5;hp=f667f55b6bfe33a1305888be90b1a5617450c32d;hpb=a68873f668acf70fc8c5158d3aafc63838efa697;p=mesa.git diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index f667f55b6bf..c48f8539275 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -36,20 +36,13 @@ * needs. */ #include "main/imports.h" +#include "main/queryobj.h" #include "brw_context.h" #include "brw_defines.h" #include "brw_state.h" #include "intel_batchbuffer.h" -uint64_t -brw_timebase_scale(struct brw_context *brw, uint64_t gpu_timestamp) -{ - const struct gen_device_info *devinfo = &brw->screen->devinfo; - - return (1000000000ull * gpu_timestamp) / devinfo->timestamp_frequency; -} - /* As best we know currently, the Gen HW timestamps are 36bits across * all platforms, which we need to account for when calculating a * delta to measure elapsed time. @@ -134,7 +127,7 @@ brw_queryobj_get_results(struct gl_context *ctx, struct brw_query_object *query) { struct brw_context *brw = brw_context(ctx); - const struct gen_device_info *devinfo = &brw->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = &brw->screen->devinfo; int i; uint64_t *results; @@ -164,12 +157,12 @@ brw_queryobj_get_results(struct gl_context *ctx, * Subtract the two and convert to nanoseconds. */ query->Base.Result = brw_raw_timestamp_delta(brw, results[0], results[1]); - query->Base.Result = brw_timebase_scale(brw, query->Base.Result); + query->Base.Result = gen_device_info_timebase_scale(devinfo, query->Base.Result); break; case GL_TIMESTAMP: /* The query BO contains a single timestamp value in results[0]. */ - query->Base.Result = brw_timebase_scale(brw, results[0]); + query->Base.Result = gen_device_info_timebase_scale(devinfo, results[0]); /* Ensure the scaled timestamp overflows according to * GL_QUERY_COUNTER_BITS @@ -247,7 +240,7 @@ brw_delete_query(struct gl_context *ctx, struct gl_query_object *q) struct brw_query_object *query = (struct brw_query_object *)q; brw_bo_unreference(query->bo); - free(query); + _mesa_delete_query(ctx, q); } /** @@ -261,7 +254,7 @@ brw_begin_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_context *brw = brw_context(ctx); struct brw_query_object *query = (struct brw_query_object *)q; - const struct gen_device_info *devinfo = &brw->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = &brw->screen->devinfo; assert(devinfo->gen < 6); @@ -287,7 +280,8 @@ brw_begin_query(struct gl_context *ctx, struct gl_query_object *q) * the system was doing other work, such as running other applications. */ brw_bo_unreference(query->bo); - query->bo = brw_bo_alloc(brw->bufmgr, "timer query", 4096, 4096); + query->bo = + brw_bo_alloc(brw->bufmgr, "timer query", 4096, BRW_MEMZONE_OTHER); brw_write_timestamp(brw, query->bo, 0); break; @@ -333,7 +327,7 @@ brw_end_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_context *brw = brw_context(ctx); struct brw_query_object *query = (struct brw_query_object *)q; - const struct gen_device_info *devinfo = &brw->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = &brw->screen->devinfo; assert(devinfo->gen < 6); @@ -387,7 +381,8 @@ brw_end_query(struct gl_context *ctx, struct gl_query_object *q) static void brw_wait_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_query_object *query = (struct brw_query_object *)q; - const struct gen_device_info *devinfo = &brw_context(ctx)->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = + &brw_context(ctx)->screen->devinfo; assert(devinfo->gen < 6); @@ -405,7 +400,7 @@ static void brw_check_query(struct gl_context *ctx, struct gl_query_object *q) { struct brw_context *brw = brw_context(ctx); struct brw_query_object *query = (struct brw_query_object *)q; - const struct gen_device_info *devinfo = &brw->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = &brw->screen->devinfo; assert(devinfo->gen < 6); @@ -435,7 +430,7 @@ static void ensure_bo_has_space(struct gl_context *ctx, struct brw_query_object *query) { struct brw_context *brw = brw_context(ctx); - const struct gen_device_info *devinfo = &brw->screen->devinfo; + UNUSED const struct gen_device_info *devinfo = &brw->screen->devinfo; assert(devinfo->gen < 6); @@ -449,7 +444,7 @@ ensure_bo_has_space(struct gl_context *ctx, struct brw_query_object *query) brw_queryobj_get_results(ctx, query); } - query->bo = brw_bo_alloc(brw->bufmgr, "query", 4096, 1); + query->bo = brw_bo_alloc(brw->bufmgr, "query", 4096, BRW_MEMZONE_OTHER); query->last_index = 0; } } @@ -529,7 +524,8 @@ brw_query_counter(struct gl_context *ctx, struct gl_query_object *q) assert(q->Target == GL_TIMESTAMP); brw_bo_unreference(query->bo); - query->bo = brw_bo_alloc(brw->bufmgr, "timestamp query", 4096, 4096); + query->bo = + brw_bo_alloc(brw->bufmgr, "timestamp query", 4096, BRW_MEMZONE_OTHER); brw_write_timestamp(brw, query->bo, 0); query->flushed = false; @@ -544,6 +540,7 @@ static uint64_t brw_get_timestamp(struct gl_context *ctx) { struct brw_context *brw = brw_context(ctx); + const struct gen_device_info *devinfo = &brw->screen->devinfo; uint64_t result = 0; switch (brw->screen->hw_has_timestamp) { @@ -560,7 +557,7 @@ brw_get_timestamp(struct gl_context *ctx) } /* Scale to nanosecond units */ - result = brw_timebase_scale(brw, result); + result = gen_device_info_timebase_scale(devinfo, result); /* Ensure the scaled timestamp overflows according to * GL_QUERY_COUNTER_BITS. Technically this isn't required if