X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Futil%2Fu_timed_winsys.c;h=d88298bc14c31b27c47e56523e0187f71b702bc9;hb=eb4dc547885994cc7961f7996c33ff484f664964;hp=8beb3b4c885b526203b9f3532cb8fa7ca4e5387d;hpb=49680dae5dd014503974f20c0b943244622ca3d5;p=mesa.git diff --git a/src/gallium/auxiliary/util/u_timed_winsys.c b/src/gallium/auxiliary/util/u_timed_winsys.c index 8beb3b4c885..d88298bc14c 100644 --- a/src/gallium/auxiliary/util/u_timed_winsys.c +++ b/src/gallium/auxiliary/util/u_timed_winsys.c @@ -29,10 +29,11 @@ * Authors: Keith Whitwell */ -#include "pipe/p_winsys.h" +#include "pipe/p_state.h" +#include "util/u_simple_screen.h" #include "u_timed_winsys.h" #include "util/u_memory.h" -#include "util/u_time.h" +#include "os/os_time.h" struct timed_winsys { @@ -53,12 +54,6 @@ static struct timed_winsys *timed_winsys( struct pipe_winsys *winsys ) } -static uint64_t time_start( void ) -{ - return util_time_micros(); -} - - static void time_display( struct pipe_winsys *winsys ) { struct timed_winsys *tws = timed_winsys(winsys); @@ -89,7 +84,7 @@ static void time_finish( struct pipe_winsys *winsys, const char *name ) { struct timed_winsys *tws = timed_winsys(winsys); - uint64_t endval = util_time_micros(); + int64_t endval = os_time_get(); double elapsed = (endval - startval)/1000.0; if (endval - startval > 1000LL) @@ -119,9 +114,10 @@ timed_buffer_create(struct pipe_winsys *winsys, unsigned size ) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); - struct pipe_buffer *buf = backend->buffer_create( backend, alignment, usage, size ); + struct pipe_buffer *buf = + backend->buffer_create( backend, alignment, usage, size ); time_finish(winsys, start, 0, __FUNCTION__); @@ -137,7 +133,7 @@ timed_user_buffer_create(struct pipe_winsys *winsys, unsigned bytes) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); struct pipe_buffer *buf = backend->user_buffer_create( backend, data, bytes ); @@ -153,7 +149,7 @@ timed_buffer_map(struct pipe_winsys *winsys, unsigned flags) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); void *map = backend->buffer_map( backend, buf, flags ); @@ -168,7 +164,7 @@ timed_buffer_unmap(struct pipe_winsys *winsys, struct pipe_buffer *buf) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); backend->buffer_unmap( backend, buf ); @@ -177,13 +173,13 @@ timed_buffer_unmap(struct pipe_winsys *winsys, static void -timed_buffer_destroy(struct pipe_winsys *winsys, - struct pipe_buffer *buf) +timed_buffer_destroy(struct pipe_buffer *buf) { + struct pipe_winsys *winsys = buf->screen->winsys; struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); - backend->buffer_destroy( backend, buf ); + backend->buffer_destroy( buf ); time_finish(winsys, start, 4, __FUNCTION__); } @@ -195,7 +191,7 @@ timed_flush_frontbuffer( struct pipe_winsys *winsys, void *context_private) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); backend->flush_frontbuffer( backend, surf, context_private ); @@ -205,34 +201,19 @@ timed_flush_frontbuffer( struct pipe_winsys *winsys, -static struct pipe_surface * -timed_surface_alloc(struct pipe_winsys *winsys) -{ - struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); - - struct pipe_surface *surf = backend->surface_alloc( backend ); - - time_finish(winsys, start, 6, __FUNCTION__); - - return surf; -} - - - -static int -timed_surface_alloc_storage(struct pipe_winsys *winsys, - struct pipe_surface *surf, +static struct pipe_buffer * +timed_surface_buffer_create(struct pipe_winsys *winsys, unsigned width, unsigned height, enum pipe_format format, - unsigned flags, - unsigned tex_usage) + unsigned usage, + unsigned tex_usage, + unsigned *stride) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); - int ret = backend->surface_alloc_storage( backend, surf, width, height, - format, flags, tex_usage ); + struct pipe_buffer *ret = backend->surface_buffer_create( backend, width, height, + format, usage, tex_usage, stride ); time_finish(winsys, start, 7, __FUNCTION__); @@ -240,24 +221,11 @@ timed_surface_alloc_storage(struct pipe_winsys *winsys, } -static void -timed_surface_release(struct pipe_winsys *winsys, struct pipe_surface **s) -{ - struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); - - backend->surface_release( backend, s ); - - time_finish(winsys, start, 8, __FUNCTION__); -} - - - static const char * timed_get_name( struct pipe_winsys *winsys ) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); const char *ret = backend->get_name( backend ); @@ -272,7 +240,7 @@ timed_fence_reference(struct pipe_winsys *winsys, struct pipe_fence_handle *fence) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); backend->fence_reference( backend, ptr, fence ); @@ -286,7 +254,7 @@ timed_fence_signalled( struct pipe_winsys *winsys, unsigned flag ) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); int ret = backend->fence_signalled( backend, fence, flag ); @@ -301,7 +269,7 @@ timed_fence_finish( struct pipe_winsys *winsys, unsigned flag ) { struct pipe_winsys *backend = timed_winsys(winsys)->backend; - uint64_t start = time_start(); + int64_t start = os_time_get(); int ret = backend->fence_finish( backend, fence, flag ); @@ -329,11 +297,9 @@ struct pipe_winsys *u_timed_winsys_create( struct pipe_winsys *backend ) ws->base.buffer_unmap = timed_buffer_unmap; ws->base.buffer_destroy = timed_buffer_destroy; ws->base.buffer_create = timed_buffer_create; + ws->base.surface_buffer_create = timed_surface_buffer_create; ws->base.flush_frontbuffer = timed_flush_frontbuffer; ws->base.get_name = timed_get_name; - ws->base.surface_alloc = timed_surface_alloc; - ws->base.surface_alloc_storage = timed_surface_alloc_storage; - ws->base.surface_release = timed_surface_release; ws->base.fence_reference = timed_fence_reference; ws->base.fence_signalled = timed_fence_signalled; ws->base.fence_finish = timed_fence_finish;