diff options
Diffstat (limited to 'lib/mesa/src')
-rw-r--r-- | lib/mesa/src/amd/common/ac_shader_abi.h | 124 |
1 files changed, 3 insertions, 121 deletions
diff --git a/lib/mesa/src/amd/common/ac_shader_abi.h b/lib/mesa/src/amd/common/ac_shader_abi.h index 7dd580bb1..b04dc076d 100644 --- a/lib/mesa/src/amd/common/ac_shader_abi.h +++ b/lib/mesa/src/amd/common/ac_shader_abi.h @@ -26,22 +26,11 @@ #include <llvm-c/Core.h> -#include "compiler/shader_enums.h" - -struct nir_variable; - -#define AC_LLVM_MAX_OUTPUTS (VARYING_SLOT_VAR31 + 1) - -#define AC_MAX_INLINE_PUSH_CONSTS 8 - enum ac_descriptor_type { AC_DESC_IMAGE, AC_DESC_FMASK, AC_DESC_SAMPLER, AC_DESC_BUFFER, - AC_DESC_PLANE_0, - AC_DESC_PLANE_1, - AC_DESC_PLANE_2, }; /* Document the shader ABI during compilation. This is what allows radeonsi and @@ -53,33 +42,10 @@ struct ac_shader_abi { LLVMValueRef draw_id; LLVMValueRef vertex_id; LLVMValueRef instance_id; - LLVMValueRef tcs_patch_id; - LLVMValueRef tcs_rel_ids; - LLVMValueRef tes_patch_id; - LLVMValueRef gs_prim_id; - LLVMValueRef gs_invocation_id; LLVMValueRef frag_pos[4]; LLVMValueRef front_face; LLVMValueRef ancillary; LLVMValueRef sample_coverage; - LLVMValueRef prim_mask; - LLVMValueRef color0; - LLVMValueRef color1; - LLVMValueRef user_data; - /* CS */ - LLVMValueRef local_invocation_ids; - LLVMValueRef num_work_groups; - LLVMValueRef workgroup_ids[3]; - LLVMValueRef tg_size; - - /* Vulkan only */ - LLVMValueRef push_constants; - LLVMValueRef inline_push_consts[AC_MAX_INLINE_PUSH_CONSTS]; - unsigned num_inline_push_consts; - unsigned base_inline_push_consts; - LLVMValueRef view_index; - - LLVMValueRef outputs[AC_LLVM_MAX_OUTPUTS * 4]; /* For VS and PS: pre-loaded shader inputs. * @@ -88,61 +54,10 @@ struct ac_shader_abi { */ LLVMValueRef *inputs; - /* Varying -> attribute number mapping. Also NIR-only */ - unsigned fs_input_attr_indices[MAX_VARYING]; - void (*emit_outputs)(struct ac_shader_abi *abi, unsigned max_outputs, LLVMValueRef *addrs); - void (*emit_vertex)(struct ac_shader_abi *abi, - unsigned stream, - LLVMValueRef *addrs); - - void (*emit_primitive)(struct ac_shader_abi *abi, - unsigned stream); - - void (*emit_kill)(struct ac_shader_abi *abi, LLVMValueRef visible); - - LLVMValueRef (*load_inputs)(struct ac_shader_abi *abi, - unsigned location, - unsigned driver_location, - unsigned component, - unsigned num_components, - unsigned vertex_index, - unsigned const_index, - LLVMTypeRef type); - - LLVMValueRef (*load_tess_varyings)(struct ac_shader_abi *abi, - LLVMTypeRef type, - LLVMValueRef vertex_index, - LLVMValueRef param_index, - unsigned const_index, - unsigned location, - unsigned driver_location, - unsigned component, - unsigned num_components, - bool is_patch, - bool is_compact, - bool load_inputs); - - void (*store_tcs_outputs)(struct ac_shader_abi *abi, - const struct nir_variable *var, - LLVMValueRef vertex_index, - LLVMValueRef param_index, - unsigned const_index, - LLVMValueRef src, - unsigned writemask); - - LLVMValueRef (*load_tess_coord)(struct ac_shader_abi *abi); - - LLVMValueRef (*load_patch_vertices_in)(struct ac_shader_abi *abi); - - LLVMValueRef (*load_tess_level)(struct ac_shader_abi *abi, - unsigned varying_id, - bool load_default_state); - - LLVMValueRef (*load_ubo)(struct ac_shader_abi *abi, LLVMValueRef index); /** @@ -172,48 +87,15 @@ struct ac_shader_abi { unsigned constant_index, LLVMValueRef index, enum ac_descriptor_type desc_type, - bool image, bool write, - bool bindless); - - /** - * Load a Vulkan-specific resource. - * - * \param index resource index - * \param desc_set descriptor set - * \param binding descriptor set binding - */ - LLVMValueRef (*load_resource)(struct ac_shader_abi *abi, - LLVMValueRef index, - unsigned desc_set, - unsigned binding); + bool image, bool write); - LLVMValueRef (*lookup_interp_param)(struct ac_shader_abi *abi, - enum glsl_interp_mode interp, - unsigned location); - - LLVMValueRef (*load_sample_position)(struct ac_shader_abi *abi, - LLVMValueRef sample_id); - - LLVMValueRef (*load_local_group_size)(struct ac_shader_abi *abi); - - LLVMValueRef (*load_sample_mask_in)(struct ac_shader_abi *abi); - - LLVMValueRef (*load_base_vertex)(struct ac_shader_abi *abi); - - LLVMValueRef (*emit_fbfetch)(struct ac_shader_abi *abi); - - /* Whether to clamp the shadow reference value to [0,1]on GFX8. Radeonsi currently + /* Whether to clamp the shadow reference value to [0,1]on VI. Radeonsi currently * uses it due to promoting D16 to D32, but radv needs it off. */ bool clamp_shadow_reference; - bool interp_at_sample_force_center; /* Whether to workaround GFX9 ignoring the stride for the buffer size if IDXEN=0 - * and LLVM optimizes an indexed load with constant index to IDXEN=0. */ + * and LLVM optimizes an indexed load with constant index to IDXEN=0. */ bool gfx9_stride_size_workaround; - bool gfx9_stride_size_workaround_for_atomic; - - /* Whether bounds checks are required */ - bool robust_buffer_access; }; #endif /* AC_SHADER_ABI_H */ |