xref: /aosp_15_r20/external/mesa3d/src/gallium/drivers/r300/r300_resource.c (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2010 Red Hat Inc.
3  * Authors: Dave Airlie
4  * SPDX-License-Identifier: MIT
5  */
6 
7 #include "r300_context.h"
8 #include "r300_texture.h"
9 #include "r300_transfer.h"
10 #include "r300_screen_buffer.h"
11 
12 static struct pipe_resource *
r300_resource_create(struct pipe_screen * screen,const struct pipe_resource * templ)13 r300_resource_create(struct pipe_screen *screen,
14                     const struct pipe_resource *templ)
15 {
16    if (templ->target == PIPE_BUFFER)
17       return r300_buffer_create(screen, templ);
18    else
19       return r300_texture_create(screen, templ);
20 
21 }
22 
r300_init_resource_functions(struct r300_context * r300)23 void r300_init_resource_functions(struct r300_context *r300)
24 {
25    r300->context.buffer_map = r300_buffer_transfer_map;
26    r300->context.texture_map = r300_texture_transfer_map;
27    r300->context.transfer_flush_region = u_default_transfer_flush_region;
28    r300->context.buffer_unmap = r300_buffer_transfer_unmap;
29    r300->context.texture_unmap = r300_texture_transfer_unmap;
30    r300->context.buffer_subdata = u_default_buffer_subdata;
31    r300->context.texture_subdata = u_default_texture_subdata;
32    r300->context.create_surface = r300_create_surface;
33    r300->context.surface_destroy = r300_surface_destroy;
34 }
35 
r300_init_screen_resource_functions(struct r300_screen * r300screen)36 void r300_init_screen_resource_functions(struct r300_screen *r300screen)
37 {
38    r300screen->screen.resource_create = r300_resource_create;
39    r300screen->screen.resource_from_handle = r300_texture_from_handle;
40    r300screen->screen.resource_get_handle = r300_resource_get_handle;
41    r300screen->screen.resource_destroy = r300_resource_destroy;
42 }
43