[Mesa-dev] [PATCH 01/11] gallium: Add __DRIimageDriverExtension support to gallium
Axel Davy
axel.davy at ens.fr
Thu Jun 19 04:23:46 PDT 2014
On 19/06/2014 01:20, Ilia Mirkin wrote :
> +static __DRIbuffer *
> +dri2_allocate_buffer(__DRIscreen *sPriv,
> + unsigned attachment, unsigned format,
> + int width, int height)
> +{
> + struct dri_screen *screen = dri_screen(sPriv);
> + struct dri2_buffer *buffer;
> + struct pipe_resource templ;
> + enum pipe_format pf;
> + unsigned bind = 0;
> + struct winsys_handle whandle;
> +
> + switch (attachment) {
> + case __DRI_BUFFER_FRONT_LEFT:
> + case __DRI_BUFFER_FAKE_FRONT_LEFT:
> + bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
> + break;
> + case __DRI_BUFFER_BACK_LEFT:
> + bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
> + break;
> + case __DRI_BUFFER_DEPTH:
> + case __DRI_BUFFER_DEPTH_STENCIL:
> + case __DRI_BUFFER_STENCIL:
> + bind = PIPE_BIND_DEPTH_STENCIL; /* XXX sampler? */
> + break;
> + }
> +
> + /* because we get the handle and stride */
> + bind |= PIPE_BIND_SHARED;
> +
> + switch (format) {
> + case 32:
> + pf = PIPE_FORMAT_B8G8R8A8_UNORM;
> + break;
> + case 24:
> + pf = PIPE_FORMAT_B8G8R8X8_UNORM;
> + break;
> + case 16:
> + pf = PIPE_FORMAT_Z16_UNORM;
> + break;
> + default:
> + return NULL;
> + }
> +
> + buffer = CALLOC_STRUCT(dri2_buffer);
> + if (!buffer)
> + return NULL;
> +
> + memset(&templ, 0, sizeof(templ));
> + templ.bind = bind;
> + templ.format = pf;
> + templ.target = PIPE_TEXTURE_2D;
> + templ.last_level = 0;
> + templ.width0 = width;
> + templ.height0 = height;
> + templ.depth0 = 1;
> + templ.array_size = 1;
> +
> + buffer->resource =
> + screen->base.screen->resource_create(screen->base.screen, &templ);
> I believe the expectation is that before you create resources with a
> certain format/bind combo, you need to check first with
> ->is_format_supported. For example pre-NVA0 nv50 cards don't support
> Z16.
>
>
This is git format-patch noise.
I don't change anything to dri2_allocate_buffer, if you see what is
added here is removed later.
Axel Davy
More information about the mesa-dev
mailing list