~mmach/netext73/mesa-ryzen

« back to all changes in this revision

Viewing changes to src/gallium/auxiliary/draw/draw_pt.h

  • Committer: mmach
  • Date: 2023-11-02 21:31:35 UTC
  • Revision ID: netbit73@gmail.com-20231102213135-18d4tzh7tj0uz752
2023-11-02 22:11:57

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#ifndef DRAW_PT_H
34
34
#define DRAW_PT_H
35
35
 
36
 
#include "pipe/p_compiler.h"
 
36
#include "util/compiler.h"
37
37
 
38
38
struct draw_pt_middle_end;
39
39
struct draw_context;
65
65
 */
66
66
struct draw_pt_front_end {
67
67
   void (*prepare)(struct draw_pt_front_end *,
68
 
                   enum pipe_prim_type prim,
 
68
                   enum mesa_prim prim,
69
69
                   struct draw_pt_middle_end *,
70
70
                   unsigned opt);
71
71
 
89
89
 */
90
90
struct draw_pt_middle_end {
91
91
   void (*prepare)(struct draw_pt_middle_end *,
92
 
                   enum pipe_prim_type prim,
 
92
                   enum mesa_prim prim,
93
93
                   unsigned opt,
94
94
                   unsigned *max_vertices);
95
95
 
103
103
   void (*run)(struct draw_pt_middle_end *,
104
104
               const unsigned *fetch_elts,
105
105
               unsigned fetch_count,
106
 
               const ushort *draw_elts,
 
106
               const uint16_t *draw_elts,
107
107
               unsigned draw_count,
108
108
               unsigned prim_flags);
109
109
 
115
115
   /* Transform all vertices in a linear range and then draw them with
116
116
    * the supplied element list.  May fail and return FALSE.
117
117
    */
118
 
   boolean (*run_linear_elts)(struct draw_pt_middle_end *,
 
118
   bool (*run_linear_elts)(struct draw_pt_middle_end *,
119
119
                              unsigned fetch_start,
120
120
                              unsigned fetch_count,
121
 
                              const ushort *draw_elts,
 
121
                              const uint16_t *draw_elts,
122
122
                              unsigned draw_count,
123
123
                              unsigned prim_flags);
124
124
 
151
151
struct draw_pt_middle_end *draw_pt_middle_fse(struct draw_context *draw);
152
152
struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit(struct draw_context *draw);
153
153
struct draw_pt_middle_end *draw_pt_fetch_pipeline_or_emit_llvm(struct draw_context *draw);
154
 
 
 
154
struct draw_pt_middle_end *draw_pt_mesh_pipeline_or_emit(struct draw_context *draw);
155
155
 
156
156
 
157
157
/*******************************************************************************
161
161
 
162
162
void
163
163
draw_pt_emit_prepare(struct pt_emit *emit,
164
 
                     enum pipe_prim_type prim,
 
164
                     enum mesa_prim prim,
165
165
                     unsigned *max_vertices);
166
166
 
167
167
void
187
187
struct pt_so_emit;
188
188
 
189
189
void
190
 
draw_pt_so_emit_prepare(struct pt_so_emit *emit, boolean use_pre_clip_pos);
 
190
draw_pt_so_emit_prepare(struct pt_so_emit *emit, bool use_pre_clip_pos);
191
191
 
192
192
void
193
193
draw_pt_so_emit(struct pt_so_emit *emit,
237
237
 */
238
238
struct pt_post_vs;
239
239
 
240
 
boolean
 
240
bool
241
241
draw_pt_post_vs_run(struct pt_post_vs *pvs,
242
242
                    struct draw_vertex_info *info,
243
243
                    const struct draw_prim_info *prim_info);
244
244
 
245
245
void
246
246
draw_pt_post_vs_prepare(struct pt_post_vs *pvs,
247
 
                        boolean clip_xy,
248
 
                        boolean clip_z,
249
 
                        boolean clip_user,
250
 
                        boolean guard_band,
251
 
                        boolean bypass_viewport,
252
 
                        boolean clip_halfz,
253
 
                        boolean need_edgeflags);
 
247
                        bool clip_xy,
 
248
                        bool clip_z,
 
249
                        bool clip_user,
 
250
                        bool guard_band,
 
251
                        bool bypass_viewport,
 
252
                        bool clip_halfz,
 
253
                        bool need_edgeflags);
254
254
 
255
255
struct pt_post_vs *
256
256
draw_pt_post_vs_create(struct draw_context *draw);
263
263
 * Utils:
264
264
 */
265
265
void
266
 
draw_pt_split_prim(enum pipe_prim_type prim, unsigned *first, unsigned *incr);
 
266
draw_pt_split_prim(enum mesa_prim prim, unsigned *first, unsigned *incr);
267
267
 
268
268
unsigned
269
269
draw_pt_trim_count(unsigned count, unsigned first, unsigned incr);
270
270
 
271
 
 
 
271
void
 
272
draw_mesh_middle_end_run(struct draw_pt_middle_end *middle,
 
273
                         struct draw_vertex_info *vert_info,
 
274
                         struct draw_prim_info *prim_info);
272
275
#endif