i965: Fix depth-texture Y-tiling detection for sized internal formats.
Fixes assertion failure on norsetto shadow mapping demo.
This commit is contained in:
@@ -101,6 +101,7 @@ intel_miptree_create_internal(struct intel_context *intel,
|
||||
struct intel_mipmap_tree *
|
||||
intel_miptree_create(struct intel_context *intel,
|
||||
GLenum target,
|
||||
GLenum base_format,
|
||||
GLenum internal_format,
|
||||
GLuint first_level,
|
||||
GLuint last_level,
|
||||
@@ -115,8 +116,8 @@ intel_miptree_create(struct intel_context *intel,
|
||||
if (intel->use_texture_tiling && compress_byte == 0 &&
|
||||
intel->intelScreen->kernel_exec_fencing) {
|
||||
if (IS_965(intel->intelScreen->deviceID) &&
|
||||
(internal_format == GL_DEPTH_COMPONENT ||
|
||||
internal_format == GL_DEPTH_STENCIL_EXT))
|
||||
(base_format == GL_DEPTH_COMPONENT ||
|
||||
base_format == GL_DEPTH_STENCIL_EXT))
|
||||
tiling = I915_TILING_Y;
|
||||
else
|
||||
tiling = I915_TILING_X;
|
||||
|
||||
@@ -126,6 +126,7 @@ struct intel_mipmap_tree
|
||||
|
||||
struct intel_mipmap_tree *intel_miptree_create(struct intel_context *intel,
|
||||
GLenum target,
|
||||
GLenum base_format,
|
||||
GLenum internal_format,
|
||||
GLuint first_level,
|
||||
GLuint last_level,
|
||||
|
||||
@@ -131,6 +131,7 @@ guess_and_alloc_mipmap_tree(struct intel_context *intel,
|
||||
comp_byte = intel_compressed_num_bytes(intelImage->base.TexFormat->MesaFormat);
|
||||
intelObj->mt = intel_miptree_create(intel,
|
||||
intelObj->base.Target,
|
||||
intelImage->base._BaseFormat,
|
||||
intelImage->base.InternalFormat,
|
||||
firstLevel,
|
||||
lastLevel,
|
||||
@@ -412,7 +413,9 @@ intelTexImage(GLcontext * ctx,
|
||||
* a miptree, so create one just for our level and store it in the image.
|
||||
* It'll get moved into the object miptree at validate time.
|
||||
*/
|
||||
intelImage->mt = intel_miptree_create(intel, target, internalFormat,
|
||||
intelImage->mt = intel_miptree_create(intel, target,
|
||||
intelImage->base.TexFormat->BaseFormat,
|
||||
internalFormat,
|
||||
level, level,
|
||||
width, height, depth,
|
||||
intelImage->base.TexFormat->TexelBytes,
|
||||
|
||||
@@ -199,6 +199,7 @@ intel_finalize_mipmap_tree(struct intel_context *intel, GLuint unit)
|
||||
if (!intelObj->mt) {
|
||||
intelObj->mt = intel_miptree_create(intel,
|
||||
intelObj->base.Target,
|
||||
firstImage->base._BaseFormat,
|
||||
firstImage->base.InternalFormat,
|
||||
intelObj->firstLevel,
|
||||
intelObj->lastLevel,
|
||||
|
||||
Reference in New Issue
Block a user