[Mesa-dev] [PATCH] st/mesa: check shader image format support before using PBO download
Marek Olšák
maraeo at gmail.com
Mon Jun 6 15:25:20 UTC 2016
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Marek
On Mon, Jun 6, 2016 at 4:29 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> Makes sense.
>
> Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
>
> On 06.06.2016 00:59, Ilia Mirkin wrote:
>>
>> ARB_shader_image_load_store only requires a very fixed list of formats
>> to be supported, while textures may be in all kinds of formats, like
>> BGRA which are presently not supported on at least Kepler.
>>
>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>> ---
>> src/mesa/state_tracker/st_cb_readpixels.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/src/mesa/state_tracker/st_cb_readpixels.c
>> b/src/mesa/state_tracker/st_cb_readpixels.c
>> index 6df3a39..09450c9 100644
>> --- a/src/mesa/state_tracker/st_cb_readpixels.c
>> +++ b/src/mesa/state_tracker/st_cb_readpixels.c
>> @@ -79,6 +79,7 @@ try_pbo_readpixels(struct st_context *st, struct
>> st_renderbuffer *strb,
>> const struct gl_pixelstore_attrib *pack, void
>> *pixels)
>> {
>> struct pipe_context *pipe = st->pipe;
>> + struct pipe_screen *screen = pipe->screen;
>> struct cso_context *cso = st->cso_context;
>> struct pipe_surface *surface = strb->surface;
>> struct pipe_resource *texture = strb->texture;
>> @@ -91,6 +92,11 @@ try_pbo_readpixels(struct st_context *st, struct
>> st_renderbuffer *strb,
>> if (texture->nr_samples > 1)
>> return false;
>>
>> + if (!screen->is_format_supported(screen, dst_format, PIPE_TEXTURE_2D,
>> + texture->nr_samples,
>> + PIPE_BIND_SHADER_IMAGE))
>> + return false;
>> +
>> desc = util_format_description(dst_format);
>>
>> /* Compute PBO addresses */
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list