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