• Home
  • Raw
  • Download

Lines Matching full:enc

80 static struct amdgpu_vce_encode enc;  variable
172 memset(&enc, 0, sizeof(struct amdgpu_vce_encode)); in suite_vce_tests_init()
292 enc.width = vce_create[6]; in amdgpu_cs_vce_create()
293 enc.height = vce_create[7]; in amdgpu_cs_vce_create()
296 alloc_resource(&enc.fb[0], 4096, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_create()
297 resources[num_resources++] = enc.fb[0].handle; in amdgpu_cs_vce_create()
306 ib_cpu[len + 8] = ALIGN(enc.width, align); in amdgpu_cs_vce_create()
307 ib_cpu[len + 9] = ALIGN(enc.width, align); in amdgpu_cs_vce_create()
316 ib_cpu[len + 2] = enc.fb[0].addr >> 32; in amdgpu_cs_vce_create()
317 ib_cpu[len + 3] = enc.fb[0].addr; in amdgpu_cs_vce_create()
323 free_resource(&enc.fb[0]); in amdgpu_cs_vce_create()
353 static void amdgpu_cs_vce_encode_idr(struct amdgpu_vce_encode *enc) in amdgpu_cs_vce_encode_idr() argument
358 unsigned luma_size = ALIGN(enc->width, align) * ALIGN(enc->height, 16); in amdgpu_cs_vce_encode_idr()
361 luma_offset = enc->vbuf.addr; in amdgpu_cs_vce_encode_idr()
369 ib_cpu[len + 2] = enc->bs[0].addr >> 32; in amdgpu_cs_vce_encode_idr()
370 ib_cpu[len + 3] = enc->bs[0].addr; in amdgpu_cs_vce_encode_idr()
373 ib_cpu[len + 2] = enc->cpb.addr >> 32; in amdgpu_cs_vce_encode_idr()
374 ib_cpu[len + 3] = enc->cpb.addr; in amdgpu_cs_vce_encode_idr()
383 ib_cpu[len + 2] = enc->fb[0].addr >> 32; in amdgpu_cs_vce_encode_idr()
384 ib_cpu[len + 3] = enc->fb[0].addr; in amdgpu_cs_vce_encode_idr()
391 ib_cpu[len + 14] = ALIGN(enc->width, align); in amdgpu_cs_vce_encode_idr()
392 ib_cpu[len + 15] = ALIGN(enc->width, align); in amdgpu_cs_vce_encode_idr()
396 enc->ib_len = len; in amdgpu_cs_vce_encode_idr()
397 if (!enc->two_instance) { in amdgpu_cs_vce_encode_idr()
403 static void amdgpu_cs_vce_encode_p(struct amdgpu_vce_encode *enc) in amdgpu_cs_vce_encode_p() argument
408 unsigned luma_size = ALIGN(enc->width, align) * ALIGN(enc->height, 16); in amdgpu_cs_vce_encode_p()
410 len = (enc->two_instance) ? enc->ib_len : 0; in amdgpu_cs_vce_encode_p()
411 luma_offset = enc->vbuf.addr; in amdgpu_cs_vce_encode_p()
414 if (!enc->two_instance) { in amdgpu_cs_vce_encode_p()
421 ib_cpu[len + 2] = enc->bs[1].addr >> 32; in amdgpu_cs_vce_encode_p()
422 ib_cpu[len + 3] = enc->bs[1].addr; in amdgpu_cs_vce_encode_p()
425 ib_cpu[len + 2] = enc->cpb.addr >> 32; in amdgpu_cs_vce_encode_p()
426 ib_cpu[len + 3] = enc->cpb.addr; in amdgpu_cs_vce_encode_p()
435 ib_cpu[len + 2] = enc->fb[1].addr >> 32; in amdgpu_cs_vce_encode_p()
436 ib_cpu[len + 3] = enc->fb[1].addr; in amdgpu_cs_vce_encode_p()
444 ib_cpu[len + 14] = ALIGN(enc->width, align); in amdgpu_cs_vce_encode_p()
445 ib_cpu[len + 15] = ALIGN(enc->width, align); in amdgpu_cs_vce_encode_p()
463 static void check_result(struct amdgpu_vce_encode *enc) in check_result() argument
471 r = amdgpu_bo_cpu_map(enc->fb[i].handle, (void **)&enc->fb[i].ptr); in check_result()
473 ptr = (uint32_t *)enc->fb[i].ptr; in check_result()
475 r = amdgpu_bo_cpu_unmap(enc->fb[i].handle); in check_result()
477 r = amdgpu_bo_cpu_map(enc->bs[i].handle, (void **)&enc->bs[i].ptr); in check_result()
480 sum += enc->bs[i].ptr[j]; in check_result()
482 r = amdgpu_bo_cpu_unmap(enc->bs[i].handle); in check_result()
493 vbuf_size = ALIGN(enc.width, align) * ALIGN(enc.height, 16) * 1.5; in amdgpu_cs_vce_encode()
496 alloc_resource(&enc.fb[0], 4096, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode()
497 resources[num_resources++] = enc.fb[0].handle; in amdgpu_cs_vce_encode()
498 alloc_resource(&enc.fb[1], 4096, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode()
499 resources[num_resources++] = enc.fb[1].handle; in amdgpu_cs_vce_encode()
500 alloc_resource(&enc.bs[0], bs_size, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode()
501 resources[num_resources++] = enc.bs[0].handle; in amdgpu_cs_vce_encode()
502 alloc_resource(&enc.bs[1], bs_size, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode()
503 resources[num_resources++] = enc.bs[1].handle; in amdgpu_cs_vce_encode()
504 alloc_resource(&enc.vbuf, vbuf_size, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_cs_vce_encode()
505 resources[num_resources++] = enc.vbuf.handle; in amdgpu_cs_vce_encode()
506 alloc_resource(&enc.cpb, cpb_size, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_cs_vce_encode()
507 resources[num_resources++] = enc.cpb.handle; in amdgpu_cs_vce_encode()
510 r = amdgpu_bo_cpu_map(enc.vbuf.handle, (void **)&enc.vbuf.ptr); in amdgpu_cs_vce_encode()
513 memset(enc.vbuf.ptr, 0, vbuf_size); in amdgpu_cs_vce_encode()
514 for (i = 0; i < enc.height; ++i) { in amdgpu_cs_vce_encode()
515 memcpy(enc.vbuf.ptr, (frame + i * enc.width), enc.width); in amdgpu_cs_vce_encode()
516 enc.vbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode()
518 for (i = 0; i < enc.height / 2; ++i) { in amdgpu_cs_vce_encode()
519 memcpy(enc.vbuf.ptr, ((frame + enc.height * enc.width) + i * enc.width), enc.width); in amdgpu_cs_vce_encode()
520 enc.vbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode()
523 r = amdgpu_bo_cpu_unmap(enc.vbuf.handle); in amdgpu_cs_vce_encode()
530 amdgpu_cs_vce_encode_idr(&enc); in amdgpu_cs_vce_encode()
531 amdgpu_cs_vce_encode_p(&enc); in amdgpu_cs_vce_encode()
532 check_result(&enc); in amdgpu_cs_vce_encode()
536 amdgpu_cs_vce_encode_idr(&enc); in amdgpu_cs_vce_encode()
537 amdgpu_cs_vce_encode_p(&enc); in amdgpu_cs_vce_encode()
538 check_result(&enc); in amdgpu_cs_vce_encode()
542 enc.two_instance = true; in amdgpu_cs_vce_encode()
545 amdgpu_cs_vce_encode_idr(&enc); in amdgpu_cs_vce_encode()
548 amdgpu_cs_vce_encode_p(&enc); in amdgpu_cs_vce_encode()
549 check_result(&enc); in amdgpu_cs_vce_encode()
554 amdgpu_cs_vce_encode_idr(&enc); in amdgpu_cs_vce_encode()
555 amdgpu_cs_vce_encode_p(&enc); in amdgpu_cs_vce_encode()
556 check_result(&enc); in amdgpu_cs_vce_encode()
559 free_resource(&enc.fb[0]); in amdgpu_cs_vce_encode()
560 free_resource(&enc.fb[1]); in amdgpu_cs_vce_encode()
561 free_resource(&enc.bs[0]); in amdgpu_cs_vce_encode()
562 free_resource(&enc.bs[1]); in amdgpu_cs_vce_encode()
563 free_resource(&enc.vbuf); in amdgpu_cs_vce_encode()
564 free_resource(&enc.cpb); in amdgpu_cs_vce_encode()
567 static void amdgpu_cs_vce_mv(struct amdgpu_vce_encode *enc) in amdgpu_cs_vce_mv() argument
572 unsigned luma_size = ALIGN(enc->width, align) * ALIGN(enc->height, 16); in amdgpu_cs_vce_mv()
575 luma_offset = enc->vbuf.addr; in amdgpu_cs_vce_mv()
577 mv_ref_luma_offset = enc->mvrefbuf.addr; in amdgpu_cs_vce_mv()
584 ib_cpu[len + 2] = enc->bs[0].addr >> 32; in amdgpu_cs_vce_mv()
585 ib_cpu[len + 3] = enc->bs[0].addr; in amdgpu_cs_vce_mv()
588 ib_cpu[len + 2] = enc->cpb.addr >> 32; in amdgpu_cs_vce_mv()
589 ib_cpu[len + 3] = enc->cpb.addr; in amdgpu_cs_vce_mv()
598 ib_cpu[len + 2] = enc->fb[0].addr >> 32; in amdgpu_cs_vce_mv()
599 ib_cpu[len + 3] = enc->fb[0].addr; in amdgpu_cs_vce_mv()
604 ib_cpu[len + 4] = ALIGN(enc->width, align); in amdgpu_cs_vce_mv()
605 ib_cpu[len + 5] = ALIGN(enc->width, align); in amdgpu_cs_vce_mv()
607 ib_cpu[len + 7] = enc->mvb.addr >> 32; in amdgpu_cs_vce_mv()
608 ib_cpu[len + 8] = enc->mvb.addr; in amdgpu_cs_vce_mv()
618 ib_cpu[len + 13] = ALIGN(enc->height, 16);; in amdgpu_cs_vce_mv()
619 ib_cpu[len + 14] = ALIGN(enc->width, align); in amdgpu_cs_vce_mv()
620 ib_cpu[len + 15] = ALIGN(enc->width, align); in amdgpu_cs_vce_mv()
644 enc->ib_len = len; in amdgpu_cs_vce_mv()
649 static void check_mv_result(struct amdgpu_vce_encode *enc) in check_mv_result() argument
655 r = amdgpu_bo_cpu_map(enc->fb[0].handle, (void **)&enc->fb[0].ptr); in check_mv_result()
657 r = amdgpu_bo_cpu_unmap(enc->fb[0].handle); in check_mv_result()
659 r = amdgpu_bo_cpu_map(enc->mvb.handle, (void **)&enc->mvb.ptr); in check_mv_result()
661 for (j = 0, sum = 0; j < enc->mvbuf_size; ++j) in check_mv_result()
662 sum += enc->mvb.ptr[j]; in check_mv_result()
664 r = amdgpu_bo_cpu_unmap(enc->mvb.handle); in check_mv_result()
674 vbuf_size = ALIGN(enc.width, align) * ALIGN(enc.height, 16) * 1.5; in amdgpu_cs_vce_encode_mv()
675 enc.mvbuf_size = ALIGN(enc.width, 16) * ALIGN(enc.height, 16) / 8; in amdgpu_cs_vce_encode_mv()
678 alloc_resource(&enc.fb[0], 4096, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode_mv()
679 resources[num_resources++] = enc.fb[0].handle; in amdgpu_cs_vce_encode_mv()
680 alloc_resource(&enc.bs[0], bs_size, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode_mv()
681 resources[num_resources++] = enc.bs[0].handle; in amdgpu_cs_vce_encode_mv()
682 alloc_resource(&enc.mvb, enc.mvbuf_size, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_encode_mv()
683 resources[num_resources++] = enc.mvb.handle; in amdgpu_cs_vce_encode_mv()
684 alloc_resource(&enc.vbuf, vbuf_size, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_cs_vce_encode_mv()
685 resources[num_resources++] = enc.vbuf.handle; in amdgpu_cs_vce_encode_mv()
686 alloc_resource(&enc.mvrefbuf, vbuf_size, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_cs_vce_encode_mv()
687 resources[num_resources++] = enc.mvrefbuf.handle; in amdgpu_cs_vce_encode_mv()
688 alloc_resource(&enc.cpb, cpb_size, AMDGPU_GEM_DOMAIN_VRAM); in amdgpu_cs_vce_encode_mv()
689 resources[num_resources++] = enc.cpb.handle; in amdgpu_cs_vce_encode_mv()
692 r = amdgpu_bo_cpu_map(enc.vbuf.handle, (void **)&enc.vbuf.ptr); in amdgpu_cs_vce_encode_mv()
695 memset(enc.vbuf.ptr, 0, vbuf_size); in amdgpu_cs_vce_encode_mv()
696 for (i = 0; i < enc.height; ++i) { in amdgpu_cs_vce_encode_mv()
697 memcpy(enc.vbuf.ptr, (frame + i * enc.width), enc.width); in amdgpu_cs_vce_encode_mv()
698 enc.vbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode_mv()
700 for (i = 0; i < enc.height / 2; ++i) { in amdgpu_cs_vce_encode_mv()
701 memcpy(enc.vbuf.ptr, ((frame + enc.height * enc.width) + i * enc.width), enc.width); in amdgpu_cs_vce_encode_mv()
702 enc.vbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode_mv()
705 r = amdgpu_bo_cpu_unmap(enc.vbuf.handle); in amdgpu_cs_vce_encode_mv()
708 r = amdgpu_bo_cpu_map(enc.mvrefbuf.handle, (void **)&enc.mvrefbuf.ptr); in amdgpu_cs_vce_encode_mv()
711 memset(enc.mvrefbuf.ptr, 0, vbuf_size); in amdgpu_cs_vce_encode_mv()
712 for (i = 0; i < enc.height; ++i) { in amdgpu_cs_vce_encode_mv()
713 memcpy(enc.mvrefbuf.ptr, (frame + (enc.height - i -1) * enc.width), enc.width); in amdgpu_cs_vce_encode_mv()
714 enc.mvrefbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode_mv()
716 for (i = 0; i < enc.height / 2; ++i) { in amdgpu_cs_vce_encode_mv()
717 memcpy(enc.mvrefbuf.ptr, in amdgpu_cs_vce_encode_mv()
718 ((frame + enc.height * enc.width) + (enc.height / 2 - i -1) * enc.width), enc.width); in amdgpu_cs_vce_encode_mv()
719 enc.mvrefbuf.ptr += ALIGN(enc.width, align); in amdgpu_cs_vce_encode_mv()
722 r = amdgpu_bo_cpu_unmap(enc.mvrefbuf.handle); in amdgpu_cs_vce_encode_mv()
728 amdgpu_cs_vce_mv(&enc); in amdgpu_cs_vce_encode_mv()
729 check_mv_result(&enc); in amdgpu_cs_vce_encode_mv()
731 free_resource(&enc.fb[0]); in amdgpu_cs_vce_encode_mv()
732 free_resource(&enc.bs[0]); in amdgpu_cs_vce_encode_mv()
733 free_resource(&enc.vbuf); in amdgpu_cs_vce_encode_mv()
734 free_resource(&enc.cpb); in amdgpu_cs_vce_encode_mv()
735 free_resource(&enc.mvrefbuf); in amdgpu_cs_vce_encode_mv()
736 free_resource(&enc.mvb); in amdgpu_cs_vce_encode_mv()
744 alloc_resource(&enc.fb[0], 4096, AMDGPU_GEM_DOMAIN_GTT); in amdgpu_cs_vce_destroy()
745 resources[num_resources++] = enc.fb[0].handle; in amdgpu_cs_vce_destroy()
755 ib_cpu[len + 2] = enc.fb[0].addr >> 32; in amdgpu_cs_vce_destroy()
756 ib_cpu[len + 3] = enc.fb[0].addr; in amdgpu_cs_vce_destroy()
764 free_resource(&enc.fb[0]); in amdgpu_cs_vce_destroy()