glamor_largepixmap: Walkaround for large texture's upload.
I met a problem with large texture (larger than 7000x7000)'s uploading on SNB platform. The map_gtt get back a mapped VA without error, but write to that virtual address triggers BUS error. This work around is to avoid that direct uploading. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
This commit is contained in:
parent
37d4022f01
commit
682f5d2989
|
@ -497,7 +497,11 @@ ready_to_upload:
|
||||||
if (no_alpha == 0
|
if (no_alpha == 0
|
||||||
&& revert == REVERT_NONE
|
&& revert == REVERT_NONE
|
||||||
&& swap_rb == SWAP_NONE_UPLOADING
|
&& swap_rb == SWAP_NONE_UPLOADING
|
||||||
&& !need_flip) {
|
&& !need_flip
|
||||||
|
#ifdef WALKAROUND_LARGE_TEXTURE_MAP
|
||||||
|
&& pixmap_priv->type != GLAMOR_TEXTURE_LARGE
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
int fbo_x_off, fbo_y_off;
|
int fbo_x_off, fbo_y_off;
|
||||||
assert(pixmap_priv->base.fbo->tex);
|
assert(pixmap_priv->base.fbo->tex);
|
||||||
pixmap_priv_get_fbo_off(pixmap_priv, &fbo_x_off, &fbo_y_off);
|
pixmap_priv_get_fbo_off(pixmap_priv, &fbo_x_off, &fbo_y_off);
|
||||||
|
|
|
@ -1001,6 +1001,7 @@ glamor_poly_line(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
|
||||||
//#define GLAMOR_TRAPEZOID_SHADER
|
//#define GLAMOR_TRAPEZOID_SHADER
|
||||||
#endif
|
#endif
|
||||||
#define GLAMOR_TEXTURED_LARGE_PIXMAP 1
|
#define GLAMOR_TEXTURED_LARGE_PIXMAP 1
|
||||||
|
#define WALKAROUND_LARGE_TEXTURE_MAP
|
||||||
#if 0
|
#if 0
|
||||||
#define MAX_FBO_SIZE 32 /* For test purpose only. */
|
#define MAX_FBO_SIZE 32 /* For test purpose only. */
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user