xref: /aosp_15_r20/external/mesa3d/src/broadcom/vulkan/v3dvx_private.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright © 2021 Raspberry Pi Ltd
3*61046927SAndroid Build Coastguard Worker  *
4*61046927SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
5*61046927SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the "Software"),
6*61046927SAndroid Build Coastguard Worker  * to deal in the Software without restriction, including without limitation
7*61046927SAndroid Build Coastguard Worker  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*61046927SAndroid Build Coastguard Worker  * and/or sell copies of the Software, and to permit persons to whom the
9*61046927SAndroid Build Coastguard Worker  * Software is furnished to do so, subject to the following conditions:
10*61046927SAndroid Build Coastguard Worker  *
11*61046927SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the next
12*61046927SAndroid Build Coastguard Worker  * paragraph) shall be included in all copies or substantial portions of the
13*61046927SAndroid Build Coastguard Worker  * Software.
14*61046927SAndroid Build Coastguard Worker  *
15*61046927SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16*61046927SAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*61046927SAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18*61046927SAndroid Build Coastguard Worker  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19*61046927SAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20*61046927SAndroid Build Coastguard Worker  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21*61046927SAndroid Build Coastguard Worker  * IN THE SOFTWARE.
22*61046927SAndroid Build Coastguard Worker  */
23*61046927SAndroid Build Coastguard Worker 
24*61046927SAndroid Build Coastguard Worker /* This file generates the per-v3d-version function prototypes.  It must only
25*61046927SAndroid Build Coastguard Worker  * be included from v3dv_private.h.
26*61046927SAndroid Build Coastguard Worker  */
27*61046927SAndroid Build Coastguard Worker 
28*61046927SAndroid Build Coastguard Worker #ifndef V3DV_PRIVATE_H
29*61046927SAndroid Build Coastguard Worker #error This file is included by means other than v3dv_private.h
30*61046927SAndroid Build Coastguard Worker #endif
31*61046927SAndroid Build Coastguard Worker 
32*61046927SAndroid Build Coastguard Worker /* Used at v3dv_cmd_buffer */
33*61046927SAndroid Build Coastguard Worker void
34*61046927SAndroid Build Coastguard Worker v3dX(job_emit_binning_flush)(struct v3dv_job *job);
35*61046927SAndroid Build Coastguard Worker 
36*61046927SAndroid Build Coastguard Worker void
37*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_color_write_mask)(struct v3dv_cmd_buffer *cmd_buffer);
38*61046927SAndroid Build Coastguard Worker 
39*61046927SAndroid Build Coastguard Worker void
40*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_end_render_pass_secondary)(struct v3dv_cmd_buffer *cmd_buffer);
41*61046927SAndroid Build Coastguard Worker 
42*61046927SAndroid Build Coastguard Worker void
43*61046927SAndroid Build Coastguard Worker v3dX(job_emit_clip_window)(struct v3dv_job *job, const VkRect2D *rect);
44*61046927SAndroid Build Coastguard Worker 
45*61046927SAndroid Build Coastguard Worker void
46*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_render_pass_rcl)(struct v3dv_cmd_buffer *cmd_buffer);
47*61046927SAndroid Build Coastguard Worker 
48*61046927SAndroid Build Coastguard Worker void
49*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_viewport)(struct v3dv_cmd_buffer *cmd_buffer);
50*61046927SAndroid Build Coastguard Worker 
51*61046927SAndroid Build Coastguard Worker void
52*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_stencil)(struct v3dv_cmd_buffer *cmd_buffer);
53*61046927SAndroid Build Coastguard Worker 
54*61046927SAndroid Build Coastguard Worker void
55*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_depth_bias)(struct v3dv_cmd_buffer *cmd_buffer);
56*61046927SAndroid Build Coastguard Worker 
57*61046927SAndroid Build Coastguard Worker void
58*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_depth_bounds)(struct v3dv_cmd_buffer *cmd_buffer);
59*61046927SAndroid Build Coastguard Worker 
60*61046927SAndroid Build Coastguard Worker void
61*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_line_width)(struct v3dv_cmd_buffer *cmd_buffer);
62*61046927SAndroid Build Coastguard Worker 
63*61046927SAndroid Build Coastguard Worker void
64*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_default_point_size)(struct v3dv_cmd_buffer *cmd_buffer);
65*61046927SAndroid Build Coastguard Worker 
66*61046927SAndroid Build Coastguard Worker void
67*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_sample_state)(struct v3dv_cmd_buffer *cmd_buffer);
68*61046927SAndroid Build Coastguard Worker 
69*61046927SAndroid Build Coastguard Worker void
70*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_blend)(struct v3dv_cmd_buffer *cmd_buffer);
71*61046927SAndroid Build Coastguard Worker 
72*61046927SAndroid Build Coastguard Worker void
73*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_varyings_state)(struct v3dv_cmd_buffer *cmd_buffer);
74*61046927SAndroid Build Coastguard Worker 
75*61046927SAndroid Build Coastguard Worker void
76*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_configuration_bits)(struct v3dv_cmd_buffer *cmd_buffer);
77*61046927SAndroid Build Coastguard Worker 
78*61046927SAndroid Build Coastguard Worker void
79*61046927SAndroid Build Coastguard Worker v3dX(job_emit_binning_prolog)(struct v3dv_job *job,
80*61046927SAndroid Build Coastguard Worker                               const struct v3dv_frame_tiling *tiling,
81*61046927SAndroid Build Coastguard Worker                               uint32_t layers);
82*61046927SAndroid Build Coastguard Worker 
83*61046927SAndroid Build Coastguard Worker void
84*61046927SAndroid Build Coastguard Worker v3dX(job_emit_enable_double_buffer)(struct v3dv_job *job);
85*61046927SAndroid Build Coastguard Worker 
86*61046927SAndroid Build Coastguard Worker void
87*61046927SAndroid Build Coastguard Worker v3dX(job_patch_resume_address)(struct v3dv_job *first_suspend,
88*61046927SAndroid Build Coastguard Worker                                struct v3dv_job *suspend,
89*61046927SAndroid Build Coastguard Worker                                struct v3dv_job *resume);
90*61046927SAndroid Build Coastguard Worker 
91*61046927SAndroid Build Coastguard Worker void
92*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_execute_inside_pass)(struct v3dv_cmd_buffer *primary,
93*61046927SAndroid Build Coastguard Worker                                      uint32_t cmd_buffer_count,
94*61046927SAndroid Build Coastguard Worker                                      const VkCommandBuffer *cmd_buffers);
95*61046927SAndroid Build Coastguard Worker 
96*61046927SAndroid Build Coastguard Worker void
97*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_occlusion_query)(struct v3dv_cmd_buffer *cmd_buffer);
98*61046927SAndroid Build Coastguard Worker 
99*61046927SAndroid Build Coastguard Worker void
100*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_gl_shader_state)(struct v3dv_cmd_buffer *cmd_buffer);
101*61046927SAndroid Build Coastguard Worker 
102*61046927SAndroid Build Coastguard Worker 
103*61046927SAndroid Build Coastguard Worker void
104*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_draw)(struct v3dv_cmd_buffer *cmd_buffer,
105*61046927SAndroid Build Coastguard Worker                            struct v3dv_draw_info *info);
106*61046927SAndroid Build Coastguard Worker 
107*61046927SAndroid Build Coastguard Worker 
108*61046927SAndroid Build Coastguard Worker void
109*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_index_buffer)(struct v3dv_cmd_buffer *cmd_buffer);
110*61046927SAndroid Build Coastguard Worker 
111*61046927SAndroid Build Coastguard Worker void
112*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_draw_indexed)(struct v3dv_cmd_buffer *cmd_buffer,
113*61046927SAndroid Build Coastguard Worker                                    uint32_t indexCount,
114*61046927SAndroid Build Coastguard Worker                                    uint32_t instanceCount,
115*61046927SAndroid Build Coastguard Worker                                    uint32_t firstIndex,
116*61046927SAndroid Build Coastguard Worker                                    int32_t vertexOffset,
117*61046927SAndroid Build Coastguard Worker                                    uint32_t firstInstance);
118*61046927SAndroid Build Coastguard Worker 
119*61046927SAndroid Build Coastguard Worker void
120*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_draw_indirect)(struct v3dv_cmd_buffer *cmd_buffer,
121*61046927SAndroid Build Coastguard Worker                                     struct v3dv_buffer *buffer,
122*61046927SAndroid Build Coastguard Worker                                     VkDeviceSize offset,
123*61046927SAndroid Build Coastguard Worker                                     uint32_t drawCount,
124*61046927SAndroid Build Coastguard Worker                                     uint32_t stride);
125*61046927SAndroid Build Coastguard Worker 
126*61046927SAndroid Build Coastguard Worker void
127*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_emit_indexed_indirect)(struct v3dv_cmd_buffer *cmd_buffer,
128*61046927SAndroid Build Coastguard Worker                                        struct v3dv_buffer *buffer,
129*61046927SAndroid Build Coastguard Worker                                        VkDeviceSize offset,
130*61046927SAndroid Build Coastguard Worker                                        uint32_t drawCount,
131*61046927SAndroid Build Coastguard Worker                                        uint32_t stride);
132*61046927SAndroid Build Coastguard Worker 
133*61046927SAndroid Build Coastguard Worker void
134*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_suspend)(struct v3dv_cmd_buffer *cmd_buffer);
135*61046927SAndroid Build Coastguard Worker 
136*61046927SAndroid Build Coastguard Worker struct v3dv_job *
137*61046927SAndroid Build Coastguard Worker v3dX(cmd_buffer_prepare_suspend_job_for_submit)(struct v3dv_job *job);
138*61046927SAndroid Build Coastguard Worker 
139*61046927SAndroid Build Coastguard Worker void
140*61046927SAndroid Build Coastguard Worker v3dX(get_hw_clear_color)(const VkClearColorValue *color,
141*61046927SAndroid Build Coastguard Worker                          uint32_t internal_type,
142*61046927SAndroid Build Coastguard Worker                          uint32_t internal_size,
143*61046927SAndroid Build Coastguard Worker                          uint32_t *hw_color);
144*61046927SAndroid Build Coastguard Worker 
145*61046927SAndroid Build Coastguard Worker /* Used at v3dv_device */
146*61046927SAndroid Build Coastguard Worker 
147*61046927SAndroid Build Coastguard Worker void
148*61046927SAndroid Build Coastguard Worker v3dX(pack_sampler_state)(const struct v3dv_device *device,
149*61046927SAndroid Build Coastguard Worker                          struct v3dv_sampler *sampler,
150*61046927SAndroid Build Coastguard Worker                          const VkSamplerCreateInfo *pCreateInfo,
151*61046927SAndroid Build Coastguard Worker                          const VkSamplerCustomBorderColorCreateInfoEXT *bc_info);
152*61046927SAndroid Build Coastguard Worker 
153*61046927SAndroid Build Coastguard Worker void
154*61046927SAndroid Build Coastguard Worker v3dX(framebuffer_compute_internal_bpp_msaa)(const struct v3dv_framebuffer *framebuffer,
155*61046927SAndroid Build Coastguard Worker                                             const struct v3dv_cmd_buffer_attachment_state *attachments,
156*61046927SAndroid Build Coastguard Worker                                             const struct v3dv_subpass *subpass,
157*61046927SAndroid Build Coastguard Worker                                             uint8_t *max_internal_bpp,
158*61046927SAndroid Build Coastguard Worker                                             uint8_t *total_color_bpp,
159*61046927SAndroid Build Coastguard Worker                                             bool *msaa);
160*61046927SAndroid Build Coastguard Worker 
161*61046927SAndroid Build Coastguard Worker #if MESA_DEBUG
162*61046927SAndroid Build Coastguard Worker void
163*61046927SAndroid Build Coastguard Worker v3dX(device_check_prepacked_sizes)(void);
164*61046927SAndroid Build Coastguard Worker #endif
165*61046927SAndroid Build Coastguard Worker 
166*61046927SAndroid Build Coastguard Worker /* Used at v3dv_format */
167*61046927SAndroid Build Coastguard Worker const struct v3dv_format *
168*61046927SAndroid Build Coastguard Worker v3dX(get_format)(VkFormat);
169*61046927SAndroid Build Coastguard Worker 
170*61046927SAndroid Build Coastguard Worker void
171*61046927SAndroid Build Coastguard Worker v3dX(get_internal_type_bpp_for_output_format)(uint32_t format,
172*61046927SAndroid Build Coastguard Worker                                               uint32_t *type,
173*61046927SAndroid Build Coastguard Worker                                               uint32_t *bpp);
174*61046927SAndroid Build Coastguard Worker 
175*61046927SAndroid Build Coastguard Worker bool
176*61046927SAndroid Build Coastguard Worker v3dX(format_supports_tlb_resolve)(const struct v3dv_format *format);
177*61046927SAndroid Build Coastguard Worker 
178*61046927SAndroid Build Coastguard Worker bool
179*61046927SAndroid Build Coastguard Worker v3dX(format_supports_blending)(const struct v3dv_format *format);
180*61046927SAndroid Build Coastguard Worker 
181*61046927SAndroid Build Coastguard Worker /* FIXME: tex_format should be `enum V3DX(Texture_Data_Formats)`, but using
182*61046927SAndroid Build Coastguard Worker  * that enum type in the header requires including v3dx_pack.h, which triggers
183*61046927SAndroid Build Coastguard Worker  * circular include dependencies issues, so we're using a `uint32_t` for now.
184*61046927SAndroid Build Coastguard Worker  */
185*61046927SAndroid Build Coastguard Worker bool
186*61046927SAndroid Build Coastguard Worker v3dX(tfu_supports_tex_format)(uint32_t tex_format);
187*61046927SAndroid Build Coastguard Worker 
188*61046927SAndroid Build Coastguard Worker /* Used at v3dv_image */
189*61046927SAndroid Build Coastguard Worker 
190*61046927SAndroid Build Coastguard Worker void
191*61046927SAndroid Build Coastguard Worker v3dX(pack_texture_shader_state)(struct v3dv_device *device,
192*61046927SAndroid Build Coastguard Worker                                 struct v3dv_image_view *iview);
193*61046927SAndroid Build Coastguard Worker 
194*61046927SAndroid Build Coastguard Worker void
195*61046927SAndroid Build Coastguard Worker v3dX(pack_texture_shader_state_from_buffer_view)(struct v3dv_device *device,
196*61046927SAndroid Build Coastguard Worker                                                  struct v3dv_buffer_view *buffer_view);
197*61046927SAndroid Build Coastguard Worker 
198*61046927SAndroid Build Coastguard Worker /* Used at v3dv_meta_* */
199*61046927SAndroid Build Coastguard Worker 
200*61046927SAndroid Build Coastguard Worker uint32_t
201*61046927SAndroid Build Coastguard Worker v3dX(zs_buffer_from_aspect_bits)(VkImageAspectFlags aspects);
202*61046927SAndroid Build Coastguard Worker 
203*61046927SAndroid Build Coastguard Worker uint8_t
204*61046927SAndroid Build Coastguard Worker v3dX(get_internal_depth_type)(VkFormat format);
205*61046927SAndroid Build Coastguard Worker 
206*61046927SAndroid Build Coastguard Worker struct v3dv_meta_framebuffer;
207*61046927SAndroid Build Coastguard Worker 
208*61046927SAndroid Build Coastguard Worker void
209*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_copy_image_to_buffer_rcl)(struct v3dv_job *job,
210*61046927SAndroid Build Coastguard Worker                                          struct v3dv_buffer *buffer,
211*61046927SAndroid Build Coastguard Worker                                          struct v3dv_image *image,
212*61046927SAndroid Build Coastguard Worker                                          struct v3dv_meta_framebuffer *framebuffer,
213*61046927SAndroid Build Coastguard Worker                                          const VkBufferImageCopy2 *region);
214*61046927SAndroid Build Coastguard Worker 
215*61046927SAndroid Build Coastguard Worker void
216*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_resolve_image_rcl)(struct v3dv_job *job,
217*61046927SAndroid Build Coastguard Worker                                   struct v3dv_image *dst,
218*61046927SAndroid Build Coastguard Worker                                   struct v3dv_image *src,
219*61046927SAndroid Build Coastguard Worker                                   struct v3dv_meta_framebuffer *framebuffer,
220*61046927SAndroid Build Coastguard Worker                                   const VkImageResolve2 *region);
221*61046927SAndroid Build Coastguard Worker 
222*61046927SAndroid Build Coastguard Worker void
223*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_copy_buffer)(struct v3dv_job *job,
224*61046927SAndroid Build Coastguard Worker                             struct v3dv_bo *dst,
225*61046927SAndroid Build Coastguard Worker                             struct v3dv_bo *src,
226*61046927SAndroid Build Coastguard Worker                             uint32_t dst_offset,
227*61046927SAndroid Build Coastguard Worker                             uint32_t src_offset,
228*61046927SAndroid Build Coastguard Worker                             struct v3dv_meta_framebuffer *framebuffer,
229*61046927SAndroid Build Coastguard Worker                             uint32_t format,
230*61046927SAndroid Build Coastguard Worker                             uint32_t item_size);
231*61046927SAndroid Build Coastguard Worker 
232*61046927SAndroid Build Coastguard Worker void
233*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_copy_buffer_rcl)(struct v3dv_job *job,
234*61046927SAndroid Build Coastguard Worker                                 struct v3dv_bo *dst,
235*61046927SAndroid Build Coastguard Worker                                 struct v3dv_bo *src,
236*61046927SAndroid Build Coastguard Worker                                 uint32_t dst_offset,
237*61046927SAndroid Build Coastguard Worker                                 uint32_t src_offset,
238*61046927SAndroid Build Coastguard Worker                                 struct v3dv_meta_framebuffer *framebuffer,
239*61046927SAndroid Build Coastguard Worker                                 uint32_t format,
240*61046927SAndroid Build Coastguard Worker                                 uint32_t item_size);
241*61046927SAndroid Build Coastguard Worker 
242*61046927SAndroid Build Coastguard Worker void
243*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_copy_image_rcl)(struct v3dv_job *job,
244*61046927SAndroid Build Coastguard Worker                                struct v3dv_image *dst,
245*61046927SAndroid Build Coastguard Worker                                struct v3dv_image *src,
246*61046927SAndroid Build Coastguard Worker                                struct v3dv_meta_framebuffer *framebuffer,
247*61046927SAndroid Build Coastguard Worker                                const VkImageCopy2 *region);
248*61046927SAndroid Build Coastguard Worker 
249*61046927SAndroid Build Coastguard Worker void
250*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_tfu_job)(struct v3dv_cmd_buffer *cmd_buffer,
251*61046927SAndroid Build Coastguard Worker                         uint32_t dst_bo_handle,
252*61046927SAndroid Build Coastguard Worker                         uint32_t dst_offset,
253*61046927SAndroid Build Coastguard Worker                         enum v3d_tiling_mode dst_tiling,
254*61046927SAndroid Build Coastguard Worker                         uint32_t dst_padded_height_or_stride,
255*61046927SAndroid Build Coastguard Worker                         uint32_t dst_cpp,
256*61046927SAndroid Build Coastguard Worker                         uint32_t src_bo_handle,
257*61046927SAndroid Build Coastguard Worker                         uint32_t src_offset,
258*61046927SAndroid Build Coastguard Worker                         enum v3d_tiling_mode src_tiling,
259*61046927SAndroid Build Coastguard Worker                         uint32_t src_padded_height_or_stride,
260*61046927SAndroid Build Coastguard Worker                         uint32_t src_cpp,
261*61046927SAndroid Build Coastguard Worker                         uint32_t width,
262*61046927SAndroid Build Coastguard Worker                         uint32_t height,
263*61046927SAndroid Build Coastguard Worker                         const struct v3dv_format_plane *format_plane);
264*61046927SAndroid Build Coastguard Worker 
265*61046927SAndroid Build Coastguard Worker void
266*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_clear_image_rcl)(struct v3dv_job *job,
267*61046927SAndroid Build Coastguard Worker                                 struct v3dv_image *image,
268*61046927SAndroid Build Coastguard Worker                                 struct v3dv_meta_framebuffer *framebuffer,
269*61046927SAndroid Build Coastguard Worker                                 const union v3dv_clear_value *clear_value,
270*61046927SAndroid Build Coastguard Worker                                 VkImageAspectFlags aspects,
271*61046927SAndroid Build Coastguard Worker                                 uint32_t min_layer,
272*61046927SAndroid Build Coastguard Worker                                 uint32_t max_layer,
273*61046927SAndroid Build Coastguard Worker                                 uint32_t level);
274*61046927SAndroid Build Coastguard Worker 
275*61046927SAndroid Build Coastguard Worker void
276*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_fill_buffer_rcl)(struct v3dv_job *job,
277*61046927SAndroid Build Coastguard Worker                                 struct v3dv_bo *bo,
278*61046927SAndroid Build Coastguard Worker                                 uint32_t offset,
279*61046927SAndroid Build Coastguard Worker                                 struct v3dv_meta_framebuffer *framebuffer,
280*61046927SAndroid Build Coastguard Worker                                 uint32_t data);
281*61046927SAndroid Build Coastguard Worker 
282*61046927SAndroid Build Coastguard Worker void
283*61046927SAndroid Build Coastguard Worker v3dX(meta_emit_copy_buffer_to_image_rcl)(struct v3dv_job *job,
284*61046927SAndroid Build Coastguard Worker                                          struct v3dv_image *image,
285*61046927SAndroid Build Coastguard Worker                                          struct v3dv_buffer *buffer,
286*61046927SAndroid Build Coastguard Worker                                          struct v3dv_meta_framebuffer *framebuffer,
287*61046927SAndroid Build Coastguard Worker                                          const VkBufferImageCopy2 *region);
288*61046927SAndroid Build Coastguard Worker 
289*61046927SAndroid Build Coastguard Worker void
290*61046927SAndroid Build Coastguard Worker v3dX(get_internal_type_bpp_for_image_aspects)(VkFormat vk_format,
291*61046927SAndroid Build Coastguard Worker                                               VkImageAspectFlags aspect_mask,
292*61046927SAndroid Build Coastguard Worker                                               uint32_t *internal_type,
293*61046927SAndroid Build Coastguard Worker                                               uint32_t *internal_bpp);
294*61046927SAndroid Build Coastguard Worker 
295*61046927SAndroid Build Coastguard Worker struct v3dv_job *
296*61046927SAndroid Build Coastguard Worker v3dX(meta_copy_buffer)(struct v3dv_cmd_buffer *cmd_buffer,
297*61046927SAndroid Build Coastguard Worker                        struct v3dv_bo *dst,
298*61046927SAndroid Build Coastguard Worker                        uint32_t dst_offset,
299*61046927SAndroid Build Coastguard Worker                        struct v3dv_bo *src,
300*61046927SAndroid Build Coastguard Worker                        uint32_t src_offset,
301*61046927SAndroid Build Coastguard Worker                        const VkBufferCopy2 *region);
302*61046927SAndroid Build Coastguard Worker 
303*61046927SAndroid Build Coastguard Worker void
304*61046927SAndroid Build Coastguard Worker v3dX(meta_fill_buffer)(struct v3dv_cmd_buffer *cmd_buffer,
305*61046927SAndroid Build Coastguard Worker                        struct v3dv_bo *bo,
306*61046927SAndroid Build Coastguard Worker                        uint32_t offset,
307*61046927SAndroid Build Coastguard Worker                        uint32_t size,
308*61046927SAndroid Build Coastguard Worker                        uint32_t data);
309*61046927SAndroid Build Coastguard Worker 
310*61046927SAndroid Build Coastguard Worker void
311*61046927SAndroid Build Coastguard Worker v3dX(meta_framebuffer_init)(struct v3dv_meta_framebuffer *fb,
312*61046927SAndroid Build Coastguard Worker                             VkFormat vk_format,
313*61046927SAndroid Build Coastguard Worker                             uint32_t internal_type,
314*61046927SAndroid Build Coastguard Worker                             const struct v3dv_frame_tiling *tiling);
315*61046927SAndroid Build Coastguard Worker 
316*61046927SAndroid Build Coastguard Worker /* Used at v3dv_pipeline */
317*61046927SAndroid Build Coastguard Worker void
318*61046927SAndroid Build Coastguard Worker v3dX(pipeline_pack_state)(struct v3dv_pipeline *pipeline,
319*61046927SAndroid Build Coastguard Worker                           const VkPipelineColorBlendStateCreateInfo *cb_info,
320*61046927SAndroid Build Coastguard Worker                           const VkPipelineDepthStencilStateCreateInfo *ds_info,
321*61046927SAndroid Build Coastguard Worker                           const VkPipelineRasterizationStateCreateInfo *rs_info,
322*61046927SAndroid Build Coastguard Worker                           const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT *pv_info,
323*61046927SAndroid Build Coastguard Worker                           const VkPipelineRasterizationLineStateCreateInfoEXT *ls_info,
324*61046927SAndroid Build Coastguard Worker                           const VkPipelineMultisampleStateCreateInfo *ms_info,
325*61046927SAndroid Build Coastguard Worker                           const struct vk_graphics_pipeline_state *state);
326*61046927SAndroid Build Coastguard Worker void
327*61046927SAndroid Build Coastguard Worker v3dX(pipeline_pack_compile_state)(struct v3dv_pipeline *pipeline,
328*61046927SAndroid Build Coastguard Worker                                   const VkPipelineVertexInputStateCreateInfo *vi_info,
329*61046927SAndroid Build Coastguard Worker                                   const VkPipelineVertexInputDivisorStateCreateInfoEXT *vd_info);
330*61046927SAndroid Build Coastguard Worker 
331*61046927SAndroid Build Coastguard Worker bool
332*61046927SAndroid Build Coastguard Worker v3dX(pipeline_needs_default_attribute_values)(struct v3dv_pipeline *pipeline);
333*61046927SAndroid Build Coastguard Worker 
334*61046927SAndroid Build Coastguard Worker struct v3dv_bo *
335*61046927SAndroid Build Coastguard Worker v3dX(create_default_attribute_values)(struct v3dv_device *device,
336*61046927SAndroid Build Coastguard Worker                                       struct v3dv_pipeline *pipeline);
337*61046927SAndroid Build Coastguard Worker 
338*61046927SAndroid Build Coastguard Worker /* Used at v3dv_queue */
339*61046927SAndroid Build Coastguard Worker void
340*61046927SAndroid Build Coastguard Worker v3dX(job_emit_noop)(struct v3dv_job *job);
341*61046927SAndroid Build Coastguard Worker 
342*61046927SAndroid Build Coastguard Worker /* Used at v3dv_query */
343*61046927SAndroid Build Coastguard Worker VkResult
344*61046927SAndroid Build Coastguard Worker v3dX(enumerate_performance_query_counters)(struct v3dv_physical_device *pDevice,
345*61046927SAndroid Build Coastguard Worker                                            uint32_t *pCounterCount,
346*61046927SAndroid Build Coastguard Worker                                            VkPerformanceCounterKHR *pCounters,
347*61046927SAndroid Build Coastguard Worker                                            VkPerformanceCounterDescriptionKHR *pCounterDescriptions);
348*61046927SAndroid Build Coastguard Worker 
349*61046927SAndroid Build Coastguard Worker /* Used at v3dv_descriptor_set, and other descriptor set utils */
350*61046927SAndroid Build Coastguard Worker uint32_t v3dX(descriptor_bo_size)(VkDescriptorType type);
351*61046927SAndroid Build Coastguard Worker 
352*61046927SAndroid Build Coastguard Worker uint32_t v3dX(max_descriptor_bo_size)(void);
353*61046927SAndroid Build Coastguard Worker 
354*61046927SAndroid Build Coastguard Worker uint32_t v3dX(combined_image_sampler_texture_state_offset)(uint8_t plane);
355*61046927SAndroid Build Coastguard Worker 
356*61046927SAndroid Build Coastguard Worker uint32_t v3dX(combined_image_sampler_sampler_state_offset)(uint8_t plane);
357*61046927SAndroid Build Coastguard Worker 
358*61046927SAndroid Build Coastguard Worker /* General utils */
359*61046927SAndroid Build Coastguard Worker 
360*61046927SAndroid Build Coastguard Worker uint32_t
361*61046927SAndroid Build Coastguard Worker v3dX(clamp_for_format_and_type)(uint32_t rt_type,
362*61046927SAndroid Build Coastguard Worker                                 VkFormat vk_format);
363*61046927SAndroid Build Coastguard Worker 
364*61046927SAndroid Build Coastguard Worker uint32_t
365*61046927SAndroid Build Coastguard Worker v3dX(clamp_for_format_and_type)(uint32_t rt_type,
366*61046927SAndroid Build Coastguard Worker                                 VkFormat vk_format);
367*61046927SAndroid Build Coastguard Worker 
368*61046927SAndroid Build Coastguard Worker void
369*61046927SAndroid Build Coastguard Worker v3dX(viewport_compute_xform)(const VkViewport *viewport,
370*61046927SAndroid Build Coastguard Worker                              float scale[3],
371*61046927SAndroid Build Coastguard Worker                              float translate[3]);
372*61046927SAndroid Build Coastguard Worker 
373*61046927SAndroid Build Coastguard Worker uint32_t
374*61046927SAndroid Build Coastguard Worker v3dX(translate_stencil_op)(VkStencilOp op);
375