{
  "os_unix": 0,
  "os_bsd": 0,
  "os_linux": 0,
  "os_android": 0,
  "os_macosx": 0,
  "os_win": 1,
  "arch_ia32": 1,
  "arch_amd64": 0,
  "arch_arm": 0,
  "arch_aarch64": 0,
  "arch_e2k": 0,
  "arch_ppc64": 0,
  "build_debug": 0,
  "build_opengles": 0,
  "build_datetime": "Sep 13 2022 06:28:23",
  "build_revision": "27104",
  "build_msc": 1916,
  "build_icc": 0,
  "build_gcc": 0,
  "build_clang": 0,
  "gfx_card": "ATI AMD Radeon RX 6800",
  "gfx_drv_ver": "4.6.0 Compatibility Profile Context 23.20.13.01.231019 atioglxx.dll (23.10.230729_569461f)",
  "snd_card": "OpenAL Soft on 1 - U3277WB (AMD High Definition Audio Device); ",
  "snd_drv_ver": "1.1 ALSOFT 1.21.0",
  "sdl_build_version": "2.0.12",
  "sdl_runtime_version": "2.0.12",
  "sdl_video_backend": "Windows",
  "sdl_display_count": 1,
  "sdl_cpu_count": 16,
  "sdl_system_ram": 65442,
  "freetype": "2.10.4",
  "renderer_backend": {
    "name": "gl",
    "GL_VERSION": "4.6.0 Compatibility Profile Context 23.20.13.01.231019",
    "GL_VENDOR": "ATI Technologies Inc.",
    "GL_RENDERER": "AMD Radeon RX 6800",
    "GL_EXTENSIONS": "GL_EXT_abgr GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_texture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_subtexture GL_EXT_texture3D GL_EXT_bgra GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_multitexture GL_IBM_texture_mirrored_repeat GL_ARB_multisample GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_cube_map GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_NV_blend_square GL_NV_texgen_reflection GL_SUN_multi_draw_arrays WGL_EXT_swap_control GL_ARB_point_parameters GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_env_crossbar GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_ARB_shadow GL_ARB_shadow_ambient GL_ARB_texture_env_combine GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_NV_half_float GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_vertex_program GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_EXT_texture_rectangle GL_NV_primitive_restart GL_S3_s3tc GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_occlusion_query GL_ARB_point_sprite GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_EXT_blend_equation_separate GL_EXT_depth_bounds_test GL_ARB_color_buffer_float GL_ARB_draw_buffers GL_ARB_half_float_pixel GL_ARB_pixel_buffer_object GL_ARB_texture_float GL_ARB_texture_rectangle GL_EXT_framebuffer_object GL_EXT_pixel_buffer_object GL_EXT_texture_mirror_clamp GL_NV_float_buffer GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ATI_separate_stencil GL_ATI_shader_texture_lod GL_ATI_texture_mirror_once GL_EXT_bindable_uniform GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_packed_float GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_integer GL_EXT_transform_feedback GL_NV_depth_buffer_float GL_OES_EGL_image GL_EXT_provoking_vertex GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_rg GL_ARB_transform_feedback GL_ARB_vertex_array_object GL_EXT_direct_state_access GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_AMD_conservative_depth GL_AMD_seamless_cubemap_per_texture GL_AMD_texture_cube_map_array GL_ARB_compatibility GL_ARB_copy_buffer GL_ARB_depth_clamp GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod GL_ARB_sync GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_multisample_no_array GL_ARB_texture_query_lod GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ATI_meminfo GL_EXT_texture_storage GL_NV_copy_image GL_NV_texture_barrier GL_AMD_blend_minmax_factor GL_AMD_depth_clamp_separate GL_AMD_sample_positions GL_ARB_ES2_compatibility GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_compressed_texture_pixel_storage GL_ARB_debug_output GL_ARB_draw_indirect GL_ARB_explicit_attrib_location GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_occlusion_query2 GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_subroutine GL_ARB_shading_language_packing GL_ARB_tessellation_shader GL_ARB_texture_compression_bptc GL_ARB_texture_rgb10_a2ui GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_shader_image_load_store GL_EXT_texture_sRGB_decode GL_EXT_vertex_attrib_64bit GL_AMD_multi_draw_indirect GL_AMD_pinned_memory GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store GL_ARB_shading_language_420pack GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_debug_label GL_AMD_query_buffer_object GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_compute_shader GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_fragment_layer_viewport GL_ARB_framebuffer_no_attachments GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_EXT_copy_buffer GL_KHR_debug GL_KHR_texture_compression_astc_ldr GL_AMD_gpu_shader_half_float GL_AMD_gpu_shader_int64 GL_ARB_bindless_texture GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_enhanced_layouts GL_ARB_indirect_parameters GL_ARB_multi_bind GL_ARB_query_buffer_object GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_sparse_texture GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_shader_integer_mix GL_EXT_timer_query GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_NV_shader_atomic_int64 GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_shader_texture_image_samples GL_ARB_sparse_buffer GL_ARB_texture_barrier GL_ARB_transform_feedback_overflow_query GL_EXT_polygon_offset_clamp GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_OVR_multiview GL_ARB_gpu_shader_int64 GL_ARB_parallel_shader_compile GL_ARB_post_depth_coverage GL_ARB_sample_locations GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_ARB_shader_clock GL_ARB_shader_viewport_layer_array GL_ARB_texture_filter_minmax GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error GL_OVR_multiview2 GL_ARB_gl_spirv GL_EXT_memory_object GL_EXT_memory_object_win32 GL_EXT_semaphore GL_EXT_semaphore_win32 GL_AMD_gpu_shader_int16 GL_ARB_polygon_offset_clamp GL_ARB_spirv_extensions GL_ARB_texture_filter_anisotropic GL_EXT_texture_compression_bptc GL_KHR_parallel_shader_compile GL_KHR_shader_subgroup GL_EXT_nonuniform_qualifier GL_NV_timeline_semaphore",
    "GL_MAX_CLIP_PLANES": 8,
    "GL_SUBPIXEL_BITS": 8,
    "GL_MAX_3D_TEXTURE_SIZE": 8192,
    "GL_MAX_TEXTURE_SIZE": 16384,
    "GL_MAX_CUBE_MAP_TEXTURE_SIZE": 16384,
    "GL_MAX_VIEWPORT_DIMS[0]": 16384,
    "GL_MAX_VIEWPORT_DIMS[1]": 16384,
    "GL_RGBA_MODE": 1,
    "GL_INDEX_MODE": 0,
    "GL_DOUBLEBUFFER": 1,
    "GL_STEREO": 0,
    "GL_ALIASED_POINT_SIZE_RANGE[0]": 1,
    "GL_ALIASED_POINT_SIZE_RANGE[1]": 8192,
    "GL_ALIASED_LINE_WIDTH_RANGE[0]": 1,
    "GL_ALIASED_LINE_WIDTH_RANGE[1]": 8191,
    "GL_MAX_ELEMENTS_INDICES": 536870911,
    "GL_MAX_ELEMENTS_VERTICES": 536870911,
    "GL_MAX_TEXTURE_UNITS": 8,
    "GL_SAMPLE_BUFFERS": 0,
    "GL_SAMPLES": 0,
    "GL_RED_BITS": 8,
    "GL_GREEN_BITS": 8,
    "GL_BLUE_BITS": 8,
    "GL_ALPHA_BITS": 8,
    "GL_INDEX_BITS": 0,
    "GL_DEPTH_BITS": 24,
    "GL_STENCIL_BITS": 8,
    "GL_MAX_TEXTURE_LOD_BIAS_EXT": 16,
    "GL_SAMPLES_PASSED.GL_QUERY_COUNTER_BITS": 64,
    "GL_SHADING_LANGUAGE_VERSION_ARB": "4.60",
    "GL_MAX_VERTEX_ATTRIBS_ARB": 32,
    "GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB": 8000,
    "GL_MAX_VARYING_FLOATS_ARB": 64,
    "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB": 160,
    "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB": 32,
    "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB": 8000,
    "GL_MAX_TEXTURE_IMAGE_UNITS_ARB": 32,
    "GL_MAX_TEXTURE_COORDS_ARB": 8,
    "GL_MAX_DRAW_BUFFERS_ARB": 8,
    "GL_MIN_PROGRAM_TEXEL_OFFSET_EXT": -8,
    "GL_MAX_PROGRAM_TEXEL_OFFSET_EXT": 7,
    "GL_MAX_COLOR_ATTACHMENTS_EXT": 8,
    "GL_MAX_RENDERBUFFER_SIZE_EXT": 16384,
    "GL_MAX_SAMPLES_EXT": 8,
    "GL_MAX_ARRAY_TEXTURE_LAYERS_EXT": 8192,
    "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT": 128,
    "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT": 4,
    "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT": 16,
    "GL_TIME_ELAPSED.GL_QUERY_COUNTER_BITS": 64,
    "GL_TIMESTAMP.GL_QUERY_COUNTER_BITS": 64,
    "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT": 16,
    "GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB": 16384,
    "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB": 32,
    "GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB": 1023,
    "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB": 4095,
    "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB": 8000,
    "GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB": 128,
    "GL_MAX_VERTEX_VARYING_COMPONENTS_ARB": 128
  },
  "video_desktop_xres": 2560,
  "video_desktop_yres": 1440,
  "video_desktop_bpp": 24,
  "video_desktop_freq": 60,
  "uname_sysname": "Win11",
  "uname_release": "",
  "uname_version": "10.0.22635",
  "uname_machine": "x64",
  "cpu_identifier": "AMD Ryzen 9 5950X 16-Core Processor  ",
  "cpu_frequency": 3394000000,
  "cpu_pagesize": 4096,
  "cpu_largepagesize": 2097152,
  "cpu_numprocs": 16,
  "numa_numnodes": 1,
  "numa_factor": 1,
  "numa_interleaved": false,
  "ram_total": 65536,
  "ram_total_os": 65443,
  "x86_vendor": 2,
  "x86_model": 1,
  "x86_family": 25,
  "x86_caps[0]": 2130194955,
  "x86_caps[1]": 395049983,
  "x86_caps[2]": 1975662591,
  "x86_caps[3]": 802421759,
  "timer_resolution": 1e-7,
  "hardware_concurrency": 16
}
