diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_context.c | 14 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_fbo.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 25 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_mipmap_tree.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_tex_image.c | 4 |
5 files changed, 7 insertions, 40 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index 1fd967e4245..751b0264395 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -1596,21 +1596,9 @@ intel_update_image_buffer(struct brw_context *intel, if (last_mt && last_mt->bo == buffer->bo) return; - enum isl_colorspace colorspace; - switch (_mesa_get_format_color_encoding(intel_rb_format(rb))) { - case GL_SRGB: - colorspace = ISL_COLORSPACE_SRGB; - break; - case GL_LINEAR: - colorspace = ISL_COLORSPACE_LINEAR; - break; - default: - unreachable("Invalid color encoding"); - } - struct intel_mipmap_tree *mt = intel_miptree_create_for_dri_image(intel, buffer, GL_TEXTURE_2D, - colorspace, true); + intel_rb_format(rb), true); if (!mt) return; diff --git a/src/mesa/drivers/dri/i965/intel_fbo.c b/src/mesa/drivers/dri/i965/intel_fbo.c index 46f140c0280..4a592f37ef3 100644 --- a/src/mesa/drivers/dri/i965/intel_fbo.c +++ b/src/mesa/drivers/dri/i965/intel_fbo.c @@ -364,7 +364,7 @@ intel_image_target_renderbuffer_storage(struct gl_context *ctx, * content. */ irb->mt = intel_miptree_create_for_dri_image(brw, image, GL_TEXTURE_2D, - ISL_COLORSPACE_NONE, false); + image->format, false); if (!irb->mt) return; diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c index 5b7cde82f65..670a92c1168 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -959,36 +959,15 @@ create_ccs_buf_for_image(struct brw_context *brw, struct intel_mipmap_tree * intel_miptree_create_for_dri_image(struct brw_context *brw, __DRIimage *image, GLenum target, - enum isl_colorspace colorspace, + mesa_format format, bool is_winsys_image) { - if (image->planar_format && image->planar_format->nplanes > 1) { - assert(colorspace == ISL_COLORSPACE_NONE || - colorspace == ISL_COLORSPACE_YUV); + if (image->planar_format && image->planar_format->nplanes > 1) return miptree_create_for_planar_image(brw, image, target); - } if (image->planar_format) assert(image->planar_format->planes[0].dri_format == image->dri_format); - mesa_format format = image->format; - switch (colorspace) { - case ISL_COLORSPACE_NONE: - /* Keep the image format unmodified */ - break; - - case ISL_COLORSPACE_LINEAR: - format =_mesa_get_srgb_format_linear(format); - break; - - case ISL_COLORSPACE_SRGB: - format =_mesa_get_linear_format_srgb(format); - break; - - default: - unreachable("Inalid colorspace for non-planar image"); - } - if (!brw->ctx.TextureFormatSupported[format]) { /* The texture storage paths in core Mesa detect if the driver does not * support the user-requested format, and then searches for a diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h index 2fce28c524b..439b0f66aeb 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.h +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.h @@ -407,7 +407,7 @@ struct intel_mipmap_tree * intel_miptree_create_for_dri_image(struct brw_context *brw, __DRIimage *image, GLenum target, - enum isl_colorspace colorspace, + mesa_format format, bool is_winsys_image); bool diff --git a/src/mesa/drivers/dri/i965/intel_tex_image.c b/src/mesa/drivers/dri/i965/intel_tex_image.c index 7712f7085f4..7396597d9f9 100644 --- a/src/mesa/drivers/dri/i965/intel_tex_image.c +++ b/src/mesa/drivers/dri/i965/intel_tex_image.c @@ -524,8 +524,8 @@ intel_image_target_texture_2d(struct gl_context *ctx, GLenum target, return; } - mt = intel_miptree_create_for_dri_image(brw, image, target, - ISL_COLORSPACE_NONE, false); + mt = intel_miptree_create_for_dri_image(brw, image, target, image->format, + false); if (mt == NULL) return; |