beamformer.meta (4452B)
1 @Enumeration(DecodeMode [None Hadamard]) 2 @Enumeration(RCAOrientation [None Rows Columns]) 3 @Enumeration(SamplingMode [2X 4X]) 4 5 @Table([name size elements]) DataKind 6 { 7 [Int16 2 1] 8 [Int16Complex 2 2] 9 [Float32 4 1] 10 [Float32Complex 4 2] 11 } 12 13 @Table([name pretty_name fixed_transmits]) AcquisitionKind 14 { 15 [FORCES FORCES 1] 16 [UFORCES UFORCES 0] 17 [HERCULES HERCULES 1] 18 [RCA_VLS VLS 0] 19 [RCA_TPW TPW 0] 20 [UHERCULES UHERCULES 0] 21 [RACES RACES 1] 22 [EPIC_FORCES EPIC-FORCES 1] 23 [EPIC_UFORCES EPIC-UFORCES 0] 24 [EPIC_UHERCULES EPIC-UHERCULES 0] 25 [Flash Flash 0] 26 [HERO_PA HERO-PA 0] 27 } 28 29 @Table([name]) InterpolationMode 30 { 31 [Nearest] 32 [Linear] 33 [Cubic] 34 } 35 36 @Expand(AcquisitionKind) @Enumeration(AcquisitionKind `$(name)`) 37 @Expand(DataKind) @Enumeration(DataKind `$(name)`) 38 @Expand(InterpolationMode) @Enumeration(InterpolationMode `$(name)`) 39 40 @Emit 41 { 42 `read_only global u8 beamformer_data_kind_element_size[] = {` 43 @Expand(DataKind) ` $(size),` 44 `};` 45 `` 46 `read_only global u8 beamformer_data_kind_element_count[] = {` 47 @Expand(DataKind) ` $(elements),` 48 `};` 49 `` 50 `read_only global u8 beamformer_data_kind_byte_size[] = {` 51 @Expand(DataKind) ` $(size) * $(elements),` 52 `};` 53 } 54 55 @Emit 56 { 57 `read_only global u8 beamformer_acquisition_kind_has_fixed_transmits[] = {` 58 @Expand(AcquisitionKind) ` $(fixed_transmits),` 59 `};` 60 } 61 62 @Emit 63 { 64 `read_only global s8 beamformer_acquisition_kind_strings[] = {` 65 @Expand(AcquisitionKind) ` s8_comp("$(pretty_name)"),` 66 `};` 67 } 68 69 @Emit 70 { 71 `read_only global s8 beamformer_interpolation_mode_strings[] = {` 72 @Expand(InterpolationMode) ` s8_comp("$(name)"),` 73 `};` 74 } 75 76 @ShaderGroup Compute 77 { 78 @Shader CudaDecode 79 @Shader CudaHilbert 80 81 @Shader(decode.glsl) Decode 82 { 83 @Enumeration(DataKind) 84 @Enumeration(DecodeMode) 85 @Flags([DilateOutput UseSharedMemory]) 86 87 @Bake 88 { 89 @BakeInt(DecodeMode decode_mode ) 90 @BakeInt(InputChannelStride input_channel_stride ) 91 @BakeInt(InputSampleStride input_sample_stride ) 92 @BakeInt(InputTransmitStride input_transmit_stride ) 93 @BakeInt(OutputChannelStride output_channel_stride ) 94 @BakeInt(OutputSampleStride output_sample_stride ) 95 @BakeInt(OutputTransmitStride output_transmit_stride) 96 @BakeInt(ToProcess to_process ) 97 @BakeInt(TransmitCount transmit_count ) 98 } 99 } 100 101 @Shader(filter.glsl) Filter 102 { 103 @Enumeration(DataKind) 104 @Flags([ComplexFilter OutputFloats]) 105 106 @Bake 107 { 108 @BakeInt(DecimationRate decimation_rate ) 109 @BakeInt(FilterLength filter_length ) 110 @BakeInt(InputChannelStride input_channel_stride ) 111 @BakeInt(InputSampleStride input_sample_stride ) 112 @BakeInt(InputTransmitStride input_transmit_stride ) 113 @BakeInt(OutputChannelStride output_channel_stride ) 114 @BakeInt(OutputSampleStride output_sample_stride ) 115 @BakeInt(OutputTransmitStride output_transmit_stride) 116 @BakeInt(SampleCount sample_count ) 117 @BakeFloat(DemodulationFrequency demodulation_frequency) 118 @BakeFloat(SamplingFrequency sampling_frequency ) 119 } 120 121 @SubShader Demodulate 122 } 123 124 @Shader(das.glsl) DAS 125 { 126 @Enumeration(AcquisitionKind) 127 @Enumeration(DataKind) 128 @Enumeration(InterpolationMode) 129 @Enumeration(RCAOrientation) 130 @Flags([Fast Sparse CoherencyWeighting SingleFocus SingleOrientation]) 131 132 @Bake 133 { 134 @BakeInt(AcquisitionCount acquisition_count ) 135 @BakeInt(AcquisitionKind acquisition_kind ) 136 @BakeInt(ChannelCount channel_count ) 137 @BakeInt(InterpolationMode interpolation_mode ) 138 @BakeInt(SampleCount sample_count ) 139 @BakeInt(TransmitReceiveOrientation transmit_receive_orientation) 140 141 @BakeFloat(DemodulationFrequency demodulation_frequency) 142 @BakeFloat(FNumber f_number ) 143 @BakeFloat(FocusDepth focus_depth ) 144 @BakeFloat(SamplingFrequency sampling_frequency ) 145 @BakeFloat(SpeedOfSound speed_of_sound ) 146 @BakeFloat(TimeOffset time_offset ) 147 @BakeFloat(TransmitAngle transmit_angle ) 148 } 149 } 150 151 @Shader(min_max.glsl) MinMax 152 @Shader(sum.glsl) Sum 153 } 154 155 @ShaderGroup Render 156 { 157 @Shader(render_3d.frag.glsl) Render3D 158 }