mesa: Changes to 'debian-experimental'
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.dev@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.dev@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.romanick@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.romanick@intel.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79294
-Cc: Andreas Boll <andreas.boll.dev@gmail.com>
-Cc: "10.2" <mesa-stable@lists.freedesktop.org>
-Acked-by: Matt Turner <mattst88@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.dev@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.dev@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.romanick@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.romanick@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.romanick@intel.com>
Reported-by: Laurent Carlier <lordheavym@gmail.com>
Tested-by: Laurent Carlier <lordheavym@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.romanick@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.romanick@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.romanick@intel.com>
Date: Fri Jun 6 18:42:36 2014 -0700
Bump version to 10.2 (final)
Signed-off-by: Ian Romanick <ian.d.romanick@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 <imirkin@alum.mit.edu>
Date: Fri Jun 6 22:40:47 2014 -0400
gk110/ir: fix slct emission
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@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 <imirkin@alum.mit.edu>
Date: Fri Jun 6 20:33:06 2014 -0400
gk110/ir: fix interp mode emission
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@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 <imirkin@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 <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: "10.2" <mesa-stable@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 <imirkin@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 <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: "10.2" <mesa-stable@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 <imirkin@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 <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@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 <imirkin@alum.mit.edu>
Date: Fri Jun 6 19:27:28 2014 -0400
gk110/ir: fix quadon opcode emission
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@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 <imirkin@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 <imirkin@alum.mit.edu>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: "10.2" <mesa-stable@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.klausmann@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.klausmann@mni.thm.de>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.1 10.2" <mesa-stable@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 <kenneth@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 <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: "10.2" <mesa-stable@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 <kenneth@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 <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: "10.2" <mesa-stable@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 <kenneth@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 <kenneth@whitecape.org>
Cc: "10.2" <mesa-stable@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.yeh@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.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Cc: "10.1 10.2" <mesa-stable@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.olsak@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-stable@lists.freedesktop.org
Reviewed-by: Michel Dänzer <michel.daenzer@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.olsak@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-stable@lists.freedesktop.org
Reviewed-by: Michel Dänzer <michel.daenzer@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 <jfonseca@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 <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "10.1 10.2" <mesa-stable@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 <jfonseca@vmware.com>
Date: Sun Jun 1 08:54:18 2014 +0100
mesa/main: Make get_hash.c values constant.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "10.1 10.2" <mesa-stable@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.minor@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-stable@lists.freedesktop.org>
Reviewed-by: Chad Versace <chad.versace@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);
Reply to: