1 #undef NDEBUG 2 3 #include <assert.h> 4 5 #include "intel_device_info.h" 6 7 static void verify_device_info(const struct intel_device_info * devinfo)8verify_device_info(const struct intel_device_info *devinfo) 9 { 10 assert(devinfo->ver != 0); 11 assert((devinfo->verx10 / 10) == devinfo->ver); 12 assert(devinfo->max_eus_per_subslice != 0); 13 assert(devinfo->num_thread_per_eu != 0); 14 assert(devinfo->timestamp_frequency != 0); 15 16 assert(devinfo->ver < 7 || devinfo->max_constant_urb_size_kb > 0); 17 assert(devinfo->ver < 8 || devinfo->max_threads_per_psd > 0); 18 19 assert(devinfo->platform >= 1); 20 21 assert(devinfo->num_slices <= ARRAY_SIZE(devinfo->subslice_masks)); 22 23 assert(devinfo->num_slices <= devinfo->max_slices); 24 assert(intel_device_info_subslice_total(devinfo) <= 25 (devinfo->max_slices * devinfo->max_subslices_per_slice)); 26 27 for (uint32_t s = 0; s < ARRAY_SIZE(devinfo->num_subslices); s++) 28 assert(devinfo->num_subslices[s] <= devinfo->max_subslices_per_slice); 29 30 assert(__builtin_popcount(devinfo->slice_masks) <= devinfo->max_slices); 31 32 uint32_t total_subslices = 0; 33 for (size_t i = 0; i < ARRAY_SIZE(devinfo->subslice_masks); i++) 34 total_subslices += __builtin_popcount(devinfo->subslice_masks[i]); 35 assert(total_subslices <= 36 (devinfo->max_slices * devinfo->max_subslices_per_slice)); 37 38 assert(intel_device_info_eu_total(devinfo) > 0); 39 assert(intel_device_info_subslice_total(devinfo) > 0); 40 41 total_subslices = 0; 42 for (uint32_t s = 0; s < devinfo->max_slices; s++) 43 for (uint32_t ss = 0; ss < devinfo->max_subslices_per_slice; ss++) 44 total_subslices += intel_device_info_subslice_available(devinfo, s, ss); 45 assert(total_subslices == intel_device_info_subslice_total(devinfo)); 46 47 uint32_t total_eus = 0; 48 for (uint32_t s = 0; s < devinfo->max_slices; s++) 49 for (uint32_t ss = 0; ss < devinfo->max_subslices_per_slice; ss++) 50 for (uint32_t eu = 0; eu < devinfo->max_eus_per_subslice; eu++) 51 total_eus += intel_device_info_eu_available(devinfo, s, ss, eu); 52 assert(total_eus == intel_device_info_eu_total(devinfo)); 53 } 54