beamformer_parameters.h (2383B)
1 /* See LICENSE for license details. */ 2 3 /* TODO(rnp): 4 * [ ]: shader kinds have ballooned; shader stats table needs to be compressed 5 * [ ]: Upload previously exported data for display. maybe this is a UI thing but doing it 6 * programatically would be nice. 7 * [ ]: Add interface for multi frame upload. RF upload already uses an offset into SM so 8 * that part works fine. We just need a way of specify a multi frame upload. (Data must 9 * be organized for simple offset access per frame). 10 */ 11 12 typedef struct { 13 uint64_t shader_count; 14 uint32_t shader_ids[BeamformerMaxComputeShaderStages]; 15 /* NOTE(rnp): this wants to be iterated on both dimensions. it depends entirely on which 16 * visualization method you want to use. the coalescing function wants both directions */ 17 float times[32][BeamformerMaxComputeShaderStages]; 18 float rf_time_deltas[32]; 19 } BeamformerComputeStatsTable; 20 21 /* X(type, id, pretty name) */ 22 #define BEAMFORMER_VIEW_PLANE_TAG_LIST \ 23 X(XZ, 0, "XZ") \ 24 X(YZ, 1, "YZ") \ 25 X(XY, 2, "XY") \ 26 X(Arbitrary, 3, "Arbitrary") 27 28 typedef enum { 29 #define X(type, id, pretty) BeamformerViewPlaneTag_##type = id, 30 BEAMFORMER_VIEW_PLANE_TAG_LIST 31 #undef X 32 BeamformerViewPlaneTag_Count, 33 } BeamformerViewPlaneTag; 34 35 #define BEAMFORMER_LIVE_IMAGING_DIRTY_FLAG_LIST \ 36 X(ImagePlaneOffsets, 0) \ 37 X(TransmitPower, 1) \ 38 X(TGCControlPoints, 2) \ 39 X(SaveData, 3) \ 40 X(SaveNameTag, 4) \ 41 X(StopImaging, 5) 42 /* NOTE(rnp): if this exceeds 32 you need to fix the flag handling code */ 43 44 #define BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST \ 45 X(active, uint32_t, , 1) \ 46 X(save_enabled, uint32_t, , 1) \ 47 X(save_active, uint32_t, , 1) \ 48 X(transmit_power, float, , 1) \ 49 X(image_plane_offsets, float, [BeamformerViewPlaneTag_Count], BeamformerViewPlaneTag_Count) \ 50 X(tgc_control_points, float, [8], 8) \ 51 X(save_name_tag_length, int32_t, , 1) \ 52 X(save_name_tag, char, [128], 128) 53 54 #define X(name, type, size, ...) type name size; 55 typedef struct {BEAMFORMER_LIVE_IMAGING_PARAMETERS_LIST} BeamformerLiveImagingParameters; 56 #undef X