Re: [Mesa-dev] Should we need one release function for DRI's GLX_EXT_texture_from_pixmap?
On Wed, 2011-01-05 at 08:28 -0500, Kristian Høgsberg wrote: > On Tue, Jan 4, 2011 at 11:10 PM, Zhao, Juan J wrote: > > Hi all, > > > > In the structure “__DRItexBufferExtensionRec”, we don’t have > > one release interface now. But in our platform, we need to release some > > resources. > > > > Why we don’t need the release interface? Or should we add > > one? > > In the open source drivers, glXBindTexImageEXT is pretty much the same > as glBindTexture. The pixmaps stays bound until you bind another > texture or pixmap, at which point all the resources are released. > There is nothing for the open source drivers to do in release, so the > DRI extension never had a release function. If you need a release > function, just send a patch and we can add it. You'll need to bump > the extension version number and then add the call to release in the > dri loaders (libGL, AIGLX, egl_dri2) conditional on the extension > version. > Thanks a lot! :) I add this interface. Would you please help to check it? > Kristian -- *^_^* Many thanks & Best Regards SSD-OTC Meego Middleware & TV Team Zhao Juan From da404aef0ec3e1eba47c4754424020f2484f7510 Mon Sep 17 00:00:00 2001 From: JuanZhao Date: Thu, 6 Jan 2011 14:59:43 -0500 Subject: [PATCH] Add release function for texture_from_pixmap extension Some platform need to release texture image for texture_from_pixmap extension, add this interface for those platforms. --- include/GL/internal/dri_interface.h | 12 ++ src/egl/drivers/dri2/egl_dri2.c | 40 +++--- src/glx/dri2_glx.c | 27 +++ 3 files changed, 75 insertions(+), 4 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 9ee039b..84a43ff 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -251,6 +251,18 @@ struct __DRItexBufferExtensionRec { GLint target, GLint format, __DRIdrawable *pDraw); +#if __DRI_TEX_BUFFER_VERSION >=3 +/** + * Method to release texture buffer in case some special platform + * need this. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ +void (*releaseTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + GLint format, + __DRIdrawable *pDraw); +#endif }; /** diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 6f40ab9..1319bd0 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1983,10 +1983,42 @@ static EGLBoolean dri2_release_tex_image(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint buffer) { - (void) drv; - (void) disp; - (void) surf; - (void) buffer; +#if __DRI_TEX_BUFFER_VERSION >= 3 + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); + struct dri2_egl_context *dri2_ctx; + _EGLContext *ctx; + GLint format, target; + + ctx = _eglGetCurrentContext(); + dri2_ctx = dri2_egl_context(ctx); + + if (!_eglReleaseTexImage(drv, disp, surf, buffer)) + return EGL_FALSE; + + switch (dri2_surf->base.TextureFormat) { + case EGL_TEXTURE_RGB: + format = __DRI_TEXTURE_FORMAT_RGB; + break; + case EGL_TEXTURE_RGBA: + format = __DRI_TEXTURE_FORMAT_RGBA; + break; + default: + assert(0); + } + + switch (dri2_surf->base.TextureTarget) { + case EGL_TEXTURE_2D: + target = GL_TEXTURE_2D; + break; + default: + assert(0); + } + + (*dri2_dpy->tex_buffer->releaseTexBuffer)(dri2_ctx->dri_context, + target, format, + dri2_surf->dri_drawable); +#endif return EGL_TRUE; } diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index b0559b2..f96265b 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -719,6 +719,33 @@ dri2_bind_tex_image(Display * dpy, static void dri2_release_tex_image(Display * dpy, GLXDrawable drawable, int buffer) { +#if __DRI_TEX_BUFFER_VERSION >= 3 + struct glx_context *gc = __glXGetCurrentContext(); + struct dri2_context *pcp = (struct dri2_context *) gc; + __GLXDRIdrawable *base = GetGLXDRIDrawable(dpy, drawable); + struct glx_display *dpyPriv = __glXInitialize(dpy); + struct dri2_drawable *pdraw = (struct dri2_drawable *) base; + struct dri2_display *pdp = + (struct dri2_display *) dpyPriv->dri2Display; + struct dri2_screen *psc; + + if (pdraw != NULL) { + psc = (struct dri2_screen *) base->psc; + +#if __DRI2_FLUSH_VERSION >= 3 + if (!pdp->invalidateAvailable && psc->f) + psc->f->invalidate(pdraw->driDrawable); +#endif + + if (psc->texBuffer->base.version >= 3 && + psc->texBuffer->releaseTexBuffer != NULL) { + (*psc->texBuffer->releaseTexBuffer) (pcp->driContext, +
Re: [Mesa-dev] Upcoming Mesa 7.9.1 and 7.10 releases
Am 06.01.2011 07:14, schrieb Arthur Huillet: > > It hasn't been committed into master yet but I think the patch at > https://bugs.freedesktop.org/show_bug.cgi?id=32579 > should go into 7.9.1 and 7.10. Failing that, the problem might be present on > e.g. the current Ubuntu forever. > What about applications that create lots of narrow, long, but still small textures? For those we would still do tiling, and use 1 MB for each 1x1024 texture. How about changing if (width0 < 1024 && height0 < 1024) to if (width0 * height0 < 1024 * 1024) Philipp ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Should we need one release function for DRI's GLX_EXT_texture_from_pixmap?
On Thu, Jan 6, 2011 at 4:33 AM, Zhao, Juan J wrote: > On Wed, 2011-01-05 at 08:28 -0500, Kristian Høgsberg wrote: >> On Tue, Jan 4, 2011 at 11:10 PM, Zhao, Juan J wrote: >> > Hi all, >> > >> > In the structure “__DRItexBufferExtensionRec”, we don’t >> > have >> > one release interface now. But in our platform, we need to release some >> > resources. >> > >> > Why we don’t need the release interface? Or should we add >> > one? >> >> In the open source drivers, glXBindTexImageEXT is pretty much the same >> as glBindTexture. The pixmaps stays bound until you bind another >> texture or pixmap, at which point all the resources are released. >> There is nothing for the open source drivers to do in release, so the >> DRI extension never had a release function. If you need a release >> function, just send a patch and we can add it. You'll need to bump >> the extension version number and then add the call to release in the >> dri loaders (libGL, AIGLX, egl_dri2) conditional on the extension >> version. >> > Thanks a lot! :) > I add this interface. Would you please help to check it? >> Kristian Looks good, just a few commets: I don't think we need the format argument in release do we? I'd like to drop that to make it a little easier to call the release function. Also, in files in the mesa repo, and in particular dri_interface.h, we don't need to check for __DRI_TEX_BUFFER_VERSION >=3, since we know exactly what versions are available. Only the AIGLX code in X (and potentially other out-of-tree users of the DRI driver interface) need this. And please keep the commit message under 80 characters wide: use a short description in the header, then provide more detail in the following lines, if necessary. Finally, why do you need the invalidate call in dri2_release_tex_image()? Kristian ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32859] Mesa doesn't compile under NetBSD
https://bugs.freedesktop.org/show_bug.cgi?id=32859 nobled changed: What|Removed |Added Attachment #41692|application/octet-stream|text/plain mime type|| Attachment #41692|0 |1 is patch|| -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32825] egl_glx driver completely broken in 7.9 branch [fix in master]
https://bugs.freedesktop.org/show_bug.cgi?id=32825 --- Comment #4 from nobled 2011-01-06 06:45:04 PST --- (In reply to comment #3) > Did you try a clean build? I don't see why the fix would make 0x3034 have the > value 0x3 or 0x4. Yeah, a fresh git checkout: git checkout 7.9 git clean -xdf autoreconf && ./configure --disable-glw --disable-glut --disable-glu --disable-gallium-i915 --disable-gallium-i965 --disable-gallium-radeon --disable-gallium-svga --enable-xcb cd src/egl && make I just needed to rebuild the egl_glx.so, so I just did that. That shouldn't make a difference, right? -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32825] egl_glx driver completely broken in 7.9 branch [fix in master]
https://bugs.freedesktop.org/show_bug.cgi?id=32825 --- Comment #5 from Chia-I Wu 2011-01-06 06:54:49 PST --- You also need to rebuild libEGL (src/egl/main/). Could you see if it helps? -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 1/7] u_upload_mgr: new features
Looks great. Thanks. -Brian On Wed, Jan 5, 2011 at 4:41 PM, Marek Olšák wrote: > Please see the attached patch. It also documents util_copy_vertex_buffers, > as you asked for in another email. > > Marek > > (re-sending this, the original email didn't make it to ML because of the > 40kB limit) > > On Mon, Jan 3, 2011 at 4:43 PM, Brian Paul wrote: >> >> Could you also add comments to all the u_upload_mgr.c functions? In >> particular, what are the possible values for the usage/bind parameters? A >> follow-on patch is fine. I know that comments have been missing all along. >> >> -Brian > > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32859] Mesa doesn't compile under NetBSD
https://bugs.freedesktop.org/show_bug.cgi?id=32859 Brian Paul changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #1 from Brian Paul 2011-01-06 06:59:49 PST --- Looks good to me. I'll commit it soon. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH mesa-demos 1/6] es1_info: convert indentString into a literal string
This fixes compilation with "-Wformat -Werror=format-security". Some distros like Mandriva enable this flag by default. Its purpose is to improve security. Another option for this patch would be to do "printf("%s", indentString)", but converting indentString into a literal also gives the compiler some hints to improve performance. Signed-off-by: Paulo Zanoni --- By the way, combining this patch with a "printf("%s", indentString)" would make the code even safer. The last patch of this series does this change, so you can choose to apply it or not. Using "printf(string);" is dangerous, might lead to bugs and even security issues. If the string being printed contains the "%" character one can do really dangerous things. Even if you think the string in question might not be dangerous, future code changes might lead that piece of code to bugs or security holes. Some references: http://wiki.mandriva.com/en/Development/Packaging/Problems#format_not_a_string_literal_and_no_format_arguments http://wiki.debian.org/Hardening#DEBBUILDHARDENINGFORMAT.28gcc.2BAC8-g.2B-.2B--Wformat-Wformat-security.29 http://en.wikipedia.org/wiki/Format_string_attack See also "How To Write Shared Libraries" Section 2.4.1, written by Ulrich Drepper for more information on the difference between 'char *foo = "bar"' and 'char foo[] = "bar"' src/egl/opengles1/es1_info.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/egl/opengles1/es1_info.c b/src/egl/opengles1/es1_info.c index 93816b5..38becc5 100644 --- a/src/egl/opengles1/es1_info.c +++ b/src/egl/opengles1/es1_info.c @@ -29,7 +29,7 @@ static void print_extension_list(const char *ext) { - const char *indentString = ""; + const char indentString[] = ""; const int indent = 4; const int max = 79; int width, i, j; -- 1.7.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH mesa-demos 2/6] Add missing binaries to .gitignore
Signed-off-by: Paulo Zanoni --- src/demos/.gitignore |1 + src/egl/opengles1/.gitignore |1 + src/glsl/.gitignore |1 + src/gs/.gitignore|1 + src/tests/.gitignore |1 + src/trivial/.gitignore |4 6 files changed, 9 insertions(+), 0 deletions(-) create mode 100644 src/gs/.gitignore diff --git a/src/demos/.gitignore b/src/demos/.gitignore index bf71667..807033d 100644 --- a/src/demos/.gitignore +++ b/src/demos/.gitignore @@ -32,6 +32,7 @@ lodbias morph3d multiarb paltex +pixeltest pointblast projtex rain diff --git a/src/egl/opengles1/.gitignore b/src/egl/opengles1/.gitignore index 135e3de..3263ff2 100644 --- a/src/egl/opengles1/.gitignore +++ b/src/egl/opengles1/.gitignore @@ -1,4 +1,5 @@ bindtex +clear drawtex_x11 drawtex_screen es1_info diff --git a/src/glsl/.gitignore b/src/glsl/.gitignore index 2b7f84f..44c6249 100644 --- a/src/glsl/.gitignore +++ b/src/glsl/.gitignore @@ -1,4 +1,5 @@ array +bezier bitmap brick bump diff --git a/src/gs/.gitignore b/src/gs/.gitignore new file mode 100644 index 000..5df2e95 --- /dev/null +++ b/src/gs/.gitignore @@ -0,0 +1 @@ +gs-tri diff --git a/src/tests/.gitignore b/src/tests/.gitignore index cb3b5fe..b6d112e 100644 --- a/src/tests/.gitignore +++ b/src/tests/.gitignore @@ -59,6 +59,7 @@ mipgen mipmap_comp mipmap_comp_tests mipmap_limits +mipmap_tunnel mipmap_view multipal multitexarray diff --git a/src/trivial/.gitignore b/src/trivial/.gitignore index 1787f27..b14de32 100644 --- a/src/trivial/.gitignore +++ b/src/trivial/.gitignore @@ -1,4 +1,5 @@ clear +clear-color clear-fbo clear-fbo-scissor clear-fbo-tex @@ -34,6 +35,7 @@ line-userclip-clip line-userclip-nop line-userclip-nop-clip line-wide +line-xor lineloop lineloop-clip lineloop-elts @@ -96,6 +98,7 @@ tri-cull tri-cull-both tri-dlist tri-edgeflag +tri-edgeflag-array tri-fbo tri-fbo-tex tri-fbo-tex-mip @@ -119,6 +122,7 @@ tri-square tri-stencil tri-stipple tri-tex +tri-tex-1d tri-tex-3d tri-tri tri-unfilled -- 1.7.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH mesa-demos 3/6] opengles2/tri.c: remove trailing white spaces
So git won't complain when you apply the next patch. Also, code looks prettier this way. Signed-off-by: Paulo Zanoni --- src/egl/opengles2/tri.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/egl/opengles2/tri.c b/src/egl/opengles2/tri.c index 8981d8a..df2751b 100644 --- a/src/egl/opengles2/tri.c +++ b/src/egl/opengles2/tri.c @@ -1,5 +1,5 @@ /** - * + * * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. * All Rights Reserved. * @@ -416,7 +416,7 @@ usage(void) printf(" -display set the display to run on\n"); printf(" -info display OpenGL renderer info\n"); } - + int main(int argc, char *argv[]) -- 1.7.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH mesa-demos 4/6] Rename opengles2/tri to opengles2/es2tri
I want to ship it, but there are other demos called 'tri'. Signed-off-by: Paulo Zanoni --- src/egl/opengles2/.gitignore |2 +- src/egl/opengles2/Makefile.am |4 +- src/egl/opengles2/es2tri.c| 516 + src/egl/opengles2/tri.c | 516 - 4 files changed, 519 insertions(+), 519 deletions(-) create mode 100644 src/egl/opengles2/es2tri.c delete mode 100644 src/egl/opengles2/tri.c diff --git a/src/egl/opengles2/.gitignore b/src/egl/opengles2/.gitignore index bbfb095..8e4bc34 100644 --- a/src/egl/opengles2/.gitignore +++ b/src/egl/opengles2/.gitignore @@ -1,3 +1,3 @@ es2gears +es2tri es2_info -tri diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am index d3dab3f..bae8817 100644 --- a/src/egl/opengles2/Makefile.am +++ b/src/egl/opengles2/Makefile.am @@ -41,11 +41,11 @@ if HAVE_GLESV2 noinst_PROGRAMS = \ es2_info \ es2gears \ - tri + es2tri endif endif es2_info_LDADD = $(X11_LIBS) -tri_LDADD = $(X11_LIBS) +es2tri_LDADD = $(X11_LIBS) es2gears_LDADD = ../eglut/libeglut_x11.la diff --git a/src/egl/opengles2/es2tri.c b/src/egl/opengles2/es2tri.c new file mode 100644 index 000..df2751b --- /dev/null +++ b/src/egl/opengles2/es2tri.c @@ -0,0 +1,516 @@ +/** + * + * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + **/ + +/* + * Draw a triangle with X/EGL and OpenGL ES 2.x + */ + +#define USE_FULL_GL 0 + + + +#include +#include +#include +#include +#include +#include +#include +#include +#if USE_FULL_GL +#include /* use full OpenGL */ +#else +#include /* use OpenGL ES 2.x */ +#endif +#include + + +#define FLOAT_TO_FIXED(X) ((X) * 65535.0) + + + +static GLfloat view_rotx = 0.0, view_roty = 0.0; + +static GLint u_matrix = -1; +static GLint attr_pos = 0, attr_color = 1; + + +static void +make_z_rot_matrix(GLfloat angle, GLfloat *m) +{ + float c = cos(angle * M_PI / 180.0); + float s = sin(angle * M_PI / 180.0); + int i; + for (i = 0; i < 16; i++) + m[i] = 0.0; + m[0] = m[5] = m[10] = m[15] = 1.0; + + m[0] = c; + m[1] = s; + m[4] = -s; + m[5] = c; +} + +static void +make_scale_matrix(GLfloat xs, GLfloat ys, GLfloat zs, GLfloat *m) +{ + int i; + for (i = 0; i < 16; i++) + m[i] = 0.0; + m[0] = xs; + m[5] = ys; + m[10] = zs; + m[15] = 1.0; +} + + +static void +mul_matrix(GLfloat *prod, const GLfloat *a, const GLfloat *b) +{ +#define A(row,col) a[(col<<2)+row] +#define B(row,col) b[(col<<2)+row] +#define P(row,col) p[(col<<2)+row] + GLfloat p[16]; + GLint i; + for (i = 0; i < 4; i++) { + const GLfloat ai0=A(i,0), ai1=A(i,1), ai2=A(i,2), ai3=A(i,3); + P(i,0) = ai0 * B(0,0) + ai1 * B(1,0) + ai2 * B(2,0) + ai3 * B(3,0); + P(i,1) = ai0 * B(0,1) + ai1 * B(1,1) + ai2 * B(2,1) + ai3 * B(3,1); + P(i,2) = ai0 * B(0,2) + ai1 * B(1,2) + ai2 * B(2,2) + ai3 * B(3,2); + P(i,3) = ai0 * B(0,3) + ai1 * B(1,3) + ai2 * B(2,3) + ai3 * B(3,3); + } + memcpy(prod, p, sizeof(p)); +#undef A +#undef B +#undef PROD +} + + +static void +draw(void) +{ + static const GLfloat verts[3][2] = { + { -1, -1 }, + { 1, -1 }, + { 0, 1 } + }; + static const GLfloat colors[3][3] = { + { 1, 0, 0 }, + { 0, 1, 0 }, + { 0, 0, 1 } + }; + GLfloat mat[16], rot[16], scale[16]; + + /* Set modelview/projection matrix */ + make_z_rot_matrix(view_rotx, rot); + make_scale_matrix(0.5, 0.5, 0.5, scale); + mul_matrix(mat, rot, scale); + glUniformMatrix4fv(u_matrix, 1, GL_FALSE, mat); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + { + glVertexAttribPointer(attr_pos, 2, GL_FLOAT, GL_FALSE, 0, verts); + glVertexAttribPointer(attr_color, 3, GL_FLOAT, GL_FALSE, 0, colors); + glEnableVertexAttribArray(attr_pos); + glEnableVertexAttribArray(attr_color); + + glDrawArrays(GL_TRIANGLES, 0, 3); + + glDisableVertexAttribArray(attr_pos); + glDisableVertexAttribArray(attr_color); + } +} + + +/* new window size or exposure */ +static void +reshape(int width, int height) +{ + glViewport(0, 0, (GLint) width, (GLint) height); +} + + +static void +create_shaders(void) +{ + static const char *fragShaderText = + "varying vec4 v_color;\n" + "void main() {\n" + " gl_FragColor = v_color;\n" + "}\n"; + static const char *vertShaderText = + "uniform mat4 modelviewProjection;\n" + "attribute vec4 pos;\n" + "attribute vec4 color;\n" + "varying vec4 v_color;\n" + "void main() {\n" + " gl_Position = modelviewProjection * pos;\n" + " v_color = color;\n" + "}\n"; + + GLuint fragShader, vertShader, program; + GLint stat; + + fragShader = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fragSh
[Mesa-dev] [PATCH mesa-demos 5/6] Ship opengles2 demos
Distros are starting to ship OpenGL ES2 libraries, having demos ready for testing is a good idea. Signed-off-by: Paulo Zanoni --- src/egl/opengles2/Makefile.am |5 + 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/src/egl/opengles2/Makefile.am b/src/egl/opengles2/Makefile.am index bae8817..8d85c06 100644 --- a/src/egl/opengles2/Makefile.am +++ b/src/egl/opengles2/Makefile.am @@ -22,9 +22,6 @@ # Authors: #Eric Anholt -# These programs aren't intended to be included with the normal distro. -# They're not too interesting but they're good for testing. - AM_CFLAGS = \ $(GLESV2_CFLAGS) \ $(EGL_CFLAGS) \ @@ -38,7 +35,7 @@ AM_LDFLAGS = \ if HAVE_EGL if HAVE_GLESV2 -noinst_PROGRAMS = \ +bin_PROGRAMS = \ es2_info \ es2gears \ es2tri -- 1.7.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH mesa-demos 6/6] es1_info: change printf(indentString) to printf("%s", indentString)
IMHO, code looks safer this way. Signed-off-by: Paulo Zanoni --- Please read comments from patch 0001. src/egl/opengles1/es1_info.c |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/egl/opengles1/es1_info.c b/src/egl/opengles1/es1_info.c index 38becc5..e33597f 100644 --- a/src/egl/opengles1/es1_info.c +++ b/src/egl/opengles1/es1_info.c @@ -38,7 +38,7 @@ print_extension_list(const char *ext) return; width = indent; - printf(indentString); + printf("%s", indentString); i = j = 0; while (1) { if (ext[j] == ' ' || ext[j] == 0) { @@ -48,7 +48,7 @@ print_extension_list(const char *ext) /* start a new line */ printf("\n"); width = indent; -printf(indentString); +printf("%s", indentString); } /* print the extension name between ext[i] and ext[j] */ while (i < j) { -- 1.7.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 31940] [r300g] Crash in dri2_invalidate_drawable
https://bugs.freedesktop.org/show_bug.cgi?id=31940 --- Comment #14 from Pavel Ondračka 2011-01-06 08:49:45 PST --- Any chance the patch from comment 7 can make it into master or at least to mesa-dev for review? It fixes crash in Star Trek Armada 2 for me and I have not encountered any regressions so far. Maybe also reassigning to Mesa core would be appropriate? -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32054] crasher in mesa math module
https://bugs.freedesktop.org/show_bug.cgi?id=32054 Paweł Pękala changed: What|Removed |Added CC||c...@o2.pl -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Upcoming Mesa 7.9.1 and 7.10 releases
On Thu, 06 Jan 2011 11:32:54 +0100 Philipp Klaus Krause wrote: > Am 06.01.2011 07:14, schrieb Arthur Huillet: > > > > It hasn't been committed into master yet but I think the patch at > > https://bugs.freedesktop.org/show_bug.cgi?id=32579 > > should go into 7.9.1 and 7.10. Failing that, the problem might be present > > on e.g. the current Ubuntu forever. > > > > What about applications that create lots of narrow, long, but still > small textures? For those we would still do tiling, and use 1 MB for > each 1x1024 texture. > > How about changing > > if (width0 < 1024 && height0 < 1024) > > to > > if (width0 * height0 < 1024 * 1024) Yes, this would work as well. I don't care too much about which variant is committed as long as Mesa's upcoming releases aren't affected by the problem I reported (with a use case of textures being more-or-less square). -- Greetings, A. Huillet ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32825] egl_glx driver completely broken in 7.9 branch [fix in master]
https://bugs.freedesktop.org/show_bug.cgi?id=32825 --- Comment #6 from nobled 2011-01-06 11:49:15 PST --- (In reply to comment #5) > You also need to rebuild libEGL (src/egl/main/). Could you see if it helps? Nope, I tried that. Same error. -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32879] New: egl_glx driver segfaults with NULL config
https://bugs.freedesktop.org/show_bug.cgi?id=32879 Summary: egl_glx driver segfaults with NULL config Product: Mesa Version: git Platform: All OS/Version: All Status: NEW Severity: normal Priority: medium Component: Other AssignedTo: mesa-dev@lists.freedesktop.org ReportedBy: nob...@dreamwidth.org egl_dri2 seems to handle this fine, but egl_glx tries to dereference it in this function: static int GLX_egl_config_index(_EGLConfig *conf) { struct GLX_egl_config *GLX_conf = GLX_egl_config(conf); return GLX_conf->index; } So it segfaults when it tries to create a context on this line in GLX_eglCreateContext: GLX_ctx->context = glXCreateNewContext(GLX_dpy->dpy, GLX_dpy->fbconfigs[GLX_egl_config_index(conf)], GLX_RGBA_TYPE, GLX_ctx_shared ? GLX_ctx_shared->context : NULL, GL_TRUE); -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Upcoming Mesa 7.9.1 and 7.10 releases
On Mon, Jan 3, 2011 at 8:27 PM, Ian Romanick wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > It looks like things are shaping up nicely for the 7.9.1 and 7.10 > releases. I've cherry picked a bunch of stuff over to the branches, but > there are a few commits that I'm a bit uncertain about. I'd appreciate > it if the commiters could weigh in. If you are on direct CC, that means > you have a commit on one or both lists. > > NOTE: There are a few recent commits that are on both lists. > > 7.9.1 list: > > commit 1d33e940d2050f3d9180019f6ffd57f6fc295507 > Author: Kristian Høgsberg > Date: Thu Oct 14 14:57:47 2010 -0400 > > Only install vtxfmt tables for OpenGL > R > GLES1 and GLES2 install their own exec pointers and don't need the > Save table. Also, the SET_* macros use different indices for the > different > APIs so the offsets used in vtxfmt.c are actually wrong for the ES APIs. Yes, this one fixes vertex attributes for GLES2 and I'd recommend 9f0d7dd25941b2f327c7bedf7513eee871829073 and 98ee6739d97b5592a7dad0b453c78e180a51ad50 as well. Kristian ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH] r600g: Fixed SIN/COS/SCS for the case where the operand is a literal.
Signed-off-by: Tilman Sauerbeck --- src/gallium/drivers/r600/r600_shader.c | 17 +++-- 1 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index bb5038c..35a4cea 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -948,7 +948,7 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, struct r600_bc_alu_src r600_src[3]) { struct tgsi_full_instruction *inst = &ctx->parse.FullToken.FullInstruction; - int r; + int r, src0_chan; uint32_t lit_vals[4]; struct r600_bc_alu alu; @@ -960,6 +960,19 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, if (r) return r; + src0_chan = tgsi_chan(&inst->Src[0], 0); + + /* We are going to feed two literals to the MAD below, +* which means that if the first operand is a literal as well, +* we need to copy its value manually. +*/ + if (r600_src[0].sel == V_SQ_ALU_SRC_LITERAL) { + unsigned index = inst->Src[0].Register.Index; + + lit_vals[2] = ctx->literals[index * 4 + src0_chan]; + src0_chan = 2; + } + lit_vals[0] = fui(1.0 /(3.1415926535 * 2)); lit_vals[1] = fui(0.5f); @@ -972,7 +985,7 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, alu.dst.write = 1; alu.src[0] = r600_src[0]; - alu.src[0].chan = tgsi_chan(&inst->Src[0], 0); + alu.src[0].chan = src0_chan; alu.src[1].sel = V_SQ_ALU_SRC_LITERAL; alu.src[1].chan = 0; -- 1.7.3.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Upcoming Mesa 7.9.1 and 7.10 releases
2011/1/6 Kristian Høgsberg : > On Mon, Jan 3, 2011 at 8:27 PM, Ian Romanick wrote: >> -BEGIN PGP SIGNED MESSAGE- >> Hash: SHA1 >> >> It looks like things are shaping up nicely for the 7.9.1 and 7.10 >> releases. I've cherry picked a bunch of stuff over to the branches, but >> there are a few commits that I'm a bit uncertain about. I'd appreciate >> it if the commiters could weigh in. If you are on direct CC, that means >> you have a commit on one or both lists. >> >> NOTE: There are a few recent commits that are on both lists. >> >> 7.9.1 list: >> >> commit 1d33e940d2050f3d9180019f6ffd57f6fc295507 >> Author: Kristian Høgsberg >> Date: Thu Oct 14 14:57:47 2010 -0400 >> >> Only install vtxfmt tables for OpenGL >> R >> GLES1 and GLES2 install their own exec pointers and don't need the >> Save table. Also, the SET_* macros use different indices for the >> different >> APIs so the offsets used in vtxfmt.c are actually wrong for the ES APIs. > > Yes, this one fixes vertex attributes for GLES2 and I'd recommend > 9f0d7dd25941b2f327c7bedf7513eee871829073 and > 98ee6739d97b5592a7dad0b453c78e180a51ad50 as well. a889f9ee5cccee031c1090a6ef92cba894b1d77c is another good fix, without it writes to gl_PointSize breaks everything. It's been in master for a while and fixes a bunch of GLES2 test cases. Kristian ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] r600g: Fixed SIN/COS/SCS for the case where the operand is a literal.
On Thu, Jan 6, 2011 at 4:30 PM, Tilman Sauerbeck wrote: > Signed-off-by: Tilman Sauerbeck looks good to me. should probably be applied to 7.10 as well. Reviewed-by: Alex Deucher Alex > --- > src/gallium/drivers/r600/r600_shader.c | 17 +++-- > 1 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/r600/r600_shader.c > b/src/gallium/drivers/r600/r600_shader.c > index bb5038c..35a4cea 100644 > --- a/src/gallium/drivers/r600/r600_shader.c > +++ b/src/gallium/drivers/r600/r600_shader.c > @@ -948,7 +948,7 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, > struct r600_bc_alu_src r600_src[3]) > { > struct tgsi_full_instruction *inst = > &ctx->parse.FullToken.FullInstruction; > - int r; > + int r, src0_chan; > uint32_t lit_vals[4]; > struct r600_bc_alu alu; > > @@ -960,6 +960,19 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, > if (r) > return r; > > + src0_chan = tgsi_chan(&inst->Src[0], 0); > + > + /* We are going to feed two literals to the MAD below, > + * which means that if the first operand is a literal as well, > + * we need to copy its value manually. > + */ > + if (r600_src[0].sel == V_SQ_ALU_SRC_LITERAL) { > + unsigned index = inst->Src[0].Register.Index; > + > + lit_vals[2] = ctx->literals[index * 4 + src0_chan]; > + src0_chan = 2; > + } > + > lit_vals[0] = fui(1.0 /(3.1415926535 * 2)); > lit_vals[1] = fui(0.5f); > > @@ -972,7 +985,7 @@ static int tgsi_setup_trig(struct r600_shader_ctx *ctx, > alu.dst.write = 1; > > alu.src[0] = r600_src[0]; > - alu.src[0].chan = tgsi_chan(&inst->Src[0], 0); > + alu.src[0].chan = src0_chan; > > alu.src[1].sel = V_SQ_ALU_SRC_LITERAL; > alu.src[1].chan = 0; > -- > 1.7.3.1 > > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] Should we need one release function for DRI's GLX_EXT_texture_from_pixmap?
On Thu, 2011-01-06 at 08:36 -0500, Kristian Høgsberg wrote: > On Thu, Jan 6, 2011 at 4:33 AM, Zhao, Juan J wrote: > > On Wed, 2011-01-05 at 08:28 -0500, Kristian Høgsberg wrote: > >> On Tue, Jan 4, 2011 at 11:10 PM, Zhao, Juan J > >> wrote: > >> > Hi all, > >> > > >> > In the structure “__DRItexBufferExtensionRec”, we don’t > >> > have > >> > one release interface now. But in our platform, we need to release some > >> > resources. > >> > > >> > Why we don’t need the release interface? Or should we add > >> > one? > >> > >> In the open source drivers, glXBindTexImageEXT is pretty much the same > >> as glBindTexture. The pixmaps stays bound until you bind another > >> texture or pixmap, at which point all the resources are released. > >> There is nothing for the open source drivers to do in release, so the > >> DRI extension never had a release function. If you need a release > >> function, just send a patch and we can add it. You'll need to bump > >> the extension version number and then add the call to release in the > >> dri loaders (libGL, AIGLX, egl_dri2) conditional on the extension > >> version. > >> > > Thanks a lot! :) > > I add this interface. Would you please help to check it? > >> Kristian > > Looks good, just a few commets: I don't think we need the format > argument in release do we? I'd like to drop that to make it a little > easier to call the release function. Thank your for your comments.:) Yes, we don't need this. I just removed this parameter. > Also, in files in the mesa repo, > and in particular dri_interface.h, we don't need to check for > __DRI_TEX_BUFFER_VERSION >=3, since we know exactly what versions are > available. Only the AIGLX code in X (and potentially other > out-of-tree users of the DRI driver interface) need this. OK. And I updated this. > And please > keep the commit message under 80 characters wide: use a short > description in the header, then provide more detail in the following > lines, if necessary. Thanks a lot. I corrected the commit message. > Finally, why do you need the invalidate call in > dri2_release_tex_image()? I think the invalidate call is used to flush and bump the stamp sequence. When the stamp is changed, we will update render buffers and finally update frame-buffer size. Now we are releasing the texture image, so we need this call. > Kristian -- *^_^* Many thanks & Best Regards SSD-OTC Meego Middleware & TV Team Zhao Juan From e2a707d6c602f686e9b738cb044ddc7f48bbfa8b Mon Sep 17 00:00:00 2001 From: JuanZhao Date: Fri, 7 Jan 2011 09:53:10 -0500 Subject: [PATCH] dri2: release texture image. Add release function for texture_from_pixmap extension. Some platform need to release texture image for texture_from_pixmap extension, add this interface for those platforms. --- include/GL/internal/dri_interface.h |9 + src/egl/drivers/dri2/egl_dri2.c | 29 + src/glx/dri2_glx.c | 26 ++ 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 9ee039b..641a2dc 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -251,6 +251,15 @@ struct __DRItexBufferExtensionRec { GLint target, GLint format, __DRIdrawable *pDraw); +/** + * Method to release texture buffer in case some special platform + * need this. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ +void (*releaseTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + __DRIdrawable *pDraw); }; /** diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 6f40ab9..0ca01e4 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1983,10 +1983,31 @@ static EGLBoolean dri2_release_tex_image(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf, EGLint buffer) { - (void) drv; - (void) disp; - (void) surf; - (void) buffer; +#if __DRI_TEX_BUFFER_VERSION >= 3 + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf); + struct dri2_egl_context *dri2_ctx; + _EGLContext *ctx; + GLint target; + + ctx = _eglGetCurrentContext(); + dri2_ctx = dri2_egl_context(ctx); + + if (!_eglReleaseTexImage(drv, disp, surf, buffer)) + return EGL_FALSE; + + switch (dri2_surf->base.TextureTarget) { + case EGL_TEXTURE_2D: + target = GL_TEXTURE_2D; + break; + default: + assert(0); + } + if (dri2_dpy->tex_buffer->releaseTexBuffer!=NULL) +(*dri2_dpy->tex_buffer->releaseTexBuffer)(dri2_ctx->dri_context, + target, + dri2_surf->dri_drawable); +#endif return EGL_TRUE; } diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index b0559b2..3
Re: [Mesa-dev] Upcoming Mesa 7.9.1 and 7.10 releases
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 01/06/2011 01:09 PM, Kristian Høgsberg wrote: > On Mon, Jan 3, 2011 at 8:27 PM, Ian Romanick wrote: >> -BEGIN PGP SIGNED MESSAGE- >> Hash: SHA1 >> >> It looks like things are shaping up nicely for the 7.9.1 and 7.10 >> releases. I've cherry picked a bunch of stuff over to the branches, but >> there are a few commits that I'm a bit uncertain about. I'd appreciate >> it if the commiters could weigh in. If you are on direct CC, that means >> you have a commit on one or both lists. >> >> NOTE: There are a few recent commits that are on both lists. >> >> 7.9.1 list: >> >> commit 1d33e940d2050f3d9180019f6ffd57f6fc295507 >> Author: Kristian Høgsberg >> Date: Thu Oct 14 14:57:47 2010 -0400 >> >>Only install vtxfmt tables for OpenGL >>R >>GLES1 and GLES2 install their own exec pointers and don't need the >>Save table. Also, the SET_* macros use different indices for the >> different >>APIs so the offsets used in vtxfmt.c are actually wrong for the ES APIs. > > Yes, this one fixes vertex attributes for GLES2 and I'd recommend > 9f0d7dd25941b2f327c7bedf7513eee871829073 and > 98ee6739d97b5592a7dad0b453c78e180a51ad50 as well. It looks like all three of these patches depend on 81ccb3e2c, which isn't in 7.9. I don't think I want that much churn on the day before the release. These will have to wait for 7.9.2. -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk0mdzEACgkQX1gOwKyEAw8YZgCeN8T84Db0ZDaNKMOAfJKrVHWe YyQAn0zXa0tP/EjAmCksgeME2iHI7ypX =h1mO -END PGP SIGNATURE- ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [Bug 32825] egl_glx driver completely broken in 7.9 branch [fix in master]
https://bugs.freedesktop.org/show_bug.cgi?id=32825 cs...@daudt.org changed: What|Removed |Added CC||cs...@daudt.org -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug. ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev