[Mesa-dev] [PATCH 1/3] st/mesa: improve the format choosing code for DrawPixels

Brian Paul brianp at vmware.com
Fri Feb 1 12:11:35 PST 2013


The code before was getting a pipe format, then calling
st_pipe_format_to_mesa_format() and then converting back again with
st_mesa_format_to_pipe_format().  This removes one conversion step.
---
 src/mesa/state_tracker/st_cb_drawpixels.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
index ec44a43..26d1923 100644
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
@@ -489,12 +489,14 @@ make_texture(struct st_context *st,
    intFormat = internal_format(ctx, format, type);
    baseInternalFormat = _mesa_base_tex_format(ctx, intFormat);
 
-   mformat = st_ChooseTextureFormat_renderable(ctx, intFormat,
-                                               format, type, GL_FALSE);
-   assert(mformat);
-
-   pipeFormat = st_mesa_format_to_pipe_format(mformat);
-   assert(pipeFormat);
+   /* Choose a pixel format for the temp texture which will hold the
+    * image to draw.
+    */
+   pipeFormat = st_choose_format(pipe->screen, intFormat, format, type,
+                                 PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW,
+                                 FALSE);
+   assert(pipeFormat != PIPE_FORMAT_NONE);
+   mformat = st_pipe_format_to_mesa_format(pipeFormat);
 
    pixels = _mesa_map_pbo_source(ctx, unpack, pixels);
    if (!pixels)
-- 
1.7.3.4



More information about the mesa-dev mailing list