12c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz/************************************************************************** 22c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * 32c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * Copyright 2010 VMware, Inc. 42c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * All Rights Reserved. 52c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * 62c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * Permission is hereby granted, free of charge, to any person obtaining a 72c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * copy of this software and associated documentation files (the 82c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * "Software"), to deal in the Software without restriction, including 92c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * without limitation the rights to use, copy, modify, merge, publish, 102c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * distribute, sub license, and/or sell copies of the Software, and to 112c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * permit persons to whom the Software is furnished to do so, subject to 122c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * the following conditions: 132c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * 142c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * The above copyright notice and this permission notice (including the 152c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * next paragraph) shall be included in all copies or substantial portions 162c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * of the Software. 172c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * 182c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 192c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 202c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 212c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 222c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 232c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 242c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 252c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz * 262c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz **************************************************************************/ 272c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 282c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#ifndef RBUG_OBJECTS_H 292c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#define RBUG_OBJECTS_H 302c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 312c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 322c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#include "pipe/p_compiler.h" 332c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#include "pipe/p_state.h" 342c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 352c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#include "rbug_screen.h" 362c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 372c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_context; 382c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 392c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 402c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_resource 412c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 422c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_resource base; 432c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 442c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_resource *resource; 452c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 462c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_list list; 472c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz}; 482c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 492c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 5021b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantzenum rbug_shader_type 5121b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz{ 5221b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz RBUG_SHADER_GEOM, 5321b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz RBUG_SHADER_VERTEX, 5421b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz RBUG_SHADER_FRAGMENT, 5521b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz}; 5621b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz 572c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_shader 582c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 592c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_list list; 602c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 612c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz void *shader; 622c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz void *tokens; 632c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz void *replaced_shader; 642c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz void *replaced_tokens; 652c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 6621b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz enum rbug_shader_type type; 672c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz boolean disabled; 682c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz}; 692c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 702c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 712c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_sampler_view 722c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 732c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_sampler_view base; 742c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 752c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_sampler_view *sampler_view; 762c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz}; 772c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 782c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 792c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_surface 802c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 812c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_surface base; 822c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 832c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_surface *surface; 842c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz}; 852c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 862c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 872c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct rbug_transfer 882c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 892c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_transfer base; 902c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 912c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_context *pipe; 922c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_transfer *transfer; 932c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz}; 942c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 952c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 962c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct rbug_resource * 972c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_resource(struct pipe_resource *_resource) 982c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 992c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_resource) 1002c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1012c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz (void)rbug_screen(_resource->screen); 1022c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return (struct rbug_resource *)_resource; 1032c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1042c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1052c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct rbug_sampler_view * 1062c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_sampler_view(struct pipe_sampler_view *_sampler_view) 1072c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1082c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_sampler_view) 1092c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1102c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz (void)rbug_resource(_sampler_view->texture); 1112c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return (struct rbug_sampler_view *)_sampler_view; 1122c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1132c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1142c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct rbug_surface * 1152c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_surface(struct pipe_surface *_surface) 1162c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1172c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_surface) 1182c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1192c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz (void)rbug_resource(_surface->texture); 1202c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return (struct rbug_surface *)_surface; 1212c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1222c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1232c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct rbug_transfer * 1242c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_transfer(struct pipe_transfer *_transfer) 1252c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1262c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_transfer) 1272c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1282c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz (void)rbug_resource(_transfer->resource); 1292c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return (struct rbug_transfer *)_transfer; 1302c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1312c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1322c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct rbug_shader * 1332c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_shader(void *_state) 1342c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1352c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_state) 1362c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1372c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return (struct rbug_shader *)_state; 1382c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1392c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1402c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct pipe_resource * 1412c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_resource_unwrap(struct pipe_resource *_resource) 1422c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1432c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_resource) 1442c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1452c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return rbug_resource(_resource)->resource; 1462c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1472c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1482c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct pipe_sampler_view * 1492c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_sampler_view_unwrap(struct pipe_sampler_view *_sampler_view) 1502c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1512c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_sampler_view) 1522c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1532c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return rbug_sampler_view(_sampler_view)->sampler_view; 1542c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1552c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1562c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct pipe_surface * 1572c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_surface_unwrap(struct pipe_surface *_surface) 1582c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1592c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_surface) 1602c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1612c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return rbug_surface(_surface)->surface; 1622c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1632c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1642c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE struct pipe_transfer * 1652c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_transfer_unwrap(struct pipe_transfer *_transfer) 1662c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1672c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_transfer) 1682c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1692c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return rbug_transfer(_transfer)->transfer; 1702c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1712c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1722c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstatic INLINE void * 1732c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_shader_unwrap(void *_state) 1742c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz{ 1752c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_shader *shader; 1762c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz if (!_state) 1772c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return NULL; 1782c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1792c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz shader = rbug_shader(_state); 1802c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz return shader->replaced_shader ? shader->replaced_shader : shader->shader; 1812c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz} 1822c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1832c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1842c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct pipe_resource * 1852c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_resource_create(struct rbug_screen *rb_screen, 1862c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_resource *resource); 1872c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1882c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzvoid 1892c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_resource_destroy(struct rbug_resource *rb_resource); 1902c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1912c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct pipe_surface * 1924c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheideggerrbug_surface_create(struct rbug_context *rb_context, 1934c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger struct rbug_resource *rb_resource, 1942c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_surface *surface); 1952c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 1962c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzvoid 1974c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheideggerrbug_surface_destroy(struct rbug_context *rb_context, 1984c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger struct rbug_surface *rb_surface); 1992c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 2002c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct pipe_sampler_view * 2012c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_sampler_view_create(struct rbug_context *rb_context, 2022c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_resource *rb_resource, 2032c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_sampler_view *view); 2042c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 2052c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzvoid 2062c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_sampler_view_destroy(struct rbug_context *rb_context, 2072c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_sampler_view *rb_sampler_view); 2082c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 2092c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzstruct pipe_transfer * 2102c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_transfer_create(struct rbug_context *rb_context, 2112c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_resource *rb_resource, 2122c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct pipe_transfer *transfer); 2132c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 2142c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzvoid 2152c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantzrbug_transfer_destroy(struct rbug_context *rb_context, 2162c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz struct rbug_transfer *rb_transfer); 2172c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 21821b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantzvoid * 21921b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantzrbug_shader_create(struct rbug_context *rb_context, 22021b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz const struct pipe_shader_state *state, 22121b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz void *result, enum rbug_shader_type type); 22221b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz 22321b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantzvoid 22421b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantzrbug_shader_destroy(struct rbug_context *rb_context, 22521b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz struct rbug_shader *rb_shader); 22621b668e11e3e0e84d476fea9b8d3198a610d71c8Jakob Bornecrantz 2272c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz 2282c3fb4ecce27f4c2468892241216a06fc77143c4Jakob Bornecrantz#endif /* RBUG_OBJECTS_H */ 229