lp_texture.h revision ea05cfaacac29d15c9c3d939e12546eba95f05d0
1946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/************************************************************************** 2946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca * 3877128505431adaf817dc8069172ebe4a1cdf5d8José Fonseca * Copyright 2007 VMware, Inc. 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. 21877128505431adaf817dc8069172ebe4a1cdf5d8José Fonseca * IN NO EVENT SHALL VMWARE 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 45946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct pipe_context; 46946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct pipe_screen; 47946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct llvmpipe_context; 4894ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwell 4994ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwellstruct sw_displaytarget; 50946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 514414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 520639765b2850739af1678f10fc0c5706d5827776Brian Paul/** 530639765b2850739af1678f10fc0c5706d5827776Brian Paul * llvmpipe subclass of pipe_resource. A texture, drawing surface, 540639765b2850739af1678f10fc0c5706d5827776Brian Paul * vertex buffer, const buffer, etc. 5533fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger * Textures are stored differently than other types of objects such as 560639765b2850739af1678f10fc0c5706d5827776Brian Paul * vertex buffers and const buffers. 5733fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger * The latter are simple malloc'd blocks of memory. 580639765b2850739af1678f10fc0c5706d5827776Brian Paul */ 59287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstruct llvmpipe_resource 60946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 61287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell struct pipe_resource base; 62946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 630639765b2850739af1678f10fc0c5706d5827776Brian Paul /** Row stride in bytes */ 64f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul unsigned row_stride[LP_MAX_TEXTURE_LEVELS]; 656d50148742512606f2abd76a2dcef6c87a5c7471Roland Scheidegger /** Image stride (for cube maps, array or 3D textures) in bytes */ 66f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul unsigned img_stride[LP_MAX_TEXTURE_LEVELS]; 678257bb963f0b21c0c35da479707b5cacbc1c2824Roland Scheidegger /** Offset to start of mipmap level, in bytes */ 68b4c3246e7b2e5d8c19bdb6f71efa3cc2b948b1ceRoland Scheidegger unsigned mip_offsets[LP_MAX_TEXTURE_LEVELS]; 693b69347efc314c4c01e63781e4d7ffea68460442Roland Scheidegger /** allocated total size (for non-display target texture resources only) */ 703b69347efc314c4c01e63781e4d7ffea68460442Roland Scheidegger unsigned total_alloc_size; 71946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 72e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca /** 73287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell * Display target, for textures with the PIPE_BIND_DISPLAY_TARGET 74e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca * usage. 75e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca */ 7694ce4eb3c27706d992226d847d123c46b14b1c4fKeith Whitwell struct sw_displaytarget *dt; 77e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca 78e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca /** 79e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca * Malloc'ed data for regular textures, or a mapping to dt above. 80946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca */ 817e1521f191afe30fcf02a25b68fbf89278f014d3Roland Scheidegger void *tex_data; 820639765b2850739af1678f10fc0c5706d5827776Brian Paul 830639765b2850739af1678f10fc0c5706d5827776Brian Paul /** 840639765b2850739af1678f10fc0c5706d5827776Brian Paul * Data for non-texture resources. 850639765b2850739af1678f10fc0c5706d5827776Brian Paul */ 86e173a9bbd64dc38dba6b881ed7a9faea02861042José Fonseca void *data; 87946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 88287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell boolean userBuffer; /** Is this a user-space buffer? */ 890f55a95b2faa16cc008143c53a8b82b19c5d750aKeith Whitwell unsigned timestamp; 900639765b2850739af1678f10fc0c5706d5827776Brian Paul 910639765b2850739af1678f10fc0c5706d5827776Brian Paul unsigned id; /**< temporary, for debugging */ 92fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 93fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul#ifdef DEBUG 94fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul /** for linked list */ 95fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul struct llvmpipe_resource *prev, *next; 96fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul#endif 97946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca}; 98946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 994414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 100946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastruct llvmpipe_transfer 101946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 102946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca struct pipe_transfer base; 103946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 104946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca unsigned long offset; 105946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca}; 106946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 107946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 108946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca/** cast wrappers */ 109287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstatic INLINE struct llvmpipe_resource * 110287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellllvmpipe_resource(struct pipe_resource *pt) 111946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 112287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell return (struct llvmpipe_resource *) pt; 113946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca} 114946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 1154414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul 116287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellstatic INLINE const struct llvmpipe_resource * 117287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellllvmpipe_resource_const(const struct pipe_resource *pt) 1189be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul{ 119287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell return (const struct llvmpipe_resource *) pt; 1209be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul} 1219be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul 1229be1feacf2dbd36fa9fb65b9932a74f04a7d9ccaBrian Paul 123946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecastatic INLINE struct llvmpipe_transfer * 124946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonsecallvmpipe_transfer(struct pipe_transfer *pt) 125946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca{ 126946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca return (struct llvmpipe_transfer *) pt; 127946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca} 128946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 129946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 130287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellvoid llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen); 131287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwellvoid llvmpipe_init_context_resource_funcs(struct pipe_context *pipe); 132287c94ea4987033f9c99a2f91c5750c9083504caKeith Whitwell 13320183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger 13420183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheideggerstatic INLINE boolean 13520183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheideggerllvmpipe_resource_is_texture(const struct pipe_resource *resource) 13620183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger{ 13720183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger switch (resource->target) { 13820183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_BUFFER: 13920183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger return FALSE; 14020183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_1D: 14120183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_1D_ARRAY: 14220183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_2D: 14320183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_2D_ARRAY: 14420183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_RECT: 14520183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_3D: 14620183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger case PIPE_TEXTURE_CUBE: 147ea05cfaacac29d15c9c3d939e12546eba95f05d0Roland Scheidegger case PIPE_TEXTURE_CUBE_ARRAY: 14820183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger return TRUE; 14920183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger default: 15020183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger assert(0); 15120183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger return FALSE; 15220183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger } 15320183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger} 15420183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger 15520183177a5803317fe69f1f1a8dfae4d18b3702fRoland Scheidegger 156ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheideggerstatic INLINE boolean 157ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheideggerllvmpipe_resource_is_1d(const struct pipe_resource *resource) 158ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger{ 159ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger switch (resource->target) { 160ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_BUFFER: 161ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_1D: 162ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_1D_ARRAY: 163ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger return TRUE; 164ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_2D: 165ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_2D_ARRAY: 166ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_RECT: 167ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_3D: 168ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger case PIPE_TEXTURE_CUBE: 169ea05cfaacac29d15c9c3d939e12546eba95f05d0Roland Scheidegger case PIPE_TEXTURE_CUBE_ARRAY: 170ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger return FALSE; 171ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger default: 172ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger assert(0); 173ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger return FALSE; 174ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger } 175ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger} 176ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger 177ffe2a1ca3c097661dd3f6e3ca5cfd72be184426cRoland Scheidegger 1783abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecastatic INLINE unsigned 179d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheideggerllvmpipe_layer_stride(struct pipe_resource *resource, 180d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger unsigned level) 181d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger{ 182d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger struct llvmpipe_resource *lpr = llvmpipe_resource(resource); 183d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger assert(level < LP_MAX_TEXTURE_2D_LEVELS); 184d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger return lpr->img_stride[level]; 185d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger} 186d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger 187d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheidegger 188d8146f240e628e70d4c07f7e805a179f70c36e23Roland Scheideggerstatic INLINE unsigned 189d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_stride(struct pipe_resource *resource, 19033fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger unsigned level) 1913abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca{ 192d293c43c9a9658caa5224f710b95a848a912faa1Brian Paul struct llvmpipe_resource *lpr = llvmpipe_resource(resource); 1933abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca assert(level < LP_MAX_TEXTURE_2D_LEVELS); 194f4071e55dba8c0f45f3a7f59135b34e5b81fdab8Brian Paul return lpr->row_stride[level]; 1953abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca} 1963abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 1973abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 1983abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecavoid * 199d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_map(struct pipe_resource *resource, 2004c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger unsigned level, 2014c7001462607e6e99e474d6271dd481d3f8f201cRoland Scheidegger unsigned layer, 20233fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger enum lp_texture_usage tex_usage); 2033abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 2043abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonsecavoid 205d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_resource_unmap(struct pipe_resource *resource, 20633fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger unsigned level, 20733fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger unsigned layer); 2083abc7b985ce0787c5103d1a86bd0ba07b127a82fJosé Fonseca 209946f432a08112148d743eb9faf6b27bb8cc7fa76José Fonseca 2100639765b2850739af1678f10fc0c5706d5827776Brian Paulvoid * 2110639765b2850739af1678f10fc0c5706d5827776Brian Paulllvmpipe_resource_data(struct pipe_resource *resource); 2120639765b2850739af1678f10fc0c5706d5827776Brian Paul 2130639765b2850739af1678f10fc0c5706d5827776Brian Paul 2141db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paulunsigned 2151db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paulllvmpipe_resource_size(const struct pipe_resource *resource); 2161db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paul 2171db3a55b9c59093f7bf4df39579287eeb0cf0a2bBrian Paul 218a5460dc6d75b22473092b152d90b9092850bf51dVinson Leeubyte * 219d293c43c9a9658caa5224f710b95a848a912faa1Brian Paulllvmpipe_get_texture_image_address(struct llvmpipe_resource *lpr, 22033fcce36828d6ae413c1673f8de5c56fbd8ba4a1Roland Scheidegger unsigned face_slice, unsigned level); 2210639765b2850739af1678f10fc0c5706d5827776Brian Paul 2220639765b2850739af1678f10fc0c5706d5827776Brian Paul 2230639765b2850739af1678f10fc0c5706d5827776Brian Paulextern void 224fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paulllvmpipe_print_resources(void); 225fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 226fea189d6e4f0c09eb0d005c5fa06db43b56e2e37Brian Paul 22725485f4b69447514ab8b595aced90c75606a99bdMarek Olšák#define LP_UNREFERENCED 0 22825485f4b69447514ab8b595aced90c75606a99bdMarek Olšák#define LP_REFERENCED_FOR_READ (1 << 0) 22925485f4b69447514ab8b595aced90c75606a99bdMarek Olšák#define LP_REFERENCED_FOR_WRITE (1 << 1) 23025485f4b69447514ab8b595aced90c75606a99bdMarek Olšák 23125485f4b69447514ab8b595aced90c75606a99bdMarek Olšákunsigned int 23225485f4b69447514ab8b595aced90c75606a99bdMarek Olšákllvmpipe_is_resource_referenced( struct pipe_context *pipe, 23325485f4b69447514ab8b595aced90c75606a99bdMarek Olšák struct pipe_resource *presource, 234fbbcc1fcc4a1e9e8ab794378a55e797ebaa3ed0aRoland Scheidegger unsigned level); 23525485f4b69447514ab8b595aced90c75606a99bdMarek Olšák 236fa1b481c09b14e01eca1b3db8e0854033f6dee3dJames Bentonunsigned 237fa1b481c09b14e01eca1b3db8e0854033f6dee3dJames Bentonllvmpipe_get_format_alignment(enum pipe_format format); 238fa1b481c09b14e01eca1b3db8e0854033f6dee3dJames Benton 2394414a1a73ca649df12b514daa82381a2dbde2ba4Brian Paul#endif /* LP_TEXTURE_H */ 240