VERSION | 2 configure.ac | 1 debian/changelog | 8 debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff | 92 ---------- debian/patches/series | 1 docs/index.html | 7 docs/relnotes/10.2.html | 6 src/egl/main/eglapi.c | 12 + src/gallium/drivers/llvmpipe/lp_rast.c | 12 - src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 11 - src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 11 + src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp | 5 src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 5 src/gallium/drivers/nouveau/nv50/nv50_context.c | 7 src/gallium/drivers/nouveau/nv50/nv50_state_validate.c | 4 src/gallium/drivers/nouveau/nv50/nv50_surface.c | 20 +- src/gallium/drivers/nouveau/nvc0/nvc0_context.c | 9 src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 13 - src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 7 src/gallium/drivers/nouveau/nvc0/nvc0_state_validate.c | 1 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c | 13 + src/gallium/drivers/r600/r600_blit.c | 3 src/gallium/drivers/radeon/r600_texture.c | 3 src/gallium/drivers/radeonsi/si_blit.c | 3 src/glsl/ast_to_hir.cpp | 6 src/glx/glxext.c | 4 src/mapi/glapi/glapi_dispatch.c | 57 ++++++ src/mesa/drivers/common/meta.h | 4 src/mesa/drivers/common/meta_blit.c | 15 + src/mesa/drivers/dri/i915/intel_context.c | 2 src/mesa/drivers/dri/i965/brw_defines.h | 3 src/mesa/drivers/dri/i965/brw_device_info.c | 31 ++- src/mesa/drivers/dri/i965/brw_fs_register_coalesce.cpp | 37 ++-- src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 38 ++-- src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c | 1 src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp | 12 - src/mesa/drivers/dri/i965/brw_state.h | 3 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 16 + src/mesa/drivers/dri/i965/brw_wm.c | 3 src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 21 +- src/mesa/drivers/dri/i965/gen7_sampler_state.c | 6 src/mesa/main/get.c | 10 + src/mesa/main/get_hash_generator.py | 2 src/mesa/main/get_hash_params.py | 4 src/mesa/state_tracker/st_program.c | 30 +-- 45 files changed, 347 insertions(+), 214 deletions(-)
New commits: commit a5a861ca9b9e2853e3338630fe50aae57a2fd857 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Fri Jun 13 17:57:32 2014 +0200 Drop 01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff, upstream diff --git a/debian/changelog b/debian/changelog index 88c5cd8..4b56a25 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ mesa (10.2.1-1) UNRELEASED; urgency=medium * New upstream release. + - 01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff + dropped, upstream -- Andreas Boll <andreas.boll....@gmail.com> Fri, 13 Jun 2014 17:39:17 +0200 diff --git a/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff b/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff deleted file mode 100644 index 19c5946..0000000 --- a/debian/patches/01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff +++ /dev/null @@ -1,92 +0,0 @@ -From 5cca160e06e1e90cad615cf1e6a73781267530c0 Mon Sep 17 00:00:00 2001 -From: Ian Romanick <ian.d.roman...@intel.com> -Date: Fri, 30 May 2014 13:57:32 -0700 -Subject: [PATCH] glapi: Duplicate GLES1 prototypes in glapi_dispatch.c - -These prototypes are necessary because GLES1 library builds will create -dispatch functions for them. We can't directly include GLES/gl.h -because it would conflict the previously-included GL/gl.h. Since GLES1 -ABI is not expected to every add more functions, the path of least -resistance is to just duplicate the prototypes for the functions that -aren't already in desktop OpenGL. - -Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79294 -Cc: Andreas Boll <andreas.boll....@gmail.com> -Cc: "10.2" <mesa-sta...@lists.freedesktop.org> -Acked-by: Matt Turner <matts...@gmail.com> ---- - src/mapi/glapi/glapi_dispatch.c | 57 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 57 insertions(+) - -diff --git a/src/mapi/glapi/glapi_dispatch.c b/src/mapi/glapi/glapi_dispatch.c -index b4c8c77..d2dd965 100644 ---- a/src/mapi/glapi/glapi_dispatch.c -+++ b/src/mapi/glapi/glapi_dispatch.c -@@ -87,6 +87,63 @@ - /* those link to libglapi.a should provide the entry points */ - #define _GLAPI_SKIP_PROTO_ENTRY_POINTS - #endif -+ -+/* These prototypes are necessary because GLES1 library builds will create -+ * dispatch functions for them. We can't directly include GLES/gl.h because -+ * it would conflict the previously-included GL/gl.h. Since GLES1 ABI is not -+ * expected to every add more functions, the path of least resistance is to -+ * just duplicate the prototypes for the functions that aren't already in -+ * desktop OpenGL. -+ */ -+#include <GLES/glplatform.h> -+ -+GL_API void GL_APIENTRY glClearDepthf (GLclampf depth); -+GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation); -+GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); -+GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]); -+GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); -+ -+GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref); -+GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); -+GL_API void GL_APIENTRY glClearDepthx (GLclampx depth); -+GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation); -+GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); -+GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar); -+GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); -+GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]); -+GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params); -+GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params); -+GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params); -+GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params); -+GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params); -+GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glLineWidthx (GLfixed width); -+GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m); -+GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m); -+GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); -+GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz); -+GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); -+GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glPointSizex (GLfixed size); -+GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units); -+GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); -+GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert); -+GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z); -+GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param); -+GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params); -+GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z); -+GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer); -+ - #include "glapi/glapitemp.h" - - #endif /* USE_X86_ASM */ --- -2.0.0.rc2 - diff --git a/debian/patches/series b/debian/patches/series index f389033..9f0749f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ -01_glapi-Duplicate-GLES1-prototypes-in-glapi_dispatch.c.diff 07_gallium-fix-build-failure-on-powerpcspe.diff commit 07cec34c38d45a0fc241038c585791174ccb81cb Author: Andreas Boll <andreas.boll....@gmail.com> Date: Fri Jun 13 17:44:12 2014 +0200 New upstream release. diff --git a/debian/changelog b/debian/changelog index 11a9110..88c5cd8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +mesa (10.2.1-1) UNRELEASED; urgency=medium + + * New upstream release. + + -- Andreas Boll <andreas.boll....@gmail.com> Fri, 13 Jun 2014 17:39:17 +0200 + mesa (10.2.0~rc4-2) experimental; urgency=medium [ Andreas Boll ] commit 1b69ea1c6d4e66ade7ab4fa0b08d024efe9dae9c Author: Ian Romanick <ian.d.roman...@intel.com> Date: Fri Jun 6 22:13:36 2014 -0700 Bump version to 10.2.1 diff --git a/VERSION b/VERSION index 2bd6f7e..26ee5b0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.2.0 +10.2.1 commit c2fc9fb90786cae02d589ee7242d5f5fe99bdbec Author: Ian Romanick <ian.d.roman...@intel.com> Date: Fri Jun 6 22:07:34 2014 -0700 radeonsi: Fix build error introduced in 5ab9a9c While resolving conflicts in cherry picking commit d226191, I accidentally introduced some garbage. Because radeonsi isn't built by default, the problem went unnoticed by me. Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Reported-by: Laurent Carlier <lordhea...@gmail.com> Tested-by: Laurent Carlier <lordhea...@gmail.com> diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 892ee84..1dfff49 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -692,7 +692,6 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx, !(dst->surface.flags & RADEON_SURF_SCANOUT) && (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) { si_blitter_begin(ctx, SI_COLOR_RESOLVE); -t-cleared util_blitter_custom_resolve_color(sctx->blitter, info->dst.resource, info->dst.level, info->dst.box.z, commit 28d41e409d74aabe35f1031e759179e82cb760b4 Author: Ian Romanick <ian.d.roman...@intel.com> Date: Fri Jun 6 21:17:02 2014 -0700 docs: Add MD5 checksum, etc. for 10.1 release Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> diff --git a/docs/index.html b/docs/index.html index 186bda2..5bd9601 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,6 +16,13 @@ <h1>News</h1> +<h2>June 6, 2014</h2> +<p> +<a href="relnotes/10.2.html">Mesa 10.2</a> is released. This is a new +development release. See the release notes for more information about +the release. +</p> + <h2>April 18, 2014</h2> <p> <a href="relnotes/10.1.1.html">Mesa 10.1.1</a> is released. diff --git a/docs/relnotes/10.2.html b/docs/relnotes/10.2.html index af44ca1..f17bfcc 100644 --- a/docs/relnotes/10.2.html +++ b/docs/relnotes/10.2.html @@ -14,7 +14,7 @@ <iframe src="../contents.html"></iframe> <div class="content"> -<h1>Mesa 10.2 Release Notes / TBD</h1> +<h1>Mesa 10.2 Release Notes / June 6, 2014</h1> <p> Mesa 10.2 is a new development release. @@ -33,7 +33,9 @@ because compatibility contexts are not supported. <h2>MD5 checksums</h2> <pre> -TBD. +c87bfb6dd5cbcf1fdef42e5ccd972581 MesaLib-10.2.0.tar.gz +7aaba90bd7169a94ae2fe83febdec963 MesaLib-10.2.0.tar.bz2 +58b203aca15dadc25ab4d1126db1052b MesaLib-10.2.0.zip </pre> commit f836ef63fdbb4abada29299e226eed735094736c Author: Ian Romanick <ian.d.roman...@intel.com> Date: Fri Jun 6 18:42:36 2014 -0700 Bump version to 10.2 (final) Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> diff --git a/VERSION b/VERSION index 88242cc..2bd6f7e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.2.0-rc5 +10.2.0 commit 99b9a0973ad32882897f21bb087b7bd34a928b59 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 22:40:47 2014 -0400 gk110/ir: fix slct emission Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 9fef8b3d811000146b989a101ad0e26ae6530fe4) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index e1b5a74..6788750 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -952,7 +952,7 @@ CodeEmitterGK110::emitSLCT(const CmpInstruction *i) FTZ_(32); emitCondCode(cc, 0x33, 0xf); } else { - emitForm_21(i, 0x1a4, 0xb20); + emitForm_21(i, 0x1a0, 0xb20); emitCondCode(cc, 0x34, 0x7); } } commit d36d53b564f5907e86ad5f5ffd837738988be4a2 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 20:33:06 2014 -0400 gk110/ir: fix interp mode emission Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit d588a4919b732246b7aa26685ef65545929a4f7b) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index 9a8c4b9..e1b5a74 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -1326,7 +1326,8 @@ CodeEmitterGK110::emitOUT(const Instruction *i) void CodeEmitterGK110::emitInterpMode(const Instruction *i) { - code[1] |= i->ipa << 21; // TODO: INTERP_SAMPLEID + code[1] |= (i->ipa & 0x3) << 21; // TODO: INTERP_SAMPLEID + code[1] |= (i->ipa & 0xc) << (19 - 2); } void commit 283cd12933ae4d38a15f789b9e6b513c474fd080 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 15:36:27 2014 -0400 nvc0: don't bother trying to set up compute for gk110+ The nouveau fw currently prints a bunch of errors. No point in seeing those all the time, esp since compute doesn't really work in the first place. Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Reviewed-by: Ben Skeggs <bske...@redhat.com> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> Conflicts: src/gallium/drivers/nouveau/nvc0/nvc0_screen.c (cherry picked from commit ca65fc418f756496d480a9a4566543837a582826) diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c index 8f9493c..58d3e1b 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c @@ -171,7 +171,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY: return 0; case PIPE_CAP_COMPUTE: - return (class_3d >= NVE4_3D_CLASS) ? 1 : 0; + return (class_3d == NVE4_3D_CLASS) ? 1 : 0; case PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER: return 1; case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK: @@ -211,7 +211,7 @@ nvc0_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader, case PIPE_SHADER_FRAGMENT: break; case PIPE_SHADER_COMPUTE: - if (class_3d < NVE4_3D_CLASS) + if (class_3d != NVE4_3D_CLASS) return 0; break; default: @@ -514,9 +514,10 @@ nvc0_screen_init_compute(struct nvc0_screen *screen) return nvc0_screen_compute_setup(screen, screen->base.pushbuf); return 0; case 0xe0: + return nve4_screen_compute_setup(screen, screen->base.pushbuf); case 0xf0: case 0x100: - return nve4_screen_compute_setup(screen, screen->base.pushbuf); + return 0; default: return -1; } commit aa8ea648f4995d4752a42e4ef5d4d9874a2db806 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 15:29:57 2014 -0400 gk110: add in forgotten code for gk110 isa Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Reviewed-by: Ben Skeggs <bske...@redhat.com> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> Conflicts: src/gallium/drivers/nouveau/nvc0/nvc0_surface.c (cherry picked from commit b9ec766bd02d55c20ff7ce5b95207ea7f6ed1de5) diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c index e15806e..1189b0d 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c @@ -543,9 +543,22 @@ nvc0_blitter_make_vp(struct nvc0_blitter *blit) 0x03f01c46, 0x0a7e0080, /* export b96 o[0x80] $r0:$r1:$r2 */ 0x00001de7, 0x80000000, /* exit */ }; + static const uint32_t code_gk110[] = + { + 0x00000000, 0x08000000, /* sched */ + 0x401ffc12, 0x7ec7fc00, /* ld b64 $r4d a[0x80] 0x0 0x0 */ + 0x481ffc02, 0x7ecbfc00, /* ld b96 $r0t a[0x90] 0x0 0x0 */ + 0x381ffc12, 0x7f07fc00, /* st b64 a[0x70] $r4d 0x0 0x0 */ + 0x401ffc02, 0x7f0bfc00, /* st b96 a[0x80] $r0t 0x0 0x0 */ + 0x001c003c, 0x18000000, /* exit */ + }; blit->vp.type = PIPE_SHADER_VERTEX; blit->vp.translated = TRUE; + if (blit->screen->base.class_3d >= NVF0_3D_CLASS) { + blit->vp.code = (uint32_t *)code_gk110; /* const_cast */ + blit->vp.code_size = sizeof(code_gk110); + } else if (blit->screen->base.class_3d >= NVE4_3D_CLASS) { blit->vp.code = (uint32_t *)code_nve4; /* const_cast */ blit->vp.code_size = sizeof(code_nve4); commit e901f407646a1852be5e6e82b19ee69be60ec1ae Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 19:52:49 2014 -0400 gk110/ir: fix ISAD emission with register args Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit ed1b9e5721f6c7a74e042eadb31fc5dcb2fc3552) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index 0941603..9a8c4b9 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -633,7 +633,7 @@ CodeEmitterGK110::emitISAD(const Instruction *i) { assert(i->dType == TYPE_S32 || i->dType == TYPE_U32); - emitForm_21(i, 0x1fc, 0xb74); + emitForm_21(i, 0x1f4, 0xb74); if (i->dType == TYPE_S32) code[1] |= 1 << 19; commit d5e47ee66b08b7be8d7e98f24448dddcb9c7cd2a Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 19:27:28 2014 -0400 gk110/ir: fix quadon opcode emission Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 6e046508a17b7eee24285e94f144a42ded3ebcdc) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index d566c99..0941603 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -1204,7 +1204,7 @@ CodeEmitterGK110::emitFlow(const Instruction *i) case OP_PRECONT: code[1] = 0x15800000; mask = 2; break; case OP_PRERET: code[1] = 0x13800000; mask = 2; break; - case OP_QUADON: code[1] = 0x1b000000; mask = 0; break; + case OP_QUADON: code[1] = 0x1b800000; mask = 0; break; case OP_QUADPOP: code[1] = 0x1c000000; mask = 0; break; case OP_BRKPT: code[1] = 0x00000000; mask = 0; break; default: commit 932a5dadda725db77b05e9da2bdae29df95fe099 Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Fri Jun 6 15:29:21 2014 -0400 gk110/ir: emit texbar the same way that the blob does Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Reviewed-by: Ben Skeggs <bske...@redhat.com> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 73eec47ef81954f7c2bf7c8bf03b300d11d05b82) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp index b8d0d3e..d566c99 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp @@ -967,7 +967,7 @@ void CodeEmitterGK110::emitSELP(const Instruction *i) void CodeEmitterGK110::emitTEXBAR(const Instruction *i) { - code[0] = 0x00000002 | (i->subOp << 23); + code[0] = 0x0000003e | (i->subOp << 23); code[1] = 0x77000000; emitPredicate(i); commit 203bc289a0aa7e78eaa8ea40ed7dcb84dc4d87b2 Author: Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> Date: Wed Jun 4 00:35:47 2014 +0200 nv50/ir: clear subop when folding constant expressions Some operations (e.g. OP_MUL/OP_MAD/OP_EXTBF) might have a subop set. After folding, make sure that it is cleared Signed-off-by: Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 3164bfc73418e2e046c7a750eaac8a6d66dfe02d) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index 31f8558..6e5b66c 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -563,6 +563,7 @@ ConstantFolding::expr(Instruction *i, } else { i->op = i->saturate ? OP_SAT : OP_MOV; /* SAT handled by unary() */ } + i->subOp = 0; } void commit 11b3011805a5f1d59ea8a025313d109bf25f50c4 Author: Kenneth Graunke <kenn...@whitecape.org> Date: Wed May 28 23:31:48 2014 -0700 i965: Support GL_CLAMP natively on Broadwell. The new hardware actually supports this OpenGL 1.x feature natively, so we can finally drop our shader workarounds. Not many applications use GL_CLAMP, and most use it unintentionally, but it's trivial to do right, so we should. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Reviewed-by: Matt Turner <matts...@gmail.com> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 221169693bf1dfdaf46dddc1df318cee992237aa) diff --git a/src/mesa/drivers/dri/i965/brw_defines.h b/src/mesa/drivers/dri/i965/brw_defines.h index ed8efca..3afd399 100644 --- a/src/mesa/drivers/dri/i965/brw_defines.h +++ b/src/mesa/drivers/dri/i965/brw_defines.h @@ -606,6 +606,7 @@ #define BRW_TEXCOORDMODE_CUBE 3 #define BRW_TEXCOORDMODE_CLAMP_BORDER 4 #define BRW_TEXCOORDMODE_MIRROR_ONCE 5 +#define GEN8_TEXCOORDMODE_HALF_BORDER 6 #define BRW_THREAD_PRIORITY_NORMAL 0 #define BRW_THREAD_PRIORITY_HIGH 1 diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 8530f4f..fecd4fc 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -352,7 +352,8 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx, if (alpha_depth || (brw->gen < 8 && !brw->is_haswell)) key->swizzles[s] = brw_get_texture_swizzle(ctx, t); - if (sampler->MinFilter != GL_NEAREST && + if (brw->gen < 8 && + sampler->MinFilter != GL_NEAREST && sampler->MagFilter != GL_NEAREST) { if (sampler->WrapS == GL_CLAMP) key->gl_clamp_mask[0] |= 1 << s; diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index 6f8dde4..8a4bfea 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -55,9 +55,16 @@ translate_wrap_mode(struct brw_context *brw, GLenum wrap, bool using_nearest) /* GL_CLAMP is the weird mode where coordinates are clamped to * [0.0, 1.0], so linear filtering of coordinates outside of * [0.0, 1.0] give you half edge texel value and half border - * color. The fragment shader will clamp the coordinates, and - * we set clamp_border here, which gets the result desired. We - * just use clamp(_to_edge) for nearest, because for nearest + * color. + * + * Gen8+ supports this natively. + */ + if (brw->gen >= 8) + return GEN8_TEXCOORDMODE_HALF_BORDER; + + /* On Gen4-7.5, we clamp the coordinates in the fragment shader + * and set clamp_border here, which gets the result desired. + * We just use clamp(_to_edge) for nearest, because for nearest * clamping to 1.0 gives border color instead of the desired * edge texels. */ commit c62bc58ccedc3393433d501fec0fb30c778fd1fa Author: Kenneth Graunke <kenn...@whitecape.org> Date: Wed May 28 23:37:44 2014 -0700 i965: Pass brw to translate_wrap_mode(). This lets us do generation checks. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Reviewed-by: Matt Turner <matts...@gmail.com> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 7f3d64a77b9ca6d738f67c7a3dd4499cdf817d79) diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h index dbcf7c7..c52a977 100644 --- a/src/mesa/drivers/dri/i965/brw_state.h +++ b/src/mesa/drivers/dri/i965/brw_state.h @@ -243,7 +243,8 @@ void gen7_upload_3dstate_so_decl_list(struct brw_context *brw, void gen8_init_vtable_surface_functions(struct brw_context *brw); /* brw_wm_sampler_state.c */ -uint32_t translate_wrap_mode(GLenum wrap, bool using_nearest); +uint32_t translate_wrap_mode(struct brw_context *brw, + GLenum wrap, bool using_nearest); void upload_default_color(struct brw_context *brw, struct gl_sampler_object *sampler, int unit, diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index bbfd9e0..6f8dde4 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -46,7 +46,7 @@ uint32_t -translate_wrap_mode(GLenum wrap, bool using_nearest) +translate_wrap_mode(struct brw_context *brw, GLenum wrap, bool using_nearest) { switch( wrap ) { case GL_REPEAT: @@ -276,11 +276,11 @@ static void brw_update_sampler_state(struct brw_context *brw, } } - sampler->ss1.r_wrap_mode = translate_wrap_mode(gl_sampler->WrapR, + sampler->ss1.r_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapR, using_nearest); - sampler->ss1.s_wrap_mode = translate_wrap_mode(gl_sampler->WrapS, + sampler->ss1.s_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapS, using_nearest); - sampler->ss1.t_wrap_mode = translate_wrap_mode(gl_sampler->WrapT, + sampler->ss1.t_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapT, using_nearest); if (brw->gen >= 6 && diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c index 74d5e9e..6077ff2 100644 --- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c @@ -103,11 +103,11 @@ gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index, } } - sampler->ss3.r_wrap_mode = translate_wrap_mode(gl_sampler->WrapR, + sampler->ss3.r_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapR, using_nearest); - sampler->ss3.s_wrap_mode = translate_wrap_mode(gl_sampler->WrapS, + sampler->ss3.s_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapS, using_nearest); - sampler->ss3.t_wrap_mode = translate_wrap_mode(gl_sampler->WrapT, + sampler->ss3.t_wrap_mode = translate_wrap_mode(brw, gl_sampler->WrapT, using_nearest); /* Cube-maps on 965 and later must use the same wrap mode for all 3 commit 304e80e35619c473497998ea83ae2fe3f22d3876 Author: Kenneth Graunke <kenn...@whitecape.org> Date: Tue May 13 07:20:02 2014 -0700 i965: Fix copy and pasted values in Broadwell code. Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Cc: "10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 7913b4b97bab750ffad54e53dec9bbeb56307066) diff --git a/src/mesa/drivers/dri/i965/brw_device_info.c b/src/mesa/drivers/dri/i965/brw_device_info.c index bf3c62e..f28d754 100644 --- a/src/mesa/drivers/dri/i965/brw_device_info.c +++ b/src/mesa/drivers/dri/i965/brw_device_info.c @@ -192,33 +192,44 @@ static const struct brw_device_info brw_device_info_hsw_gt3 = { }, }; -/* Thread counts and URB limits are placeholders, and may not be accurate. */ #define GEN8_FEATURES \ .gen = 8, \ .has_hiz_and_separate_stencil = true, \ .must_use_separate_stencil = true, \ .has_llc = true, \ .has_pln = true, \ - .max_vs_threads = 280, \ - .max_gs_threads = 256, \ - .max_wm_threads = 408, \ - .urb = { \ - .size = 128, \ - .min_vs_entries = 64, \ - .max_vs_entries = 1664, \ - .max_gs_entries = 640, \ - } + .max_vs_threads = 504, \ + .max_gs_threads = 504, \ + .max_wm_threads = 384 \ static const struct brw_device_info brw_device_info_bdw_gt1 = { GEN8_FEATURES, .gt = 1, + .urb = { + .size = 192, + .min_vs_entries = 64, + .max_vs_entries = 2560, + .max_gs_entries = 960, + } }; static const struct brw_device_info brw_device_info_bdw_gt2 = { GEN8_FEATURES, .gt = 2, + .urb = { + .size = 384, + .min_vs_entries = 64, + .max_vs_entries = 2560, + .max_gs_entries = 960, + } }; static const struct brw_device_info brw_device_info_bdw_gt3 = { GEN8_FEATURES, .gt = 3, + .urb = { + .size = 384, + .min_vs_entries = 64, + .max_vs_entries = 2560, + .max_gs_entries = 960, + } }; /* Thread counts and URB limits are placeholders, and may not be accurate. commit f4aca6868a14882fcc8a2b30205fc0d3eff0e90f Author: Sinclair Yeh <sinclair....@intel.com> Date: Tue Jun 3 14:00:13 2014 -0700 egl: Check for NULL native_window in eglCreateWindowSurface We have customers using NULL as a way to test the robustness of the API. Without this check, EGL will segfault trying to dereference dri2_surf->wl_win->private because wl_win is NULL. This fix adds a check and sets EGL_BAD_NATIVE_WINDOW v2: Incorporated feedback from idr - moved the check to a higher level function. Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 91ff0d4c6510dc38f279c586ced17fba917873e7) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index b946d81..25453f4 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -571,6 +571,10 @@ _eglCreateWindowSurfaceCommon(_EGLDisplay *disp, EGLConfig config, EGLSurface ret; _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv); + + if (native_window == NULL) + RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE); + surf = drv->API.CreateWindowSurface(drv, disp, conf, native_window, attrib_list); ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE; commit 5ab9a9c0ccff8218e9625f43a25535cf7d1d8ae0 Author: Marek Olšák <marek.ol...@amd.com> Date: Mon Jun 2 13:51:29 2014 +0200 r600g,radeonsi: don't use hardware MSAA resolve if dst is fast-cleared It doesn't work and our docs say so too. Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Michel Dänzer <michel.daen...@amd.com> (cherry picked from commit d2261918202697febed0de18f66416e273001088) diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c index 1a2a911..bbc64ac 100644 --- a/src/gallium/drivers/r600/r600_blit.c +++ b/src/gallium/drivers/r600/r600_blit.c @@ -789,7 +789,8 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx, info->src.box.width == dst_width && info->src.box.height == dst_height && info->src.box.depth == 1 && - dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D) { + dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D && + (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) { r600_blitter_begin(ctx, R600_COLOR_RESOLVE); util_blitter_custom_resolve_color(rctx->blitter, info->dst.resource, info->dst.level, diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 6bc89ab..892ee84 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -689,8 +689,10 @@ static bool do_hardware_msaa_resolve(struct pipe_context *ctx, info->src.box.height == dst_height && info->src.box.depth == 1 && dst->surface.level[info->dst.level].mode >= RADEON_SURF_MODE_1D && - !(dst->surface.flags & RADEON_SURF_SCANOUT)) { + !(dst->surface.flags & RADEON_SURF_SCANOUT) && + (!dst->cmask.size || !dst->dirty_level_mask) /* dst cannot be fast-cleared */) { si_blitter_begin(ctx, SI_COLOR_RESOLVE); +t-cleared util_blitter_custom_resolve_color(sctx->blitter, info->dst.resource, info->dst.level, info->dst.box.z, commit ae16f443c21e4a4eede003a3a789dc8a58c43ea4 Author: Marek Olšák <marek.ol...@amd.com> Date: Mon Jun 2 15:45:51 2014 +0200 r600g,radeonsi: disable fast clear if render condition is on For some reason, CP DMA doesn't follow the predicate bit if I enable it, so this is the only option. This fixes piglit: spec/NV_conditional_render/clear Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Michel Dänzer <michel.daen...@amd.com> (cherry picked from commit bf701a84eb000910015a3c3ee9860141cde4990d) diff --git a/src/gallium/drivers/radeon/r600_texture.c b/src/gallium/drivers/radeon/r600_texture.c index e30d933..3a37465 100644 --- a/src/gallium/drivers/radeon/r600_texture.c +++ b/src/gallium/drivers/radeon/r600_texture.c @@ -1235,6 +1235,9 @@ void evergreen_do_fast_color_clear(struct r600_common_context *rctx, { int i; + if (rctx->current_render_cond) + return; + for (i = 0; i < fb->nr_cbufs; i++) { struct r600_texture *tex; unsigned clear_bit = PIPE_CLEAR_COLOR0 << i; commit b8241bb3f259b8d42f75f6fd6d1a7ea7c59d70e2 Author: José Fonseca <jfons...@vmware.com> Date: Sun Jun 1 20:50:17 2014 +0100 mesa: Make glGetIntegerv(GL_*_ARRAY_SIZE) return GL_BGRA. Same as b026b6bbfe3f15c8a7296ac107dc3d31f74e401e, but COLOR_ARRAY_SIZE/SECONDARY_COLOR_ARRAY_SIZE. Ideally we wouldn't munge the incoming state, so that we wouldn't need to unmunge it back on glGet*. But the array size state is copied and referred in many places, many of which couldn't take an GLenum like GL_BGRA instead of a plain integer. So just hack around on glGet*, to ensure there is no risk of introducing regressions elsewhere. This bug causes problems to Apitrace, resulting in wrong traces. See https://github.com/apitrace/apitrace/issues/261 for details. Tested with piglit arb_vertex_array_bgra-get, which was created for this purpose. Reviewed-by: Matt Turner <matts...@gmail.com> Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit e3e13d6b857b3083e2553457fe30ddfd4eddead4) diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 80a5839..267b5f2 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -847,6 +847,16 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu v->value_int = ctx->Array.VAO->IndexBufferObj->Name; break; + /* ARB_vertex_array_bgra */ + case GL_COLOR_ARRAY_SIZE: + array = &ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR0]; + v->value_int = array->Format == GL_BGRA ? GL_BGRA : array->Size; + break; + case GL_SECONDARY_COLOR_ARRAY_SIZE: + array = &ctx->Array.VAO->VertexAttrib[VERT_ATTRIB_COLOR1]; + v->value_int = array->Format == GL_BGRA ? GL_BGRA : array->Size; + break; + /* ARB_copy_buffer */ case GL_COPY_READ_BUFFER: v->value_int = ctx->CopyReadBuffer->Name; diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py index d40fa07..c7a6e02 100644 --- a/src/mesa/main/get_hash_params.py +++ b/src/mesa/main/get_hash_params.py @@ -199,7 +199,7 @@ descriptor=[ [ "NORMAL_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_NORMAL].Type), NO_EXTRA" ], [ "NORMAL_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_NORMAL].Stride), NO_EXTRA" ], [ "COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR0].Enabled), NO_EXTRA" ], - [ "COLOR_ARRAY_SIZE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR0].Size), NO_EXTRA" ], + [ "COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], [ "COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR0].Type), NO_EXTRA" ], [ "COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR0].Stride), NO_EXTRA" ], [ "TEXTURE_COORD_ARRAY", "LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_client_array, Enabled), NO_EXTRA" ], @@ -552,7 +552,7 @@ descriptor=[ [ "SECONDARY_COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR1].Enabled), NO_EXTRA" ], [ "SECONDARY_COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR1].Type), NO_EXTRA" ], [ "SECONDARY_COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR1].Stride), NO_EXTRA" ], - [ "SECONDARY_COLOR_ARRAY_SIZE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR1].Size), NO_EXTRA" ], + [ "SECONDARY_COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], # GL_EXT_fog_coord [ "CURRENT_FOG_COORDINATE", "CONTEXT_FLOAT(Current.Attrib[VERT_ATTRIB_FOG][0]), extra_flush_current" ], commit 224c193237311405c7e5275a6a53ee8131ac9215 Author: José Fonseca <jfons...@vmware.com> Date: Sun Jun 1 08:54:18 2014 +0100 mesa/main: Make get_hash.c values constant. Reviewed-by: Matt Turner <matts...@gmail.com> Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 53468dee0359a4ec3c9edd334656de0ddc47e477) diff --git a/src/mesa/main/get_hash_generator.py b/src/mesa/main/get_hash_generator.py index 96bc495..b200d19 100644 --- a/src/mesa/main/get_hash_generator.py +++ b/src/mesa/main/get_hash_generator.py @@ -52,7 +52,7 @@ def print_header(): (prime_factor, prime_step) def print_params(params): - print "static struct value_desc values[] = {" + print "static const struct value_desc values[] = {" for p in params: print " { %s, %s }," % (p[0], p[1]) commit 494f91612550734d718e4e5120d315a8c3d6a41d Author: Beren Minor <beren.mi...@gmail.com> Date: Thu Mar 20 08:36:34 2014 +0100 egl/main: Fix eglMakeCurrent when releasing context from current thread. EGL 1.4 Specification says that eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT) can be used to release the current thread's ownership on the surfaces and context. MESA's egl implementation was only accepting the parameters when the KHR_surfaceless_context extension is supported. [chadv] Add quote from the EGL 1.4 spec. Cc: "10,1, 10.2" <mesa-sta...@lists.freedesktop.org> Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> (cherry picked from commit 0ca0d5743fb42a956289a87efd4c8fcda88cf93a) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 219d8e6..b946d81 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -524,8 +524,12 @@ eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, if (!context && ctx != EGL_NO_CONTEXT) RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_FALSE); if (!draw_surf || !read_surf) { - /* surfaces may be NULL if surfaceless */ - if (!disp->Extensions.KHR_surfaceless_context) + /* From the EGL 1.4 (20130211) spec: + * + * To release the current context without assigning a new one, set ctx + * to EGL_NO_CONTEXT and set draw and read to EGL_NO_SURFACE. + */ + if (!disp->Extensions.KHR_surfaceless_context && ctx != EGL_NO_CONTEXT) RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE); -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/e1wvpcz-0008c6...@moszumanska.debian.org