int suite_vce_tests_init(void) { int r; r = amdgpu_device_initialize(drm_amdgpu[0], &major_version, &minor_version, &device_handle); if (r) return CUE_SINIT_FAILED; family_id = device_handle->info.family_id; r = amdgpu_cs_ctx_create(device_handle, &context_handle); if (r) return CUE_SINIT_FAILED; r = amdgpu_bo_alloc_and_map(device_handle, IB_SIZE, 4096, AMDGPU_GEM_DOMAIN_GTT, 0, &ib_handle, (void**)&ib_cpu, &ib_mc_address, &ib_va_handle); if (r) return CUE_SINIT_FAILED; memset(&enc, 0, sizeof(struct amdgpu_vce_encode)); return CUE_SUCCESS; }
int suite_basic_tests_init(void) { int r; r = amdgpu_device_initialize(drm_amdgpu[0], &major_version, &minor_version, &device_handle); if (r == 0) return CUE_SUCCESS; else return CUE_SINIT_FAILED; }
int suite_bo_tests_init(void) { struct amdgpu_bo_alloc_request req = {0}; amdgpu_bo_handle buf_handle; uint64_t va; int r; r = amdgpu_device_initialize(drm_amdgpu[0], &major_version, &minor_version, &device_handle); if (r) { if ((r == -EACCES) && (errno == EACCES)) printf("\n\nError:%s. " "Hint:Try to run this test program as root.", strerror(errno)); return CUE_SINIT_FAILED; } req.alloc_size = BUFFER_SIZE; req.phys_alignment = BUFFER_ALIGN; req.preferred_heap = AMDGPU_GEM_DOMAIN_GTT; r = amdgpu_bo_alloc(device_handle, &req, &buf_handle); if (r) return CUE_SINIT_FAILED; r = amdgpu_va_range_alloc(device_handle, amdgpu_gpu_va_range_general, BUFFER_SIZE, BUFFER_ALIGN, 0, &va, &va_handle, 0); if (r) goto error_va_alloc; r = amdgpu_bo_va_op(buf_handle, 0, BUFFER_SIZE, va, 0, AMDGPU_VA_OP_MAP); if (r) goto error_va_map; buffer_handle = buf_handle; virtual_mc_base_address = va; return CUE_SUCCESS; error_va_map: amdgpu_va_range_free(va_handle); error_va_alloc: amdgpu_bo_free(buf_handle); return CUE_SINIT_FAILED; }
static void amdgpu_disable_suites() { amdgpu_device_handle device_handle; uint32_t major_version, minor_version, family_id; int i; int size = sizeof(suites_active_stat) / sizeof(suites_active_stat[0]); if (amdgpu_device_initialize(drm_amdgpu[0], &major_version, &minor_version, &device_handle)) return; family_id = device_handle->info.family_id; if (amdgpu_device_deinitialize(device_handle)) return; /* Set active status for suites based on their policies */ for (i = 0; i < size; ++i) if (amdgpu_set_suite_active(suites_active_stat[i].pName, suites_active_stat[i].pActive())) fprintf(stderr, "suite deactivation failed - %s\n", CU_get_error_msg()); /* Explicitly disable specific tests due to known bugs or preferences */ /* * BUG: Compute ring stalls and never recovers when the address is * written after the command already submitted */ if (amdgpu_set_test_active(DEADLOCK_TESTS_STR, "compute ring block test", CU_FALSE)) fprintf(stderr, "test deactivation failed - %s\n", CU_get_error_msg()); if (amdgpu_set_test_active(BO_TESTS_STR, "Metadata", CU_FALSE)) fprintf(stderr, "test deactivation failed - %s\n", CU_get_error_msg()); if (amdgpu_set_test_active(BASIC_TESTS_STR, "bo eviction Test", CU_FALSE)) fprintf(stderr, "test deactivation failed - %s\n", CU_get_error_msg()); /* This test was ran on GFX8 and GFX9 only */ if (family_id < AMDGPU_FAMILY_VI || family_id > AMDGPU_FAMILY_RV) if (amdgpu_set_test_active(BASIC_TESTS_STR, "Sync dependency Test", CU_FALSE)) fprintf(stderr, "test deactivation failed - %s\n", CU_get_error_msg()); }
int suite_cs_tests_init(void) { amdgpu_bo_handle ib_result_handle; void *ib_result_cpu; uint64_t ib_result_mc_address; amdgpu_va_handle ib_result_va_handle; int r; r = amdgpu_device_initialize(drm_amdgpu[0], &major_version, &minor_version, &device_handle); if (r) return CUE_SINIT_FAILED; family_id = device_handle->info.family_id; /* VI asic POLARIS10/11 have specific external_rev_id */ chip_rev = device_handle->info.chip_rev; chip_id = device_handle->info.chip_external_rev; r = amdgpu_cs_ctx_create(device_handle, &context_handle); if (r) return CUE_SINIT_FAILED; r = amdgpu_bo_alloc_and_map(device_handle, IB_SIZE, 4096, AMDGPU_GEM_DOMAIN_GTT, 0, &ib_result_handle, &ib_result_cpu, &ib_result_mc_address, &ib_result_va_handle); if (r) return CUE_SINIT_FAILED; ib_handle = ib_result_handle; ib_mc_address = ib_result_mc_address; ib_cpu = ib_result_cpu; ib_va_handle = ib_result_va_handle; return CUE_SUCCESS; }