diff options
Diffstat (limited to 'src/mesa/drivers/dri/intel')
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_blit.c | 8 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c | 4 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_mipmap_tree.c | 5 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_tex_image.c | 6 |
5 files changed, 20 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_blit.c b/src/mesa/drivers/dri/intel/intel_blit.c index 0f990c00b4..4890826a19 100644 --- a/src/mesa/drivers/dri/intel/intel_blit.c +++ b/src/mesa/drivers/dri/intel/intel_blit.c @@ -275,8 +275,16 @@ intelEmitCopyBlit(struct intel_context *intel, GLuint CMD, BR13; int dst_y2 = dst_y + h; int dst_x2 = dst_x + w; + int ret; BATCH_LOCALS; + again: + ret = dri_bufmgr_check_aperture_space(dst_buffer); + ret |= dri_bufmgr_check_aperture_space(src_buffer); + if (ret) { + intel_batchbuffer_flush(intel->batch); + goto again; + } DBG("%s src:buf(%p)/%d+%d %d,%d dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n", __FUNCTION__, diff --git a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c index 6828425e77..545913fa31 100644 --- a/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c +++ b/src/mesa/drivers/dri/intel/intel_bufmgr_ttm.c @@ -889,7 +889,7 @@ dri_ttm_bo_process_reloc(dri_bo *bo) struct intel_validate_entry *entry = &bufmgr_ttm->validate_array[target_buf_ttm->validate_index]; - entry->bo_arg.d.req.bo_req.flags &= ~DRM_BO_HINT_PRESUMED_OFFSET; + entry->bo_arg.d.req.bo_req.hint &= ~DRM_BO_HINT_PRESUMED_OFFSET; } } } @@ -993,7 +993,7 @@ dri_ttm_bo_post_submit(dri_bo *bo) /* Continue walking the tree depth-first. */ dri_ttm_bo_post_submit(r->target_buf); - r->last_target_offset = bo->offset; + r->last_target_offset = r->target_buf->offset; } } diff --git a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c index 55503f45ae..9205627813 100644 --- a/src/mesa/drivers/dri/intel/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/intel/intel_mipmap_tree.c @@ -272,6 +272,11 @@ intel_miptree_match_image(struct intel_mipmap_tree *mt, image->IsCompressed != mt->compressed) return GL_FALSE; + if (!image->IsCompressed && + !mt->compressed && + image->TexFormat->TexelBytes != mt->cpp) + return GL_FALSE; + /* Test image dimensions against the base level image adjusted for * minification. This will also catch images not present in the * tree, changed targets, etc. diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c index 5aeb2a18f4..52e062eece 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.c +++ b/src/mesa/drivers/dri/intel/intel_screen.c @@ -68,7 +68,7 @@ PUBLIC const char __driConfigOptions[] = DRI_CONF_SECTION_END DRI_CONF_SECTION_QUALITY DRI_CONF_FORCE_S3TC_ENABLE(false) - DRI_CONF_ALLOW_LARGE_TEXTURES(1) + DRI_CONF_ALLOW_LARGE_TEXTURES(2) DRI_CONF_SECTION_END DRI_CONF_SECTION_DEBUG DRI_CONF_NO_RAST(false) diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index a56a395646..bcb65835c6 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -348,8 +348,10 @@ intelTexImage(GLcontext * ctx, postConvWidth = 32 / texelBytes; texImage->RowStride = postConvWidth; } - - assert(texImage->RowStride == postConvWidth); + + if (!intelImage->mt) { + assert(texImage->RowStride == postConvWidth); + } } /* Release the reference to a potentially orphaned buffer. |
