mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 09:40:08 +01:00
mesa/st: wire up DiscardFramebuffer
Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
0c42b5f3cb
commit
786f9639d6
1 changed files with 25 additions and 0 deletions
|
|
@ -762,6 +762,30 @@ st_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called by ctx->Driver.DiscardFramebuffer
|
||||
*/
|
||||
static void
|
||||
st_discard_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb,
|
||||
struct gl_renderbuffer_attachment *att)
|
||||
{
|
||||
struct st_context *st = st_context(ctx);
|
||||
struct pipe_resource *prsc;
|
||||
|
||||
if (!att->Renderbuffer)
|
||||
return;
|
||||
|
||||
prsc = st_renderbuffer(att->Renderbuffer)->surface->texture;
|
||||
|
||||
/* using invalidate_resource will only work for simple 2D resources */
|
||||
if (prsc->depth0 != 1 || prsc->array_size != 1 || prsc->last_level != 0)
|
||||
return;
|
||||
|
||||
if (st->pipe->invalidate_resource)
|
||||
st->pipe->invalidate_resource(st->pipe, prsc);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called via glDrawBuffer. We only provide this driver function so that we
|
||||
* can check if we need to allocate a new renderbuffer. Specifically, we
|
||||
|
|
@ -939,6 +963,7 @@ st_init_fbo_functions(struct dd_function_table *functions)
|
|||
functions->RenderTexture = st_render_texture;
|
||||
functions->FinishRenderTexture = st_finish_render_texture;
|
||||
functions->ValidateFramebuffer = st_validate_framebuffer;
|
||||
functions->DiscardFramebuffer = st_discard_framebuffer;
|
||||
|
||||
functions->DrawBufferAllocate = st_DrawBufferAllocate;
|
||||
functions->ReadBuffer = st_ReadBuffer;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue