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:
Qiang Yu
2024-12-31 11:17:47 +08:00
committed by Marge Bot
parent b3d1130d5d
commit 9f208a5308
+302
View File
@@ -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.