Skip to content

Instantly share code, notes, and snippets.

@brianosman
Created August 9, 2017 19:11
Show Gist options
  • Save brianosman/872f33be9af49031023b791e7db0b1fb to your computer and use it in GitHub Desktop.
Save brianosman/872f33be9af49031023b791e7db0b1fb to your computer and use it in GitHub Desktop.
GrContext::dump formatting example
{
"backend": "OpenGL",
"caps": {
"MIP Map Support": true,
"NPOT Texture Tile Support": true,
"sRGB Support": true,
"sRGB Write Control": true,
"sRGB Decode Disable": true,
"Discard Render Target Support": true,
"Reuse Scratch Textures": true,
"Reuse Scratch Buffers": true,
"Gpu Tracing Support": false,
"Oversized Stencil Support": true,
"Texture Barrier Support": true,
"Sample Locations Support": true,
"Multisample disable support": true,
"Instance Attrib Support": true,
"Uses Mixed Samples": false,
"Prefer client-side dynamic buffers": false,
"Full screen clear is free": false,
"Must clear buffer memory": false,
"Sample shading support": true,
"Fence sync support": true,
"Cross context texture support": true,
"Draw Instead of Clear [workaround]": false,
"Prefer VRAM Use over flushes [workaround]": true,
"Advanced Blend Equation Blacklist": "0x0",
"Max Vertex Attributes": 16,
"Max Texture Size": 16384,
"Max Render Target Size": 16384,
"Max Color Sample Count": 64,
"Max Stencil Sample Count": 64,
"Max Raster Samples": 0,
"Max Window Rectangles": 8,
"Instanced Support": "None",
"Blend Equation Support": "Advanced Coherent",
"Map Buffer Support": "can_map partial",
"configs": [
{ "name": "Alpha8", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "Gray8", "renderable": false, "renderableMSAA": false, "texturable": true },
{ "name": "RGB565", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "RGBA444", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "RGBA8888", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "BGRA8888", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "SRGBA8888", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "SBGRA8888", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "RGBA8888_sint", "renderable": false, "renderableMSAA": false, "texturable": true },
{ "name": "RGBAFloat", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "RGFloat", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "AlphaHalf", "renderable": true, "renderableMSAA": true, "texturable": true },
{ "name": "RGBAHalf", "renderable": true, "renderableMSAA": true, "texturable": true }
],
"GL caps": {
"Stencil Formats": [
{ "stencil bits": 8, "total bits": 8 },
{ "stencil bits": 16, "total bits": 16 },
{ "stencil bits": 8, "total bits": 32 },
{ "stencil bits": 4, "total bits": 4 },
{ "stencil bits": -1, "total bits": -1 }
],
"Core Profile": false,
"MSAA Type": "Standard",
"Invalidate FB Type": "Invalidate",
"Map Buffer Type": "MapBufferRange",
"Max FS Uniform Vectors": 1024,
"Unpack Row length support": true,
"Unpack Flip Y support": false,
"Pack Row length support": true,
"Pack Flip Y support": false,
"Texture Usage support": false,
"GL_R support": true,
"Alpha8 is renderable": true,
"GL_ARB_imaging support": true,
"Vertex array object support": true,
"Direct state access support": true,
"Debug support": true,
"Draw indirect support": true,
"Multi draw indirect support": true,
"Base instance support": true,
"RGBA 8888 pixel ops are slow": false,
"Partial FBO read is slow": false,
"Bind uniform location support": false,
"Rectangle texture support": true,
"Texture swizzle support": true,
"BGRA to RGBA readback conversions are slow": false,
"Intermediate texture for partial updates of unorm textures ever bound to FBOs": false,
"Intermediate texture for all updates of textures bound to FBOs": false,
"configs": [
{ "flags": "0x0", "b_internal": "0x0", "s_internal": "0x0", "e_format": "0x0", "e_format_teximage": "0x0", "e_type": "0x0", "i_for_teximage": "0x0", "i_for_renderbuffer": "0x0" },
{ "flags": "0x7e", "b_internal": "0x1903", "s_internal": "0x8229", "e_format": "0x1903", "e_format_teximage": "0x1903", "e_type": "0x1401", "i_for_teximage": "0x8229", "i_for_renderbuffer": "0x1903" },
{ "flags": "0x62", "b_internal": "0x1903", "s_internal": "0x8229", "e_format": "0x1903", "e_format_teximage": "0x1903", "e_type": "0x1401", "i_for_teximage": "0x8229", "i_for_renderbuffer": "0x1903" },
{ "flags": "0x1e", "b_internal": "0x1907", "s_internal": "0x8d62", "e_format": "0x1907", "e_format_teximage": "0x1907", "e_type": "0x8363", "i_for_teximage": "0x8d62", "i_for_renderbuffer": "0x1907" },
{ "flags": "0x3e", "b_internal": "0x1908", "s_internal": "0x8056", "e_format": "0x1908", "e_format_teximage": "0x1908", "e_type": "0x8033", "i_for_teximage": "0x8056", "i_for_renderbuffer": "0x1908" },
{ "flags": "0xff", "b_internal": "0x1908", "s_internal": "0x8058", "e_format": "0x1908", "e_format_teximage": "0x1908", "e_type": "0x1401", "i_for_teximage": "0x8058", "i_for_renderbuffer": "0x1908" },
{ "flags": "0x3e", "b_internal": "0x1908", "s_internal": "0x8058", "e_format": "0x80e1", "e_format_teximage": "0x80e1", "e_type": "0x1401", "i_for_teximage": "0x8058", "i_for_renderbuffer": "0x1908" },
{ "flags": "0x3e", "b_internal": "0x8c42", "s_internal": "0x8c43", "e_format": "0x1908", "e_format_teximage": "0x1908", "e_type": "0x1401", "i_for_teximage": "0x8c43", "i_for_renderbuffer": "0x8c42" },
{ "flags": "0x3e", "b_internal": "0x8c42", "s_internal": "0x8c43", "e_format": "0x80e1", "e_format_teximage": "0x80e1", "e_type": "0x1401", "i_for_teximage": "0x8c43", "i_for_renderbuffer": "0x8c42" },
{ "flags": "0xb2", "b_internal": "0x8d99", "s_internal": "0x8d8e", "e_format": "0x8d99", "e_format_teximage": "0x8d99", "e_type": "0x1400", "i_for_teximage": "0x8d8e", "i_for_renderbuffer": "0x8d99" },
{ "flags": "0xfe", "b_internal": "0x1908", "s_internal": "0x8814", "e_format": "0x1908", "e_format_teximage": "0x1908", "e_type": "0x1406", "i_for_teximage": "0x8814", "i_for_renderbuffer": "0x1908" },
{ "flags": "0x7e", "b_internal": "0x8227", "s_internal": "0x8230", "e_format": "0x8227", "e_format_teximage": "0x8227", "e_type": "0x1406", "i_for_teximage": "0x8230", "i_for_renderbuffer": "0x8227" },
{ "flags": "0x1e", "b_internal": "0x1903", "s_internal": "0x822d", "e_format": "0x1903", "e_format_teximage": "0x1903", "e_type": "0x140b", "i_for_teximage": "0x822d", "i_for_renderbuffer": "0x1903" },
{ "flags": "0xfe", "b_internal": "0x1908", "s_internal": "0x881a", "e_format": "0x1908", "e_format_teximage": "0x1908", "e_type": "0x140b", "i_for_teximage": "0x881a", "i_for_renderbuffer": "0x1908" }
]
},
"shaderCaps": {
"Shader Derivative Support": true,
"Geometry Shader Support": true,
"Path Rendering Support": false,
"Dst Read In Shader Support": false,
"Dual Source Blending Support": true,
"Integer Support": true,
"Texel Buffer Support": true,
"Image Load Store Support": true,
"Variable Precision": false,
"vertex precisions": [
{ "precision": "low", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "medium", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "high", "log_low": 127, "log_high": 127, "bits": 23 }
],
"geometry precisions": [
{ "precision": "low", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "medium", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "high", "log_low": 127, "log_high": 127, "bits": 23 }
],
"fragment precisions": [
{ "precision": "low", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "medium", "log_low": 127, "log_high": 127, "bits": 23 },
{ "precision": "high", "log_low": 127, "log_high": 127, "bits": 23 }
],
"FB Fetch Support": false,
"Drops tile on zero divide": false,
"Bindless texture support": true,
"Uses precision modifiers": false,
"Can use any() function": true,
"Can use min() and abs() together": true,
"Can use fract() for negative values": true,
"Must force negated atan param to float": false,
"Must use local out color for FBFetch": false,
"Must implement geo shader invocations with loop": false,
"Must obfuscate uniform color": false,
"Must guard division even after explicit zero check": false,
"Flat interpolation support": true,
"No perspective interpolation support": true,
"Multisample interpolation support": true,
"Sample variables support": true,
"Sample mask override coverage support": false,
"External texture support": false,
"texelFetch support": true,
"sk_VertexID support": true,
"Max VS Samplers": 32,
"Max GS Samplers": 32,
"Max FS Samplers": 32,
"Max Combined Samplers": 32,
"Max VS Image Storages": 8,
"Max GS Image Storages": 8,
"Max FS Image Storages": 8,
"Max Combined Image Storages": 8,
"Advanced blend equation interaction": "Automatic"
}
},
"gpu": {
"GL GPU": {
"GL_VERSION": "4.5.0 NVIDIA 375.63",
"GL_RENDERER": "Quadro K2200/PCIe/SSE2",
"GL_VENDOR": "NVIDIA Corporation",
"GL_SHADING_LANGUAGE_VERSION": "4.50 NVIDIA",
"extensions": [
"GL_AMD_multi_draw_indirect",
"GL_AMD_seamless_cubemap_per_texture",
"GL_ARB_ES2_compatibility",
"GL_ARB_ES3_1_compatibility",
"GL_ARB_ES3_2_compatibility",
"GL_ARB_ES3_compatibility",
"GL_ARB_arrays_of_arrays",
"GL_ARB_base_instance",
"GL_ARB_bindless_texture",
"GL_ARB_blend_func_extended",
"GL_ARB_buffer_storage",
"GL_ARB_cl_event",
"GL_ARB_clear_buffer_object",
"GL_ARB_clear_texture",
"GL_ARB_clip_control",
"GL_ARB_color_buffer_float",
"GL_ARB_compatibility",
"GL_ARB_compressed_texture_pixel_storage",
"GL_ARB_compute_shader",
"GL_ARB_compute_variable_group_size",
"GL_ARB_conditional_render_inverted",
"GL_ARB_conservative_depth",
"GL_ARB_copy_buffer",
"GL_ARB_copy_image",
"GL_ARB_cull_distance",
"GL_ARB_debug_output",
"GL_ARB_depth_buffer_float",
"GL_ARB_depth_clamp",
"GL_ARB_depth_texture",
"GL_ARB_derivative_control",
"GL_ARB_direct_state_access",
"GL_ARB_draw_buffers",
"GL_ARB_draw_buffers_blend",
"GL_ARB_draw_elements_base_vertex",
"GL_ARB_draw_indirect",
"GL_ARB_draw_instanced",
"GL_ARB_enhanced_layouts",
"GL_ARB_explicit_attrib_location",
"GL_ARB_explicit_uniform_location",
"GL_ARB_fragment_coord_conventions",
"GL_ARB_fragment_layer_viewport",
"GL_ARB_fragment_program",
"GL_ARB_fragment_program_shadow",
"GL_ARB_fragment_shader",
"GL_ARB_framebuffer_no_attachments",
"GL_ARB_framebuffer_object",
"GL_ARB_framebuffer_sRGB",
"GL_ARB_geometry_shader4",
"GL_ARB_get_program_binary",
"GL_ARB_get_texture_sub_image",
"GL_ARB_gl_spirv",
"GL_ARB_gpu_shader5",
"GL_ARB_gpu_shader_fp64",
"GL_ARB_gpu_shader_int64",
"GL_ARB_half_float_pixel",
"GL_ARB_half_float_vertex",
"GL_ARB_imaging",
"GL_ARB_indirect_parameters",
"GL_ARB_instanced_arrays",
"GL_ARB_internalformat_query",
"GL_ARB_internalformat_query2",
"GL_ARB_invalidate_subdata",
"GL_ARB_map_buffer_alignment",
"GL_ARB_map_buffer_range",
"GL_ARB_multi_bind",
"GL_ARB_multi_draw_indirect",
"GL_ARB_multisample",
"GL_ARB_multitexture",
"GL_ARB_occlusion_query",
"GL_ARB_occlusion_query2",
"GL_ARB_parallel_shader_compile",
"GL_ARB_pipeline_statistics_query",
"GL_ARB_pixel_buffer_object",
"GL_ARB_point_parameters",
"GL_ARB_point_sprite",
"GL_ARB_program_interface_query",
"GL_ARB_provoking_vertex",
"GL_ARB_query_buffer_object",
"GL_ARB_robust_buffer_access_behavior",
"GL_ARB_robustness",
"GL_ARB_sample_shading",
"GL_ARB_sampler_objects",
"GL_ARB_seamless_cube_map",
"GL_ARB_seamless_cubemap_per_texture",
"GL_ARB_separate_shader_objects",
"GL_ARB_shader_atomic_counter_ops",
"GL_ARB_shader_atomic_counters",
"GL_ARB_shader_ballot",
"GL_ARB_shader_bit_encoding",
"GL_ARB_shader_clock",
"GL_ARB_shader_draw_parameters",
"GL_ARB_shader_group_vote",
"GL_ARB_shader_image_load_store",
"GL_ARB_shader_image_size",
"GL_ARB_shader_objects",
"GL_ARB_shader_precision",
"GL_ARB_shader_storage_buffer_object",
"GL_ARB_shader_subroutine",
"GL_ARB_shader_texture_image_samples",
"GL_ARB_shader_texture_lod",
"GL_ARB_shading_language_100",
"GL_ARB_shading_language_420pack",
"GL_ARB_shading_language_include",
"GL_ARB_shading_language_packing",
"GL_ARB_shadow",
"GL_ARB_sparse_buffer",
"GL_ARB_sparse_texture",
"GL_ARB_stencil_texturing",
"GL_ARB_sync",
"GL_ARB_tessellation_shader",
"GL_ARB_texture_barrier",
"GL_ARB_texture_border_clamp",
"GL_ARB_texture_buffer_object",
"GL_ARB_texture_buffer_object_rgb32",
"GL_ARB_texture_buffer_range",
"GL_ARB_texture_compression",
"GL_ARB_texture_compression_bptc",
"GL_ARB_texture_compression_rgtc",
"GL_ARB_texture_cube_map",
"GL_ARB_texture_cube_map_array",
"GL_ARB_texture_env_add",
"GL_ARB_texture_env_combine",
"GL_ARB_texture_env_crossbar",
"GL_ARB_texture_env_dot3",
"GL_ARB_texture_float",
"GL_ARB_texture_gather",
"GL_ARB_texture_mirror_clamp_to_edge",
"GL_ARB_texture_mirrored_repeat",
"GL_ARB_texture_multisample",
"GL_ARB_texture_non_power_of_two",
"GL_ARB_texture_query_levels",
"GL_ARB_texture_query_lod",
"GL_ARB_texture_rectangle",
"GL_ARB_texture_rg",
"GL_ARB_texture_rgb10_a2ui",
"GL_ARB_texture_stencil8",
"GL_ARB_texture_storage",
"GL_ARB_texture_storage_multisample",
"GL_ARB_texture_swizzle",
"GL_ARB_texture_view",
"GL_ARB_timer_query",
"GL_ARB_transform_feedback2",
"GL_ARB_transform_feedback3",
"GL_ARB_transform_feedback_instanced",
"GL_ARB_transform_feedback_overflow_query",
"GL_ARB_transpose_matrix",
"GL_ARB_uniform_buffer_object",
"GL_ARB_vertex_array_bgra",
"GL_ARB_vertex_array_object",
"GL_ARB_vertex_attrib_64bit",
"GL_ARB_vertex_attrib_binding",
"GL_ARB_vertex_buffer_object",
"GL_ARB_vertex_program",
"GL_ARB_vertex_shader",
"GL_ARB_vertex_type_10f_11f_11f_rev",
"GL_ARB_vertex_type_2_10_10_10_rev",
"GL_ARB_viewport_array",
"GL_ARB_window_pos",
"GL_ATI_draw_buffers",
"GL_ATI_texture_float",
"GL_ATI_texture_mirror_once",
"GL_EXTX_framebuffer_mixed_formats",
"GL_EXT_Cg_shader",
"GL_EXT_abgr",
"GL_EXT_bgra",
"GL_EXT_bindable_uniform",
"GL_EXT_blend_color",
"GL_EXT_blend_equation_separate",
"GL_EXT_blend_func_separate",
"GL_EXT_blend_minmax",
"GL_EXT_blend_subtract",
"GL_EXT_compiled_vertex_array",
"GL_EXT_depth_bounds_test",
"GL_EXT_direct_state_access",
"GL_EXT_draw_buffers2",
"GL_EXT_draw_instanced",
"GL_EXT_draw_range_elements",
"GL_EXT_fog_coord",
"GL_EXT_framebuffer_blit",
"GL_EXT_framebuffer_multisample",
"GL_EXT_framebuffer_multisample_blit_scaled",
"GL_EXT_framebuffer_object",
"GL_EXT_framebuffer_sRGB",
"GL_EXT_geometry_shader4",
"GL_EXT_gpu_program_parameters",
"GL_EXT_gpu_shader4",
"GL_EXT_import_sync_object",
"GL_EXT_multi_draw_arrays",
"GL_EXT_packed_depth_stencil",
"GL_EXT_packed_float",
"GL_EXT_packed_pixels",
"GL_EXT_pixel_buffer_object",
"GL_EXT_point_parameters",
"GL_EXT_polygon_offset_clamp",
"GL_EXT_provoking_vertex",
"GL_EXT_rescale_normal",
"GL_EXT_secondary_color",
"GL_EXT_separate_shader_objects",
"GL_EXT_separate_specular_color",
"GL_EXT_shader_image_load_formatted",
"GL_EXT_shader_image_load_store",
"GL_EXT_shader_integer_mix",
"GL_EXT_shadow_funcs",
"GL_EXT_stencil_two_side",
"GL_EXT_stencil_wrap",
"GL_EXT_texture3D",
"GL_EXT_texture_array",
"GL_EXT_texture_buffer_object",
"GL_EXT_texture_compression_dxt1",
"GL_EXT_texture_compression_latc",
"GL_EXT_texture_compression_rgtc",
"GL_EXT_texture_compression_s3tc",
"GL_EXT_texture_cube_map",
"GL_EXT_texture_edge_clamp",
"GL_EXT_texture_env_add",
"GL_EXT_texture_env_combine",
"GL_EXT_texture_env_dot3",
"GL_EXT_texture_filter_anisotropic",
"GL_EXT_texture_integer",
"GL_EXT_texture_lod",
"GL_EXT_texture_lod_bias",
"GL_EXT_texture_mirror_clamp",
"GL_EXT_texture_object",
"GL_EXT_texture_sRGB",
"GL_EXT_texture_sRGB_decode",
"GL_EXT_texture_shared_exponent",
"GL_EXT_texture_storage",
"GL_EXT_texture_swizzle",
"GL_EXT_timer_query",
"GL_EXT_transform_feedback2",
"GL_EXT_vertex_array",
"GL_EXT_vertex_array_bgra",
"GL_EXT_vertex_attrib_64bit",
"GL_EXT_window_rectangles",
"GL_IBM_rasterpos_clip",
"GL_IBM_texture_mirrored_repeat",
"GL_KHR_blend_equation_advanced",
"GL_KHR_blend_equation_advanced_coherent",
"GL_KHR_context_flush_control",
"GL_KHR_debug",
"GL_KHR_no_error",
"GL_KHR_robust_buffer_access_behavior",
"GL_KHR_robustness",
"GL_KTX_buffer_region",
"GL_NVX_conditional_render",
"GL_NVX_gpu_memory_info",
"GL_NVX_multigpu_info",
"GL_NVX_nvenc_interop",
"GL_NV_ES1_1_compatibility",
"GL_NV_ES3_1_compatibility",
"GL_NV_alpha_to_coverage_dither_control",
"GL_NV_bindless_multi_draw_indirect",
"GL_NV_bindless_multi_draw_indirect_count",
"GL_NV_bindless_texture",
"GL_NV_blend_equation_advanced",
"GL_NV_blend_equation_advanced_coherent",
"GL_NV_blend_square",
"GL_NV_command_list",
"GL_NV_compute_program5",
"GL_NV_conditional_render",
"GL_NV_copy_depth_to_color",
"GL_NV_copy_image",
"GL_NV_deep_texture3D",
"GL_NV_depth_buffer_float",
"GL_NV_depth_clamp",
"GL_NV_draw_texture",
"GL_NV_draw_vulkan_image",
"GL_NV_explicit_multisample",
"GL_NV_fence",
"GL_NV_float_buffer",
"GL_NV_fog_distance",
"GL_NV_fragment_program",
"GL_NV_fragment_program2",
"GL_NV_fragment_program_option",
"GL_NV_framebuffer_multisample_coverage",
"GL_NV_geometry_shader4",
"GL_NV_gpu_program4",
"GL_NV_gpu_program4_1",
"GL_NV_gpu_program5",
"GL_NV_gpu_program5_mem_extended",
"GL_NV_gpu_program_fp64",
"GL_NV_gpu_shader5",
"GL_NV_half_float",
"GL_NV_internalformat_sample_query",
"GL_NV_light_max_exponent",
"GL_NV_multisample_coverage",
"GL_NV_multisample_filter_hint",
"GL_NV_occlusion_query",
"GL_NV_packed_depth_stencil",
"GL_NV_parameter_buffer_object",
"GL_NV_parameter_buffer_object2",
"GL_NV_path_rendering",
"GL_NV_pixel_data_range",
"GL_NV_point_sprite",
"GL_NV_primitive_restart",
"GL_NV_register_combiners",
"GL_NV_register_combiners2",
"GL_NV_shader_atomic_counters",
"GL_NV_shader_atomic_float",
"GL_NV_shader_atomic_int64",
"GL_NV_shader_buffer_load",
"GL_NV_shader_storage_buffer_object",
"GL_NV_shader_thread_group",
"GL_NV_shader_thread_shuffle",
"GL_NV_texgen_reflection",
"GL_NV_texture_barrier",
"GL_NV_texture_compression_vtc",
"GL_NV_texture_env_combine4",
"GL_NV_texture_multisample",
"GL_NV_texture_rectangle",
"GL_NV_texture_shader",
"GL_NV_texture_shader2",
"GL_NV_texture_shader3",
"GL_NV_transform_feedback",
"GL_NV_transform_feedback2",
"GL_NV_uniform_buffer_unified_memory",
"GL_NV_vertex_array_range",
"GL_NV_vertex_array_range2",
"GL_NV_vertex_attrib_integer_64bit",
"GL_NV_vertex_buffer_unified_memory",
"GL_NV_vertex_program",
"GL_NV_vertex_program1_1",
"GL_NV_vertex_program2",
"GL_NV_vertex_program2_option",
"GL_NV_vertex_program3",
"GL_S3_s3tc",
"GL_SGIS_generate_mipmap",
"GL_SGIS_texture_lod",
"GL_SGIX_depth_texture",
"GL_SGIX_shadow",
"GL_SUN_slice_accum",
"GL_WIN_swap_hint",
"WGL_EXT_swap_control"
]
}
}
}
{
"backend": "OpenGL",
"caps": {
"MIP Map Support": true,
"NPOT Texture Tile Support": true,
"sRGB Support": true,
"sRGB Write Control": true,
"sRGB Decode Disable": true,
"Discard Render Target Support": true,
"Reuse Scratch Textures": true,
"Reuse Scratch Buffers": true,
"Gpu Tracing Support": false,
"Oversized Stencil Support": true,
"Texture Barrier Support": true,
"Sample Locations Support": true,
"Multisample disable support": true,
"Instance Attrib Support": true,
"Uses Mixed Samples": false,
"Prefer client-side dynamic buffers": false,
"Full screen clear is free": false,
"Must clear buffer memory": false,
"Sample shading support": true,
"Fence sync support": true,
"Cross context texture support": true,
"Draw Instead of Clear [workaround]": false,
"Prefer VRAM Use over flushes [workaround]": true,
"Advanced Blend Equation Blacklist": "0x0",
"Max Vertex Attributes": 16,
"Max Texture Size": 16384,
"Max Render Target Size": 16384,
"Max Color Sample Count": 64,
"Max Stencil Sample Count": 64,
"Max Raster Samples": 0,
"Max Window Rectangles": 8,
"Instanced Support": "None",
"Blend Equation Support": "Advanced Coherent",
"Map Buffer Support": "can_map partial",
"configs": [
{
"name": "Alpha8",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "Gray8",
"renderable": false,
"renderableMSAA": false,
"texturable": true
},
{
"name": "RGB565",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "RGBA444",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "RGBA8888",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "BGRA8888",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "SRGBA8888",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "SBGRA8888",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "RGBA8888_sint",
"renderable": false,
"renderableMSAA": false,
"texturable": true
},
{
"name": "RGBAFloat",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "RGFloat",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "AlphaHalf",
"renderable": true,
"renderableMSAA": true,
"texturable": true
},
{
"name": "RGBAHalf",
"renderable": true,
"renderableMSAA": true,
"texturable": true
}
],
"GL caps": {
"Stencil Formats": [
{
"stencil bits": 8,
"total bits": 8
},
{
"stencil bits": 16,
"total bits": 16
},
{
"stencil bits": 8,
"total bits": 32
},
{
"stencil bits": 4,
"total bits": 4
},
{
"stencil bits": -1,
"total bits": -1
}
],
"Core Profile": false,
"MSAA Type": "Standard",
"Invalidate FB Type": "Invalidate",
"Map Buffer Type": "MapBufferRange",
"Max FS Uniform Vectors": 1024,
"Unpack Row length support": true,
"Unpack Flip Y support": false,
"Pack Row length support": true,
"Pack Flip Y support": false,
"Texture Usage support": false,
"GL_R support": true,
"Alpha8 is renderable": true,
"GL_ARB_imaging support": true,
"Vertex array object support": true,
"Direct state access support": true,
"Debug support": true,
"Draw indirect support": true,
"Multi draw indirect support": true,
"Base instance support": true,
"RGBA 8888 pixel ops are slow": false,
"Partial FBO read is slow": false,
"Bind uniform location support": false,
"Rectangle texture support": true,
"Texture swizzle support": true,
"BGRA to RGBA readback conversions are slow": false,
"Intermediate texture for partial updates of unorm textures ever bound to FBOs": false,
"Intermediate texture for all updates of textures bound to FBOs": false,
"configs": [
{
"flags": "0x0",
"b_internal": "0x0",
"s_internal": "0x0",
"e_format": "0x0",
"e_format_teximage": "0x0",
"e_type": "0x0",
"i_for_teximage": "0x0",
"i_for_renderbuffer": "0x0"
},
{
"flags": "0x7e",
"b_internal": "0x1903",
"s_internal": "0x8229",
"e_format": "0x1903",
"e_format_teximage": "0x1903",
"e_type": "0x1401",
"i_for_teximage": "0x8229",
"i_for_renderbuffer": "0x1903"
},
{
"flags": "0x62",
"b_internal": "0x1903",
"s_internal": "0x8229",
"e_format": "0x1903",
"e_format_teximage": "0x1903",
"e_type": "0x1401",
"i_for_teximage": "0x8229",
"i_for_renderbuffer": "0x1903"
},
{
"flags": "0x1e",
"b_internal": "0x1907",
"s_internal": "0x8d62",
"e_format": "0x1907",
"e_format_teximage": "0x1907",
"e_type": "0x8363",
"i_for_teximage": "0x8d62",
"i_for_renderbuffer": "0x1907"
},
{
"flags": "0x3e",
"b_internal": "0x1908",
"s_internal": "0x8056",
"e_format": "0x1908",
"e_format_teximage": "0x1908",
"e_type": "0x8033",
"i_for_teximage": "0x8056",
"i_for_renderbuffer": "0x1908"
},
{
"flags": "0xff",
"b_internal": "0x1908",
"s_internal": "0x8058",
"e_format": "0x1908",
"e_format_teximage": "0x1908",
"e_type": "0x1401",
"i_for_teximage": "0x8058",
"i_for_renderbuffer": "0x1908"
},
{
"flags": "0x3e",
"b_internal": "0x1908",
"s_internal": "0x8058",
"e_format": "0x80e1",
"e_format_teximage": "0x80e1",
"e_type": "0x1401",
"i_for_teximage": "0x8058",
"i_for_renderbuffer": "0x1908"
},
{
"flags": "0x3e",
"b_internal": "0x8c42",
"s_internal": "0x8c43",
"e_format": "0x1908",
"e_format_teximage": "0x1908",
"e_type": "0x1401",
"i_for_teximage": "0x8c43",
"i_for_renderbuffer": "0x8c42"
},
{
"flags": "0x3e",
"b_internal": "0x8c42",
"s_internal": "0x8c43",
"e_format": "0x80e1",
"e_format_teximage": "0x80e1",
"e_type": "0x1401",
"i_for_teximage": "0x8c43",
"i_for_renderbuffer": "0x8c42"
},
{
"flags": "0xb2",
"b_internal": "0x8d99",
"s_internal": "0x8d8e",
"e_format": "0x8d99",
"e_format_teximage": "0x8d99",
"e_type": "0x1400",
"i_for_teximage": "0x8d8e",
"i_for_renderbuffer": "0x8d99"
},
{
"flags": "0xfe",
"b_internal": "0x1908",
"s_internal": "0x8814",
"e_format": "0x1908",
"e_format_teximage": "0x1908",
"e_type": "0x1406",
"i_for_teximage": "0x8814",
"i_for_renderbuffer": "0x1908"
},
{
"flags": "0x7e",
"b_internal": "0x8227",
"s_internal": "0x8230",
"e_format": "0x8227",
"e_format_teximage": "0x8227",
"e_type": "0x1406",
"i_for_teximage": "0x8230",
"i_for_renderbuffer": "0x8227"
},
{
"flags": "0x1e",
"b_internal": "0x1903",
"s_internal": "0x822d",
"e_format": "0x1903",
"e_format_teximage": "0x1903",
"e_type": "0x140b",
"i_for_teximage": "0x822d",
"i_for_renderbuffer": "0x1903"
},
{
"flags": "0xfe",
"b_internal": "0x1908",
"s_internal": "0x881a",
"e_format": "0x1908",
"e_format_teximage": "0x1908",
"e_type": "0x140b",
"i_for_teximage": "0x881a",
"i_for_renderbuffer": "0x1908"
}
]
},
"shaderCaps": {
"Shader Derivative Support": true,
"Geometry Shader Support": true,
"Path Rendering Support": false,
"Dst Read In Shader Support": false,
"Dual Source Blending Support": true,
"Integer Support": true,
"Texel Buffer Support": true,
"Image Load Store Support": true,
"Variable Precision": false,
"vertex precisions": [
{
"precision": "low",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "medium",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "high",
"log_low": 127,
"log_high": 127,
"bits": 23
}
],
"geometry precisions": [
{
"precision": "low",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "medium",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "high",
"log_low": 127,
"log_high": 127,
"bits": 23
}
],
"fragment precisions": [
{
"precision": "low",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "medium",
"log_low": 127,
"log_high": 127,
"bits": 23
},
{
"precision": "high",
"log_low": 127,
"log_high": 127,
"bits": 23
}
],
"FB Fetch Support": false,
"Drops tile on zero divide": false,
"Bindless texture support": true,
"Uses precision modifiers": false,
"Can use any() function": true,
"Can use min() and abs() together": true,
"Can use fract() for negative values": true,
"Must force negated atan param to float": false,
"Must use local out color for FBFetch": false,
"Must implement geo shader invocations with loop": false,
"Must obfuscate uniform color": false,
"Must guard division even after explicit zero check": false,
"Flat interpolation support": true,
"No perspective interpolation support": true,
"Multisample interpolation support": true,
"Sample variables support": true,
"Sample mask override coverage support": false,
"External texture support": false,
"texelFetch support": true,
"sk_VertexID support": true,
"Max VS Samplers": 32,
"Max GS Samplers": 32,
"Max FS Samplers": 32,
"Max Combined Samplers": 32,
"Max VS Image Storages": 8,
"Max GS Image Storages": 8,
"Max FS Image Storages": 8,
"Max Combined Image Storages": 8,
"Advanced blend equation interaction": "Automatic"
}
},
"gpu": {
"GL GPU": {
"GL_VERSION": "4.5.0 NVIDIA 375.63",
"GL_RENDERER": "Quadro K2200/PCIe/SSE2",
"GL_VENDOR": "NVIDIA Corporation",
"GL_SHADING_LANGUAGE_VERSION": "4.50 NVIDIA",
"extensions": [
"GL_AMD_multi_draw_indirect",
"GL_AMD_seamless_cubemap_per_texture",
"GL_ARB_ES2_compatibility",
"GL_ARB_ES3_1_compatibility",
"GL_ARB_ES3_2_compatibility",
"GL_ARB_ES3_compatibility",
"GL_ARB_arrays_of_arrays",
"GL_ARB_base_instance",
"GL_ARB_bindless_texture",
"GL_ARB_blend_func_extended",
"GL_ARB_buffer_storage",
"GL_ARB_cl_event",
"GL_ARB_clear_buffer_object",
"GL_ARB_clear_texture",
"GL_ARB_clip_control",
"GL_ARB_color_buffer_float",
"GL_ARB_compatibility",
"GL_ARB_compressed_texture_pixel_storage",
"GL_ARB_compute_shader",
"GL_ARB_compute_variable_group_size",
"GL_ARB_conditional_render_inverted",
"GL_ARB_conservative_depth",
"GL_ARB_copy_buffer",
"GL_ARB_copy_image",
"GL_ARB_cull_distance",
"GL_ARB_debug_output",
"GL_ARB_depth_buffer_float",
"GL_ARB_depth_clamp",
"GL_ARB_depth_texture",
"GL_ARB_derivative_control",
"GL_ARB_direct_state_access",
"GL_ARB_draw_buffers",
"GL_ARB_draw_buffers_blend",
"GL_ARB_draw_elements_base_vertex",
"GL_ARB_draw_indirect",
"GL_ARB_draw_instanced",
"GL_ARB_enhanced_layouts",
"GL_ARB_explicit_attrib_location",
"GL_ARB_explicit_uniform_location",
"GL_ARB_fragment_coord_conventions",
"GL_ARB_fragment_layer_viewport",
"GL_ARB_fragment_program",
"GL_ARB_fragment_program_shadow",
"GL_ARB_fragment_shader",
"GL_ARB_framebuffer_no_attachments",
"GL_ARB_framebuffer_object",
"GL_ARB_framebuffer_sRGB",
"GL_ARB_geometry_shader4",
"GL_ARB_get_program_binary",
"GL_ARB_get_texture_sub_image",
"GL_ARB_gl_spirv",
"GL_ARB_gpu_shader5",
"GL_ARB_gpu_shader_fp64",
"GL_ARB_gpu_shader_int64",
"GL_ARB_half_float_pixel",
"GL_ARB_half_float_vertex",
"GL_ARB_imaging",
"GL_ARB_indirect_parameters",
"GL_ARB_instanced_arrays",
"GL_ARB_internalformat_query",
"GL_ARB_internalformat_query2",
"GL_ARB_invalidate_subdata",
"GL_ARB_map_buffer_alignment",
"GL_ARB_map_buffer_range",
"GL_ARB_multi_bind",
"GL_ARB_multi_draw_indirect",
"GL_ARB_multisample",
"GL_ARB_multitexture",
"GL_ARB_occlusion_query",
"GL_ARB_occlusion_query2",
"GL_ARB_parallel_shader_compile",
"GL_ARB_pipeline_statistics_query",
"GL_ARB_pixel_buffer_object",
"GL_ARB_point_parameters",
"GL_ARB_point_sprite",
"GL_ARB_program_interface_query",
"GL_ARB_provoking_vertex",
"GL_ARB_query_buffer_object",
"GL_ARB_robust_buffer_access_behavior",
"GL_ARB_robustness",
"GL_ARB_sample_shading",
"GL_ARB_sampler_objects",
"GL_ARB_seamless_cube_map",
"GL_ARB_seamless_cubemap_per_texture",
"GL_ARB_separate_shader_objects",
"GL_ARB_shader_atomic_counter_ops",
"GL_ARB_shader_atomic_counters",
"GL_ARB_shader_ballot",
"GL_ARB_shader_bit_encoding",
"GL_ARB_shader_clock",
"GL_ARB_shader_draw_parameters",
"GL_ARB_shader_group_vote",
"GL_ARB_shader_image_load_store",
"GL_ARB_shader_image_size",
"GL_ARB_shader_objects",
"GL_ARB_shader_precision",
"GL_ARB_shader_storage_buffer_object",
"GL_ARB_shader_subroutine",
"GL_ARB_shader_texture_image_samples",
"GL_ARB_shader_texture_lod",
"GL_ARB_shading_language_100",
"GL_ARB_shading_language_420pack",
"GL_ARB_shading_language_include",
"GL_ARB_shading_language_packing",
"GL_ARB_shadow",
"GL_ARB_sparse_buffer",
"GL_ARB_sparse_texture",
"GL_ARB_stencil_texturing",
"GL_ARB_sync",
"GL_ARB_tessellation_shader",
"GL_ARB_texture_barrier",
"GL_ARB_texture_border_clamp",
"GL_ARB_texture_buffer_object",
"GL_ARB_texture_buffer_object_rgb32",
"GL_ARB_texture_buffer_range",
"GL_ARB_texture_compression",
"GL_ARB_texture_compression_bptc",
"GL_ARB_texture_compression_rgtc",
"GL_ARB_texture_cube_map",
"GL_ARB_texture_cube_map_array",
"GL_ARB_texture_env_add",
"GL_ARB_texture_env_combine",
"GL_ARB_texture_env_crossbar",
"GL_ARB_texture_env_dot3",
"GL_ARB_texture_float",
"GL_ARB_texture_gather",
"GL_ARB_texture_mirror_clamp_to_edge",
"GL_ARB_texture_mirrored_repeat",
"GL_ARB_texture_multisample",
"GL_ARB_texture_non_power_of_two",
"GL_ARB_texture_query_levels",
"GL_ARB_texture_query_lod",
"GL_ARB_texture_rectangle",
"GL_ARB_texture_rg",
"GL_ARB_texture_rgb10_a2ui",
"GL_ARB_texture_stencil8",
"GL_ARB_texture_storage",
"GL_ARB_texture_storage_multisample",
"GL_ARB_texture_swizzle",
"GL_ARB_texture_view",
"GL_ARB_timer_query",
"GL_ARB_transform_feedback2",
"GL_ARB_transform_feedback3",
"GL_ARB_transform_feedback_instanced",
"GL_ARB_transform_feedback_overflow_query",
"GL_ARB_transpose_matrix",
"GL_ARB_uniform_buffer_object",
"GL_ARB_vertex_array_bgra",
"GL_ARB_vertex_array_object",
"GL_ARB_vertex_attrib_64bit",
"GL_ARB_vertex_attrib_binding",
"GL_ARB_vertex_buffer_object",
"GL_ARB_vertex_program",
"GL_ARB_vertex_shader",
"GL_ARB_vertex_type_10f_11f_11f_rev",
"GL_ARB_vertex_type_2_10_10_10_rev",
"GL_ARB_viewport_array",
"GL_ARB_window_pos",
"GL_ATI_draw_buffers",
"GL_ATI_texture_float",
"GL_ATI_texture_mirror_once",
"GL_EXTX_framebuffer_mixed_formats",
"GL_EXT_Cg_shader",
"GL_EXT_abgr",
"GL_EXT_bgra",
"GL_EXT_bindable_uniform",
"GL_EXT_blend_color",
"GL_EXT_blend_equation_separate",
"GL_EXT_blend_func_separate",
"GL_EXT_blend_minmax",
"GL_EXT_blend_subtract",
"GL_EXT_compiled_vertex_array",
"GL_EXT_depth_bounds_test",
"GL_EXT_direct_state_access",
"GL_EXT_draw_buffers2",
"GL_EXT_draw_instanced",
"GL_EXT_draw_range_elements",
"GL_EXT_fog_coord",
"GL_EXT_framebuffer_blit",
"GL_EXT_framebuffer_multisample",
"GL_EXT_framebuffer_multisample_blit_scaled",
"GL_EXT_framebuffer_object",
"GL_EXT_framebuffer_sRGB",
"GL_EXT_geometry_shader4",
"GL_EXT_gpu_program_parameters",
"GL_EXT_gpu_shader4",
"GL_EXT_import_sync_object",
"GL_EXT_multi_draw_arrays",
"GL_EXT_packed_depth_stencil",
"GL_EXT_packed_float",
"GL_EXT_packed_pixels",
"GL_EXT_pixel_buffer_object",
"GL_EXT_point_parameters",
"GL_EXT_polygon_offset_clamp",
"GL_EXT_provoking_vertex",
"GL_EXT_rescale_normal",
"GL_EXT_secondary_color",
"GL_EXT_separate_shader_objects",
"GL_EXT_separate_specular_color",
"GL_EXT_shader_image_load_formatted",
"GL_EXT_shader_image_load_store",
"GL_EXT_shader_integer_mix",
"GL_EXT_shadow_funcs",
"GL_EXT_stencil_two_side",
"GL_EXT_stencil_wrap",
"GL_EXT_texture3D",
"GL_EXT_texture_array",
"GL_EXT_texture_buffer_object",
"GL_EXT_texture_compression_dxt1",
"GL_EXT_texture_compression_latc",
"GL_EXT_texture_compression_rgtc",
"GL_EXT_texture_compression_s3tc",
"GL_EXT_texture_cube_map",
"GL_EXT_texture_edge_clamp",
"GL_EXT_texture_env_add",
"GL_EXT_texture_env_combine",
"GL_EXT_texture_env_dot3",
"GL_EXT_texture_filter_anisotropic",
"GL_EXT_texture_integer",
"GL_EXT_texture_lod",
"GL_EXT_texture_lod_bias",
"GL_EXT_texture_mirror_clamp",
"GL_EXT_texture_object",
"GL_EXT_texture_sRGB",
"GL_EXT_texture_sRGB_decode",
"GL_EXT_texture_shared_exponent",
"GL_EXT_texture_storage",
"GL_EXT_texture_swizzle",
"GL_EXT_timer_query",
"GL_EXT_transform_feedback2",
"GL_EXT_vertex_array",
"GL_EXT_vertex_array_bgra",
"GL_EXT_vertex_attrib_64bit",
"GL_EXT_window_rectangles",
"GL_IBM_rasterpos_clip",
"GL_IBM_texture_mirrored_repeat",
"GL_KHR_blend_equation_advanced",
"GL_KHR_blend_equation_advanced_coherent",
"GL_KHR_context_flush_control",
"GL_KHR_debug",
"GL_KHR_no_error",
"GL_KHR_robust_buffer_access_behavior",
"GL_KHR_robustness",
"GL_KTX_buffer_region",
"GL_NVX_conditional_render",
"GL_NVX_gpu_memory_info",
"GL_NVX_multigpu_info",
"GL_NVX_nvenc_interop",
"GL_NV_ES1_1_compatibility",
"GL_NV_ES3_1_compatibility",
"GL_NV_alpha_to_coverage_dither_control",
"GL_NV_bindless_multi_draw_indirect",
"GL_NV_bindless_multi_draw_indirect_count",
"GL_NV_bindless_texture",
"GL_NV_blend_equation_advanced",
"GL_NV_blend_equation_advanced_coherent",
"GL_NV_blend_square",
"GL_NV_command_list",
"GL_NV_compute_program5",
"GL_NV_conditional_render",
"GL_NV_copy_depth_to_color",
"GL_NV_copy_image",
"GL_NV_deep_texture3D",
"GL_NV_depth_buffer_float",
"GL_NV_depth_clamp",
"GL_NV_draw_texture",
"GL_NV_draw_vulkan_image",
"GL_NV_explicit_multisample",
"GL_NV_fence",
"GL_NV_float_buffer",
"GL_NV_fog_distance",
"GL_NV_fragment_program",
"GL_NV_fragment_program2",
"GL_NV_fragment_program_option",
"GL_NV_framebuffer_multisample_coverage",
"GL_NV_geometry_shader4",
"GL_NV_gpu_program4",
"GL_NV_gpu_program4_1",
"GL_NV_gpu_program5",
"GL_NV_gpu_program5_mem_extended",
"GL_NV_gpu_program_fp64",
"GL_NV_gpu_shader5",
"GL_NV_half_float",
"GL_NV_internalformat_sample_query",
"GL_NV_light_max_exponent",
"GL_NV_multisample_coverage",
"GL_NV_multisample_filter_hint",
"GL_NV_occlusion_query",
"GL_NV_packed_depth_stencil",
"GL_NV_parameter_buffer_object",
"GL_NV_parameter_buffer_object2",
"GL_NV_path_rendering",
"GL_NV_pixel_data_range",
"GL_NV_point_sprite",
"GL_NV_primitive_restart",
"GL_NV_register_combiners",
"GL_NV_register_combiners2",
"GL_NV_shader_atomic_counters",
"GL_NV_shader_atomic_float",
"GL_NV_shader_atomic_int64",
"GL_NV_shader_buffer_load",
"GL_NV_shader_storage_buffer_object",
"GL_NV_shader_thread_group",
"GL_NV_shader_thread_shuffle",
"GL_NV_texgen_reflection",
"GL_NV_texture_barrier",
"GL_NV_texture_compression_vtc",
"GL_NV_texture_env_combine4",
"GL_NV_texture_multisample",
"GL_NV_texture_rectangle",
"GL_NV_texture_shader",
"GL_NV_texture_shader2",
"GL_NV_texture_shader3",
"GL_NV_transform_feedback",
"GL_NV_transform_feedback2",
"GL_NV_uniform_buffer_unified_memory",
"GL_NV_vertex_array_range",
"GL_NV_vertex_array_range2",
"GL_NV_vertex_attrib_integer_64bit",
"GL_NV_vertex_buffer_unified_memory",
"GL_NV_vertex_program",
"GL_NV_vertex_program1_1",
"GL_NV_vertex_program2",
"GL_NV_vertex_program2_option",
"GL_NV_vertex_program3",
"GL_S3_s3tc",
"GL_SGIS_generate_mipmap",
"GL_SGIS_texture_lod",
"GL_SGIX_depth_texture",
"GL_SGIX_shadow",
"GL_SUN_slice_accum",
"GL_WIN_swap_hint",
"WGL_EXT_swap_control"
]
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment