vc4: Add debugging on texture relocation validation failures.
This commit is contained in:
@@ -619,11 +619,11 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
uint32_t remaining_size = tex->base.size - p0;
|
||||
if (p0 > tex->base.size - 4) {
|
||||
DRM_ERROR("UBO offset greater than UBO size\n");
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
if (p1 > remaining_size - 4) {
|
||||
DRM_ERROR("UBO clamp would allow reads outside of UBO\n");
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
*validated_p0 = tex->paddr + p0;
|
||||
return true;
|
||||
@@ -642,14 +642,14 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
VC4_TEX_P2_PTYPE_CUBE_MAP_STRIDE) {
|
||||
if (cube_map_stride) {
|
||||
DRM_ERROR("Cube map stride set twice\n");
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
cube_map_stride = p3 & VC4_TEX_P2_CMST_MASK;
|
||||
}
|
||||
if (!cube_map_stride) {
|
||||
DRM_ERROR("Cube map stride not set\n");
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -683,7 +683,7 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
case VC4_TEXTURE_TYPE_YUV422R:
|
||||
default:
|
||||
DRM_ERROR("Texture format %d unsupported\n", type);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
utile_w = utile_width(cpp);
|
||||
utile_h = utile_height(cpp);
|
||||
@@ -699,7 +699,7 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
|
||||
if (!vc4_check_tex_size(exec, tex, offset + cube_map_stride * 5,
|
||||
tiling_format, width, height, cpp)) {
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/* The mipmap levels are stored before the base of the texture. Make
|
||||
@@ -740,7 +740,7 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
i, level_width, level_height,
|
||||
aligned_width, aligned_height,
|
||||
level_size, offset);
|
||||
return false;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
offset -= level_size;
|
||||
@@ -749,6 +749,12 @@ reloc_tex(struct vc4_exec_info *exec,
|
||||
*validated_p0 = tex->paddr + p0;
|
||||
|
||||
return true;
|
||||
fail:
|
||||
DRM_INFO("Texture p0 at %d: 0x%08x\n", sample->p_offset[0], p0);
|
||||
DRM_INFO("Texture p1 at %d: 0x%08x\n", sample->p_offset[1], p1);
|
||||
DRM_INFO("Texture p2 at %d: 0x%08x\n", sample->p_offset[2], p2);
|
||||
DRM_INFO("Texture p3 at %d: 0x%08x\n", sample->p_offset[3], p3);
|
||||
return false;
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
Reference in New Issue
Block a user