Mercurial > mplayer.hg
diff libvo/vo_gl.c @ 27621:53b5cf466361
Change glCreateClearTex to use the same host data format as later uploads.
This fixes at least some of the massive performance problems the ATI drivers have.
author | reimar |
---|---|
date | Sat, 20 Sep 2008 17:48:01 +0000 |
parents | 4876c89bafdd |
children | b59875975f93 |
line wrap: on
line diff
--- a/libvo/vo_gl.c Sat Sep 20 17:23:02 2008 +0000 +++ b/libvo/vo_gl.c Sat Sep 20 17:48:01 2008 +0000 @@ -281,9 +281,9 @@ if (!largeeosdtex[0]) { glGenTextures(2, largeeosdtex); BindTexture(gl_target, largeeosdtex[0]); - glCreateClearTex(gl_target, GL_ALPHA, scale_type, 512, 512, 0); + glCreateClearTex(gl_target, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, scale_type, 512, 512, 0); BindTexture(gl_target, largeeosdtex[1]); - glCreateClearTex(gl_target, GL_ALPHA, scale_type, 512, 512, 0); + glCreateClearTex(gl_target, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, scale_type, 512, 512, 0); } for (i = img; i; i = i->next) { @@ -322,7 +322,7 @@ } else { texSize(i->w, i->h, &sx, &sy); BindTexture(gl_target, *curtex++); - glCreateClearTex(gl_target, GL_ALPHA, scale_type, sx, sy, 0); + glCreateClearTex(gl_target, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, scale_type, sx, sy, 0); } glUploadTex(gl_target, GL_ALPHA, GL_UNSIGNED_BYTE, i->bitmap, i->stride, x, y, i->w, i->h, 0); @@ -412,10 +412,10 @@ BindTexture(GL_TEXTURE_3D, default_texs[i + 14]); } ActiveTexture(GL_TEXTURE1); - glCreateClearTex(gl_target, gl_texfmt, GL_LINEAR, + glCreateClearTex(gl_target, gl_texfmt, gl_format, gl_type, GL_LINEAR, texture_width / 2, texture_height / 2, 128); ActiveTexture(GL_TEXTURE2); - glCreateClearTex(gl_target, gl_texfmt, GL_LINEAR, + glCreateClearTex(gl_target, gl_texfmt, gl_format, gl_type, GL_LINEAR, texture_width / 2, texture_height / 2, 128); switch (use_yuv) { case YUV_CONVERSION_FRAGMENT_LOOKUP: @@ -433,7 +433,7 @@ BindTexture(gl_target, 0); update_yuvconv(); } - glCreateClearTex(gl_target, gl_texfmt, GL_LINEAR, + glCreateClearTex(gl_target, gl_texfmt, gl_format, gl_type, GL_LINEAR, texture_width, texture_height, 0); resize(d_width, d_height); @@ -537,14 +537,14 @@ // create Textures for OSD part glGenTextures(1, &osdtex[osdtexCnt]); BindTexture(gl_target, osdtex[osdtexCnt]); - glCreateClearTex(gl_target, GL_LUMINANCE, scale_type, sx, sy, 0); + glCreateClearTex(gl_target, GL_LUMINANCE, GL_LUMINANCE, GL_UNSIGNED_BYTE, scale_type, sx, sy, 0); glUploadTex(gl_target, GL_LUMINANCE, GL_UNSIGNED_BYTE, src, stride, 0, 0, w, h, 0); #ifndef FAST_OSD glGenTextures(1, &osdatex[osdtexCnt]); BindTexture(gl_target, osdatex[osdtexCnt]); - glCreateClearTex(gl_target, GL_ALPHA, scale_type, sx, sy, 255); + glCreateClearTex(gl_target, GL_ALPHA, GL_ALPHA, GL_UNSIGNED_BYTE, scale_type, sx, sy, 255); { int i; char *tmp = malloc(stride * h);