Module: Mesa Branch: 10.0 Commit: c0c3fa564bec749ef874f1b24523aa85f6cd088e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0c3fa564bec749ef874f1b24523aa85f6cd088e
Author: Kenneth Graunke <[email protected]> Date: Sat Nov 23 13:31:32 2013 -0800 i965: Use __attribute__((flatten)) on fast tiled teximage code. The fast tiled texture upload code does not compile with GCC 4.8's -Og optimization flag. memcpy() has the always_inline attribute set. This poses a problem, since {x,y}tile_copy_faster calls it indirectly via {x,y}tile_copy, and {x,y}tile_copy normally aren't inlined at -Og. Using __attribute__((flatten)) tells GCC to inline every function call inside the function, which I believe was the author's intent. Fix suggested by Alexander Monakov. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Chad Versace <[email protected]> Cc: [email protected] (cherry picked from commit ad542a10c5f2284c05036f1df8ce5b69bea66e50) --- src/mesa/drivers/dri/i965/intel_tex_subimage.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/intel_tex_subimage.c b/src/mesa/drivers/dri/i965/intel_tex_subimage.c index 0384bcc..75aaea3 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_subimage.c +++ b/src/mesa/drivers/dri/i965/intel_tex_subimage.c @@ -331,6 +331,12 @@ ytile_copy( } } +#ifdef __GNUC__ +#define FLATTEN __attribute__((flatten)) +#else +#define FLATTEN +#endif + /** * Copy texture data from linear to X tile layout, faster. * @@ -340,7 +346,7 @@ ytile_copy( * * \copydoc tile_copy_fn */ -static void +static FLATTEN void xtile_copy_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, uint32_t y0, uint32_t y1, char *dst, const char *src, @@ -376,7 +382,7 @@ xtile_copy_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, * * \copydoc tile_copy_fn */ -static void +static FLATTEN void ytile_copy_faster(uint32_t x0, uint32_t x1, uint32_t x2, uint32_t x3, uint32_t y0, uint32_t y1, char *dst, const char *src, _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
