root/drivers/gpu/drm/radeon/r100_track.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: MIT */
   2 
   3 #include "radeon.h"
   4 
   5 #define R100_TRACK_MAX_TEXTURE 3
   6 #define R200_TRACK_MAX_TEXTURE 6
   7 #define R300_TRACK_MAX_TEXTURE 16
   8 
   9 #define R100_MAX_CB 1
  10 #define R300_MAX_CB 4
  11 
  12 /*
  13  * CS functions
  14  */
  15 struct r100_cs_track_cb {
  16         struct radeon_bo        *robj;
  17         unsigned                pitch;
  18         unsigned                cpp;
  19         unsigned                offset;
  20 };
  21 
  22 struct r100_cs_track_array {
  23         struct radeon_bo        *robj;
  24         unsigned                esize;
  25 };
  26 
  27 struct r100_cs_cube_info {
  28         struct radeon_bo        *robj;
  29         unsigned                offset;
  30         unsigned                width;
  31         unsigned                height;
  32 };
  33 
  34 #define R100_TRACK_COMP_NONE   0
  35 #define R100_TRACK_COMP_DXT1   1
  36 #define R100_TRACK_COMP_DXT35  2
  37 
  38 struct r100_cs_track_texture {
  39         struct radeon_bo        *robj;
  40         struct r100_cs_cube_info cube_info[5]; /* info for 5 non-primary faces */
  41         unsigned                pitch;
  42         unsigned                width;
  43         unsigned                height;
  44         unsigned                num_levels;
  45         unsigned                cpp;
  46         unsigned                tex_coord_type;
  47         unsigned                txdepth;
  48         unsigned                width_11;
  49         unsigned                height_11;
  50         bool                    use_pitch;
  51         bool                    enabled;
  52         bool                    lookup_disable;
  53         bool                    roundup_w;
  54         bool                    roundup_h;
  55         unsigned                compress_format;
  56 };
  57 
  58 struct r100_cs_track {
  59         unsigned                        num_cb;
  60         unsigned                        num_texture;
  61         unsigned                        maxy;
  62         unsigned                        vtx_size;
  63         unsigned                        vap_vf_cntl;
  64         unsigned                        vap_alt_nverts;
  65         unsigned                        immd_dwords;
  66         unsigned                        num_arrays;
  67         unsigned                        max_indx;
  68         unsigned                        color_channel_mask;
  69         struct r100_cs_track_array      arrays[16];
  70         struct r100_cs_track_cb         cb[R300_MAX_CB];
  71         struct r100_cs_track_cb         zb;
  72         struct r100_cs_track_cb         aa;
  73         struct r100_cs_track_texture    textures[R300_TRACK_MAX_TEXTURE];
  74         bool                            z_enabled;
  75         bool                            separate_cube;
  76         bool                            zb_cb_clear;
  77         bool                            blend_read_enable;
  78         bool                            cb_dirty;
  79         bool                            zb_dirty;
  80         bool                            tex_dirty;
  81         bool                            aa_dirty;
  82         bool                            aaresolve;
  83 };
  84 
  85 int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track);
  86 void r100_cs_track_clear(struct radeon_device *rdev, struct r100_cs_track *track);
  87 
  88 int r100_cs_packet_parse_vline(struct radeon_cs_parser *p);
  89 
  90 int r200_packet0_check(struct radeon_cs_parser *p,
  91                        struct radeon_cs_packet *pkt,
  92                        unsigned idx, unsigned reg);
  93 
  94 int r100_reloc_pitch_offset(struct radeon_cs_parser *p,
  95                             struct radeon_cs_packet *pkt,
  96                             unsigned idx,
  97                             unsigned reg);
  98 int r100_packet3_load_vbpntr(struct radeon_cs_parser *p,
  99                              struct radeon_cs_packet *pkt,
 100                              int idx);

/* [<][>][^][v][top][bottom][index][help] */