2 * Copyright (c) 2017-2019 Lima Project
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sub license,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the
12 * next paragraph) shall be included in all copies or substantial portions
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
25 #ifndef H_LIMA_RESOURCE
26 #define H_LIMA_RESOURCE
28 #include "pipe/p_state.h"
30 /* max texture size is 4096x4096 */
31 #define LIMA_MAX_MIP_LEVELS 13
35 struct lima_resource_level
{
41 struct lima_resource
{
42 struct pipe_resource base
;
44 struct renderonly_scanout
*scanout
;
48 struct lima_resource_level levels
[LIMA_MAX_MIP_LEVELS
];
52 struct pipe_surface base
;
57 struct lima_transfer
{
58 struct pipe_transfer base
;
62 static inline struct lima_resource
*
63 lima_resource(struct pipe_resource
*res
)
65 return (struct lima_resource
*)res
;
68 static inline struct lima_surface
*
69 lima_surface(struct pipe_surface
*surf
)
71 return (struct lima_surface
*)surf
;
74 static inline struct lima_transfer
*
75 lima_transfer(struct pipe_transfer
*trans
)
77 return (struct lima_transfer
*)trans
;
81 lima_resource_screen_init(struct lima_screen
*screen
);
84 lima_resource_context_init(struct lima_context
*ctx
);