1# Copyright 2015 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5# This dictionary of GPU information was captured from a run of
6# Telemetry on a Linux workstation with NVIDIA GPU. It helps test
7# telemetry.internal.platform's GPUInfo class, and specifically the
8# attributes it expects to find in the dictionary; if the code changes
9# in an incompatible way, tests using this fake GPU info will begin
10# failing, indicating this fake data must be updated.
11#
12# To regenerate it, import pdb in
13# telemetry/internal/platform/gpu_info.py and add a call to
14# pdb.set_trace() in GPUInfo.FromDict before the return statement.
15# Print the attrs dictionary in the debugger and copy/paste the result
16# on the right-hand side of this assignment. Then run:
17#
18#   pyformat [this file name] | sed -e "s/'/'/g"
19#
20# and put the output into this file.
21
22FAKE_GPU_INFO = {
23    'feature_status':
24        {
25            'flash_stage3d': 'enabled',
26            'gpu_compositing': 'enabled',
27            'video_decode': 'unavailable_software',
28            'flash_3d': 'enabled',
29            'webgl': 'enabled',
30            'video_encode': 'enabled',
31            'multiple_raster_threads': 'enabled_on',
32            '2d_canvas': 'unavailable_software',
33            'rasterization': 'disabled_software',
34            'flash_stage3d_baseline': 'enabled'
35        },
36    'aux_attributes':
37        {
38            'optimus': False,
39            'sandboxed': True,
40            'basic_info_state': 1,
41            'adapter_luid': 0.0,
42            'driver_version': '331.79',
43            'direct_rendering': True,
44            'amd_switchable': False,
45            'context_info_state': 1,
46            'process_crash_count': 0,
47            'pixel_shader_version': '4.40',
48            'gl_ws_version': '1.4',
49            'lenovo_dcute': False,
50            'can_lose_context': False,
51            'driver_vendor': 'NVIDIA',
52            'max_msaa_samples': '64',
53            'software_rendering': False,
54            'gl_version': '4.4.0 NVIDIA 331.79',
55            'gl_ws_vendor': 'NVIDIA Corporation',
56            'vertex_shader_version': '4.40',
57            'initialization_time': 1.284043,
58            'gl_reset_notification_strategy': 33362,
59            'gl_ws_extensions':
60                'GLX_EXT_visual_info GLX_EXT_visual_rating GLX_SGIX_fbconfig '
61                'GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control '
62                'GLX_EXT_swap_control GLX_EXT_swap_control_tear '
63                'GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age '
64                'GLX_ARB_create_context GLX_ARB_create_context_profile '
65                'GLX_EXT_create_context_es_profile '
66                'GLX_EXT_create_context_es2_profile '
67                'GLX_ARB_create_context_robustness GLX_ARB_multisample '
68                'GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_NV_swap_group'
69                ' GLX_EXT_framebuffer_sRGB GLX_NV_multisample_coverage '
70                'GLX_NV_copy_image GLX_NV_video_capture ',
71            'gl_renderer': 'Quadro 600/PCIe/SSE2',
72            'driver_date': '',
73            'gl_vendor': 'NVIDIA Corporation',
74            'gl_extensions':
75                'GL_AMD_multi_draw_indirect GL_ARB_arrays_of_arrays '
76                'GL_ARB_base_instance GL_ARB_blend_func_extended '
77                'GL_ARB_buffer_storage GL_ARB_clear_buffer_object '
78                'GL_ARB_clear_texture GL_ARB_color_buffer_float '
79                'GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage'
80                ' GL_ARB_conservative_depth GL_ARB_compute_shader '
81                'GL_ARB_compute_variable_group_size GL_ARB_copy_buffer '
82                'GL_ARB_copy_image GL_ARB_debug_output '
83                'GL_ARB_depth_buffer_float GL_ARB_depth_clamp '
84                'GL_ARB_depth_texture GL_ARB_draw_buffers '
85                'GL_ARB_draw_buffers_blend GL_ARB_draw_indirect '
86                'GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced '
87                'GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility '
88                'GL_ARB_ES3_compatibility GL_ARB_explicit_attrib_location '
89                'GL_ARB_explicit_uniform_location '
90                'GL_ARB_fragment_coord_conventions '
91                'GL_ARB_fragment_layer_viewport GL_ARB_fragment_program '
92                'GL_ARB_fragment_program_shadow GL_ARB_fragment_shader '
93                'GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object '
94                'GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 '
95                'GL_ARB_get_program_binary GL_ARB_gpu_shader5 '
96                'GL_ARB_gpu_shader_fp64 GL_ARB_half_float_pixel '
97                'GL_ARB_half_float_vertex GL_ARB_imaging '
98                'GL_ARB_indirect_parameters GL_ARB_instanced_arrays '
99                'GL_ARB_internalformat_query GL_ARB_internalformat_query2 '
100                'GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment '
101                'GL_ARB_map_buffer_range GL_ARB_multi_bind '
102                'GL_ARB_multi_draw_indirect GL_ARB_multisample '
103                'GL_ARB_multitexture GL_ARB_occlusion_query '
104                'GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object '
105                'GL_ARB_point_parameters GL_ARB_point_sprite '
106                'GL_ARB_program_interface_query GL_ARB_provoking_vertex '
107                'GL_ARB_robust_buffer_access_behavior GL_ARB_robustness '
108                'GL_ARB_sample_shading GL_ARB_sampler_objects '
109                'GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects '
110                'GL_ARB_shader_atomic_counters GL_ARB_shader_bit_encoding '
111                'GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote '
112                'GL_ARB_shader_image_load_store GL_ARB_shader_image_size '
113                'GL_ARB_shader_objects GL_ARB_shader_precision '
114                'GL_ARB_query_buffer_object '
115                'GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine'
116                ' GL_ARB_shader_texture_lod GL_ARB_shading_language_100 '
117                'GL_ARB_shading_language_420pack '
118                'GL_ARB_shading_language_include '
119                'GL_ARB_shading_language_packing GL_ARB_shadow '
120                'GL_ARB_stencil_texturing GL_ARB_sync '
121                'GL_ARB_tessellation_shader GL_ARB_texture_border_clamp '
122                'GL_ARB_texture_buffer_object '
123                'GL_ARB_texture_buffer_object_rgb32 '
124                'GL_ARB_texture_buffer_range GL_ARB_texture_compression '
125                'GL_ARB_texture_compression_bptc '
126                'GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map '
127                'GL_ARB_texture_cube_map_array GL_ARB_texture_env_add '
128                'GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar '
129                'GL_ARB_texture_env_dot3 GL_ARB_texture_float '
130                'GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge '
131                'GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample '
132                'GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels '
133                'GL_ARB_texture_query_lod GL_ARB_texture_rectangle '
134                'GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui '
135                'GL_ARB_texture_stencil8 GL_ARB_texture_storage '
136                'GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle '
137                'GL_ARB_texture_view GL_ARB_timer_query '
138                'GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 '
139                'GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix '
140                'GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra '
141                'GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit '
142                'GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object '
143                'GL_ARB_vertex_program GL_ARB_vertex_shader '
144                'GL_ARB_vertex_type_10f_11f_11f_rev '
145                'GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array '
146                'GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float '
147                'GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add'
148                ' GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform '
149                'GL_EXT_blend_color GL_EXT_blend_equation_separate '
150                'GL_EXT_blend_func_separate GL_EXT_blend_minmax '
151                'GL_EXT_blend_subtract GL_EXT_compiled_vertex_array '
152                'GL_EXT_Cg_shader GL_EXT_depth_bounds_test '
153                'GL_EXT_direct_state_access GL_EXT_draw_buffers2 '
154                'GL_EXT_draw_instanced GL_EXT_draw_range_elements '
155                'GL_EXT_fog_coord GL_EXT_framebuffer_blit '
156                'GL_EXT_framebuffer_multisample '
157                'GL_EXTX_framebuffer_mixed_formats '
158                'GL_EXT_framebuffer_multisample_blit_scaled '
159                'GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB '
160                'GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters '
161                'GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays '
162                'GL_EXT_packed_depth_stencil GL_EXT_packed_float '
163                'GL_EXT_packed_pixels GL_EXT_pixel_buffer_object '
164                'GL_EXT_point_parameters GL_EXT_provoking_vertex '
165                'GL_EXT_rescale_normal GL_EXT_secondary_color '
166                'GL_EXT_separate_shader_objects '
167                'GL_EXT_separate_specular_color '
168                'GL_EXT_shader_image_load_store GL_EXT_shadow_funcs '
169                'GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D'
170                ' GL_EXT_texture_array GL_EXT_texture_buffer_object '
171                'GL_EXT_texture_compression_dxt1 '
172                'GL_EXT_texture_compression_latc '
173                'GL_EXT_texture_compression_rgtc '
174                'GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map '
175                'GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine '
176                'GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic '
177                'GL_EXT_texture_integer GL_EXT_texture_lod '
178                'GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp '
179                'GL_EXT_texture_object GL_EXT_texture_shared_exponent '
180                'GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode '
181                'GL_EXT_texture_storage GL_EXT_texture_swizzle '
182                'GL_EXT_timer_query GL_EXT_transform_feedback2 '
183                'GL_EXT_vertex_array GL_EXT_vertex_array_bgra '
184                'GL_EXT_vertex_attrib_64bit GL_EXT_x11_sync_object '
185                'GL_EXT_import_sync_object GL_IBM_rasterpos_clip '
186                'GL_IBM_texture_mirrored_repeat GL_KHR_debug '
187                'GL_KTX_buffer_region GL_NV_bindless_multi_draw_indirect '
188                'GL_NV_blend_equation_advanced GL_NV_blend_square '
189                'GL_NV_compute_program5 GL_NV_conditional_render '
190                'GL_NV_copy_depth_to_color GL_NV_copy_image '
191                'GL_NV_depth_buffer_float GL_NV_depth_clamp '
192                'GL_NV_draw_texture GL_NV_ES1_1_compatibility '
193                'GL_NV_explicit_multisample GL_NV_fence GL_NV_float_buffer '
194                'GL_NV_fog_distance GL_NV_fragment_program '
195                'GL_NV_fragment_program_option GL_NV_fragment_program2 '
196                'GL_NV_framebuffer_multisample_coverage '
197                'GL_NV_geometry_shader4 GL_NV_gpu_program4 '
198                'GL_NV_gpu_program4_1 GL_NV_gpu_program5 '
199                'GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 '
200                'GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent '
201                'GL_NV_multisample_coverage GL_NV_multisample_filter_hint '
202                'GL_NV_occlusion_query GL_NV_packed_depth_stencil '
203                'GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2'
204                ' GL_NV_path_rendering GL_NV_pixel_data_range '
205                'GL_NV_point_sprite GL_NV_primitive_restart '
206                'GL_NV_register_combiners GL_NV_register_combiners2 '
207                'GL_NV_shader_atomic_counters GL_NV_shader_atomic_float '
208                'GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object '
209                'GL_ARB_sparse_texture GL_NV_texgen_reflection '
210                'GL_NV_texture_barrier GL_NV_texture_compression_vtc '
211                'GL_NV_texture_env_combine4 GL_NV_texture_expand_normal '
212                'GL_NV_texture_multisample GL_NV_texture_rectangle '
213                'GL_NV_texture_shader GL_NV_texture_shader2 '
214                'GL_NV_texture_shader3 GL_NV_transform_feedback '
215                'GL_NV_transform_feedback2 GL_NV_vdpau_interop '
216                'GL_NV_vertex_array_range GL_NV_vertex_array_range2 '
217                'GL_NV_vertex_attrib_integer_64bit '
218                'GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program '
219                'GL_NV_vertex_program1_1 GL_NV_vertex_program2 '
220                'GL_NV_vertex_program2_option GL_NV_vertex_program3 '
221                'GL_NVX_conditional_render GL_NVX_gpu_memory_info '
222                'GL_SGIS_generate_mipmap GL_SGIS_texture_lod '
223                'GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum '
224        },
225    'devices':
226        [
227            {
228                'device_string': '',
229                'vendor_id': 4318.0,
230                'device_id': 3576.0,
231                'vendor_string': ''
232            }],
233    'driver_bug_workarounds':
234        ['clear_uniforms_before_first_program_use',
235         'disable_gl_path_rendering',
236         'init_gl_position_in_vertex_shader',
237         'init_vertex_attributes',
238         'remove_pow_with_constant_exponent',
239         'scalarize_vec_and_mat_constructor_args',
240         'use_current_program_after_successful_link',
241         'use_virtualized_gl_contexts']
242}
243