VERSION | 2 configure.ac | 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 ++--- 42 files changed, 339 insertions(+), 121 deletions(-)
New commits: 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); if ((!draw_surf && draw != EGL_NO_SURFACE) || commit 767bc0530946adfb07cc769497a8db3a74f34894 Author: Marek Olšák <marek.ol...@amd.com> Date: Mon Jun 2 12:51:09 2014 +0200 Revert "glx: load dri driver with RTLD_LOCAL so dlclose never fails to unload" This reverts commit e3cc0d90e14e62a0a787b6c07a6df0f5c84039be. It breaks too many apps and completely breaks my desktop too. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79469 We'll probably need to re-release all stable versions after this is committed. Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> (cherry picked from commit 0d5ec2c615784929be095951f9269773a790a2dd) diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c index e5a3f70..8bf4705 100644 --- a/src/glx/dri_common.c +++ b/src/glx/dri_common.c @@ -45,8 +45,8 @@ #ifndef RTLD_NOW #define RTLD_NOW 0 #endif -#ifndef RTLD_LOCAL -#define RTLD_LOCAL 0 +#ifndef RTLD_GLOBAL +#define RTLD_GLOBAL 0 #endif _X_HIDDEN void @@ -99,7 +99,7 @@ driOpenDriver(const char *driverName) int len; /* Attempt to make sure libGL symbols will be visible to the driver */ - glhandle = dlopen("libGL.so.1", RTLD_NOW | RTLD_LOCAL); + glhandle = dlopen("libGL.so.1", RTLD_NOW | RTLD_GLOBAL); libPaths = NULL; if (geteuid() == getuid()) { @@ -127,14 +127,14 @@ driOpenDriver(const char *driverName) snprintf(realDriverName, sizeof realDriverName, "%.*s/tls/%s_dri.so", len, p, driverName); InfoMessageF("OpenDriver: trying %s\n", realDriverName); - handle = dlopen(realDriverName, RTLD_NOW | RTLD_LOCAL); + handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL); #endif if (handle == NULL) { snprintf(realDriverName, sizeof realDriverName, "%.*s/%s_dri.so", len, p, driverName); InfoMessageF("OpenDriver: trying %s\n", realDriverName); - handle = dlopen(realDriverName, RTLD_NOW | RTLD_LOCAL); + handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL); } if (handle != NULL) commit 3aaae6056e03f45d0229ff2a0b52efb3abf0fab7 Author: Roland Scheidegger <srol...@vmware.com> Date: Fri May 30 00:37:17 2014 +0200 llvmpipe: fix crash when not all attachments are populated in a fb Framebuffers can have NULL attachments since a while. llvmpipe handled that properly for lp_rast_shade_quads_mask but it seems the change didn't make it to lp_rast_shade_tile. This fixes piglit fbo-drawbuffers-none test (though I need to increase the FB_SIZE from 32 to 256 so the tris cover some tiles fully). https://bugs.freedesktop.org/show_bug.cgi?id=79421 Cc: "10.1 10.2" <mesa-sta...@lists.freedesktop.org> Reviewed-by: Jose Fonseca <jfons...@vmware.com> (cherry picked from commit 576868140bbb1abd177e7fd122720883d773137e) diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c index d50ee48..f7c5b03 100644 --- a/src/gallium/drivers/llvmpipe/lp_rast.c +++ b/src/gallium/drivers/llvmpipe/lp_rast.c @@ -312,9 +312,15 @@ lp_rast_shade_tile(struct lp_rasterizer_task *task, /* color buffer */ for (i = 0; i < scene->fb.nr_cbufs; i++){ - stride[i] = scene->cbufs[i].stride; - color[i] = lp_rast_get_unswizzled_color_block_pointer(task, i, tile_x + x, - tile_y + y, inputs->layer); + if (scene->fb.cbufs[i]) { + stride[i] = scene->cbufs[i].stride; + color[i] = lp_rast_get_unswizzled_color_block_pointer(task, i, tile_x + x, + tile_y + y, inputs->layer); + } + else { + stride[i] = 0; + color[i] = NULL; + } } /* depth buffer */ commit 8b71741222cd8e9551d3e4356f0a2bbcb1bd1251 Author: Ian Romanick <ian.d.roman...@intel.com> Date: Fri May 30 17:01:48 2014 -0700 Bump version to 10.2-rc5 Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> diff --git a/VERSION b/VERSION index 01f7126..88242cc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.2.0-rc4 +10.2.0-rc5 commit 15ec4ef0daac770ec6b57e46b3005ba9c48c501c Author: Lubomir Rintel <lkund...@v3.sk> Date: Wed May 28 08:56:12 2014 +0200 i915: add a missing NULL pointer check mesaVisual can be NULL with configless context since this commit: commit 551d459af421a2eb937e9e16301bb64da4624f89 Author: Neil Roberts <n...@linux.intel.com> Date: Fri Mar 7 18:05:47 2014 +0000 Add the EGL_MESA_configless_context extension ... Previously the i965 and i915 drivers were explicitly creating a zeroed visual whenever 0 is passed for the EGLConfig. We attempt to dereference the visual in i915 and now we don't create a zeroed-out one one it crashes, breaking at least weston in an i915. There's no point in doing so as it would be zero anyway. v2: Fixed a typo in commit message. Added some tags. Signed-off-by: Lubomir Rintel <lkund...@v3.sk> Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1100967 Cc: "10.2" <mesa-sta...@lists.freedesktop.org> Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> (cherry picked from commit 90b5747856dd116e1a7e0fd4a93781400f276c3e) diff --git a/src/mesa/drivers/dri/i915/intel_context.c b/src/mesa/drivers/dri/i915/intel_context.c index a6057d3..09fe371 100644 --- a/src/mesa/drivers/dri/i915/intel_context.c -- 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/e1wvpcf-0008hp...@moszumanska.debian.org