[Mesa-dev] [PATCH 2/2] st/mesa: try PIPE_BIND_RENDER_TARGET when choosing float texture formats

Roland Scheidegger sroland at vmware.com
Tue Sep 29 10:46:34 PDT 2015


If that was due to some rgb vs. rgbx thing (that is, could texture from
rgb but only render to rgbx) I wonder if the same logic shouldn't also
apply to the integer formats.
But either way (I guess the app should check fbo completeness in any
case so strictly speaking for correctness this isn't really required)

Reviewed-by: Roland Scheidegger <sroland at vmware.com>

Am 29.09.2015 um 17:39 schrieb Brian Paul:
> For 8-bit RGB(A) texture formats we set the PIPE_BIND_RENDER_TARGET flag
> to try to get a hardware format which also supports rendering (for FBO
> textures).  Do the same thing for floating point formats.
> 
> This allows the Redway Flat demo to run.
> ---
>  src/mesa/state_tracker/st_format.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
> index 0c94428..144b7d6 100644
> --- a/src/mesa/state_tracker/st_format.c
> +++ b/src/mesa/state_tracker/st_format.c
> @@ -1963,7 +1963,11 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
>     else if (internalFormat == 3 || internalFormat == 4 ||
>              internalFormat == GL_RGB || internalFormat == GL_RGBA ||
>              internalFormat == GL_RGB8 || internalFormat == GL_RGBA8 ||
> -            internalFormat == GL_BGRA)
> +            internalFormat == GL_BGRA ||
> +            internalFormat == GL_RGB16F ||
> +            internalFormat == GL_RGBA16F ||
> +            internalFormat == GL_RGB32F ||
> +            internalFormat == GL_RGBA32F)
>  	 bindings |= PIPE_BIND_RENDER_TARGET;
>  
>     /* GLES allows the driver to choose any format which matches
> 



More information about the mesa-dev mailing list