mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
st/dri: refactor dri_msaa_resolve
The generic blit will be used by the following commit. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
6c6cfc02c9
commit
fdf9d234e2
3 changed files with 15 additions and 12 deletions
|
|
@ -359,13 +359,10 @@ swap_fences_unref(struct dri_drawable *draw)
|
|||
}
|
||||
|
||||
void
|
||||
dri_msaa_resolve(struct dri_context *ctx,
|
||||
struct dri_drawable *drawable,
|
||||
enum st_attachment_type att)
|
||||
dri_pipe_blit(struct pipe_context *pipe,
|
||||
struct pipe_resource *dst,
|
||||
struct pipe_resource *src)
|
||||
{
|
||||
struct pipe_context *pipe = ctx->st->pipe;
|
||||
struct pipe_resource *dst = drawable->textures[att];
|
||||
struct pipe_resource *src = drawable->msaa_textures[att];
|
||||
struct pipe_blit_info blit;
|
||||
|
||||
if (!dst || !src)
|
||||
|
|
@ -437,9 +434,12 @@ dri_flush(__DRIcontext *cPriv,
|
|||
/* Flush the drawable. */
|
||||
if ((flags & __DRI2_FLUSH_DRAWABLE) &&
|
||||
drawable->textures[ST_ATTACHMENT_BACK_LEFT]) {
|
||||
/* Resolve MSAA buffers. */
|
||||
if (drawable->stvis.samples > 1) {
|
||||
dri_msaa_resolve(ctx, drawable, ST_ATTACHMENT_BACK_LEFT);
|
||||
/* Resolve the MSAA back buffer. */
|
||||
dri_pipe_blit(ctx->st->pipe,
|
||||
drawable->textures[ST_ATTACHMENT_BACK_LEFT],
|
||||
drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]);
|
||||
|
||||
/* FRONT_LEFT is resolved in drawable->flush_frontbuffer. */
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,9 +110,9 @@ dri_drawable_get_format(struct dri_drawable *drawable,
|
|||
unsigned *bind);
|
||||
|
||||
void
|
||||
dri_msaa_resolve(struct dri_context *ctx,
|
||||
struct dri_drawable *drawable,
|
||||
enum st_attachment_type att);
|
||||
dri_pipe_blit(struct pipe_context *pipe,
|
||||
struct pipe_resource *dst,
|
||||
struct pipe_resource *src);
|
||||
|
||||
void
|
||||
dri_flush(__DRIcontext *cPriv,
|
||||
|
|
|
|||
|
|
@ -470,7 +470,10 @@ dri2_flush_frontbuffer(struct dri_context *ctx,
|
|||
if (drawable->stvis.samples > 1) {
|
||||
struct pipe_context *pipe = ctx->st->pipe;
|
||||
|
||||
dri_msaa_resolve(ctx, drawable, ST_ATTACHMENT_FRONT_LEFT);
|
||||
/* Resolve the front buffer. */
|
||||
dri_pipe_blit(ctx->st->pipe,
|
||||
drawable->textures[ST_ATTACHMENT_FRONT_LEFT],
|
||||
drawable->msaa_textures[ST_ATTACHMENT_FRONT_LEFT]);
|
||||
pipe->flush(pipe, NULL, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue