1 #ifndef SFN_TEST_SHADERS_H 2 #define SFN_TEST_SHADERS_H 3 #include <gtest/gtest.h> 4 5 #include "../sfn_shader.h" 6 7 namespace r600 { 8 9 extern const char *red_triangle_fs_nir; 10 extern const char *red_triangle_fs_expect_from_nir; 11 extern const char *red_triangle_fs_expect_from_nir_dce; 12 13 extern const char *add_add_1_nir; 14 extern const char *add_add_1_expect_from_nir; 15 extern const char *add_add_1_expect_from_nir_copy_prop_fwd; 16 extern const char *add_add_1_expect_from_nir_copy_prop_fwd_dce; 17 extern const char *add_add_1_expect_from_nir_copy_prop_fwd_dce_bwd; 18 19 extern const char *basic_interpolation_nir; 20 extern const char *basic_interpolation_orig; 21 extern const char *basic_interpolation_translated_1; 22 extern const char *basic_interpolation_expect_from_nir; 23 extern const char *basic_interpolation_expect_from_nir_opt; 24 extern const char *basic_interpolation_expect_from_nir_sched; 25 26 extern const char *glxgears_vs2_nir; 27 extern const char *glxgears_vs2_from_nir_expect; 28 extern const char *glxgears_vs2_from_nir_expect_optimized; 29 30 extern const char *dot4_pre; 31 extern const char *dot4_copy_prop_dce; 32 33 extern const char *glxgears_vs2_from_nir_expect_cayman; 34 extern const char *basic_interpolation_orig_cayman; 35 extern const char *basic_interpolation_expect_from_nir_sched_cayman; 36 extern const char *basic_interpolation_expect_opt_sched_cayman; 37 38 extern const char *vs_nexted_loop_nir; 39 extern const char *vs_nexted_loop_from_nir_expect; 40 extern const char *vs_nexted_loop_from_nir_expect_opt; 41 42 extern const char *shader_with_local_array_nir; 43 extern const char *shader_with_local_array_expect; 44 45 extern const char *test_schedule_group; 46 extern const char *test_schedule_group_expect; 47 48 extern const char *shader_with_bany_nir; 49 extern const char *shader_with_bany_expect_eg; 50 extern const char *shader_with_bany_expect_opt_sched_eg; 51 52 extern const char *shader_copy_prop_dont_kill_double_use; 53 extern const char *shader_copy_prop_dont_kill_double_use_expect; 54 55 extern const char *shader_with_dest_array; 56 extern const char *shader_with_dest_array_opt_expect; 57 extern const char *shader_with_dest_array_opt_scheduled; 58 59 extern const char *shader_with_dest_array2; 60 extern const char *shader_with_dest_array2_scheduled; 61 62 extern const char *shader_with_dest_array2_scheduled_ra; 63 64 extern const char *shader_group_chan_pin_to_combine; 65 extern const char *shader_group_chan_pin_combined; 66 67 extern const char *shader_group_chan_pin_combined_scheduled; 68 extern const char *shader_group_chan_pin_combined_scheduled_ra; 69 70 extern const char *shader_group_chan_pin_to_combine_2; 71 extern const char *shader_group_chan_pin_to_combine_2_opt; 72 73 extern const char *fs_with_loop_multislot_reuse; 74 extern const char *fs_with_loop_multislot_reuse_scheduled; 75 76 extern const char *gs_abs_float_nir; 77 extern const char *gs_abs_float_expect; 78 79 extern const char *vtx_for_tcs_nir; 80 extern const char *vtx_for_tcs_from_nir_expect; 81 82 extern const char *tcs_nir; 83 extern const char *tcs_from_nir_expect; 84 85 extern const char *tes_nir; 86 extern const char *tes_from_nir_expect; 87 88 extern const char *tes_pre_op; 89 extern const char *tes_optimized; 90 extern const char *tes_optimized_pre_sched; 91 extern const char *tes_optimized_sched; 92 93 extern const char *vtx_for_tcs_inp; 94 extern const char *vtx_for_tcs_opt; 95 extern const char *vtx_for_tcs_pre_sched; 96 extern const char *vtx_for_tcs_sched; 97 98 extern const char *fs_opt_tex_coord_init; 99 extern const char *fs_opt_tex_coord_expect; 100 101 extern const char *fs_sched_tex_coord_init; 102 extern const char *fs_sched_tex_coord_expect; 103 104 class TestShader : public ::testing::Test { 105 106 void SetUp() override; 107 void TearDown() override; 108 109 virtual void SetUpMore(); 110 virtual void TearDownMore(); 111 112 protected: 113 Shader *from_string(const std::string& s); 114 }; 115 116 class TestShaderFromNir : public TestShader { 117 118 protected: 119 void check(Shader *s, const char *expect_str); 120 void ra_check(Shader *s, const char *expect_str); 121 }; 122 123 } // namespace r600 124 125 #endif // SFN_TEST_SHADERS_H 126