summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/vega/vg_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/vega/vg_manager.c')
-rw-r--r--src/gallium/state_trackers/vega/vg_manager.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/vega/vg_manager.c b/src/gallium/state_trackers/vega/vg_manager.c
index 7bc0006769..256c23775e 100644
--- a/src/gallium/state_trackers/vega/vg_manager.c
+++ b/src/gallium/state_trackers/vega/vg_manager.c
@@ -78,7 +78,7 @@ vg_manager_validate_framebuffer(struct vg_context *ctx)
struct pipe_screen *screen = ctx->pipe->screen;
struct st_framebuffer *stfb = ctx->draw_buffer;
struct st_renderbuffer *rb;
- struct pipe_texture *pt;
+ struct pipe_resource *pt;
/* no binding surface */
if (!stfb)
@@ -101,17 +101,19 @@ vg_manager_validate_framebuffer(struct vg_context *ctx)
rb = stfb->strb;
if (rb->texture == pt) {
- pipe_texture_reference(&pt, NULL);
+ pipe_resource_reference(&pt, NULL);
return;
}
/* unreference existing ones */
pipe_surface_reference(&rb->surface, NULL);
- pipe_texture_reference(&rb->texture, NULL);
+ pipe_resource_reference(&rb->texture, NULL);
rb->texture = pt;
rb->surface = screen->get_tex_surface(screen, rb->texture, 0, 0, 0,
- PIPE_BUFFER_USAGE_GPU_READ | PIPE_BUFFER_USAGE_GPU_WRITE);
+ PIPE_BIND_RENDER_TARGET |
+ PIPE_BIND_BLIT_SOURCE |
+ PIPE_BIND_BLIT_DESTINATION);
rb->width = rb->surface->width;
rb->height = rb->surface->height;
@@ -195,7 +197,7 @@ static void
destroy_renderbuffer(struct st_renderbuffer *strb)
{
pipe_surface_reference(&strb->surface, NULL);
- pipe_texture_reference(&strb->texture, NULL);
+ pipe_resource_reference(&strb->texture, NULL);
free(strb);
}