[Mesa-dev] [PATCH 1/3] vl/dri3: handle the case of different GPU(v4)
Michel Dänzer
michel at daenzer.net
Fri Sep 16 08:07:24 UTC 2016
On 14/09/16 02:34 PM, Nayan Deshmukh wrote:
> In case of prime when rendering is done on GPU other then the
> server GPU, use a seprate linear buffer for each back buffer
> which will be displayed using present extension.
>
> v2: Use a seprate linear buffer for each back buffer (Michel)
> v3: Change variable names and fix coding style (Leo and Emil)
> v4: Use PIPE_BIND_SAMPLER_VIEW for back buffer in case when
> a seprate linear buffer is used (Michel)
>
> Signed-off-by: Nayan Deshmukh <nayan26deshmukh at gmail.com>
Looks mostly good to me, but Leo should probably also take a look.
Acked-by: Michel Dänzer <michel.daenzer at amd.com>
> @@ -235,16 +240,35 @@ dri3_alloc_back_buffer(struct vl_dri3_screen *scrn)
> templ.height0 = scrn->height;
> templ.depth0 = 1;
> templ.array_size = 1;
> - buffer->texture = scrn->base.pscreen->resource_create(scrn->base.pscreen,
> - &templ);
> - if (!buffer->texture)
> - goto unmap_shm;
>
> + if (scrn->is_different_gpu) {
> + buffer->texture = scrn->base.pscreen->resource_create(scrn->base.pscreen,
> + &templ);
> + if (!buffer->texture)
> + goto unmap_shm;
> +
> + templ.bind |= PIPE_BIND_SCANOUT | PIPE_BIND_SHARED |
> + PIPE_BIND_LINEAR;
> + buffer->linear_texture = scrn->base.pscreen->resource_create(scrn->base.pscreen,
> + &templ);
> + pixmap_buffer_texture = buffer->linear_texture;
> +
> + if (!buffer->linear_texture)
> + goto no_linear_texture;
> +
> + } else {
Bonus points for not adding the empty line at the end of the block here. :)
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the mesa-dev
mailing list