lp_texture.h revision fea189d6e4f0c09eb0d005c5fa06db43b56e2e37
1946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/************************************************************************** 2946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 3946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. 4946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * All Rights Reserved. 5946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 6946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * Permission is hereby granted, free of charge, to any person obtaining a 7946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * copy of this software and associated documentation files (the 8946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * "Software"), to deal in the Software without restriction, including 9946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * without limitation the rights to use, copy, modify, merge, publish, 10946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * distribute, sub license, and/or sell copies of the Software, and to 11946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * permit persons to whom the Software is furnished to do so, subject to 12946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * the following conditions: 13946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 14946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * The above copyright notice and this permission notice (including the 15946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * next paragraph) shall be included in all copies or substantial portions 16946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * of the Software. 17946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 18946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 22946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 26946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca **************************************************************************/ 27946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 28c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#ifndef LP_TEXTURE_H 29c9a5930fe45a0a0299769bd2b672ca516d1bf39eJosé Fonseca#define LP_TEXTURE_H 30946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 31946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 32946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca#include "pipe/p_state.h" 3368df2949971f6a9c0854bdfb2a252cb82fd9b7aaJosé Fonseca#include "util/u_debug.h" 342de31f2bf2b9c68aaa76a63fa0d0d3e0731ccfb5Brian Paul#include "lp_limits.h" 350639765b2850739af1678f10fc0c5706d5827776Brian Paul 360639765b2850739af1678f10fc0c5706d5827776Brian Paul 370639765b2850739af1678f10fc0c5706d5827776Brian Paulenum lp_texture_usage 380639765b2850739af1678f10fc0c5706d5827776Brian Paul{ 390639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_USAGE_READ = 100, 400639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_USAGE_READ_WRITE, 410639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_USAGE_WRITE_ALL 420639765b2850739af1678f10fc0c5706d5827776Brian Paul}; 430639765b2850739af1678f10fc0c5706d5827776Brian Paul 440639765b2850739af1678f10fc0c5706d5827776Brian Paul 450639765b2850739af1678f10fc0c5706d5827776Brian Paul/** Per-tile layout mode */ 460639765b2850739af1678f10fc0c5706d5827776Brian Paulenum lp_texture_layout 470639765b2850739af1678f10fc0c5706d5827776Brian Paul{ 480639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_LAYOUT_NONE = 0, /**< no layout for the tile data yet */ 490639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_LAYOUT_TILED, /**< the tile data is in tiled layout */ 500639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_LAYOUT_LINEAR, /**< the tile data is in linear layout */ 510639765b2850739af1678f10fc0c5706d5827776Brian Paul LP_TEX_LAYOUT_BOTH /**< the tile data is in both modes */ 520639765b2850739af1678f10fc0c5706d5827776Brian Paul}; 530639765b2850739af1678f10fc0c5706d5827776Brian Paul 54d73fadf2116f5459f18bd84f48e7ed86773797b0Brian Paul 55946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct pipe_context; 56946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct pipe_screen; 57946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct llvmpipe_context; 5894ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwell 5994ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwellstruct sw_displaytarget; 60946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 614414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 620639765b2850739af1678f10fc0c5706d5827776Brian Paul/** 630639765b2850739af1678f10fc0c5706d5827776Brian Paul * We keep one or two copies of the texture image data: one in a simple 640639765b2850739af1678f10fc0c5706d5827776Brian Paul * linear layout (for texture sampling) and another in a tiled layout (for 650639765b2850739af1678f10fc0c5706d5827776Brian Paul * render targets). We keep track of whether each image tile is linear 660639765b2850739af1678f10fc0c5706d5827776Brian Paul * or tiled on a per-tile basis. 670639765b2850739af1678f10fc0c5706d5827776Brian Paul */ 680639765b2850739af1678f10fc0c5706d5827776Brian Paul 690639765b2850739af1678f10fc0c5706d5827776Brian Paul 700639765b2850739af1678f10fc0c5706d5827776Brian Paul/** A 1D/2D/3D image, one mipmap level */ 710639765b2850739af1678f10fc0c5706d5827776Brian Paulstruct llvmpipe_texture_image 720639765b2850739af1678f10fc0c5706d5827776Brian Paul{ 730639765b2850739af1678f10fc0c5706d5827776Brian Paul void *data; 740639765b2850739af1678f10fc0c5706d5827776Brian Paul}; 750639765b2850739af1678f10fc0c5706d5827776Brian Paul 760639765b2850739af1678f10fc0c5706d5827776Brian Paul 770639765b2850739af1678f10fc0c5706d5827776Brian Paul/** 780639765b2850739af1678f10fc0c5706d5827776Brian Paul * llvmpipe subclass of pipe_resource. A texture, drawing surface, 790639765b2850739af1678f10fc0c5706d5827776Brian Paul * vertex buffer, const buffer, etc. 800639765b2850739af1678f10fc0c5706d5827776Brian Paul * Textures are stored differently than othere types of objects such as 810639765b2850739af1678f10fc0c5706d5827776Brian Paul * vertex buffers and const buffers. 820639765b2850739af1678f10fc0c5706d5827776Brian Paul * The former are tiled and have per-tile layout flags. 830639765b2850739af1678f10fc0c5706d5827776Brian Paul * The later are simple malloc'd blocks of memory. 840639765b2850739af1678f10fc0c5706d5827776Brian Paul */ 85287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstruct llvmpipe_resource 86946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 87287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell struct pipe_resource base; 88946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 890639765b2850739af1678f10fc0c5706d5827776Brian Paul /** Row stride in bytes */ 90f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul unsigned row_stride[LP_MAX_TEXTURE_LEVELS]; 91f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul /** Image stride (for cube maps or 3D textures) in bytes */ 92f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul unsigned img_stride[LP_MAX_TEXTURE_LEVELS]; 930639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned tiles_per_row[LP_MAX_TEXTURE_LEVELS]; 94202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul unsigned tiles_per_image[LP_MAX_TEXTURE_LEVELS]; 95202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul /** Number of 3D slices or cube faces per level */ 96202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul unsigned num_slices_faces[LP_MAX_TEXTURE_LEVELS]; 97946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 98e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca /** 99287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell * Display target, for textures with the PIPE_BIND_DISPLAY_TARGET 100e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca * usage. 101e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca */ 10294ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwell struct sw_displaytarget *dt; 103e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca 104e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca /** 105e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca * Malloc'ed data for regular textures, or a mapping to dt above. 106946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */ 1070639765b2850739af1678f10fc0c5706d5827776Brian Paul struct llvmpipe_texture_image tiled[LP_MAX_TEXTURE_LEVELS]; 1080639765b2850739af1678f10fc0c5706d5827776Brian Paul struct llvmpipe_texture_image linear[LP_MAX_TEXTURE_LEVELS]; 1090639765b2850739af1678f10fc0c5706d5827776Brian Paul 1100639765b2850739af1678f10fc0c5706d5827776Brian Paul /** 1110639765b2850739af1678f10fc0c5706d5827776Brian Paul * Data for non-texture resources. 1120639765b2850739af1678f10fc0c5706d5827776Brian Paul */ 113e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca void *data; 114946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 115202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul /** array [level][face or slice][tile_y][tile_x] of layout values) */ 116202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul enum lp_texture_layout *layout[LP_MAX_TEXTURE_LEVELS]; 1170639765b2850739af1678f10fc0c5706d5827776Brian Paul 118287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell boolean userBuffer; /** Is this a user-space buffer? */ 1190f55a95b2faa16cc008143c53a8b82b19c5d750aKeith Whitwell unsigned timestamp; 1200639765b2850739af1678f10fc0c5706d5827776Brian Paul 1210639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned id; /**< temporary, for debugging */ 122fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 123fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul#ifdef DEBUG 124fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul /** for linked list */ 125fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul struct llvmpipe_resource *prev, *next; 126fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul#endif 127946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca}; 128946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 1294414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 130946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct llvmpipe_transfer 131946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 132946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca struct pipe_transfer base; 133946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 134946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca unsigned long offset; 135946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca}; 136946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 137946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 138946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/** cast wrappers */ 139287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstatic INLINE struct llvmpipe_resource * 140287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellllvmpipe_resource(struct pipe_resource *pt) 141946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 142287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell return (struct llvmpipe_resource *) pt; 143946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca} 144946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 1454414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 146287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstatic INLINE const struct llvmpipe_resource * 147287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellllvmpipe_resource_const(const struct pipe_resource *pt) 1489be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul{ 149287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell return (const struct llvmpipe_resource *) pt; 1509be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul} 1519be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul 1529be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul 153946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastatic INLINE struct llvmpipe_transfer * 154946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_transfer(struct pipe_transfer *pt) 155946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 156946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca return (struct llvmpipe_transfer *) pt; 157946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca} 158946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 159946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 160287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellvoid llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen); 161287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellvoid llvmpipe_init_context_resource_funcs(struct pipe_context *pipe); 162287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell 1633abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecastatic INLINE unsigned 164d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_stride(struct pipe_resource *resource, 1653abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca unsigned level) 1663abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca{ 167d293c43c9a9658caa5224f710b95a848a912faa1Brian Paul struct llvmpipe_resource *lpr = llvmpipe_resource(resource); 1683abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca assert(level < LP_MAX_TEXTURE_2D_LEVELS); 169f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul return lpr->row_stride[level]; 1703abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca} 1713abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 1723abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 1733abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecavoid * 174d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_map(struct pipe_resource *resource, 175ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, 176287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell unsigned level, 1770639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned zslice, 1780639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_usage tex_usage, 1790639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_layout layout); 1803abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 1813abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecavoid 182d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_unmap(struct pipe_resource *resource, 183ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, 1843abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca unsigned level, 1853abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca unsigned zslice); 1863abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 187946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 1880639765b2850739af1678f10fc0c5706d5827776Brian Paulvoid * 1890639765b2850739af1678f10fc0c5706d5827776Brian Paulllvmpipe_resource_data(struct pipe_resource *resource); 1900639765b2850739af1678f10fc0c5706d5827776Brian Paul 1910639765b2850739af1678f10fc0c5706d5827776Brian Paul 1921db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paulunsigned 1931db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paulllvmpipe_resource_size(const struct pipe_resource *resource); 1941db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paul 1951db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paul 196a5460dc6d75b22473092b152d90b9092850bf51dVinson Leeubyte * 197d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_get_texture_image_address(struct llvmpipe_resource *lpr, 198ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, unsigned level, 1990639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_layout layout); 2000639765b2850739af1678f10fc0c5706d5827776Brian Paul 2010639765b2850739af1678f10fc0c5706d5827776Brian Paulvoid * 2020639765b2850739af1678f10fc0c5706d5827776Brian Paulllvmpipe_get_texture_image(struct llvmpipe_resource *resource, 203ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, unsigned level, 2040639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_usage usage, 2050639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_layout layout); 2060639765b2850739af1678f10fc0c5706d5827776Brian Paul 207202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paulvoid * 208202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paulllvmpipe_get_texture_image_all(struct llvmpipe_resource *lpr, 209202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul unsigned level, 210202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul enum lp_texture_usage usage, 211202ff7db490f4a1d041a88f11665fbd3ccea2201Brian Paul enum lp_texture_layout layout); 2120639765b2850739af1678f10fc0c5706d5827776Brian Paul 2130639765b2850739af1678f10fc0c5706d5827776Brian Paulubyte * 214d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_get_texture_tile_linear(struct llvmpipe_resource *lpr, 215ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, unsigned level, 2160639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_usage usage, 2170639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned x, unsigned y); 2180639765b2850739af1678f10fc0c5706d5827776Brian Paul 2190639765b2850739af1678f10fc0c5706d5827776Brian Paulubyte * 220d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_get_texture_tile(struct llvmpipe_resource *lpr, 221ee7cf9d80ff962e714bc66487f621e03f21e1293Brian Paul unsigned face_slice, unsigned level, 2220639765b2850739af1678f10fc0c5706d5827776Brian Paul enum lp_texture_usage usage, 2230639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned x, unsigned y); 2240639765b2850739af1678f10fc0c5706d5827776Brian Paul 2250639765b2850739af1678f10fc0c5706d5827776Brian Paul 2260639765b2850739af1678f10fc0c5706d5827776Brian Paul 2270639765b2850739af1678f10fc0c5706d5827776Brian Paulextern void 228fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paulllvmpipe_print_resources(void); 229fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 230fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 231fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paulextern void 2320639765b2850739af1678f10fc0c5706d5827776Brian Paulllvmpipe_init_screen_texture_funcs(struct pipe_screen *screen); 2330639765b2850739af1678f10fc0c5706d5827776Brian Paul 2340639765b2850739af1678f10fc0c5706d5827776Brian Paulextern void 2350639765b2850739af1678f10fc0c5706d5827776Brian Paulllvmpipe_init_context_texture_funcs(struct pipe_context *pipe); 2360639765b2850739af1678f10fc0c5706d5827776Brian Paul 2374414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul#endif /* LP_TEXTURE_H */ 238