mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
i915g: enable X-tiling for textures
Tiling is rather fragile in general and results in pure blackness when unlucky. Hence add a new option to disable tiling. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
This commit is contained in:
parent
32345610cc
commit
9493fe85d1
3 changed files with 27 additions and 0 deletions
|
|
@ -46,10 +46,12 @@ static const struct debug_named_value debug_options[] = {
|
|||
};
|
||||
|
||||
unsigned i915_debug = 0;
|
||||
boolean i915_tiling = TRUE;
|
||||
|
||||
void i915_debug_init(struct i915_screen *screen)
|
||||
{
|
||||
i915_debug = debug_get_flags_option("I915_DEBUG", debug_options, 0);
|
||||
i915_tiling = !debug_get_bool_option("I915_NO_TILING", FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ struct i915_winsys_batchbuffer;
|
|||
#define DBG_CONSTANTS 0x20
|
||||
|
||||
extern unsigned i915_debug;
|
||||
extern boolean i915_tiling;
|
||||
|
||||
#ifdef DEBUG
|
||||
static INLINE boolean
|
||||
|
|
|
|||
|
|
@ -154,6 +154,26 @@ i915_texture_set_image_offset(struct i915_texture *tex,
|
|||
#endif
|
||||
}
|
||||
|
||||
static enum i915_winsys_buffer_tile
|
||||
i915_texture_tiling(struct pipe_resource *pt)
|
||||
{
|
||||
if (!i915_tiling)
|
||||
return I915_TILE_NONE;
|
||||
|
||||
if (pt->target == PIPE_TEXTURE_1D)
|
||||
return I915_TILE_NONE;
|
||||
|
||||
if (util_format_is_s3tc(pt->format))
|
||||
/* XXX X-tiling might make sense */
|
||||
return I915_TILE_NONE;
|
||||
|
||||
if ((pt->bind & PIPE_BIND_RENDER_TARGET))
|
||||
/* XXX We can't render properly into mipmap'ed textures */
|
||||
return I915_TILE_NONE;
|
||||
|
||||
return I915_TILE_X;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Shared layout functions
|
||||
|
|
@ -370,6 +390,8 @@ i915_texture_layout(struct i915_texture * tex)
|
|||
{
|
||||
struct pipe_resource *pt = &tex->b.b;
|
||||
|
||||
tex->tiling = i915_texture_tiling(pt);
|
||||
|
||||
switch (pt->target) {
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
|
|
@ -616,6 +638,8 @@ i945_texture_layout(struct i915_texture * tex)
|
|||
{
|
||||
struct pipe_resource *pt = &tex->b.b;
|
||||
|
||||
tex->tiling = i915_texture_tiling(pt);
|
||||
|
||||
switch (pt->target) {
|
||||
case PIPE_TEXTURE_1D:
|
||||
case PIPE_TEXTURE_2D:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue