gallium: add pipe_caps struct definition
one-one map of pipe_cap enum. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32955>
This commit is contained in:
@@ -1135,6 +1135,308 @@ enum pipe_compute_cap
|
||||
PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK,
|
||||
};
|
||||
|
||||
struct pipe_caps {
|
||||
bool graphics;
|
||||
bool npot_textures;
|
||||
bool anisotropic_filter;
|
||||
bool occlusion_query;
|
||||
bool query_time_elapsed;
|
||||
bool texture_shadow_map;
|
||||
bool texture_swizzle;
|
||||
bool texture_mirror_clamp;
|
||||
bool blend_equation_separate;
|
||||
bool primitive_restart;
|
||||
bool primitive_restart_fixed_index;
|
||||
bool indep_blend_enable;
|
||||
bool indep_blend_func;
|
||||
bool fs_coord_origin_upper_left;
|
||||
bool fs_coord_origin_lower_left;
|
||||
bool fs_coord_pixel_center_half_integer;
|
||||
bool fs_coord_pixel_center_integer;
|
||||
bool depth_clip_disable;
|
||||
bool depth_clip_disable_separate;
|
||||
bool depth_clamp_enable;
|
||||
bool shader_stencil_export;
|
||||
bool vs_instanceid;
|
||||
bool vertex_element_instance_divisor;
|
||||
bool fragment_color_clamped;
|
||||
bool mixed_colorbuffer_formats;
|
||||
bool seamless_cube_map;
|
||||
bool seamless_cube_map_per_texture;
|
||||
bool conditional_render;
|
||||
bool texture_barrier;
|
||||
bool stream_output_pause_resume;
|
||||
bool tgsi_can_compact_constants;
|
||||
bool vertex_color_unclamped;
|
||||
bool vertex_color_clamped;
|
||||
bool quads_follow_provoking_vertex_convention;
|
||||
bool user_vertex_buffers;
|
||||
bool compute;
|
||||
bool start_instance;
|
||||
bool query_timestamp;
|
||||
bool texture_multisample;
|
||||
bool cube_map_array;
|
||||
bool texture_buffer_objects;
|
||||
bool buffer_sampler_view_rgba_only;
|
||||
bool tgsi_texcoord;
|
||||
bool query_pipeline_statistics;
|
||||
bool mixed_framebuffer_sizes;
|
||||
bool vs_layer_viewport;
|
||||
bool texture_gather_sm5;
|
||||
bool buffer_map_persistent_coherent;
|
||||
bool fake_sw_msaa;
|
||||
bool texture_query_lod;
|
||||
bool sample_shading;
|
||||
bool texture_gather_offsets;
|
||||
bool vs_window_space_position;
|
||||
bool draw_indirect;
|
||||
bool fs_fine_derivative;
|
||||
bool uma;
|
||||
bool conditional_render_inverted;
|
||||
bool sampler_view_target;
|
||||
bool clip_halfz;
|
||||
bool polygon_offset_clamp;
|
||||
bool multisample_z_resolve;
|
||||
bool resource_from_user_memory;
|
||||
bool resource_from_user_memory_compute_only;
|
||||
bool device_reset_status_query;
|
||||
bool texture_float_linear;
|
||||
bool texture_half_float_linear;
|
||||
bool depth_bounds_test;
|
||||
bool texture_query_samples;
|
||||
bool force_persample_interp;
|
||||
bool shareable_shaders;
|
||||
bool copy_between_compressed_and_plain_formats;
|
||||
bool clear_scissored;
|
||||
bool draw_parameters;
|
||||
bool shader_pack_half_float;
|
||||
bool multi_draw_indirect;
|
||||
bool multi_draw_indirect_params;
|
||||
bool multi_draw_indirect_partial_stride;
|
||||
bool fs_position_is_sysval;
|
||||
bool fs_point_is_sysval;
|
||||
bool fs_face_is_integer_sysval;
|
||||
bool invalidate_buffer;
|
||||
bool generate_mipmap;
|
||||
bool string_marker;
|
||||
bool surface_reinterpret_blocks;
|
||||
bool query_buffer_object;
|
||||
bool query_memory_info;
|
||||
bool framebuffer_no_attachment;
|
||||
bool robust_buffer_access_behavior;
|
||||
bool cull_distance;
|
||||
bool shader_group_vote;
|
||||
bool polygon_offset_units_unscaled;
|
||||
bool shader_array_components;
|
||||
bool stream_output_interleave_buffers;
|
||||
bool native_fence_fd;
|
||||
bool glsl_tess_levels_as_inputs;
|
||||
bool legacy_math_rules;
|
||||
bool fp16;
|
||||
bool doubles;
|
||||
bool int64;
|
||||
bool tgsi_tex_txf_lz;
|
||||
bool shader_clock;
|
||||
bool polygon_mode_fill_rectangle;
|
||||
bool shader_ballot;
|
||||
bool tes_layer_viewport;
|
||||
bool can_bind_const_buffer_as_vertex;
|
||||
bool allow_mapped_buffers_during_execution;
|
||||
bool post_depth_coverage;
|
||||
bool bindless_texture;
|
||||
bool nir_samplers_as_deref;
|
||||
bool query_so_overflow;
|
||||
bool memobj;
|
||||
bool load_constbuf;
|
||||
bool tile_raster_order;
|
||||
bool signed_vertex_buffer_offset;
|
||||
bool fence_signal;
|
||||
bool packed_uniforms;
|
||||
bool conservative_raster_post_snap_triangles;
|
||||
bool conservative_raster_post_snap_points_lines;
|
||||
bool conservative_raster_pre_snap_triangles;
|
||||
bool conservative_raster_pre_snap_points_lines;
|
||||
bool conservative_raster_post_depth_coverage;
|
||||
bool conservative_raster_inner_coverage;
|
||||
bool programmable_sample_locations;
|
||||
bool texture_mirror_clamp_to_edge;
|
||||
bool surface_sample_count;
|
||||
bool image_atomic_float_add;
|
||||
bool query_pipeline_statistics_single;
|
||||
bool dest_surface_srgb_control;
|
||||
bool compute_grid_info_last_block;
|
||||
bool compute_shader_derivatives;
|
||||
bool image_load_formatted;
|
||||
bool image_store_formatted;
|
||||
bool throttle;
|
||||
bool cl_gl_sharing;
|
||||
bool prefer_compute_for_multimedia;
|
||||
bool fragment_shader_interlock;
|
||||
bool fbfetch_coherent;
|
||||
bool atomic_float_minmax;
|
||||
bool tgsi_div;
|
||||
bool fragment_shader_texture_lod;
|
||||
bool fragment_shader_derivatives;
|
||||
bool texture_shadow_lod;
|
||||
bool shader_samples_identical;
|
||||
bool image_atomic_inc_wrap;
|
||||
bool prefer_imm_arrays_as_constbuf;
|
||||
bool gl_spirv;
|
||||
bool gl_spirv_variable_pointers;
|
||||
bool demote_to_helper_invocation;
|
||||
bool tgsi_tg4_component_in_swizzle;
|
||||
bool flatshade;
|
||||
bool alpha_test;
|
||||
bool two_sided_color;
|
||||
bool opencl_integer_functions;
|
||||
bool integer_multiply_32x16;
|
||||
bool frontend_noop;
|
||||
bool nir_images_as_deref;
|
||||
bool packed_stream_output;
|
||||
bool viewport_transform_lowered;
|
||||
bool psiz_clamped;
|
||||
bool viewport_swizzle;
|
||||
bool system_svm;
|
||||
bool viewport_mask;
|
||||
bool alpha_to_coverage_dither_control;
|
||||
bool map_unsynchronized_thread_safe;
|
||||
bool blend_equation_advanced;
|
||||
bool nir_atomics_as_deref;
|
||||
bool no_clip_on_copy_tex;
|
||||
bool shader_atomic_int64;
|
||||
bool device_protected_surface;
|
||||
bool prefer_real_buffer_in_constbuf0;
|
||||
bool gl_clamp;
|
||||
bool texrect;
|
||||
bool sampler_reduction_minmax;
|
||||
bool sampler_reduction_minmax_arb;
|
||||
bool allow_dynamic_vao_fastpath;
|
||||
bool emulate_nonfixed_primitive_restart;
|
||||
bool prefer_back_buffer_reuse;
|
||||
bool draw_vertex_state;
|
||||
bool prefer_pot_aligned_varyings;
|
||||
bool sparse_texture_full_array_cube_mipmaps;
|
||||
bool query_sparse_texture_residency;
|
||||
bool clamp_sparse_texture_lod;
|
||||
bool allow_draw_out_of_order;
|
||||
bool hardware_gl_select;
|
||||
bool dithering;
|
||||
bool fbfetch_zs;
|
||||
bool timeline_semaphore_import;
|
||||
bool device_protected_context;
|
||||
bool allow_glthread_buffer_subdata_opt;
|
||||
bool null_textures;
|
||||
bool astc_void_extents_need_denorm_flush;
|
||||
bool validate_all_dirty_states;
|
||||
bool has_const_bw;
|
||||
bool performance_monitor;
|
||||
bool texture_sampler_independent;
|
||||
bool astc_decode_mode;
|
||||
bool shader_subgroup_quad_all_stages;
|
||||
bool call_finalize_nir_in_linker;
|
||||
|
||||
int accelerated;
|
||||
int min_texel_offset;
|
||||
int max_texel_offset;
|
||||
int min_texture_gather_offset;
|
||||
int max_texture_gather_offset;
|
||||
|
||||
unsigned max_dual_source_render_targets;
|
||||
unsigned max_render_targets;
|
||||
unsigned max_texture_2d_size;
|
||||
unsigned max_texture_3d_levels;
|
||||
unsigned max_texture_cube_levels;
|
||||
unsigned max_stream_output_buffers;
|
||||
unsigned max_texture_array_layers;
|
||||
unsigned max_stream_output_separate_components;
|
||||
unsigned max_stream_output_interleaved_components;
|
||||
unsigned glsl_feature_level;
|
||||
unsigned glsl_feature_level_compatibility;
|
||||
unsigned essl_feature_level;
|
||||
unsigned constant_buffer_offset_alignment;
|
||||
unsigned timer_resolution;
|
||||
unsigned min_map_buffer_alignment;
|
||||
unsigned texture_buffer_offset_alignment;
|
||||
unsigned linear_image_pitch_alignment;
|
||||
unsigned linear_image_base_address_alignment;
|
||||
/* pipe_texture_transfer_mode */
|
||||
unsigned texture_transfer_modes;
|
||||
/* pipe_quirk_texture_border_color_swizzle */
|
||||
unsigned texture_border_color_quirk;
|
||||
unsigned max_texel_buffer_elements_uint;
|
||||
unsigned max_viewports;
|
||||
unsigned max_geometry_output_vertices;
|
||||
unsigned max_geometry_total_output_components;
|
||||
unsigned max_texture_gather_components;
|
||||
unsigned max_vertex_streams;
|
||||
unsigned vendor_id;
|
||||
unsigned device_id;
|
||||
unsigned video_memory;
|
||||
unsigned max_vertex_attrib_stride;
|
||||
unsigned max_shader_patch_varyings;
|
||||
unsigned shader_buffer_offset_alignment;
|
||||
unsigned pci_group;
|
||||
unsigned pci_bus;
|
||||
unsigned pci_device;
|
||||
unsigned pci_function;
|
||||
unsigned max_window_rectangles;
|
||||
unsigned viewport_subpixel_bits;
|
||||
unsigned rasterizer_subpixel_bits;
|
||||
unsigned mixed_color_depth_bits;
|
||||
unsigned fbfetch;
|
||||
unsigned sparse_buffer_page_size;
|
||||
unsigned max_combined_shader_output_resources;
|
||||
unsigned framebuffer_msaa_constraints;
|
||||
unsigned context_priority_mask;
|
||||
unsigned constbuf0_flags;
|
||||
unsigned max_conservative_raster_subpixel_precision_bias;
|
||||
unsigned max_gs_invocations;
|
||||
unsigned max_shader_buffer_size_uint;
|
||||
unsigned max_combined_shader_buffers;
|
||||
unsigned max_combined_hw_atomic_counters;
|
||||
unsigned max_combined_hw_atomic_counter_buffers;
|
||||
unsigned max_texture_upload_memory_budget;
|
||||
unsigned max_vertex_element_src_offset;
|
||||
unsigned max_varyings;
|
||||
unsigned dmabuf;
|
||||
unsigned clip_planes;
|
||||
unsigned max_vertex_buffers;
|
||||
unsigned gl_begin_end_buffer_size;
|
||||
unsigned glsl_zero_init;
|
||||
unsigned max_texture_mb;
|
||||
unsigned supported_prim_modes;
|
||||
unsigned supported_prim_modes_with_restart;
|
||||
unsigned max_sparse_texture_size;
|
||||
unsigned max_sparse_3d_texture_size;
|
||||
unsigned max_sparse_array_texture_layers;
|
||||
unsigned max_constant_buffer_size_uint;
|
||||
unsigned query_timestamp_bits;
|
||||
unsigned shader_subgroup_size;
|
||||
unsigned shader_subgroup_supported_stages;
|
||||
unsigned shader_subgroup_supported_features;
|
||||
unsigned multiview;
|
||||
|
||||
enum pipe_vertex_input_alignment vertex_input_alignment;
|
||||
enum pipe_endian endianness;
|
||||
enum pipe_point_size_lower_mode point_size_fixed;
|
||||
|
||||
float min_line_width;
|
||||
float min_line_width_aa;
|
||||
float max_line_width;
|
||||
float max_line_width_aa;
|
||||
float line_width_granularity;
|
||||
float min_point_size;
|
||||
float min_point_size_aa;
|
||||
float max_point_size;
|
||||
float max_point_size_aa;
|
||||
float point_size_granularity;
|
||||
float max_texture_anisotropy;
|
||||
float max_texture_lod_bias;
|
||||
float min_conservative_raster_dilate;
|
||||
float max_conservative_raster_dilate;
|
||||
float conservative_raster_dilate_granularity;
|
||||
};
|
||||
|
||||
/**
|
||||
* Resource parameters. They can be queried using
|
||||
* pipe_screen::get_resource_param.
|
||||
|
||||
Reference in New Issue
Block a user