summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/i965/brw_context.c14
-rw-r--r--src/mesa/drivers/dri/i965/intel_fbo.c2
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.c25
-rw-r--r--src/mesa/drivers/dri/i965/intel_mipmap_tree.h2
-rw-r--r--src/mesa/drivers/dri/i965/intel_tex_image.c4
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;