|
ReactOS 0.4.17-dev-934-g091855f
|
#include "vkd3d_shader_private.h"#include "wine/rbtree.h"#include "d3dcommon.h"#include "d3dx9shader.h"

Go to the source code of this file.
| #define HLSL_INTERPOLATION_MODIFIERS_MASK |
| #define HLSL_MODIFIERS_MAJORITY_MASK (HLSL_MODIFIER_ROW_MAJOR | HLSL_MODIFIER_COLUMN_MAJOR) |
| #define HLSL_TYPE_MODIFIERS_MASK |
| Enumerator | |
|---|---|
| HLSL_TYPE_FLOAT | |
| HLSL_TYPE_HALF | |
| HLSL_TYPE_DOUBLE | |
| HLSL_TYPE_INT | |
| HLSL_TYPE_UINT | |
| HLSL_TYPE_BOOL | |
| HLSL_TYPE_LAST_SCALAR | |
Definition at line 113 of file hlsl.h.
| Enumerator | |
|---|---|
| HLSL_BUFFER_CONSTANT | |
| HLSL_BUFFER_TEXTURE | |
Definition at line 680 of file hlsl.h.
| Enumerator | |
|---|---|
| HLSL_IR_JUMP_BREAK | |
| HLSL_IR_JUMP_CONTINUE | |
| HLSL_IR_JUMP_DISCARD_NEG | |
| HLSL_IR_JUMP_DISCARD_NZ | |
| HLSL_IR_JUMP_RETURN | |
| HLSL_IR_JUMP_UNRESOLVED_CONTINUE | |
Definition at line 759 of file hlsl.h.
| Enumerator | |
|---|---|
| HLSL_IR_LOOP_UNROLL | |
| HLSL_IR_LOOP_FORCE_UNROLL | |
| HLSL_IR_LOOP_FORCE_LOOP | |
Definition at line 313 of file hlsl.h.
| Enumerator | |
|---|---|
| HLSL_REGSET_SAMPLERS | |
| HLSL_REGSET_TEXTURES | |
| HLSL_REGSET_UAVS | |
| HLSL_REGSET_LAST_OBJECT | |
| HLSL_REGSET_NUMERIC | |
| HLSL_REGSET_LAST | |
Definition at line 145 of file hlsl.h.
Definition at line 124 of file hlsl.h.
Definition at line 81 of file hlsl.h.
| struct hlsl_state_block_entry * clone_stateblock_entry | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_state_block_entry * | src, | ||
| const char * | name, | ||
| bool | lhs_has_index, | ||
| unsigned int | lhs_index, | ||
| bool | single_arg, | ||
| unsigned int | arg_index | ||
| ) |
Definition at line 2379 of file hlsl.c.
Referenced by decompose_fx_4_state_block_expand_array(), decompose_fx_4_state_function_call(), and hlsl_new_sampler_state().
| int d3dbc_compile | ( | struct vsir_program * | program, |
| uint64_t | config_flags, | ||
| const struct vkd3d_shader_compile_info * | compile_info, | ||
| const struct vkd3d_shader_code * | ctab, | ||
| struct vkd3d_shader_code * | out, | ||
| struct vkd3d_shader_message_context * | message_context | ||
| ) |
Definition at line 2359 of file d3dbc.c.
Referenced by hlsl_emit_bytecode().
| char const char * debug_hlsl_expr_op | ( | enum hlsl_ir_expr_op | op | ) |
Definition at line 3176 of file hlsl.c.
Referenced by dump_ir_expr(), hlsl_fold_constant_exprs(), sm1_generate_vsir_instr_expr(), and sm4_generate_vsir_instr_expr().
Definition at line 2889 of file hlsl.c.
Referenced by dump_instr(), dump_ir_var(), fold_abs(), fold_add(), fold_and(), fold_bit_xor(), fold_cast(), fold_ceil(), fold_div(), fold_dot(), fold_dp2add(), fold_exp2(), fold_floor(), fold_fract(), fold_log2(), fold_max(), fold_min(), fold_mod(), fold_mul(), fold_neg(), fold_not(), fold_or(), fold_rcp(), fold_rsq(), fold_sat(), fold_sqrt(), sm1_generate_vsir_instr_expr_cast(), and sm4_generate_vsir_instr_expr().
Definition at line 3074 of file hlsl.c.
Referenced by copy_propagation_invalidate_variable(), copy_propagation_set_value(), debug_register(), and dump_ir_store().
| struct hlsl_ir_node * hlsl_add_conditional | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block, | ||
| struct hlsl_ir_node * | condition, | ||
| struct hlsl_ir_node * | if_true, | ||
| struct hlsl_ir_node * | if_false | ||
| ) |
Definition at line 3667 of file hlsl_codegen.c.
Referenced by lower_float_modulus(), lower_int_division(), and lower_int_modulus().
Definition at line 3946 of file hlsl.c.
| struct hlsl_ir_node * hlsl_add_load_component | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block, | ||
| struct hlsl_ir_node * | var_instr, | ||
| unsigned int | comp, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Referenced by lower_discard_neg(), and lower_matrix_swizzles().
Definition at line 96 of file hlsl.c.
Definition at line 1300 of file hlsl.h.
Referenced by clone_compile(), clone_load(), clone_resource_load(), clone_resource_store(), clone_stateblock_entry(), clone_store(), copy_propagation_create_var_def(), hlsl_add_function(), hlsl_ctx_init(), hlsl_new_array_type(), hlsl_new_buffer(), hlsl_new_call(), hlsl_new_cb_type(), hlsl_new_compile(), hlsl_new_constant(), hlsl_new_expr(), hlsl_new_func_decl(), hlsl_new_if(), hlsl_new_index(), hlsl_new_jump(), hlsl_new_load_component(), hlsl_new_load_index(), hlsl_new_loop(), hlsl_new_resource_load(), hlsl_new_resource_store(), hlsl_new_sampler_state(), hlsl_new_scope(), hlsl_new_simple_type(), hlsl_new_stateblock_constant(), hlsl_new_store_component(), hlsl_new_store_index(), hlsl_new_string_constant(), hlsl_new_struct_type(), hlsl_new_switch(), hlsl_new_switch_case(), hlsl_new_swizzle(), hlsl_new_texture_type(), hlsl_new_type(), hlsl_new_uav_type(), hlsl_new_var(), hlsl_new_vsir_instruction_ref(), hlsl_type_clone(), write_fx_4_string(), and write_type().
|
inlinestatic |
Definition at line 1336 of file hlsl.h.
Referenced by clone_block(), copy_propagation_trace_record_value(), find_recursive_calls(), record_allocation(), record_constant(), and sm4_get_extern_resources().
|
inlinestatic |
Definition at line 1280 of file hlsl.h.
Referenced by hlsl_new_compile(), hlsl_new_if(), hlsl_new_load_component(), hlsl_new_loop(), hlsl_new_store_component(), hlsl_new_switch_case(), lower_matrix_swizzles(), lower_trig(), new_offset_instr_from_deref(), and transform_unroll_loops().
|
inlinestatic |
Definition at line 1274 of file hlsl.h.
Referenced by add_last_vsir_instr_to_block(), append_output_copy(), append_output_copy_recurse(), append_output_var_copy(), clone_block(), hlsl_add_conditional(), hlsl_ctx_init(), hlsl_new_func_decl(), hlsl_new_load_component(), hlsl_new_store_component(), init_deref_from_component_index(), insert_early_return_break(), lower_abs(), lower_broadcasts(), lower_casts_to_bool(), lower_casts_to_int(), lower_ceil(), lower_cmp(), lower_comparison_operators(), lower_discard_neg(), lower_discard_nz(), lower_division(), lower_dot(), lower_f16tof32(), lower_f32tof16(), lower_float_modulus(), lower_floor(), lower_index_loads(), lower_int_abs(), lower_int_division(), lower_int_dot(), lower_int_modulus(), lower_logic_not(), lower_matrix_swizzles(), lower_narrowing_casts(), lower_nonconstant_array_loads(), lower_nonconstant_vector_derefs(), lower_nonfloat_exprs(), lower_return(), lower_round(), lower_slt(), lower_sqrt(), lower_ternary(), lower_trig(), new_offset_from_path_index(), new_offset_instr_from_deref(), and normalize_switch_cases().
| void hlsl_block_cleanup | ( | struct hlsl_block * | block | ) |
Definition at line 3675 of file hlsl.c.
Referenced by call_lower_func(), clone_block(), clone_compile(), clone_if(), clone_loop(), clone_switch(), free_function_decl(), free_ir_compile(), free_ir_if(), free_ir_loop(), hlsl_ctx_cleanup(), hlsl_emit_bytecode(), hlsl_free_attribute(), hlsl_free_ir_switch_case(), hlsl_free_state_block_entry(), init_deref_from_component_index(), loop_unrolling_unroll_loop(), new_offset_instr_from_deref(), remove_unreachable_code(), sm4_generate_vsir_add_function(), and transform_unroll_loops().
|
inlinestatic |
Definition at line 1268 of file hlsl.h.
Referenced by call_lower_func(), clone_block(), clone_stateblock_entry(), hlsl_ctx_init(), hlsl_emit_bytecode(), hlsl_new_compile(), hlsl_new_func_decl(), hlsl_new_if(), hlsl_new_load_component(), hlsl_new_loop(), hlsl_new_store_component(), hlsl_new_switch_case(), init_deref_from_component_index(), insert_early_return_break(), lower_discard_neg(), lower_discard_nz(), lower_return(), new_offset_instr_from_deref(), remove_unreachable_code(), sm1_generate_vsir(), sm4_generate_vsir_add_function(), and transform_unroll_loops().
Definition at line 5551 of file hlsl_codegen.c.
Referenced by allocate_buffers(), and fx_write_context_init().
Definition at line 1309 of file hlsl.h.
Referenced by hlsl_new_var(), hlsl_type_clone(), init_deref(), and write_fx_4_type().
| void hlsl_cleanup_deref | ( | struct hlsl_deref * | deref | ) |
Definition at line 1408 of file hlsl.c.
Referenced by clone_resource_load(), copy_propagation_transform_object_load(), free_ir_load(), free_ir_resource_load(), free_ir_resource_store(), free_ir_store(), hlsl_new_resource_load(), lower_nonconstant_array_loads(), and replace_deref_path_with_offset().
Definition at line 2436 of file hlsl.c.
Referenced by clone_switch(), and free_ir_switch().
| void hlsl_cleanup_semantic | ( | struct hlsl_semantic * | semantic | ) |
Definition at line 3896 of file hlsl.c.
Referenced by add_semantic_var(), hlsl_clone_semantic(), hlsl_free_type(), and hlsl_free_var().
| bool hlsl_clone_block | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | dst_block, | ||
| const struct hlsl_block * | src_block | ||
| ) |
Definition at line 2544 of file hlsl.c.
Referenced by loop_unrolling_unroll_loop(), lower_calls(), process_entry_function(), and transform_unroll_loops().
| bool hlsl_clone_semantic | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_semantic * | dst, | ||
| const struct hlsl_semantic * | src | ||
| ) |
Definition at line 3903 of file hlsl.c.
Referenced by add_semantic_var().
Definition at line 4042 of file hlsl.c.
Referenced by fold_swizzle_chains(), generate_vsir_instr_swizzle(), and write_sm4_swizzle().
Definition at line 4026 of file hlsl.c.
Referenced by allocate_register(), hlsl_reg_from_deref(), sm1_generate_vsir_init_dst_param_from_deref(), sm4_numeric_register_from_deref(), and write_sm4_store().
| struct hlsl_ir_function_decl * hlsl_compile_internal_function | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| const char * | hlsl | ||
| ) |
Definition at line 4642 of file hlsl.c.
Referenced by lower_f16tof32(), and lower_f32tof16().
| bool hlsl_component_index_range_from_deref | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref, | ||
| unsigned int * | start, | ||
| unsigned int * | count | ||
| ) |
Definition at line 5811 of file hlsl_codegen.c.
Referenced by copy_propagation_record_store(), copy_propagation_replace_with_constant_vector(), copy_propagation_replace_with_single_instr(), and copy_propagation_transform_object_load().
| struct vkd3d_string_buffer * hlsl_component_to_string | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_ir_var * | var, | ||
| unsigned int | index | ||
| ) |
Definition at line 2864 of file hlsl.c.
Referenced by sm4_get_extern_resources().
| bool hlsl_copy_deref | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_deref * | deref, | ||
| const struct hlsl_deref * | other | ||
| ) |
Definition at line 1388 of file hlsl.c.
Referenced by copy_propagation_transform_object_load(), hlsl_new_resource_store(), lower_combined_samples(), and lower_nonconstant_array_loads().
| bool hlsl_copy_propagation_execute | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block | ||
| ) |
Definition at line 2009 of file hlsl_codegen.c.
Referenced by hlsl_run_const_passes().
| enum hlsl_regset hlsl_deref_get_regset | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref | ||
| ) |
Definition at line 327 of file hlsl.c.
Referenced by clean_constant_deref_offset_srcs(), hlsl_offset_from_deref(), lower_combined_samples(), new_offset_instr_from_deref(), register_deref_usage(), sm4_register_from_deref(), track_components_usage(), track_object_components_sampler_dim(), and write_sm4_ld().
Definition at line 783 of file hlsl.c.
Referenced by hlsl_deref_get_regset(), hlsl_new_load_component(), hlsl_new_load_index(), hlsl_new_resource_load(), init_deref_from_component_index(), lower_combined_samples(), register_deref_usage(), replace_deref_path_with_offset(), sm4_register_from_deref(), write_sm4_ld(), and write_sm4_resource_store().
|
inlinestatic |
Definition at line 822 of file hlsl.h.
Referenced by clone_deref(), deref_mark_last_read(), dump_deref(), hlsl_copy_deref(), hlsl_deref_get_type(), hlsl_new_load_index(), hlsl_new_store_index(), and replace_deref_path_with_offset().
Definition at line 3573 of file hlsl.c.
Referenced by dump_function().
| void hlsl_dump_var_default_values | ( | const struct hlsl_ir_var * | var | ) |
| int hlsl_emit_bytecode | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_function_decl * | entry_func, | ||
| enum vkd3d_shader_target_type | target_type, | ||
| struct vkd3d_shader_code * | out | ||
| ) |
Definition at line 9202 of file hlsl_codegen.c.
Referenced by hlsl_compile_shader().
| int hlsl_emit_effect_binary | ( | struct hlsl_ctx * | ctx, |
| struct vkd3d_shader_code * | out | ||
| ) |
Definition at line 2865 of file fx.c.
Referenced by hlsl_compile_shader().
| void hlsl_error | ( | struct hlsl_ctx * | ctx, |
| const struct vkd3d_shader_location * | loc, | ||
| enum vkd3d_shader_error | error, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
| void void hlsl_fixme | ( | struct hlsl_ctx * | ctx, |
| const struct vkd3d_shader_location * | loc, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
| bool hlsl_fold_constant_exprs | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | instr, | ||
| void * | context | ||
| ) |
Definition at line 1218 of file hlsl_constant_ops.c.
Referenced by hlsl_run_const_passes(), and process_entry_function().
| bool hlsl_fold_constant_identities | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | instr, | ||
| void * | context | ||
| ) |
Definition at line 1471 of file hlsl_constant_ops.c.
Referenced by hlsl_run_const_passes().
| bool hlsl_fold_constant_swizzles | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | instr, | ||
| void * | context | ||
| ) |
Definition at line 1547 of file hlsl_constant_ops.c.
Referenced by hlsl_run_const_passes().
| void hlsl_free_attribute | ( | struct hlsl_attribute * | attr | ) |
Definition at line 3885 of file hlsl.c.
Referenced by free_function_decl().
| void hlsl_free_instr | ( | struct hlsl_ir_node * | node | ) |
Definition at line 3805 of file hlsl.c.
Referenced by dce(), hlsl_free_instr_list(), hlsl_new_sampler_state(), hlsl_new_string_constant(), hlsl_replace_node(), loop_unrolling_unroll_loop(), lower_calls(), lower_return(), remove_trivial_conditional_branches(), split_array_copies(), split_matrix_copies(), and split_struct_copies().
Definition at line 3663 of file hlsl.c.
Referenced by hlsl_block_cleanup().
| void hlsl_free_ir_switch_case | ( | struct hlsl_ir_switch_case * | c | ) |
Definition at line 2429 of file hlsl.c.
Referenced by hlsl_cleanup_ir_switch_cases(), and normalize_switch_cases().
| void hlsl_free_state_block | ( | struct hlsl_state_block * | state_block | ) |
Definition at line 150 of file hlsl.c.
Referenced by free_ir_sampler_state(), hlsl_ctx_cleanup(), and hlsl_free_var().
| void hlsl_free_state_block_entry | ( | struct hlsl_state_block_entry * | state_block_entry | ) |
Definition at line 137 of file hlsl.c.
Referenced by clone_stateblock_entry(), decompose_fx_4_state_function_call(), and hlsl_free_state_block().
Definition at line 3643 of file hlsl.c.
Referenced by hlsl_ctx_cleanup().
| void hlsl_free_var | ( | struct hlsl_ir_var * | decl | ) |
Definition at line 161 of file hlsl.c.
Referenced by hlsl_ctx_cleanup().
| struct hlsl_type * hlsl_get_element_type_from_path_index | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_type * | type, | ||
| struct hlsl_ir_node * | idx | ||
| ) |
Definition at line 848 of file hlsl.c.
Referenced by copy_propagation_invalidate_variable_from_deref_recurse(), hlsl_component_index_range_from_deref(), hlsl_deref_get_type(), hlsl_new_index(), hlsl_new_load_index(), hlsl_regset_index_from_deref(), lower_nonconstant_array_loads(), lower_nonconstant_vector_derefs(), new_offset_instr_from_deref(), validate_component_index_range_from_deref(), and validate_nonconstant_vector_store_derefs().
| struct hlsl_ir_function_decl * hlsl_get_first_func_decl | ( | struct hlsl_ctx * | ctx, |
| const char * | name | ||
| ) |
Definition at line 1028 of file hlsl.c.
Referenced by hlsl_compile_internal_function().
| struct hlsl_ir_function_decl * hlsl_get_func_decl | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| const struct hlsl_func_parameters * | parameters | ||
| ) |
Definition at line 2678 of file hlsl.c.
Definition at line 1019 of file hlsl.c.
Referenced by hlsl_compile_shader(), hlsl_get_func_decl(), and parse_patchconstantfunc_attribute().
|
inlinestatic |
Definition at line 1371 of file hlsl.h.
Referenced by hlsl_get_numeric_type().
Definition at line 226 of file hlsl.c.
Referenced by decompose_fx_4_state_block_expand_array(), get_fx_4_type_size(), hlsl_get_multiarray_element_type(), is_numeric_fx_4_type(), is_supported_object_variable(), process_entry_function(), resolve_fx_4_state_block_values(), validate_field_semantic(), write_fx_2_default_value(), write_fx_2_initial_value(), write_fx_2_object_initializer(), write_fx_2_parameter(), write_fx_4_annotation(), write_fx_4_default_value(), write_fx_4_object_variable(), write_fx_4_type(), write_sm1_type(), write_sm4_type(), and write_type().
Definition at line 233 of file hlsl.c.
Referenced by get_fx_4_type_size(), hlsl_get_multiarray_size(), hlsl_type_calculate_reg_size(), write_fx_2_default_value(), write_fx_2_object_initializer(), write_fx_2_parameter(), write_fx_4_default_value(), write_fx_4_object_variable(), write_fx_4_shader_initializer(), write_fx_4_state_object_initializer(), write_fx_4_string_initializer(), write_fx_4_type(), write_fx_5_shader_initializer(), write_sm1_type(), write_sm4_type(), and write_type().
|
inlinestatic |
Definition at line 1377 of file hlsl.h.
Referenced by hlsl_add_conditional(), lower_discard_neg(), lower_float_modulus(), lower_int_division(), lower_int_modulus(), and lower_ternary().
|
inlinestatic |
Definition at line 1360 of file hlsl.h.
Referenced by hlsl_get_element_type_from_path_index(), hlsl_get_numeric_type(), hlsl_new_bool_constant(), hlsl_new_float_constant(), hlsl_new_func_decl(), hlsl_new_int_constant(), hlsl_new_stateblock_constant(), hlsl_new_swizzle(), hlsl_new_uint_constant(), lower_broadcasts(), lower_discard_neg(), lower_nonconstant_array_loads(), resolve_fx_4_state_block_values(), traverse_path_from_component_index(), and write_fx_4_state_assignment().
|
inlinestatic |
Definition at line 1346 of file hlsl.h.
Referenced by declare_predefined_types(), hlsl_compile_internal_function(), hlsl_component_to_string(), hlsl_fixme(), hlsl_modifiers_to_string(), hlsl_new_synthetic_var(), hlsl_sprintf_alloc(), hlsl_type_to_string(), and lower_combined_samples().
| const struct hlsl_profile_info * hlsl_get_target_info | ( | const char * | target | ) |
Definition at line 4054 of file hlsl.c.
Referenced by hlsl_compile_shader(), and hlsl_new_compile().
| struct hlsl_type * hlsl_get_type | ( | struct hlsl_scope * | scope, |
| const char * | name, | ||
| bool | recursive, | ||
| bool | case_insensitive | ||
| ) |
Definition at line 995 of file hlsl.c.
Referenced by hlsl_get_type(), hlsl_new_compile(), and hlsl_scope_add_type().
| struct hlsl_ir_var * hlsl_get_var | ( | struct hlsl_scope * | scope, |
| const char * | name | ||
| ) |
Definition at line 123 of file hlsl.c.
Referenced by hlsl_get_var(), and lower_combined_samples().
|
inlinestatic |
Definition at line 1365 of file hlsl.h.
Referenced by add_zero_mipmap_level(), allocate_sincos_const_registers(), append_output_copy(), hlsl_get_element_type_from_path_index(), hlsl_get_numeric_type(), hlsl_new_index(), hlsl_new_swizzle(), lower_cmp(), lower_combined_samples(), lower_comparison_operators(), lower_discard_nz(), lower_logic_not(), lower_narrowing_casts(), lower_nonconstant_vector_derefs(), lower_nonfloat_exprs(), lower_slt(), prepend_input_copy(), resolve_fx_4_state_block_values(), split_matrix_copies(), and traverse_path_from_component_index().
| bool hlsl_index_chain_has_resource_access | ( | struct hlsl_ir_index * | index | ) |
Definition at line 2013 of file hlsl.c.
Referenced by hlsl_index_chain_has_resource_access().
| bool hlsl_index_is_noncontiguous | ( | struct hlsl_ir_index * | index | ) |
Definition at line 1999 of file hlsl.c.
Referenced by hlsl_init_deref_from_index_chain(), and lower_index_loads().
| bool hlsl_index_is_resource_access | ( | struct hlsl_ir_index * | index | ) |
Definition at line 2006 of file hlsl.c.
Referenced by hlsl_index_chain_has_resource_access(), and lower_index_loads().
| bool hlsl_init_deref_from_index_chain | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_deref * | deref, | ||
| struct hlsl_ir_node * | chain | ||
| ) |
Definition at line 717 of file hlsl.c.
Referenced by hlsl_new_resource_load().
| void hlsl_init_simple_deref_from_var | ( | struct hlsl_deref * | deref, |
| struct hlsl_ir_var * | var | ||
| ) |
Definition at line 1424 of file hlsl.c.
Referenced by add_zero_mipmap_level(), hlsl_new_simple_store(), hlsl_new_var_load(), lower_index_loads(), lower_matrix_swizzles(), and lower_trig().
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 1388 of file hlsl.h.
Referenced by allocate_const_registers_recurse(), append_output_copy(), copy_propagation_record_store(), hlsl_new_swizzle(), hlsl_reg_from_deref(), hlsl_type_to_string(), is_numeric_fx_4_type(), prepend_input_copy(), validate_field_semantic(), write_fx_2_parameter(), write_fx_4_annotation(), write_fx_4_type(), and write_sm4_load().
| const char * hlsl_jump_type_to_string | ( | enum hlsl_ir_jump_type | type | ) |
Definition at line 2979 of file hlsl.c.
Referenced by sm1_generate_vsir_instr_jump(), and write_sm4_jump().
Referenced by hlsl_compile_internal_function(), and hlsl_compile_shader().
| void hlsl_lower_index_loads | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | body | ||
| ) |
Definition at line 6392 of file hlsl_codegen.c.
Definition at line 3978 of file hlsl.c.
Referenced by generate_vsir_get_src_swizzle(), generate_vsir_instr_swizzle(), sm4_src_from_deref(), sm4_src_from_node(), and write_sm4_swizzle().
| struct vkd3d_string_buffer * hlsl_modifiers_to_string | ( | struct hlsl_ctx * | ctx, |
| unsigned int | modifiers | ||
| ) |
| struct hlsl_type * hlsl_new_array_type | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | basic_type, | ||
| unsigned int | array_size | ||
| ) |
Definition at line 880 of file hlsl.c.
Referenced by lower_combined_samples().
| struct hlsl_ir_node * hlsl_new_binary_expr | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_ir_expr_op | op, | ||
| struct hlsl_ir_node * | arg1, | ||
| struct hlsl_ir_node * | arg2 | ||
| ) |
Definition at line 1619 of file hlsl.c.
Referenced by lower_abs(), lower_casts_to_bool(), lower_ceil(), lower_cmp(), lower_comparison_operators(), lower_discard_neg(), lower_division(), lower_dot(), lower_float_modulus(), lower_floor(), lower_int_abs(), lower_int_division(), lower_int_dot(), lower_int_modulus(), lower_logic_not(), lower_round(), lower_slt(), new_offset_from_path_index(), and resolve_fx_4_state_block_values().
| struct hlsl_ir_node * hlsl_new_bool_constant | ( | struct hlsl_ctx * | ctx, |
| bool | b, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1537 of file hlsl.c.
Referenced by hlsl_new_func_decl(), and lower_return().
| struct hlsl_buffer * hlsl_new_buffer | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_buffer_type | type, | ||
| const char * | name, | ||
| uint32_t | modifiers, | ||
| const struct hlsl_reg_reservation * | reservation, | ||
| struct hlsl_scope * | annotations, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 2594 of file hlsl.c.
Referenced by hlsl_ctx_init().
| struct hlsl_ir_node * hlsl_new_call | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_function_decl * | decl, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1508 of file hlsl.c.
Referenced by clone_call(), lower_f16tof32(), and lower_f32tof16().
| struct hlsl_ir_node * hlsl_new_cast | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | node, | ||
| struct hlsl_type * | type, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1294 of file hlsl.c.
Referenced by hlsl_add_conditional(), hlsl_new_copy(), lower_broadcasts(), lower_cmp(), lower_comparison_operators(), lower_discard_nz(), lower_int_division(), lower_int_modulus(), lower_logic_not(), lower_narrowing_casts(), lower_nonconstant_vector_derefs(), lower_nonfloat_exprs(), lower_slt(), lower_ternary(), prepend_input_copy(), and resolve_fx_4_state_block_values().
| struct hlsl_ir_node * hlsl_new_compile | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_compile_type | compile_type, | ||
| const char * | profile_name, | ||
| struct hlsl_ir_node ** | args, | ||
| unsigned int | args_count, | ||
| struct hlsl_block * | args_instrs, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1866 of file hlsl.c.
Referenced by clone_compile().
| struct hlsl_ir_node * hlsl_new_constant | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | type, | ||
| const struct hlsl_constant_value * | value, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1521 of file hlsl.c.
Referenced by clone_constant(), copy_propagation_replace_with_constant_vector(), hlsl_fold_constant_exprs(), hlsl_fold_constant_swizzles(), hlsl_new_bool_constant(), hlsl_new_float_constant(), hlsl_new_int_constant(), hlsl_new_null_constant(), hlsl_new_uint_constant(), lower_casts_to_bool(), lower_cmp(), lower_comparison_operators(), lower_discard_neg(), lower_float_modulus(), lower_int_division(), lower_int_modulus(), lower_logic_not(), lower_nonconstant_array_loads(), lower_nonconstant_vector_derefs(), lower_round(), lower_slt(), and lower_trig().
| struct hlsl_ir_node * hlsl_new_copy | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | node | ||
| ) |
| struct hlsl_ir_node * hlsl_new_expr | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_ir_expr_op | op, | ||
| struct hlsl_ir_node * | operands[HLSL_MAX_OPERANDS], | ||
| struct hlsl_type * | data_type, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1595 of file hlsl.c.
Referenced by clone_expr(), hlsl_add_conditional(), hlsl_new_binary_expr(), hlsl_new_error_expr(), hlsl_new_ternary_expr(), hlsl_new_unary_expr(), lower_casts_to_int(), lower_comparison_operators(), lower_discard_neg(), lower_dot(), lower_logic_not(), lower_nonconstant_array_loads(), lower_nonconstant_vector_derefs(), lower_nonfloat_exprs(), and lower_ternary().
| struct hlsl_ir_node * hlsl_new_float_constant | ( | struct hlsl_ctx * | ctx, |
| float | f, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
| struct hlsl_ir_function_decl * hlsl_new_func_decl | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | return_type, | ||
| const struct hlsl_func_parameters * | parameters, | ||
| const struct hlsl_semantic * | semantic, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 2554 of file hlsl.c.
| struct hlsl_ir_node * hlsl_new_if | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | condition, | ||
| struct hlsl_block * | then_block, | ||
| struct hlsl_block * | else_block, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1647 of file hlsl.c.
Referenced by clone_if(), insert_early_return_break(), and lower_return().
| struct hlsl_ir_node * hlsl_new_index | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | val, | ||
| struct hlsl_ir_node * | idx, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 2022 of file hlsl.c.
Referenced by clone_index().
| struct hlsl_ir_node * hlsl_new_int_constant | ( | struct hlsl_ctx * | ctx, |
| int32_t | n, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
| struct hlsl_ir_node * hlsl_new_jump | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_ir_jump_type | type, | ||
| struct hlsl_ir_node * | condition, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 2044 of file hlsl.c.
Referenced by clone_jump(), insert_early_return_break(), and normalize_switch_cases().
| struct hlsl_ir_node * hlsl_new_load_component | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block, | ||
| const struct hlsl_deref * | deref, | ||
| unsigned int | comp, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1766 of file hlsl.c.
| struct hlsl_ir_load * hlsl_new_load_index | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref, | ||
| struct hlsl_ir_node * | idx, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1714 of file hlsl.c.
Referenced by append_output_copy(), append_output_copy_recurse(), hlsl_new_load_parent(), hlsl_new_var_load(), lower_index_loads(), lower_nonconstant_array_loads(), lower_trig(), prepend_input_copy_recurse(), and split_copy().
| struct hlsl_ir_load * hlsl_new_load_parent | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1744 of file hlsl.c.
Referenced by lower_nonconstant_vector_derefs().
| struct hlsl_ir_node * hlsl_new_loop | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block, | ||
| enum hlsl_ir_loop_unroll_type | unroll_type, | ||
| unsigned int | unroll_limit, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
| struct hlsl_ir_node * hlsl_new_null_constant | ( | struct hlsl_ctx * | ctx, |
| const struct vkd3d_shader_location * | loc | ||
| ) |
| struct hlsl_ir_node * hlsl_new_resource_load | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_resource_load_params * | params, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1794 of file hlsl.c.
Referenced by lower_index_loads().
| struct hlsl_ir_node * hlsl_new_resource_store | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | resource, | ||
| struct hlsl_ir_node * | coords, | ||
| struct hlsl_ir_node * | value, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1833 of file hlsl.c.
| struct hlsl_ir_node * hlsl_new_sampler_state | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_state_block * | state_block, | ||
| struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1937 of file hlsl.c.
Referenced by clone_sampler_state().
| struct hlsl_ir_node * hlsl_new_simple_store | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_var * | lhs, | ||
| struct hlsl_ir_node * | rhs | ||
| ) |
Definition at line 1440 of file hlsl.c.
Referenced by append_output_copy(), hlsl_new_func_decl(), lower_f16tof32(), lower_f32tof16(), lower_index_loads(), lower_nonconstant_array_loads(), lower_return(), and prepend_uniform_copy().
| struct hlsl_ir_node * hlsl_new_stateblock_constant | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1978 of file hlsl.c.
Referenced by clone_stateblock_constant().
| bool hlsl_new_store_component | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | block, | ||
| const struct hlsl_deref * | lhs, | ||
| unsigned int | comp, | ||
| struct hlsl_ir_node * | rhs | ||
| ) |
Definition at line 1480 of file hlsl.c.
Referenced by lower_matrix_swizzles(), and lower_trig().
| struct hlsl_ir_node * hlsl_new_store_index | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | lhs, | ||
| struct hlsl_ir_node * | idx, | ||
| struct hlsl_ir_node * | rhs, | ||
| unsigned int | writemask, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1448 of file hlsl.c.
Referenced by add_zero_mipmap_level(), hlsl_new_simple_store(), lower_index_loads(), prepend_input_copy(), and split_copy().
| struct hlsl_ir_node * hlsl_new_string_constant | ( | struct hlsl_ctx * | ctx, |
| const char * | str, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1571 of file hlsl.c.
Referenced by clone_string_constant().
| struct hlsl_type * hlsl_new_struct_type | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| struct hlsl_struct_field * | fields, | ||
| size_t | field_count | ||
| ) |
| struct hlsl_ir_node * hlsl_new_switch | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_node * | selector, | ||
| struct list * | cases, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1682 of file hlsl.c.
Referenced by clone_switch().
| struct hlsl_ir_switch_case * hlsl_new_switch_case | ( | struct hlsl_ctx * | ctx, |
| unsigned int | value, | ||
| bool | is_default, | ||
| struct hlsl_block * | body, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1664 of file hlsl.c.
Referenced by clone_switch(), and normalize_switch_cases().
| struct hlsl_ir_node * hlsl_new_swizzle | ( | struct hlsl_ctx * | ctx, |
| uint32_t | s, | ||
| unsigned int | components, | ||
| struct hlsl_ir_node * | val, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1847 of file hlsl.c.
Referenced by clone_swizzle(), copy_propagation_replace_with_single_instr(), fold_swizzle_chains(), lower_broadcasts(), lower_dot(), lower_int_dot(), lower_narrowing_casts(), lower_nonconstant_array_loads(), lower_nonconstant_vector_derefs(), and lower_trig().
| struct hlsl_ir_var * hlsl_new_synthetic_var | ( | struct hlsl_ctx * | ctx, |
| const char * | template, | ||
| struct hlsl_type * | type, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1349 of file hlsl.c.
Referenced by add_zero_mipmap_level(), hlsl_new_func_decl(), lower_index_loads(), lower_matrix_swizzles(), lower_nonconstant_array_loads(), and lower_trig().
| struct hlsl_ir_var * hlsl_new_synthetic_var_named | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| struct hlsl_type * | type, | ||
| const struct vkd3d_shader_location * | loc, | ||
| bool | dummy_scope | ||
| ) |
Definition at line 1363 of file hlsl.c.
Referenced by hlsl_new_synthetic_var(), and lower_combined_samples().
| struct hlsl_ir_node * hlsl_new_ternary_expr | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_ir_expr_op | op, | ||
| struct hlsl_ir_node * | arg1, | ||
| struct hlsl_ir_node * | arg2, | ||
| struct hlsl_ir_node * | arg3 | ||
| ) |
Definition at line 1627 of file hlsl.c.
Referenced by lower_slt(), and lower_trig().
| struct hlsl_type * hlsl_new_texture_type | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_sampler_dim | dim, | ||
| struct hlsl_type * | format, | ||
| unsigned int | sample_count | ||
| ) |
| struct hlsl_type * hlsl_new_uav_type | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_sampler_dim | dim, | ||
| struct hlsl_type * | format, | ||
| bool | rasteriser_ordered | ||
| ) |
| struct hlsl_ir_node * hlsl_new_uint_constant | ( | struct hlsl_ctx * | ctx, |
| unsigned int | n, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1562 of file hlsl.c.
Referenced by add_zero_mipmap_level(), append_output_copy(), append_output_copy_recurse(), init_deref_from_component_index(), lower_index_loads(), lower_nonconstant_array_loads(), lower_null_constant(), new_offset_from_path_index(), new_offset_instr_from_deref(), prepend_input_copy(), prepend_input_copy_recurse(), replace_state_block_constant(), resolve_fx_4_state_block_values(), and split_copy().
| struct hlsl_ir_node * hlsl_new_unary_expr | ( | struct hlsl_ctx * | ctx, |
| enum hlsl_ir_expr_op | op, | ||
| struct hlsl_ir_node * | arg, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1611 of file hlsl.c.
Referenced by hlsl_new_cast(), lower_abs(), lower_casts_to_int(), lower_ceil(), lower_cmp(), lower_comparison_operators(), lower_discard_nz(), lower_division(), lower_float_modulus(), lower_floor(), lower_int_abs(), lower_int_division(), lower_int_modulus(), lower_logic_not(), lower_return(), lower_round(), lower_slt(), lower_sqrt(), lower_ternary(), and lower_trig().
| struct hlsl_ir_var * hlsl_new_var | ( | struct hlsl_ctx * | ctx, |
| const char * | name, | ||
| struct hlsl_type * | type, | ||
| const struct vkd3d_shader_location * | loc, | ||
| const struct hlsl_semantic * | semantic, | ||
| uint32_t | modifiers, | ||
| const struct hlsl_reg_reservation * | reg_reservation | ||
| ) |
Definition at line 1311 of file hlsl.c.
Referenced by add_semantic_var(), hlsl_new_synthetic_var_named(), and prepend_uniform_copy().
| struct hlsl_ir_load * hlsl_new_var_load | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_ir_var * | var, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1757 of file hlsl.c.
Referenced by add_zero_mipmap_level(), append_output_var_copy(), insert_early_return_break(), lower_f16tof32(), lower_f32tof16(), lower_index_loads(), lower_matrix_swizzles(), lower_nonconstant_array_loads(), lower_return(), prepend_input_copy(), prepend_input_var_copy(), and prepend_uniform_copy().
| struct hlsl_ir_node * hlsl_new_vsir_instruction_ref | ( | struct hlsl_ctx * | ctx, |
| unsigned int | vsir_instr_idx, | ||
| struct hlsl_type * | type, | ||
| const struct hlsl_reg * | reg, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 1698 of file hlsl.c.
Referenced by add_last_vsir_instr_to_block(), and replace_instr_with_last_vsir_instr().
| const char * hlsl_node_type_to_string | ( | enum hlsl_ir_node_type | type | ) |
Definition at line 2949 of file hlsl.c.
Referenced by hlsl_offset_from_deref_safe(), sm1_generate_vsir_block(), and write_sm4_block().
| void void void void hlsl_note | ( | struct hlsl_ctx * | ctx, |
| const struct vkd3d_shader_location * | loc, | ||
| enum vkd3d_shader_log_level | level, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
| bool hlsl_offset_from_deref | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref, | ||
| unsigned int * | offset | ||
| ) |
Definition at line 5949 of file hlsl_codegen.c.
Referenced by hlsl_offset_from_deref_safe().
Definition at line 5978 of file hlsl_codegen.c.
Referenced by hlsl_reg_from_deref(), sm1_generate_vsir_init_src_param_from_deref(), sm4_numeric_register_from_deref(), and sm4_register_from_deref().
Definition at line 2653 of file hlsl.c.
Referenced by hlsl_compile_internal_function().
Definition at line 2642 of file hlsl.c.
Referenced by hlsl_compile_internal_function(), and hlsl_ctx_init().
Definition at line 5992 of file hlsl_codegen.c.
Referenced by sm1_generate_vsir_init_dst_param_from_deref(), sm1_generate_vsir_init_src_param_from_deref(), and sm4_register_from_deref().
| bool hlsl_regset_index_from_deref | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_deref * | deref, | ||
| enum hlsl_regset | regset, | ||
| unsigned int * | index | ||
| ) |
Definition at line 5876 of file hlsl_codegen.c.
Referenced by register_deref_usage(), and track_object_components_sampler_dim().
|
inlinestatic |
Definition at line 1355 of file hlsl.h.
Referenced by allocate_register_reservations(), append_output_copy(), debug_hlsl_type(), declare_predefined_types(), dump_ir_call(), dump_ir_var(), generate_vsir_signature_entry(), get_string_argument_value(), hlsl_compile_internal_function(), hlsl_fixme(), hlsl_new_synthetic_var(), hlsl_sprintf_alloc(), hlsl_type_to_string(), lower_combined_samples(), parse_numthreads_attribute(), parse_outputcontrolpoints_attribute(), prepend_input_copy(), sm4_generate_vsir_block(), and sm4_get_extern_resources().
| void hlsl_replace_node | ( | struct hlsl_ir_node * | old, |
| struct hlsl_ir_node * | new | ||
| ) |
Definition at line 3626 of file hlsl.c.
Referenced by call_lower_func(), copy_propagation_replace_with_constant_vector(), copy_propagation_replace_with_single_instr(), fold_redundant_casts(), fold_swizzle_chains(), hlsl_fold_constant_exprs(), hlsl_fold_constant_identities(), hlsl_fold_constant_swizzles(), lower_null_constant(), remove_trivial_swizzles(), replace_instr_with_last_vsir_instr(), and replace_state_block_constant().
| void hlsl_run_const_passes | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_block * | body | ||
| ) |
Definition at line 6397 of file hlsl_codegen.c.
Referenced by loop_unrolling_unroll_loop(), process_entry_function(), and resolve_fx_4_state_block_values().
|
inlinestatic |
Definition at line 1393 of file hlsl.h.
Referenced by lower_index_loads(), and write_sm4_ld().
| bool hlsl_scope_add_type | ( | struct hlsl_scope * | scope, |
| struct hlsl_type * | type | ||
| ) |
Definition at line 1285 of file hlsl.c.
Referenced by declare_predefined_types().
| D3DXPARAMETER_TYPE hlsl_sm1_base_type | ( | const struct hlsl_type * | type | ) |
Definition at line 1575 of file d3dbc.c.
Referenced by hlsl_sm1_base_type(), write_fx_2_parameter(), and write_sm1_type().
| D3DXPARAMETER_CLASS hlsl_sm1_class | ( | const struct hlsl_type * | type | ) |
Definition at line 1528 of file d3dbc.c.
Referenced by get_fx_2_type_class(), hlsl_sm1_class(), and write_sm1_type().
|
inlinestatic |
Definition at line 1286 of file hlsl.h.
Referenced by clone_deref(), clone_src(), hlsl_copy_deref(), hlsl_init_deref_from_index_chain(), hlsl_new_compile(), hlsl_new_expr(), hlsl_new_if(), hlsl_new_index(), hlsl_new_jump(), hlsl_new_load_index(), hlsl_new_resource_load(), hlsl_new_resource_store(), hlsl_new_store_component(), hlsl_new_store_index(), hlsl_new_switch(), hlsl_new_swizzle(), hlsl_replace_node(), init_deref_from_component_index(), lower_discard_neg(), lower_discard_nz(), lower_nonconstant_array_loads(), replace_deref_path_with_offset(), and resolve_fx_4_state_block_values().
Definition at line 1293 of file hlsl.h.
Referenced by clean_constant_deref_offset_srcs(), free_ir_compile(), free_ir_expr(), free_ir_if(), free_ir_index(), free_ir_jump(), free_ir_resource_load(), free_ir_resource_store(), free_ir_store(), free_ir_switch(), free_ir_swizzle(), hlsl_cleanup_deref(), hlsl_free_attribute(), hlsl_free_state_block_entry(), hlsl_init_deref_from_index_chain(), hlsl_replace_node(), lower_discard_neg(), lower_discard_nz(), lower_nonconstant_array_loads(), and resolve_fx_4_state_block_values().
| bool hlsl_state_block_add_entry | ( | struct hlsl_state_block * | state_block, |
| struct hlsl_state_block_entry * | entry | ||
| ) |
Definition at line 1925 of file hlsl.c.
Referenced by hlsl_new_sampler_state().
Definition at line 1327 of file hlsl.h.
Referenced by clone_stateblock_entry(), decompose_fx_4_state_function_call(), hlsl_add_function(), hlsl_clone_semantic(), hlsl_ctx_init(), hlsl_new_simple_type(), hlsl_new_string_constant(), hlsl_new_synthetic_var_named(), hlsl_new_type(), hlsl_sprintf_alloc(), hlsl_type_clone(), and sm4_get_extern_resources().
Definition at line 4001 of file hlsl.c.
Referenced by generate_vsir_get_src_swizzle(), generate_vsir_instr_swizzle(), lower_int_dot(), lower_trig(), sm4_numeric_register_from_deref(), sm4_src_from_deref(), sm4_src_from_node(), and write_sm4_swizzle().
Definition at line 68 of file hlsl.h.
Referenced by copy_propagation_replace_with_constant_vector(), copy_propagation_replace_with_single_instr(), debug_hlsl_swizzle(), hlsl_combine_swizzles(), hlsl_fold_constant_swizzles(), remove_trivial_swizzles(), and vsir_swizzle_from_hlsl().
| bool hlsl_transform_ir | ( | struct hlsl_ctx * | ctx, |
| bool(*)(struct hlsl_ctx *ctx, struct hlsl_ir_node *, void *) | func, | ||
| struct hlsl_block * | block, | ||
| void * | context | ||
| ) |
Definition at line 642 of file hlsl_codegen.c.
Referenced by find_recursive_calls(), hlsl_run_const_passes(), hlsl_transform_ir(), lower_ir(), process_entry_function(), resolve_fx_4_state_block_values(), and transform_derefs().
| struct hlsl_type * hlsl_type_clone | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | old, | ||
| unsigned int | default_majority, | ||
| uint32_t | modifiers | ||
| ) |
Definition at line 1183 of file hlsl.c.
Referenced by hlsl_type_clone().
Definition at line 1042 of file hlsl.c.
Referenced by copy_propagation_create_var_def(), copy_propagation_get_value(), copy_propagation_invalidate_variable_from_deref_recurse(), copy_propagation_replace_with_constant_vector(), copy_propagation_replace_with_single_instr(), copy_propagation_var_def_destroy(), get_component_index_from_default_initializer_index(), hlsl_component_index_range_from_deref(), hlsl_dump_var_default_values(), hlsl_free_var(), hlsl_type_component_count(), lower_discard_neg(), lower_f16tof32(), lower_f32tof16(), lower_round(), prepend_uniform_copy(), sm4_get_extern_resources(), traverse_path_from_component_index(), write_fx_2_default_value(), write_fx_4_default_value(), write_fx_4_state_numeric_value(), write_fx_4_type(), write_sm1_uniforms(), write_sm4_rdef(), and write_sm4_type().
Definition at line 209 of file hlsl.c.
Referenced by append_output_copy_recurse(), copy_propagation_invalidate_variable_from_deref_recurse(), lower_nonconstant_array_loads(), and prepend_input_copy_recurse().
| unsigned int hlsl_type_get_array_element_reg_size | ( | const struct hlsl_type * | type, |
| enum hlsl_regset | regset | ||
| ) |
Definition at line 444 of file hlsl.c.
Referenced by append_output_copy_recurse(), new_offset_from_path_index(), and prepend_input_copy_recurse().
| unsigned int hlsl_type_get_component_offset | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | type, | ||
| unsigned int | index, | ||
| enum hlsl_regset * | regset | ||
| ) |
Definition at line 620 of file hlsl.c.
Referenced by sm4_get_extern_resources(), write_sm1_uniforms(), and write_sm4_rdef().
| struct hlsl_type * hlsl_type_get_component_type | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_type * | type, | ||
| unsigned int | index | ||
| ) |
Definition at line 611 of file hlsl.c.
Referenced by hlsl_new_load_component(), sm4_get_extern_resources(), write_sm1_uniforms(), and write_sm4_rdef().
Definition at line 332 of file hlsl.c.
Referenced by hlsl_calculate_buffer_offset(), and hlsl_type_calculate_reg_size().
Definition at line 240 of file hlsl.c.
Referenced by allocate_buffers(), append_output_copy_recurse(), hlsl_calculate_buffer_offsets(), hlsl_type_is_resource(), lower_combined_samples(), prepend_input_copy_recurse(), process_entry_function(), sm1_generate_vsir_init_src_param_from_deref(), sm4_get_extern_resources(), and validate_buffer_offsets().
Definition at line 186 of file hlsl.c.
Referenced by hlsl_component_index_range_from_deref(), hlsl_get_element_type_from_path_index(), hlsl_index_is_noncontiguous(), hlsl_type_calculate_reg_size(), hlsl_type_major_size(), hlsl_type_minor_size(), lower_index_loads(), lower_nonconstant_array_loads(), and traverse_path_from_component_index().
Definition at line 257 of file hlsl.c.
Referenced by hlsl_type_is_shader().
Definition at line 201 of file hlsl.c.
Referenced by append_output_copy(), hlsl_component_index_range_from_deref(), hlsl_regset_index_from_deref(), hlsl_type_element_count(), prepend_input_copy(), split_matrix_copies(), and validate_component_index_range_from_deref().
Definition at line 193 of file hlsl.c.
Referenced by append_output_copy(), prepend_input_copy(), and split_matrix_copies().
| struct vkd3d_string_buffer * hlsl_type_to_string | ( | struct hlsl_ctx * | ctx, |
| const struct hlsl_type * | type | ||
| ) |
Definition at line 2696 of file hlsl.c.
Referenced by allocate_register_reservations(), append_output_copy(), debug_hlsl_type(), dump_ir_call(), generate_vsir_signature_entry(), get_string_argument_value(), hlsl_type_to_string(), parse_numthreads_attribute(), parse_outputcontrolpoints_attribute(), prepend_input_copy(), and sm4_generate_vsir_block().
Definition at line 1095 of file hlsl.c.
Referenced by fold_redundant_casts(), func_decl_matches(), hlsl_add_conditional(), hlsl_new_func_decl(), hlsl_new_ternary_expr(), hlsl_types_are_equal(), and write_fx_4_state_assignment().
| bool hlsl_validate_state_block_entry | ( | struct hlsl_ctx * | ctx, |
| struct hlsl_state_block_entry * | entry, | ||
| const struct vkd3d_shader_location * | loc | ||
| ) |
Definition at line 145 of file fx.c.
|
inlinestatic |
Definition at line 1141 of file hlsl.h.
Referenced by allocate_buffers(), allocate_objects(), generate_vsir_signature_entry(), get_max_cbuffer_reg_index(), hlsl_version_lt(), loop_unrolling_get_max_iterations(), process_entry_function(), sm4_generate_vsir_instr_expr(), tpf_write_stat(), vsir_src_from_hlsl_node(), write_sm4_dcl_constant_buffer(), write_sm4_dcl_samplers(), and write_sm4_rdef().
|
inlinestatic |
Definition at line 1146 of file hlsl.h.
Referenced by decompose_fx_4_state_block_expand_array(), process_entry_function(), sm1_generate_vsir_instr_if(), sm4_get_extern_resources(), and vsir_data_type_from_hlsl_type().
| void void void hlsl_warning | ( | struct hlsl_ctx * | ctx, |
| const struct vkd3d_shader_location * | loc, | ||
| enum vkd3d_shader_error | error, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
| enum vkd3d_shader_interpolation_mode sm4_get_interpolation_mode | ( | struct hlsl_type * | type, |
| unsigned int | storage_modifiers | ||
| ) |
Definition at line 5273 of file hlsl_codegen.c.
Referenced by allocate_semantic_register(), and sm4_generate_vsir_instr_dcl_semantic().
| int tpf_compile | ( | struct vsir_program * | program, |
| uint64_t | config_flags, | ||
| struct vkd3d_shader_code * | out, | ||
| struct vkd3d_shader_message_context * | message_context, | ||
| struct hlsl_ctx * | ctx, | ||
| struct hlsl_ir_function_decl * | entry_func | ||
| ) |
Definition at line 6046 of file tpf.c.
Referenced by hlsl_emit_bytecode().
Definition at line 73 of file hlsl.h.
Referenced by generate_vsir_get_src_swizzle(), and generate_vsir_instr_swizzle().
| void write_sm1_uniforms | ( | struct hlsl_ctx * | ctx, |
| struct vkd3d_bytecode_buffer * | buffer | ||
| ) |
Definition at line 1752 of file d3dbc.c.
Referenced by sm1_generate_vsir().