summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@linux.intel.com>2012-05-15 10:52:37 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2012-05-15 10:52:37 +0800
commit36d4d32bdd6ecc03f45fd68b1c214748ab5e0c0b (patch)
tree118021dc9f54cf6d5eb113861ed5e50733b8c7d3
parent59b18f837483329564192f5ac0b23834c21e2f7a (diff)
Remove the texture cache code.
Caching texture objects is not necessary based on previous testing. To keep the code simple, we remove it. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
-rw-r--r--src/glamor_fbo.c94
-rw-r--r--src/glamor_priv.h1
2 files changed, 6 insertions, 89 deletions
diff --git a/src/glamor_fbo.c b/src/glamor_fbo.c
index 546fe7b..f4e02b2 100644
--- a/src/glamor_fbo.c
+++ b/src/glamor_fbo.c
@@ -34,7 +34,6 @@
#define GLAMOR_CACHE_DEFAULT 0
#define GLAMOR_CACHE_EXACT_SIZE 1
-#define GLAMOR_CACHE_TEXTURE 2
//#define NO_FBO_CACHE 1
#define FBO_CACHE_THRESHOLD (256*1024*1024)
@@ -105,14 +104,9 @@ glamor_pixmap_fbo_cache_get(glamor_screen_private *glamor_priv,
n_format = cache_format(format);
if (n_format == -1)
return NULL;
- if (!(flag & GLAMOR_CACHE_TEXTURE))
- cache = &glamor_priv->fbo_cache[n_format]
- [cache_wbucket(w)]
- [cache_hbucket(h)];
- else
- cache = &glamor_priv->tex_cache[n_format]
- [cache_wbucket(w)]
- [cache_hbucket(h)];
+ cache = &glamor_priv->fbo_cache[n_format]
+ [cache_wbucket(w)]
+ [cache_hbucket(h)];
if (!(flag & GLAMOR_CACHE_EXACT_SIZE)) {
xorg_list_for_each_entry(fbo_entry, cache, list) {
if (fbo_entry->width >= w && fbo_entry->height >= h) {
@@ -186,14 +180,9 @@ glamor_pixmap_fbo_cache_put(glamor_pixmap_fbo *fbo)
return;
}
- if (fbo->fb)
- cache = &fbo->glamor_priv->fbo_cache[n_format]
- [cache_wbucket(fbo->width)]
- [cache_hbucket(fbo->height)];
- else
- cache = &fbo->glamor_priv->tex_cache[n_format]
- [cache_wbucket(fbo->width)]
- [cache_hbucket(fbo->height)];
+ cache = &fbo->glamor_priv->fbo_cache[n_format]
+ [cache_wbucket(fbo->width)]
+ [cache_hbucket(fbo->height)];
DEBUGF("Put cache entry %p to cache %p w %d h %d format %x fbo %d tex %d \n", fbo, cache,
fbo->width, fbo->height, fbo->format, fbo->fb, fbo->tex);
@@ -310,19 +299,6 @@ glamor_fbo_expire(glamor_screen_private *glamor_priv)
fbo_entry->expire, glamor_priv->tick);
glamor_purge_fbo(fbo_entry);
}
-#if 0
- cache = &glamor_priv->tex_cache[i][j][k];
- xorg_list_for_each_entry_safe_reverse(fbo_entry, tmp, cache, list) {
- if (GLAMOR_TICK_AFTER(fbo_entry->expire, glamor_priv->tick)) {
- empty_cache = FALSE;
- break;
- }
- xorg_list_del(&fbo_entry->list);
- DEBUGF("cache %p fbo %p expired %d current %d \n", cache, fbo_entry,
- fbo_entry->expire, glamor_priv->tick);
- glamor_purge_fbo(fbo_entry);
- }
-#endif
}
}
@@ -339,7 +315,6 @@ glamor_init_pixmap_fbo(ScreenPtr screen)
for(k = 0; k < CACHE_BUCKET_HCOUNT; k++)
{
xorg_list_init(&glamor_priv->fbo_cache[i][j][k]);
- xorg_list_init(&glamor_priv->tex_cache[i][j][k]);
}
glamor_priv->fbo_cache_watermark = 0;
}
@@ -362,13 +337,6 @@ glamor_fini_pixmap_fbo(ScreenPtr screen)
xorg_list_del(&fbo_entry->list);
glamor_purge_fbo(fbo_entry);
}
-#if 0
- cache = &glamor_priv->tex_cache[i][j][k];
- xorg_list_for_each_entry_safe_reverse(fbo_entry, tmp, cache, list) {
- xorg_list_del(&fbo_entry->list);
- glamor_purge_fbo(fbo_entry);
- }
-#endif
}
}
@@ -380,56 +348,6 @@ glamor_destroy_fbo(glamor_pixmap_fbo *fbo)
}
-static glamor_pixmap_fbo *
-glamor_create_tex_obj(glamor_screen_private *glamor_priv,
- int w, int h, GLenum format, int flag)
-{
- glamor_gl_dispatch *dispatch;
- glamor_pixmap_fbo *fbo;
- int cache_flag = GLAMOR_CACHE_TEXTURE;
- GLuint tex;
-
- if (flag == GLAMOR_CREATE_TEXTURE_EXACT_SIZE)
- cache_flag |= GLAMOR_CACHE_EXACT_SIZE;
-
- fbo = glamor_pixmap_fbo_cache_get(glamor_priv, w, h,
- format, cache_flag);
- if (fbo)
- return fbo;
- fbo = calloc(1, sizeof(*fbo));
- if (fbo == NULL)
- return NULL;
-
- xorg_list_init(&fbo->list);
-
- dispatch = glamor_get_dispatch(glamor_priv);
- dispatch->glGenTextures(1, &tex);
- dispatch->glBindTexture(GL_TEXTURE_2D, tex);
- dispatch->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
- GL_NEAREST);
- dispatch->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
- GL_NEAREST);
- dispatch->glTexImage2D(GL_TEXTURE_2D, 0, format, w, h, 0, format,
- GL_UNSIGNED_BYTE, NULL);
- glamor_put_dispatch(glamor_priv);
-
- fbo->tex = tex;
- fbo->width = w;
- fbo->height = h;
- fbo->format = format;
- fbo->glamor_priv = glamor_priv;
-
- return fbo;
-}
-
-static void
-glamor_destroy_tex_obj(glamor_pixmap_fbo * tex_obj)
-{
- assert(tex_obj->fb == 0);
- xorg_list_del(&tex_obj->list);
- glamor_pixmap_fbo_cache_put(tex_obj);
-}
-
static int
_glamor_create_tex(glamor_screen_private *glamor_priv,
int w, int h, GLenum format)
diff --git a/src/glamor_priv.h b/src/glamor_priv.h
index ca88fb4..d26f59f 100644
--- a/src/glamor_priv.h
+++ b/src/glamor_priv.h
@@ -210,7 +210,6 @@ typedef struct glamor_screen_private {
int max_fbo_size;
struct xorg_list fbo_cache[CACHE_FORMAT_COUNT][CACHE_BUCKET_WCOUNT][CACHE_BUCKET_HCOUNT];
- struct xorg_list tex_cache[CACHE_FORMAT_COUNT][CACHE_BUCKET_WCOUNT][CACHE_BUCKET_HCOUNT];
unsigned long fbo_cache_watermark;
/* glamor_solid */