mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 09:18:04 +02:00
i965: Create mock implementation of GL_OES_EGL_image_external
In Android IceCreamSandwich, SurfaceFlinger requires GL_OES_image_external for basic compositing tasks. Without the extension, SurfaceFlinger fails to start. Despite the incompleteness of the extension's implementation introduced by this patch, it is good enough to enable SurfaceFlinger and to unblock the people who need to begin testing Mesa on IceCreamSandwich. To enable the extension, set the environment variable MESA_EXTENSION_OVERRIDE="+GL_OES_EGL_image_external". Ideally, Android should set this in init.rc. WARNING: This implementation of GL_OES_EGL_image_external is not complete. Some of it is even incorrect. When we begin to really implement GL_OES_EGL_image_external, much of the patch will need reverting. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
parent
7e5ffd9be2
commit
7420c9dab4
4 changed files with 6 additions and 0 deletions
|
|
@ -1078,6 +1078,7 @@ void emit_tex(struct brw_wm_compile *c,
|
|||
case TEXTURE_2D_INDEX:
|
||||
case TEXTURE_1D_ARRAY_INDEX:
|
||||
case TEXTURE_RECT_INDEX:
|
||||
case TEXTURE_EXTERNAL_INDEX:
|
||||
emit = WRITEMASK_XY;
|
||||
nr_texcoords = 2;
|
||||
break;
|
||||
|
|
@ -1212,6 +1213,7 @@ void emit_txb(struct brw_wm_compile *c,
|
|||
break;
|
||||
case TEXTURE_2D_INDEX:
|
||||
case TEXTURE_RECT_INDEX:
|
||||
case TEXTURE_EXTERNAL_INDEX:
|
||||
brw_MOV(p, brw_message_reg(2 + 0 * mrf_per_channel), arg[0]);
|
||||
brw_MOV(p, brw_message_reg(2 + 1 * mrf_per_channel), arg[1]);
|
||||
brw_MOV(p, brw_message_reg(2 + 2 * mrf_per_channel), brw_imm_f(0));
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ static GLuint get_texcoord_mask( GLuint tex_idx )
|
|||
return WRITEMASK_X;
|
||||
case TEXTURE_2D_INDEX:
|
||||
case TEXTURE_1D_ARRAY_INDEX:
|
||||
case TEXTURE_EXTERNAL_INDEX:
|
||||
return WRITEMASK_XY;
|
||||
case TEXTURE_3D_INDEX:
|
||||
case TEXTURE_2D_ARRAY_INDEX:
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ translate_tex_target(GLenum target)
|
|||
|
||||
case GL_TEXTURE_2D:
|
||||
case GL_TEXTURE_2D_ARRAY_EXT:
|
||||
case GL_TEXTURE_EXTERNAL_OES:
|
||||
return BRW_SURFACE_2D;
|
||||
|
||||
case GL_TEXTURE_3D:
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ intel_miptree_create_for_teximage(struct intel_context *intel,
|
|||
intelImage->base.Base.Level == firstLevel &&
|
||||
(intel->gen < 4 || firstLevel == 0)) {
|
||||
lastLevel = firstLevel;
|
||||
} else if (intelObj->base.Target == GL_TEXTURE_EXTERNAL_OES) {
|
||||
lastLevel = firstLevel;
|
||||
} else {
|
||||
lastLevel = firstLevel + _mesa_logbase2(MAX2(MAX2(width, height), depth));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue