X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Ftrace%2Ftr_texture.h;h=5e45c3c2f8f5aed58149529bedc8d718935c0c75;hb=72424061e0722a1444b62af4cdbf03aaaf7e5ee0;hp=9e72edb8a3cfacd5e1a9c4661d26a685de7b5960;hpb=fb8db63a89c4ac7fbbbc0912e1dde0871ae9c35c;p=mesa.git diff --git a/src/gallium/drivers/trace/tr_texture.h b/src/gallium/drivers/trace/tr_texture.h index 9e72edb8a3c..5e45c3c2f8f 100644 --- a/src/gallium/drivers/trace/tr_texture.h +++ b/src/gallium/drivers/trace/tr_texture.h @@ -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. @@ -34,12 +34,23 @@ #include "tr_screen.h" +struct trace_context; -struct trace_texture + +struct tr_list +{ + struct tr_list *next; + struct tr_list *prev; +}; + + +struct trace_resource { - struct pipe_texture base; + struct pipe_resource base; + + struct pipe_resource *resource; - struct pipe_texture *texture; + struct tr_list list; }; @@ -48,48 +59,95 @@ struct trace_surface struct pipe_surface base; struct pipe_surface *surface; - + + struct tr_list list; +}; + + +struct trace_sampler_view +{ + struct pipe_sampler_view base; + + struct pipe_sampler_view *sampler_view; +}; + + +struct trace_transfer +{ + struct pipe_transfer base; + + struct pipe_transfer *transfer; + struct pipe_context *pipe; + + struct tr_list list; + void *map; }; -static INLINE struct trace_texture * -trace_texture(struct trace_screen *tr_scr, - struct pipe_texture *texture) +static INLINE struct trace_resource * +trace_resource(struct pipe_resource *texture) { if(!texture) return NULL; - assert(texture->screen == &tr_scr->base); - return (struct trace_texture *)texture; + (void)trace_screen(texture->screen); + return (struct trace_resource *)texture; } static INLINE struct trace_surface * -trace_surface(struct trace_texture *tr_tex, - struct pipe_surface *surface) +trace_surface(struct pipe_surface *surface) { if(!surface) return NULL; - assert(surface->texture == &tr_tex->base); + (void)trace_resource(surface->texture); return (struct trace_surface *)surface; } -struct pipe_texture * -trace_texture_create(struct trace_screen *tr_scr, - struct pipe_texture *texture); +static INLINE struct trace_sampler_view * +trace_sampler_view(struct pipe_sampler_view *sampler_view) +{ + if (!sampler_view) + return NULL; + return (struct trace_sampler_view *)sampler_view; +} + + +static INLINE struct trace_transfer * +trace_transfer(struct pipe_transfer *transfer) +{ + if(!transfer) + return NULL; + (void)trace_resource(transfer->resource); + return (struct trace_transfer *)transfer; +} + + +struct pipe_resource * +trace_resource_create(struct trace_screen *tr_scr, + struct pipe_resource *texture); void -trace_texture_destroy(struct trace_screen *tr_scr, - struct pipe_texture *texture); +trace_resource_destroy(struct trace_screen *tr_scr, + struct trace_resource *tr_res); struct pipe_surface * -trace_surface_create(struct trace_texture *tr_tex, - struct pipe_surface *surface); +trace_surf_create(struct trace_context *tr_ctx, + struct trace_resource *tr_res, + struct pipe_surface *surface); + +void +trace_surf_destroy(struct trace_surface *tr_surf); + +struct pipe_transfer * +trace_transfer_create(struct trace_context *tr_ctx, + struct trace_resource *tr_res, + struct pipe_transfer *transfer); void -trace_surface_destroy(struct trace_texture *tr_tex, - struct pipe_surface *surface); +trace_transfer_destroy(struct trace_context *tr_ctx, + struct trace_transfer *tr_trans); #endif /* TR_TEXTURE_H_ */