X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Ftrace%2Ftr_screen.c;h=8b02680c77e0c97228aeb592c06c3f81b8dcf306;hb=525921ed51176255474c73adacfc6801a7bf2783;hp=4a1aa997a7b4395f8b7ce45c74a8a9f3e1d33569;hpb=b496136af84e396e7890082817b563dc53ac36fc;p=mesa.git diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c index 4a1aa997a7b..8b02680c77e 100644 --- a/src/gallium/drivers/trace/tr_screen.c +++ b/src/gallium/drivers/trace/tr_screen.c @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -27,17 +27,16 @@ #include "util/u_format.h" #include "util/u_memory.h" -#include "util/u_simple_list.h" +#include "util/simple_list.h" #include "tr_dump.h" +#include "tr_dump_defines.h" #include "tr_dump_state.h" #include "tr_texture.h" #include "tr_context.h" #include "tr_screen.h" #include "tr_public.h" -#include "pipe/p_format.h" - static boolean trace = FALSE; @@ -83,6 +82,27 @@ trace_screen_get_vendor(struct pipe_screen *_screen) } +static const char * +trace_screen_get_device_vendor(struct pipe_screen *_screen) +{ + struct trace_screen *tr_scr = trace_screen(_screen); + struct pipe_screen *screen = tr_scr->screen; + const char *result; + + trace_dump_call_begin("pipe_screen", "get_device_vendor"); + + trace_dump_arg(ptr, screen); + + result = screen->get_device_vendor(screen); + + trace_dump_ret(string, result); + + trace_dump_call_end(); + + return result; +} + + static int trace_screen_get_param(struct pipe_screen *_screen, enum pipe_cap param) @@ -184,7 +204,8 @@ trace_screen_is_format_supported(struct pipe_screen *_screen, static struct pipe_context * -trace_screen_context_create(struct pipe_screen *_screen, void *priv) +trace_screen_context_create(struct pipe_screen *_screen, void *priv, + unsigned flags) { struct trace_screen *tr_scr = trace_screen(_screen); struct pipe_screen *screen = tr_scr->screen; @@ -193,8 +214,10 @@ trace_screen_context_create(struct pipe_screen *_screen, void *priv) trace_dump_call_begin("pipe_screen", "context_create"); trace_dump_arg(ptr, screen); + trace_dump_arg(ptr, priv); + trace_dump_arg(uint, flags); - result = screen->context_create(screen, priv); + result = screen->context_create(screen, priv, flags); trace_dump_ret(ptr, result); @@ -210,7 +233,8 @@ static void trace_screen_flush_frontbuffer(struct pipe_screen *_screen, struct pipe_resource *_resource, unsigned level, unsigned layer, - void *context_private) + void *context_private, + struct pipe_box *sub_box) { struct trace_screen *tr_scr = trace_screen(_screen); struct trace_resource *tr_res = trace_resource(_resource); @@ -227,7 +251,7 @@ trace_screen_flush_frontbuffer(struct pipe_screen *_screen, trace_dump_arg(ptr, context_private); */ - screen->flush_frontbuffer(screen, resource, level, layer, context_private); + screen->flush_frontbuffer(screen, resource, level, layer, context_private, sub_box); trace_dump_call_end(); } @@ -349,19 +373,21 @@ trace_screen_fence_reference(struct pipe_screen *_screen, static boolean -trace_screen_fence_signalled(struct pipe_screen *_screen, - struct pipe_fence_handle *fence) +trace_screen_fence_finish(struct pipe_screen *_screen, + struct pipe_fence_handle *fence, + uint64_t timeout) { struct trace_screen *tr_scr = trace_screen(_screen); struct pipe_screen *screen = tr_scr->screen; int result; - trace_dump_call_begin("pipe_screen", "fence_signalled"); + trace_dump_call_begin("pipe_screen", "fence_finish"); trace_dump_arg(ptr, screen); trace_dump_arg(ptr, fence); + trace_dump_arg(uint, timeout); - result = screen->fence_signalled(screen, fence); + result = screen->fence_finish(screen, fence, timeout); trace_dump_ret(bool, result); @@ -371,35 +397,28 @@ trace_screen_fence_signalled(struct pipe_screen *_screen, } -static boolean -trace_screen_fence_finish(struct pipe_screen *_screen, - struct pipe_fence_handle *fence, - uint64_t timeout) +/******************************************************************** + * screen + */ + +static uint64_t +trace_screen_get_timestamp(struct pipe_screen *_screen) { struct trace_screen *tr_scr = trace_screen(_screen); struct pipe_screen *screen = tr_scr->screen; - int result; - - trace_dump_call_begin("pipe_screen", "fence_finish"); + uint64_t result; + trace_dump_call_begin("pipe_screen", "get_timestamp"); trace_dump_arg(ptr, screen); - trace_dump_arg(ptr, fence); - trace_dump_arg(uint, timeout); - result = screen->fence_finish(screen, fence, timeout); - - trace_dump_ret(bool, result); + result = screen->get_timestamp(screen); + trace_dump_ret(uint, result); trace_dump_call_end(); return result; } - -/******************************************************************** - * screen - */ - static void trace_screen_destroy(struct pipe_screen *_screen) { @@ -409,7 +428,6 @@ trace_screen_destroy(struct pipe_screen *_screen) trace_dump_call_begin("pipe_screen", "destroy"); trace_dump_arg(ptr, screen); trace_dump_call_end(); - trace_dump_trace_end(); screen->destroy(screen); @@ -453,6 +471,7 @@ trace_screen_create(struct pipe_screen *screen) tr_scr->base.destroy = trace_screen_destroy; tr_scr->base.get_name = trace_screen_get_name; tr_scr->base.get_vendor = trace_screen_get_vendor; + tr_scr->base.get_device_vendor = trace_screen_get_device_vendor; tr_scr->base.get_param = trace_screen_get_param; tr_scr->base.get_shader_param = trace_screen_get_shader_param; tr_scr->base.get_paramf = trace_screen_get_paramf; @@ -464,9 +483,9 @@ trace_screen_create(struct pipe_screen *screen) tr_scr->base.resource_get_handle = trace_screen_resource_get_handle; tr_scr->base.resource_destroy = trace_screen_resource_destroy; tr_scr->base.fence_reference = trace_screen_fence_reference; - tr_scr->base.fence_signalled = trace_screen_fence_signalled; tr_scr->base.fence_finish = trace_screen_fence_finish; tr_scr->base.flush_frontbuffer = trace_screen_flush_frontbuffer; + tr_scr->base.get_timestamp = trace_screen_get_timestamp; tr_scr->screen = screen; @@ -478,7 +497,6 @@ trace_screen_create(struct pipe_screen *screen) error2: trace_dump_ret(ptr, screen); trace_dump_call_end(); - trace_dump_trace_end(); error1: return screen; }