Makefile | 8 configs/darwin | 23 +- configs/darwin-fat-intel | 7 debian/changelog | 2 docs/news.html | 16 + docs/relnotes-8.0.1.html | 4 docs/relnotes-8.0.2.html | 158 +++++++++++++++++ docs/relnotes.html | 2 src/gallium/auxiliary/draw/draw_context.h | 15 + src/gallium/auxiliary/rtasm/rtasm_cpu.c | 48 ++--- src/gallium/auxiliary/util/u_debug_memory.c | 9 src/gallium/drivers/r300/compiler/radeon_program_alu.c | 64 +++++- src/gallium/drivers/svga/svga_pipe_depthstencil.c | 8 src/gallium/drivers/svga/svga_pipe_rasterizer.c | 4 src/gallium/drivers/svga/svga_screen.c | 4 src/gallium/drivers/svga/svga_state_need_swtnl.c | 5 src/glx/apple/Makefile | 1 src/glx/create_context.c | 7 src/mesa/drivers/dri/i915/i915_fragprog.c | 4 src/mesa/drivers/dri/i915/i915_texstate.c | 22 ++ src/mesa/drivers/dri/i915/i915_vtbl.c | 7 src/mesa/drivers/dri/i965/brw_context.h | 6 src/mesa/drivers/dri/i965/brw_eu_emit.c | 2 src/mesa/drivers/dri/i965/brw_fs.cpp | 9 src/mesa/drivers/dri/i965/brw_misc_state.c | 3 src/mesa/drivers/dri/i965/brw_sf.c | 30 ++- src/mesa/drivers/dri/i965/brw_sf.h | 1 src/mesa/drivers/dri/i965/brw_sf_emit.c | 4 src/mesa/drivers/dri/intel/intel_context.c | 2 src/mesa/drivers/dri/intel/intel_context.h | 2 src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 14 - src/mesa/drivers/dri/intel/intel_screen.c | 34 +++ src/mesa/drivers/dri/intel/intel_screen.h | 3 src/mesa/drivers/dri/intel/intel_span.c | 28 +-- src/mesa/drivers/dri/intel/intel_span.h | 2 src/mesa/main/bufferobj.c | 12 - src/mesa/main/pack.c | 91 +++++++++ src/mesa/main/pack.h | 7 src/mesa/main/readpix.c | 26 ++ src/mesa/main/texgetimage.c | 103 +++-------- src/mesa/main/uniform_query.cpp | 16 + src/mesa/main/uniforms.c | 2 src/mesa/main/version.h | 4 src/mesa/tnl/t_context.c | 3 44 files changed, 634 insertions(+), 188 deletions(-)
New commits: commit a503d12a654f3766fc5c572b0ccf3dc5a05fdc01 Author: Robert Hooker <sarv...@ubuntu.com> Date: Wed Mar 21 15:49:47 2012 -0400 Bump changelog. diff --git a/debian/changelog b/debian/changelog index 75e9e8d..c3cee7b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -mesa (8.0.1-1) UNRELEASED; urgency=low +mesa (8.0.2-1) UNRELEASED; urgency=low [ Timo Aaltonen ] * New upstream bugfix release. (LP: #926379) commit 5f7204c3bbc070fce2f3351419a64362fe15a8c6 Author: Jakob Bornecrantz <ja...@vmware.com> Date: Wed Mar 21 16:51:06 2012 +0000 docs: Add 8.0.2 release notes Signed-off-by: Jakob Bornecrantz <ja...@vmware.com> diff --git a/docs/news.html b/docs/news.html index 346065c..e2fcca1 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,14 @@ <H1>News</H1> +<h2>March 21, 2012</h2> + +<p> +<a href="relnotes-8.0.2.html">Mesa 8.0.2</a> is released. +This is a bug fix release. +</p> + + <h2>February 16, 2012</h2> <p> diff --git a/docs/relnotes-8.0.2.html b/docs/relnotes-8.0.2.html new file mode 100644 index 0000000..ad1818c --- /dev/null +++ b/docs/relnotes-8.0.2.html @@ -0,0 +1,158 @@ +<HTML> + +<head> +<TITLE>Mesa Release Notes</TITLE> +<link rel="stylesheet" type="text/css" href="mesa.css"> +<meta http-equiv="content-type" content="text/html; charset=utf-8" /> +</head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 8.0.2 Release Notes / March 21, 2012</H1> + +<p> +Mesa 8.0.2 is a bug fix release which fixes bugs found since the 8.0.1 release. +</p> +<p> +Mesa 8.0.2 implements the OpenGL 3.0 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 3.0. +</p> +<p> +See the <a href="install.html">Compiling/Installing page</a> for prerequisites +for DRI hardware acceleration. +</p> + + +<h2>MD5 checksums</h2> +<pre> +tdb +</pre> + +<h2>New features</h2> +<p>None.</p> + +<h2>Bug fixes</h2> + +<p>This list is likely incomplete.</p> + +<ul> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=38720">Bug 38720</a> - [SNB] Trine triggers a GPU hang</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=40059">Bug 40059</a> - [SNB] hang in "Amnesia: The Dark Descent" demo</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45216">Bug 45216</a> - [SNB] GPU hang in OilRush</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46631">Bug 46631</a> - It's really hard to hit the fast path for the fallback glReadPixels code</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46679">Bug 46679</a> - glReadPixels on a luminance texture returns the wrong values</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46311">Bug 46311</a> - Missing support of point size in Mesa core</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46665">Bug 46665</a> - [PNV] webgl conformance case max texture fails</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45975">Bug 45975</a> - [Gen4 + ILK] render with pointcoord will fail to render</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=46666">Bug 46666</a> - [PNV] webgl conformance case NPOT case fails with TEXTURE_MIN_FILTER set to LINEAR</li> + +<!-- <li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=">Bug </a> - </li> --> + +</ul> + + +<h2>Changes</h2> +<p>The full set of changes can be viewed by using the following GIT command:</p> + +<pre> + git log mesa-8.0.1..mesa-8.0.2 +</pre> + +<p>Brian Paul (7): +<ul> + <li>svga: add null vs pointer check in update_need_pipeline()</li> + <li>util: add mutex lock in u_debug_memory.c code</li> + <li>mesa: add _mesa_rebase_rgba_float/uint() functions</li> + <li>mesa: use _mesa_rebase_rgba_float/uint() in glReadPixels code</li> + <li>mesa: use _mesa_rebase_rgba_float/uint() in glGetTexImage code</li> + <li>mesa: fix GL_LUMINANCE handling in glGetTexImage</li> + <li>docs: add links to 8.0.1 release notes</li> +</ul></p> + +<p>Daniel Vetter (1): +<ul> + <li>i965: fixup W-tile offset computation to take swizzling into account</li> +<ul></p> + +<p>Dylan Noblesmith (1): +<ul> + <li>mesa: add back glGetnUniform*v() overflow error reporting</li> +</ul></p> + +<p>Ian Romanick (1): +<ul> + <li>docs: Add 8.0.1 release md5sums</li> +</ul></p> + +<p>Jakob Bornecrantz (3): +<ul> + <li>mesa: Include mesa ES mapi generated files</li> + <li>mesa: Bump version number to 8.0.2</li> + <li>docs: Add 8.0.2 release notes</li> +</ul></p> + +<p>Jeremy Huddleston (3): +<ul> + <li>darwin: config file cleanups</li> + <li>darwin: Build create_context.c</li> + <li>darwin: Link against libxcb</li> +</ul></p> + +<p>José Fonseca (1): +<ul> + <li>svga: Clamp advertised PIPE_SHADER_CAP_MAX_TEMPS to SVGA3D_TEMPREG_MAX.</li> +</ul></p> + +<p>Kenneth Graunke (2): +<ul> + <li>i965: Only set Last Render Target Select on the last FB write.</li> + <li>i965: Fix Gen6+ dynamic state upper bound on older kernels.</li> +</ul></p> + +<p>Marek Olšák (1): +<ul> + <li>gallium/rtasm: properly detect SSE and SSE2</li> +</ul></p> + +<p>Neil Roberts (1): +<ul> + <li>mesa: Don't disable fast path for normalized types</li> +</ul></p> + +<p>Tom Stellard (1): +<ul> + <li>r300/compiler: Fix bug when lowering KILP on r300 cards</li> +</ul></p> + +<p>Yuanhan Liu (6): +<ul> + <li>mesa: let GL3 buf obj queries not depend on opengl major version</li> + <li>tnl: let _TNL_ATTRIB_POINTSIZE do not depend on ctx->VertexProgram._Enabled</li> + <li>i915: fix wrong rendering of gl_PointSize on Pineview</li> + <li>i915: move the FALLBACK_DRAW_OFFSET check outside the drawing rect check</li> + <li>i965: handle gl_PointCoord for Gen4 and Gen5 platforms</li> + <li>i915: fallback for NPOT cubemap texture</li> +</ul></p> + +<p>Zack Rusin (3): +<ul> + <li>svga: fix a crash happening before setting fragment shaders.</li> + <li>svga: Fix stencil op mapping</li> + <li>svga: fix the rasterizer state resets</li> +</ul></p> + + +</body> +</html> diff --git a/docs/relnotes.html b/docs/relnotes.html index d5c944a..23337cf 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release. </p> <UL> +<LI><A HREF="relnotes-8.0.2.html">8.0.2 release notes</A> <LI><A HREF="relnotes-8.0.1.html">8.0.1 release notes</A> <LI><A HREF="relnotes-8.0.html">8.0 release notes</A> <LI><A HREF="relnotes-7.11.html">7.11 release notes</A> commit dc20396a1416014c6762a3204bee7cd96cafa6f3 Author: Jakob Bornecrantz <ja...@vmware.com> Date: Tue Mar 20 13:51:39 2012 +0000 mesa: Bump version number to 8.0.2 Signed-off-by: Jakob Bornecrantz <ja...@vmware.com> diff --git a/Makefile b/Makefile index 279dd07..6084e73 100644 --- a/Makefile +++ b/Makefile @@ -184,7 +184,7 @@ ultrix-gcc: # Rules for making release tarballs -PACKAGE_VERSION=8.0.1 +PACKAGE_VERSION=8.0.2 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION) PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION) diff --git a/src/mesa/main/version.h b/src/mesa/main/version.h index 50f6adb..bc0494c 100644 --- a/src/mesa/main/version.h +++ b/src/mesa/main/version.h @@ -34,8 +34,8 @@ struct gl_context; /* Mesa version */ #define MESA_MAJOR 8 #define MESA_MINOR 0 -#define MESA_PATCH 1 -#define MESA_VERSION_STRING "8.0.1" +#define MESA_PATCH 2 +#define MESA_VERSION_STRING "8.0.2" /* To make version comparison easy */ #define MESA_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) commit 770f785a6f30e5295ababe44a8e9449ee0be640a Author: Jakob Bornecrantz <ja...@vmware.com> Date: Tue Mar 20 13:24:50 2012 +0000 mesa: Include mesa ES mapi generated files Signed-off-by: Jakob Bornecrantz <ja...@vmware.com> diff --git a/Makefile b/Makefile index 81ae944..279dd07 100644 --- a/Makefile +++ b/Makefile @@ -199,6 +199,12 @@ EXTRA_FILES = \ src/glsl/glcpp/glcpp-lex.c \ src/glsl/glcpp/glcpp-parse.c \ src/glsl/glcpp/glcpp-parse.h \ + src/mesa/main/api_exec_es1.c \ + src/mesa/main/api_exec_es1_dispatch.h \ + src/mesa/main/api_exec_es1_remap_helper.h \ + src/mesa/main/api_exec_es2.c \ + src/mesa/main/api_exec_es2_dispatch.h \ + src/mesa/main/api_exec_es2_remap_helper.h \ src/mesa/program/lex.yy.c \ src/mesa/program/program_parse.tab.c \ src/mesa/program/program_parse.tab.h commit 4b52be53a42f841c400879df98eb0210508ba573 Author: Brian Paul <bri...@vmware.com> Date: Wed Mar 21 11:42:33 2012 -0600 docs: add links to 8.0.1 release notes diff --git a/docs/news.html b/docs/news.html index 472f98b..346065c 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,14 @@ <H1>News</H1> +<h2>February 16, 2012</h2> + +<p> +<a href="relnotes-8.0.1.html">Mesa 8.0.1</a> is released. +This is a bug fix release. +</p> + + <h2>February 9, 2012</h2> <p> diff --git a/docs/relnotes.html b/docs/relnotes.html index 1dd5442..d5c944a 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release. </p> <UL> +<LI><A HREF="relnotes-8.0.1.html">8.0.1 release notes</A> <LI><A HREF="relnotes-8.0.html">8.0 release notes</A> <LI><A HREF="relnotes-7.11.html">7.11 release notes</A> <LI><A HREF="relnotes-7.10.3.html">7.10.3 release notes</A> commit e26aa8c660a025d448a6d297846940a225ed46ac Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Fri Mar 2 21:38:44 2012 +0100 i965: fixup W-tile offset computation to take swizzling into account There's even a comment in the code containing the right swizzling computations! Previously this has not been noticed because we need to manually enabled swizzling on snb/ivb (kernel 3.4 will do that) and we don't use the separate stencil on ilk (where the bios enables swizzling). This fixes piglit ./bin/fbo-stencil readpixels GL_DEPTH32F_STENCIL8 -auto on recent drm-intel-next kernels. Also remove the comment about ivb, it's stale now. Swizzling detection is done by allocating a temporary x-tiled buffer object. Unfortunately kernels before v3.2 lie on snb/ivb because they claim that swizzling is enable, but it isn't. The kernel commit that fixes this for backport to pre-v3.2 is commit acc83eb5a1e0ae7dbbf89ca2a1a943ade224bb84 Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Mon Sep 12 20:49:16 2011 +0200 drm/i915: fix swizzling on gen6+ But if the kernel doesn't lie, this now works on swizzling and not swizzling machines. NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Eric Anholt <e...@anholt.net> Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> (cherry picked from commit f172eae8b23d0612865895c52af745021ae20a4c) diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index d4bb8c7..d3c0d70 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -629,6 +629,7 @@ intelInitContext(struct intel_context *intel, intel->must_use_separate_stencil = intel->intelScreen->hw_must_use_separate_stencil; intel->has_hiz = intel->intelScreen->hw_has_hiz; intel->has_llc = intel->intelScreen->hw_has_llc; + intel->has_swizzling = intel->intelScreen->hw_has_swizzling; memset(&ctx->TextureFormatSupported, 0, sizeof(ctx->TextureFormatSupported)); diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index 150e55f..ef024b1 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -214,6 +214,7 @@ struct intel_context bool must_use_separate_stencil; bool has_hiz; bool has_llc; + bool has_swizzling; int urb_size; diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index 5290da4..3601f5e 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -830,7 +830,8 @@ intel_miptree_map_s8(struct intel_context *intel, for (uint32_t x = 0; x < map->w; x++) { ptrdiff_t offset = intel_offset_S8(mt->region->pitch, x + image_x + map->x, - y + image_y + map->y); + y + image_y + map->y, + intel->has_swizzling); untiled_s8_map[y * map->w + x] = tiled_s8_map[offset]; } } @@ -865,7 +866,8 @@ intel_miptree_unmap_s8(struct intel_context *intel, for (uint32_t x = 0; x < map->w; x++) { ptrdiff_t offset = intel_offset_S8(mt->region->pitch, x + map->x, - y + map->y); + y + map->y, + intel->has_swizzling); tiled_s8_map[offset] = untiled_s8_map[y * map->w + x]; } } @@ -925,7 +927,8 @@ intel_miptree_map_depthstencil(struct intel_context *intel, int map_x = map->x + x, map_y = map->y + y; ptrdiff_t s_offset = intel_offset_S8(s_mt->region->pitch, map_x + s_image_x, - map_y + s_image_y); + map_y + s_image_y, + intel->has_swizzling); ptrdiff_t z_offset = ((map_y + z_image_y) * z_mt->region->pitch + (map_x + z_image_x)); uint8_t s = s_map[s_offset]; @@ -983,7 +986,8 @@ intel_miptree_unmap_depthstencil(struct intel_context *intel, for (uint32_t x = 0; x < map->w; x++) { ptrdiff_t s_offset = intel_offset_S8(s_mt->region->pitch, x + s_image_x + map->x, - y + s_image_y + map->y); + y + s_image_y + map->y, + intel->has_swizzling); ptrdiff_t z_offset = ((y + z_image_y) * z_mt->region->pitch + (x + z_image_x)); diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index e6b749a..e6e79ef 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -650,6 +650,30 @@ intel_override_separate_stencil(struct intel_screen *screen) } } +static bool +intel_detect_swizzling(struct intel_screen *screen) +{ + drm_intel_bo *buffer; + unsigned long flags = 0; + unsigned long aligned_pitch; + uint32_t tiling = I915_TILING_X; + uint32_t swizzle_mode = 0; + + buffer = drm_intel_bo_alloc_tiled(screen->bufmgr, "swizzle test", + 64, 64, 4, + &tiling, &aligned_pitch, flags); + if (buffer == NULL) + return false; + + drm_intel_bo_get_tiling(buffer, &tiling, &swizzle_mode); + drm_intel_bo_unreference(buffer); + + if (swizzle_mode == I915_BIT_6_SWIZZLE_NONE) + return false; + else + return true; +} + /** * This is the driver specific part of the createNewScreen entry point. * Called when using DRI2. @@ -748,6 +772,8 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp) if (!intel_init_bufmgr(intelScreen)) return false; + intelScreen->hw_has_swizzling = intel_detect_swizzling(intelScreen); + psp->extensions = intelScreenExtensions; msaa_samples_array[0] = 0; diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h index a6baf16..1998f7e 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.h +++ b/src/mesa/drivers/dri/intel/intel_screen.h @@ -117,6 +117,7 @@ struct intel_screen bool kernel_has_gen7_sol_reset; bool hw_has_llc; + bool hw_has_swizzling; bool no_vbo; dri_bufmgr *bufmgr; diff --git a/src/mesa/drivers/dri/intel/intel_span.c b/src/mesa/drivers/dri/intel/intel_span.c index 3645720..b0dc720 100644 --- a/src/mesa/drivers/dri/intel/intel_span.c +++ b/src/mesa/drivers/dri/intel/intel_span.c @@ -65,7 +65,7 @@ * mesa: Fix return type of _mesa_get_format_bytes() (#37351) */ intptr_t -intel_offset_S8(uint32_t stride, uint32_t x, uint32_t y) +intel_offset_S8(uint32_t stride, uint32_t x, uint32_t y, bool swizzled) { uint32_t tile_size = 4096; uint32_t tile_width = 64; @@ -90,22 +90,16 @@ intel_offset_S8(uint32_t stride, uint32_t x, uint32_t y) + 2 * (byte_y % 2) + 1 * (byte_x % 2); - /* - * Errata for Gen5: - * - * An additional offset is needed which is not documented in the PRM. - * - * if ((byte_x / 8) % 2 == 1) { - * if ((byte_y / 8) % 2) == 0) { - * u += 64; - * } else { - * u -= 64; - * } - * } - * - * The offset is expressed more tersely as - * u += ((int) x & 0x8) * (8 - (((int) y & 0x8) << 1)); - */ + if (swizzled) { + /* adjust for bit6 swizzling */ + if (((byte_x / 8) % 2) == 1) { + if (((byte_y / 8) % 2) == 0) { + u += 64; + } else { + u -= 64; + } + } + } return u; } diff --git a/src/mesa/drivers/dri/intel/intel_span.h b/src/mesa/drivers/dri/intel/intel_span.h index b2bd416..e521869 100644 --- a/src/mesa/drivers/dri/intel/intel_span.h +++ b/src/mesa/drivers/dri/intel/intel_span.h @@ -38,6 +38,6 @@ extern void intelSpanRenderStart(struct gl_context * ctx); void intel_map_vertex_shader_textures(struct gl_context *ctx); void intel_unmap_vertex_shader_textures(struct gl_context *ctx); -intptr_t intel_offset_S8(uint32_t stride, uint32_t x, uint32_t y); +intptr_t intel_offset_S8(uint32_t stride, uint32_t x, uint32_t y, bool swizzled); #endif commit 2f5182cfcf2eaf214f2c2a14406d7849668809b8 Author: Eugeni Dodonov <eugeni.dodo...@intel.com> Date: Wed Feb 1 18:24:23 2012 -0200 intel: check for LLC support when reading maps This checks for advertised LLC support by the GPU instead of relying on the GPU generation for detection. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> Signed-off-by: Eugeni Dodonov <eugeni.dodo...@intel.com> (cherry picked from commit 84e5f1c635899c657da58ca51d5e841354e9de9c) diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index eae79c1..5290da4 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -1052,7 +1052,7 @@ intel_miptree_map(struct intel_context *intel, intel_miptree_map_s8(intel, mt, map, level, slice); } else if (mt->stencil_mt) { intel_miptree_map_depthstencil(intel, mt, map, level, slice); - } else if (intel->gen >= 6 && + } else if (intel->has_llc && !(mode & GL_MAP_WRITE_BIT) && !mt->compressed && mt->region->tiling == I915_TILING_X) { commit 7fe667a18dc864f4aa90417f16d791a898937c48 Author: Eugeni Dodonov <eugeni.dodo...@intel.com> Date: Wed Feb 1 18:06:53 2012 -0200 intel: verify if hardware has LLC support Rely on libdrm HAS_LLC parameter to verify if hardware supports it. In case the libdrm version does not supports this check, fallback to older way of detecting it which assumed that GPUs newer than GEN6 have it. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> Signed-off-by: Eugeni Dodonov <eugeni.dodo...@intel.com> (cherry picked from commit 7def293204977c41ea35198af147f743a31b1889) diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index ffd9536..d4bb8c7 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -628,6 +628,7 @@ intelInitContext(struct intel_context *intel, intel->has_separate_stencil = intel->intelScreen->hw_has_separate_stencil; intel->must_use_separate_stencil = intel->intelScreen->hw_must_use_separate_stencil; intel->has_hiz = intel->intelScreen->hw_has_hiz; + intel->has_llc = intel->intelScreen->hw_has_llc; memset(&ctx->TextureFormatSupported, 0, sizeof(ctx->TextureFormatSupported)); diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index 4d4e030..150e55f 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -213,6 +213,7 @@ struct intel_context bool has_separate_stencil; bool must_use_separate_stencil; bool has_hiz; + bool has_llc; int urb_size; diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index 6990265..e6b749a 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -723,6 +723,14 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp) intelScreen->hw_has_hiz = intelScreen->gen >= 6; intelScreen->dri2_has_hiz = INTEL_DRI2_HAS_HIZ_UNKNOWN; +#if defined(I915_PARAM_HAS_LLC) + intelScreen->hw_has_llc = + intel_get_boolean(intelScreen->driScrnPriv, + I915_PARAM_HAS_LLC); +#else + intelScreen->hw_has_llc = intelScreen->gen >= 6; +#endif + intel_override_hiz(intelScreen); intel_override_separate_stencil(intelScreen); diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h index 6c6b516..a6baf16 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.h +++ b/src/mesa/drivers/dri/intel/intel_screen.h @@ -116,6 +116,8 @@ struct intel_screen bool kernel_has_gen7_sol_reset; + bool hw_has_llc; + bool no_vbo; dri_bufmgr *bufmgr; struct _mesa_HashTable *named_regions; commit 3d036f3f0aa7360c58d76b3f5114e1cf8c32260c Author: Kenneth Graunke <kenn...@whitecape.org> Date: Wed Feb 29 12:32:41 2012 -0800 i965: Fix Gen6+ dynamic state upper bound on older kernels. Kernels prior to 271d81b84171d84723357ae6d172ec16b0d8139c (March 2011) don't support relocations outside of the target buffer object. Rather than guarding this with a I915_PARAM_HAS_RELAXED_DELTA check, just smash the bound to 0xfffff001 like we do on Ironlake. This effectively gives us no upper bound check, just like we did prior to commit 271d81b84171d84723357ae6d172ec16b0d8139c. Daniel Vetter would also like to mention that this relies on the guard page at the end of the GTT. Fixes a regression since 271d81b84171d84723357ae6d172ec16b0d8139c. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46766 Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> Reviewed-by: Eric Anholt <e...@anholt.net> Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch> (cherry picked from commit b2ace06cbbbb1021e2d7ace12a985c6406821939) diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c index 0343ae1..07462d3 100644 --- a/src/mesa/drivers/dri/i965/brw_misc_state.c +++ b/src/mesa/drivers/dri/i965/brw_misc_state.c @@ -774,8 +774,7 @@ static void upload_state_base_address( struct brw_context *brw ) * If this isn't programmed to a real bound, the sampler border color * pointer is rejected, causing border color to mysteriously fail. */ - OUT_RELOC(intel->batch.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, - intel->batch.bo->size | 1); + OUT_BATCH(0xfffff001); OUT_BATCH(1); /* Indirect object upper bound */ OUT_BATCH(1); /* Instruction access upper bound */ ADVANCE_BATCH(); commit b056fc0741b6341494ad837affc597d46eea9e9a Author: Dylan Noblesmith <nob...@dreamwidth.org> Date: Thu Dec 22 21:05:38 2011 +0000 mesa: add back glGetnUniform*v() overflow error reporting The error was removed in: commit 719909698c67c287a393d2380278e7b7495ae018 Author: Ian Romanick <ian.d.roman...@intel.com> Date: Tue Oct 18 16:01:49 2011 -0700 mesa: Rewrite the way uniforms are tracked and handled The GL_ARB_robustness spec doesn't say the implementation should truncate the output, so just return after setting the required error like it did before the above commit. Also fixup an old comment and add an assert. NOTE: This is a candidate for the 8.0 branch. (cherry picked from commit b536ac6b2bc54ad9bb6e58fbd307055e419a288f) diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp index 869f7d3..991df78 100644 --- a/src/mesa/main/uniform_query.cpp +++ b/src/mesa/main/uniform_query.cpp @@ -203,10 +203,18 @@ _mesa_get_uniform(struct gl_context *ctx, GLuint program, GLint location, const union gl_constant_value *const src = &uni->storage[offset * elements]; - unsigned bytes = sizeof(uni->storage[0]) * elements; - if (bytes > (unsigned) bufSize) { - elements = bufSize / sizeof(uni->storage[0]); - bytes = bufSize; + assert(returnType == GLSL_TYPE_FLOAT || returnType == GLSL_TYPE_INT || + returnType == GLSL_TYPE_UINT); + /* The three (currently) supported types all have the same size, + * which is of course the same as their union. That'll change + * with glGetUniformdv()... + */ + unsigned bytes = sizeof(src[0]) * elements; + if (bufSize < 0 || bytes > (unsigned) bufSize) { + _mesa_error( ctx, GL_INVALID_OPERATION, + "glGetnUniform*vARB(out of bounds: bufSize is %d," + " but %u bytes are required)", bufSize, bytes ); + return; } /* If the return type and the uniform's native type are "compatible," diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c index e0214a8..be1e172 100644 --- a/src/mesa/main/uniforms.c +++ b/src/mesa/main/uniforms.c @@ -479,7 +479,7 @@ _mesa_GetnUniformdvARB(GLhandleARB program, GLint location, (void) params; /* - _mesa_get_uniform(ctx, program, location, bufSize, GL_DOUBLE, params); + _mesa_get_uniform(ctx, program, location, bufSize, GLSL_TYPE_DOUBLE, params); */ _mesa_error(ctx, GL_INVALID_OPERATION, "glGetUniformdvARB" "(GL_ARB_gpu_shader_fp64 not implemented)"); commit adcb1806717f90f6acff2169a4a434997f433597 Author: Yuanhan Liu <yuanhan....@linux.intel.com> Date: Wed Feb 29 15:04:45 2012 +0800 i915: fallback for NPOT cubemap texture Although some hardware support NPOT cubemap, but it seems we don't know the right layout for NPOT cubemap. Thus seems we need do fallback for other platforms as well. See comments inline the code for more detailed info. v2: give a more detailed info about why we need fallback for other platfroms as well. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46666 NOTE: This is a candidate for stable release branches. Signed-off-by: Yuanhan Liu <yuanhan....@linux.intel.com> (cherry picked from commit 40c995c1fd7865f1b25765aa783fdadbf948b3dd) diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c b/src/mesa/drivers/dri/i915/i915_texstate.c index 9022548..fd63a69 100644 --- a/src/mesa/drivers/dri/i915/i915_texstate.c +++ b/src/mesa/drivers/dri/i915/i915_texstate.c @@ -319,6 +319,28 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3) ((wt != GL_CLAMP) && (wt != GL_CLAMP_TO_EDGE)))) return false; + /* + * According to 3DSTATE_MAP_STATE at page of 104 in Bspec + * Vol3d 3D Instructions: + * [DevGDG and DevAlv]: Must be a power of 2 for cube maps. + * [DevLPT, DevCST and DevBLB]: If not a power of 2, cube maps + * must have all faces enabled. + * + * But, as I tested on pineview(DevBLB derived), the rendering is + * bad(you will find the color isn't samplered right in some + * fragments). After checking, it seems that the texture layout is + * wrong: making the width and height align of 4(although this + * doesn't make much sense) will fix this issue and also broke some + * others. Well, Bspec mentioned nothing about the layout alignment + * and layout for NPOT cube map. I guess the Bspec just assume it's + * a POT cube map. + * + * Thus, I guess we need do this for other platforms as well. + */ + if (tObj->Target == GL_TEXTURE_CUBE_MAP_ARB && + !is_power_of_two(firstImage->Height)) + return false; + state[I915_TEXREG_SS3] = ss3; /* SS3_NORMALIZED_COORDS */ state[I915_TEXREG_SS3] |= commit d982036c3ae1350c60874f5c4ea13c1867ed1c2c Author: Jeremy Huddleston <jerem...@apple.com> Date: Fri Mar 16 17:07:06 2012 -0700 darwin: Link against libxcb Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 90a51753c40465c1253c612e0fef2aef96441668) diff --git a/configs/darwin b/configs/darwin index fe721d7..721fbc7 100644 --- a/configs/darwin +++ b/configs/darwin @@ -47,7 +47,7 @@ GLW_LIB_GLOB = lib$(GLW_LIB).*dylib OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib VG_LIB_GLOB = lib$(VG_LIB).*dylib -GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread $(EXTRA_LDFLAGS) +GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11-xcb -lxcb -lX11 -lXext $(EXTRA_LDFLAGS) OSMESA_LIB_DEPS = $(EXTRA_LDFLAGS) GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LDFLAGS) GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt $(EXTRA_LDFLAGS) commit 63c8f7142c49007e9cb49ffcd73d85f8f4d71497 Author: Jeremy Huddleston <jerem...@apple.com> Date: Fri Mar 16 17:03:54 2012 -0700 darwin: Build create_context.c Fixes a build regression from: 588042a8ec4ea91a952c07a0768516fd590758f4 Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit f9e1295cffc3cf096611e193cca016326715e6ca) diff --git a/src/glx/apple/Makefile b/src/glx/apple/Makefile index 66e6658..dc64295 100644 --- a/src/glx/apple/Makefile +++ b/src/glx/apple/Makefile @@ -35,6 +35,7 @@ SOURCES = \ apple_xgl_api_stereo.c \ apple_xgl_api_viewport.c \ appledri.c \ + ../create_context.c \ ../clientattrib.c \ ../compsize.c \ ../glxconfig.c \ diff --git a/src/glx/create_context.c b/src/glx/create_context.c index 714f0e5..a1a55b3 100644 --- a/src/glx/create_context.c +++ b/src/glx/create_context.c @@ -80,8 +80,13 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, &dummy_err); } - if (gc == NULL) + if (gc == NULL) { +#ifdef GLX_USE_APPLEGL + gc = applegl_create_context(psc, cfg, share, 0); +#else gc = indirect_create_context(psc, cfg, share, 0); +#endif + } gc->xid = xcb_generate_id(c); gc->share_xid = (share != NULL) ? share->xid : 0; commit 485d1c491aabb30f29f52ec72842af2e6a649c6b Author: Jeremy Huddleston <jerem...@apple.com> Date: Fri Mar 16 17:01:01 2012 -0700 darwin: config file cleanups Set our default compiler based on what our installed XCode prefers Signed-off-by: Jeremy Huddleston <jerem...@apple.com> (cherry picked from commit 61f6aff5d9136c91ca4a16de04c7ae673e9433df) diff --git a/configs/darwin b/configs/darwin index e2ca70a..fe721d7 100644 --- a/configs/darwin +++ b/configs/darwin @@ -9,8 +9,8 @@ INSTALL_DIR = /usr/X11 X11_DIR = $(INSTALL_DIR) # Compiler and flags -CC = gcc -CXX = g++ +CC = $(shell xcrun -find cc) +CXX = $(shell xcrun -find c++) PIC_FLAGS = -fPIC DEFINES = -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \ -DGLX_ALIAS_UNSUPPORTED \ @@ -24,11 +24,14 @@ DEFINES = -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE \ # -DIN_DRI_DRIVER ARCH_FLAGS += $(RC_CFLAGS) +INCLUDE_FLAGS = -I$(INSTALL_DIR)/include -I$(X11_DIR)/include +OPT_FLAGS = -g3 -gdwarf-2 -Os -ffast-math -fno-strict-aliasing +WARN_FLAGS = -Wall -Wmissing-prototypes -CFLAGS = -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -fvisibility=hidden \ - -I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) -CXXFLAGS = -ggdb3 -Os -Wall -fno-strict-aliasing -fvisibility=hidden \ - -I$(INSTALL_DIR)/include -I$(X11_DIR)/include $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) +CFLAGS = -std=c99 -fvisibility=hidden \ + $(OPT_FLAGS) $(WARN_FLAGS) $(INCLUDE_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) $(EXTRA_CFLAGS) +CXXFLAGS = -fvisibility=hidden \ + $(OPT_FLAGS) $(WARN_FLAGS) $(INCLUDE_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) $(EXTRA_CFLAGS) # Library names (actual file names) GL_LIB_NAME = lib$(GL_LIB).dylib @@ -44,10 +47,10 @@ GLW_LIB_GLOB = lib$(GLW_LIB).*dylib OSMESA_LIB_GLOB = lib$(OSMESA_LIB).*dylib VG_LIB_GLOB = lib$(VG_LIB).*dylib -GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread -OSMESA_LIB_DEPS = -GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt +GL_LIB_DEPS = -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXext -lm -lpthread $(EXTRA_LDFLAGS) +OSMESA_LIB_DEPS = $(EXTRA_LDFLAGS) +GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(EXTRA_LDFLAGS) +GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXt $(EXTRA_LDFLAGS) SRC_DIRS = glsl mapi/glapi mapi/vgapi glx/apple mesa gallium glu GLU_DIRS = sgi diff --git a/configs/darwin-fat-intel b/configs/darwin-fat-intel new file mode 100644 index 0000000..273ae3d --- /dev/null +++ b/configs/darwin-fat-intel @@ -0,0 +1,7 @@ +# Configuration for Darwin / MacOS X, making 32bit and 64bit fat dynamic libs for intel + +RC_CFLAGS=-arch i386 -arch x86_64 + +include $(TOP)/configs/darwin + +CONFIG_NAME = darwin-fat-intel commit 7b1fbc688999fd568e65211d79d7678562061594 Author: Yuanhan Liu <yuanhan....@linux.intel.com> Date: Mon Feb 27 15:46:32 2012 +0800 i965: handle gl_PointCoord for Gen4 and Gen5 platforms This patch add the support of gl_PointCoord gl builtin variable for platform gen4 and gen5(ILK). Unlike gen6+, we don't have a hardware support of gl_PointCoord, means -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1sarab-000341...@vasks.debian.org