# Contains tests for graphics related events and tables.

# GPU trace tests.
gpu_counters.py gpu_counters.sql gpu_counters.out
gpu_counter_specs.textproto gpu_counter_specs.sql gpu_counter_specs.out
gpu_render_stages.py gpu_render_stages.sql gpu_render_stages.out
gpu_render_stages_interned_spec.textproto gpu_render_stages.sql gpu_render_stages_interned_spec.out
vulkan_api_events.py vulkan_api_events.sql vulkan_api_events.out
gpu_log.py gpu_log.sql gpu_log.out

# Graphics frame event trace tests.
graphics_frame_events.py graphics_frame_events.sql graphics_frame_events.out

# GPU Memory ftrace packets
gpu_mem_total.py gpu_mem_total.sql gpu_mem_total.out
gpu_mem_total_after_free.py gpu_mem_total.sql gpu_mem_total_after_free_gpu_mem_total.out

# Clock sync
clock_sync.py clock_sync.sql clock_sync.out

# Android SurfaceFlinger metrics
frame_missed.py frame_missed_event.sql frame_missed_event_frame_missed.out
frame_missed.py android_surfaceflinger frame_missed_metrics.out
surfaceflinger_gpu_invocation.py android_surfaceflinger surfaceflinger_gpu_invocation.out

# GPU metrics
gpu_metric.py android_gpu gpu_metric.out
gpu_frequency_metric.textproto android_gpu gpu_frequency_metric.out

# Android SysUI CUJs metrics
android_sysui_cuj.py android_sysui_cuj android_sysui_cuj.out
android_sysui_cuj.py android_sysui_cuj_event.sql android_sysui_cuj_event.out

# Frame Timeline event trace tests
frame_timeline_events.py expected_frame_timeline_events.sql expected_frame_timeline_events.out
frame_timeline_events.py actual_frame_timeline_events.sql actual_frame_timeline_events.out

# Composition layer
composition_layer.py composition_layer_count.sql composition_layer_count.out

# Android Jank metrics
android_jank.py android_jank android_jank.out

# G2D metrics
g2d_metrics.textproto g2d g2d_metrics.out

# Composer execution
composer_execution.py composer_execution.sql composer_execution.out

# Display metrics
panel_fps.py display_metrics panel_fps.out

# DPU vote clock and bandwidth
dpu_vote_clock_bw.textproto android_hwcomposer dpu_vote_clock_bw.out
