mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
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 <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
0510ec67e2
commit
ad542a10c5
1 changed files with 8 additions and 2 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue