• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright © 2023 Imagination Technologies Ltd.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice (including the next
12  * paragraph) shall be included in all copies or substantial portions of the
13  * Software.
14  *
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 NONINFRINGEMENT. IN NO EVENT SHALL THE
18  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21  * SOFTWARE.
22  */
23 
24 #ifndef GX6250_H
25 #define GX6250_H
26 
27 #include <stdbool.h>
28 
29 #include "pvr_device_info.h"
30 
31 static const struct pvr_device_ident pvr_device_ident_4_V_2_51 = {
32    .device_id = 0x6250,
33    .series_name = "Rogue",
34    .public_name = "GX6250",
35 };
36 
37 static const struct pvr_device_features pvr_device_features_4_V_2_51 = {
38    .has_astc = true,
39    .has_cluster_grouping = true,
40    .has_common_store_size_in_dwords = true,
41    .has_compute = true,
42    .has_compute_morton_capable = true,
43    .has_compute_overlap = true,
44    .has_eight_output_registers = true,
45    .has_fbcdc_algorithm = true,
46    .has_gs_rta_support = true,
47    .has_isp_max_tiles_in_flight = true,
48    .has_isp_samples_per_pixel = true,
49    .has_max_instances_per_pds_task = true,
50    .has_max_multisample = true,
51    .has_max_partitions = true,
52    .has_max_usc_tasks = true,
53    .has_num_clusters = true,
54    .has_num_raster_pipes = true,
55    .has_num_user_clip_planes = true,
56    .has_pbe_filterable_f16 = true,
57    .has_pbe_yuv = true,
58    .has_slc_cache_line_size_bits = true,
59    .has_slc_mcu_cache_controls = true,
60    .has_tf_bicubic_filter = true,
61    .has_tile_size_x = true,
62    .has_tile_size_y = true,
63    .has_tpu_array_textures = true,
64    .has_tpu_extended_integer_lookup = true,
65    .has_tpu_image_state_v2 = true,
66    .has_unified_store_depth = true,
67    .has_usc_f16sop_u8 = true,
68    .has_usc_itrsmp = true,
69    .has_usc_min_output_registers_per_pix = true,
70    .has_usc_slots = true,
71    .has_uvs_banks = true,
72    .has_uvs_pba_entries = true,
73    .has_uvs_vtx_entries = true,
74    .has_vdm_cam_size = true,
75    .has_xt_top_infrastructure = true,
76    .has_zls_subtile = true,
77 
78    .common_store_size_in_dwords = 1280U * 4U * 4U,
79    .fbcdc_algorithm = 2,
80    .isp_max_tiles_in_flight = 4U,
81    .isp_samples_per_pixel = 2U,
82    .max_instances_per_pds_task = 32U,
83    .max_multisample = 8U,
84    .max_partitions = 8U,
85    .max_usc_tasks = 56U,
86    .num_clusters = 2U,
87    .num_raster_pipes = 1U,
88    .num_user_clip_planes = 8U,
89    .slc_cache_line_size_bits = 512U,
90    .tile_size_x = 32U,
91    .tile_size_y = 32U,
92    .unified_store_depth = 256U,
93    .usc_min_output_registers_per_pix = 2U,
94    .usc_slots = 32U,
95    .uvs_banks = 8U,
96    .uvs_pba_entries = 320U,
97    .uvs_vtx_entries = 288U,
98    .vdm_cam_size = 256U,
99 
100    .has_requires_fb_cdc_zls_setup = true,
101    .has_usc_itr_parallel_instances = true,
102 
103    .usc_itr_parallel_instances = 8U,
104 };
105 
106 static const struct pvr_device_enhancements pvr_device_enhancements_4_40_2_51 = {
107    .has_ern35421 = true,
108    .has_ern38020 = true,
109    .has_ern38748 = true,
110    .has_ern42064 = true,
111    .has_ern42307 = true,
112 };
113 
114 static const struct pvr_device_quirks pvr_device_quirks_4_40_2_51 = {
115    .has_brn44079 = true,
116    .has_brn47727 = true,
117    .has_brn48492 = true,
118    .has_brn48545 = true,
119    .has_brn49032 = true,
120    .has_brn49927 = true,
121    .has_brn51025 = true,
122    .has_brn51210 = true,
123    .has_brn51764 = true,
124    .has_brn52354 = true,
125    .has_brn52942 = true,
126    .has_brn58839 = true,
127    .has_brn62269 = true,
128    .has_brn66011 = true,
129    .has_brn70165 = true,
130 };
131 
132 #endif /* GX6250_H */
133