Lines Matching refs:backend
220 rogue_backend_instr_encoding backend; member
454 static unsigned rogue_backend_get_cachemode(const rogue_backend_instr *backend) in rogue_backend_get_cachemode() argument
456 if (rogue_backend_op_mod_is_set(backend, OM(BYPASS))) in rogue_backend_get_cachemode()
458 else if (rogue_backend_op_mod_is_set(backend, OM(FORCELINEFILL))) in rogue_backend_get_cachemode()
460 else if (rogue_backend_op_mod_is_set(backend, OM(WRITETHROUGH))) in rogue_backend_get_cachemode()
462 else if (rogue_backend_op_mod_is_set(backend, OM(WRITEBACK))) in rogue_backend_get_cachemode()
464 else if (rogue_backend_op_mod_is_set(backend, OM(LAZYWRITEBACK))) in rogue_backend_get_cachemode()
472 rogue_backend_get_slccachemode(const rogue_backend_instr *backend) in rogue_backend_get_slccachemode() argument
474 if (rogue_backend_op_mod_is_set(backend, OM(SLCBYPASS))) in rogue_backend_get_slccachemode()
476 else if (rogue_backend_op_mod_is_set(backend, OM(SLCWRITEBACK))) in rogue_backend_get_slccachemode()
478 else if (rogue_backend_op_mod_is_set(backend, OM(SLCWRITETHROUGH))) in rogue_backend_get_slccachemode()
480 else if (rogue_backend_op_mod_is_set(backend, OM(SLCNOALLOC))) in rogue_backend_get_slccachemode()
487 static void rogue_encode_backend_instr(const rogue_backend_instr *backend, in rogue_encode_backend_instr() argument
491 switch (backend->op) { in rogue_encode_backend_instr()
493 instr_encoding->backend.op = BACKENDOP_FITR; in rogue_encode_backend_instr()
494 instr_encoding->backend.fitr.p = 0; in rogue_encode_backend_instr()
495 instr_encoding->backend.fitr.drc = in rogue_encode_backend_instr()
496 rogue_ref_get_drc_index(&backend->src[0].ref); in rogue_encode_backend_instr()
497 instr_encoding->backend.fitr.mode = FITR_MODE_PIXEL; in rogue_encode_backend_instr()
498 instr_encoding->backend.fitr.sat = in rogue_encode_backend_instr()
499 rogue_backend_op_mod_is_set(backend, OM(SAT)); in rogue_encode_backend_instr()
500 instr_encoding->backend.fitr.count = in rogue_encode_backend_instr()
501 rogue_ref_get_val(&backend->src[2].ref); in rogue_encode_backend_instr()
505 instr_encoding->backend.op = BACKENDOP_FITR; in rogue_encode_backend_instr()
506 instr_encoding->backend.fitr.p = 1; in rogue_encode_backend_instr()
507 instr_encoding->backend.fitr.drc = in rogue_encode_backend_instr()
508 rogue_ref_get_drc_index(&backend->src[0].ref); in rogue_encode_backend_instr()
509 instr_encoding->backend.fitr.mode = FITR_MODE_PIXEL; in rogue_encode_backend_instr()
510 instr_encoding->backend.fitr.sat = in rogue_encode_backend_instr()
511 rogue_backend_op_mod_is_set(backend, OM(SAT)); in rogue_encode_backend_instr()
512 instr_encoding->backend.fitr.count = in rogue_encode_backend_instr()
513 rogue_ref_get_val(&backend->src[3].ref); in rogue_encode_backend_instr()
517 instr_encoding->backend.op = BACKENDOP_UVSW; in rogue_encode_backend_instr()
518 instr_encoding->backend.uvsw.writeop = UVSW_WRITEOP_WRITE; in rogue_encode_backend_instr()
519 instr_encoding->backend.uvsw.imm = 1; in rogue_encode_backend_instr()
520 instr_encoding->backend.uvsw.imm_src.imm_addr = in rogue_encode_backend_instr()
521 rogue_ref_get_reg_index(&backend->dst[0].ref); in rogue_encode_backend_instr()
525 instr_encoding->backend.op = BACKENDOP_UVSW; in rogue_encode_backend_instr()
526 instr_encoding->backend.uvsw.writeop = UVSW_WRITEOP_EMIT; in rogue_encode_backend_instr()
530 instr_encoding->backend.op = BACKENDOP_UVSW; in rogue_encode_backend_instr()
531 instr_encoding->backend.uvsw.writeop = UVSW_WRITEOP_END; in rogue_encode_backend_instr()
535 instr_encoding->backend.op = BACKENDOP_UVSW; in rogue_encode_backend_instr()
536 instr_encoding->backend.uvsw.writeop = UVSW_WRITEOP_EMIT_END; in rogue_encode_backend_instr()
540 instr_encoding->backend.op = BACKENDOP_UVSW; in rogue_encode_backend_instr()
541 instr_encoding->backend.uvsw.writeop = UVSW_WRITEOP_WRITE_EMIT_END; in rogue_encode_backend_instr()
542 instr_encoding->backend.uvsw.imm = 1; in rogue_encode_backend_instr()
543 instr_encoding->backend.uvsw.imm_src.imm_addr = in rogue_encode_backend_instr()
544 rogue_ref_get_reg_index(&backend->dst[0].ref); in rogue_encode_backend_instr()
548 instr_encoding->backend.op = BACKENDOP_DMA; in rogue_encode_backend_instr()
549 instr_encoding->backend.dma.dmaop = DMAOP_LD; in rogue_encode_backend_instr()
550 instr_encoding->backend.dma.ld.drc = in rogue_encode_backend_instr()
551 rogue_ref_get_drc_index(&backend->src[0].ref); in rogue_encode_backend_instr()
552 instr_encoding->backend.dma.ld.cachemode = in rogue_encode_backend_instr()
553 rogue_backend_get_cachemode(backend); in rogue_encode_backend_instr()
555 bool imm_burstlen = rogue_ref_is_val(&backend->src[1].ref); in rogue_encode_backend_instr()
558 ._ = imm_burstlen ? rogue_ref_get_val(&backend->src[1].ref) : 0 in rogue_encode_backend_instr()
562 instr_encoding->backend.dma.ld.burstlen_2_0 = burstlen._2_0; in rogue_encode_backend_instr()
564 instr_encoding->backend.dma.ld.srcselbl = in rogue_encode_backend_instr()
565 rogue_ref_get_io_src_index(&backend->src[1].ref); in rogue_encode_backend_instr()
568 instr_encoding->backend.dma.ld.srcseladd = in rogue_encode_backend_instr()
569 rogue_ref_get_io_src_index(&backend->src[2].ref); in rogue_encode_backend_instr()
572 instr_encoding->backend.dma.ld.ext = 1; in rogue_encode_backend_instr()
574 instr_encoding->backend.dma.ld.burstlen_3 = burstlen._3; in rogue_encode_backend_instr()
576 instr_encoding->backend.dma.ld.slccachemode = in rogue_encode_backend_instr()
577 rogue_backend_get_slccachemode(backend); in rogue_encode_backend_instr()
578 instr_encoding->backend.dma.ld.notimmbl = !imm_burstlen; in rogue_encode_backend_instr()
585 instr_encoding->backend.op = BACKENDOP_DMA; in rogue_encode_backend_instr()
586 instr_encoding->backend.dma.dmaop = DMAOP_ST; in rogue_encode_backend_instr()
587 instr_encoding->backend.dma.st.drc = in rogue_encode_backend_instr()
588 rogue_ref_get_drc_index(&backend->src[2].ref); in rogue_encode_backend_instr()
590 bool imm_burstlen = rogue_ref_is_val(&backend->src[3].ref); in rogue_encode_backend_instr()
592 instr_encoding->backend.dma.st.immbl = imm_burstlen; in rogue_encode_backend_instr()
596 &backend->src[3].ref) }; in rogue_encode_backend_instr()
597 instr_encoding->backend.dma.st.burstlen_2_0 = burstlen._2_0; in rogue_encode_backend_instr()
598 instr_encoding->backend.dma.st.burstlen_3 = burstlen._3; in rogue_encode_backend_instr()
600 instr_encoding->backend.dma.st.srcselbl = in rogue_encode_backend_instr()
601 rogue_ref_get_io_src_index(&backend->src[3].ref); in rogue_encode_backend_instr()
604 instr_encoding->backend.dma.st.cachemode = in rogue_encode_backend_instr()
605 rogue_backend_get_cachemode(backend); in rogue_encode_backend_instr()
606 instr_encoding->backend.dma.st.srcseladd = in rogue_encode_backend_instr()
607 rogue_ref_get_io_src_index(&backend->src[4].ref); in rogue_encode_backend_instr()
609 instr_encoding->backend.dma.st.dsize = in rogue_encode_backend_instr()
610 rogue_ref_get_val(&backend->src[1].ref); in rogue_encode_backend_instr()
611 instr_encoding->backend.dma.st.srcseldata = in rogue_encode_backend_instr()
612 rogue_ref_get_io_src_index(&backend->src[0].ref); in rogue_encode_backend_instr()
615 instr_encoding->backend.dma.st.ext = 1; in rogue_encode_backend_instr()
616 instr_encoding->backend.dma.st.srcmask = in rogue_encode_backend_instr()
617 rogue_ref_get_io_src_index(&backend->src[5].ref); in rogue_encode_backend_instr()
618 instr_encoding->backend.dma.st.slccachemode = in rogue_encode_backend_instr()
619 rogue_backend_get_slccachemode(backend); in rogue_encode_backend_instr()
620 instr_encoding->backend.dma.st.nottiled = in rogue_encode_backend_instr()
621 !rogue_backend_op_mod_is_set(backend, OM(TILED)); in rogue_encode_backend_instr()
630 instr_encoding->backend.op = BACKENDOP_DMA; in rogue_encode_backend_instr()
631 instr_encoding->backend.dma.dmaop = DMAOP_SMP; in rogue_encode_backend_instr()
633 instr_encoding->backend.dma.smp.drc = in rogue_encode_backend_instr()
634 rogue_ref_get_drc_index(&backend->src[0].ref); in rogue_encode_backend_instr()
635 instr_encoding->backend.dma.smp.fcnorm = in rogue_encode_backend_instr()
636 rogue_backend_op_mod_is_set(backend, OM(FCNORM)); in rogue_encode_backend_instr()
638 if (rogue_backend_op_mod_is_set(backend, OM(BIAS))) in rogue_encode_backend_instr()
639 instr_encoding->backend.dma.smp.lodm = LODM_BIAS; in rogue_encode_backend_instr()
640 else if (rogue_backend_op_mod_is_set(backend, OM(REPLACE))) in rogue_encode_backend_instr()
641 instr_encoding->backend.dma.smp.lodm = LODM_REPLACE; in rogue_encode_backend_instr()
642 else if (rogue_backend_op_mod_is_set(backend, OM(GRADIENT))) in rogue_encode_backend_instr()
643 instr_encoding->backend.dma.smp.lodm = LODM_GRADIENTS; in rogue_encode_backend_instr()
645 instr_encoding->backend.dma.smp.lodm = LODM_NORMAL; in rogue_encode_backend_instr()
647 switch (rogue_ref_get_val(&backend->src[5].ref)) { in rogue_encode_backend_instr()
649 instr_encoding->backend.dma.smp.chan = SMPCHAN_1; in rogue_encode_backend_instr()
653 instr_encoding->backend.dma.smp.chan = SMPCHAN_2; in rogue_encode_backend_instr()
657 instr_encoding->backend.dma.smp.chan = SMPCHAN_3; in rogue_encode_backend_instr()
661 instr_encoding->backend.dma.smp.chan = SMPCHAN_4; in rogue_encode_backend_instr()
668 switch (backend->op) { in rogue_encode_backend_instr()
670 instr_encoding->backend.dma.smp.dmn = DMN_1D; in rogue_encode_backend_instr()
674 instr_encoding->backend.dma.smp.dmn = DMN_2D; in rogue_encode_backend_instr()
678 instr_encoding->backend.dma.smp.dmn = DMN_3D; in rogue_encode_backend_instr()
686 instr_encoding->backend.dma.smp.exta = 1; in rogue_encode_backend_instr()
688 instr_encoding->backend.dma.smp.tao = in rogue_encode_backend_instr()
689 rogue_backend_op_mod_is_set(backend, OM(TAO)); in rogue_encode_backend_instr()
690 instr_encoding->backend.dma.smp.soo = in rogue_encode_backend_instr()
691 rogue_backend_op_mod_is_set(backend, OM(SOO)); in rogue_encode_backend_instr()
692 instr_encoding->backend.dma.smp.sno = in rogue_encode_backend_instr()
693 rogue_backend_op_mod_is_set(backend, OM(SNO)); in rogue_encode_backend_instr()
694 instr_encoding->backend.dma.smp.nncoords = in rogue_encode_backend_instr()
695 rogue_backend_op_mod_is_set(backend, OM(NNCOORDS)); in rogue_encode_backend_instr()
697 if (rogue_backend_op_mod_is_set(backend, OM(DATA))) in rogue_encode_backend_instr()
698 instr_encoding->backend.dma.smp.sbmode = SBMODE_DATA; in rogue_encode_backend_instr()
699 else if (rogue_backend_op_mod_is_set(backend, OM(INFO))) in rogue_encode_backend_instr()
700 instr_encoding->backend.dma.smp.sbmode = SBMODE_INFO; in rogue_encode_backend_instr()
701 else if (rogue_backend_op_mod_is_set(backend, OM(BOTH))) in rogue_encode_backend_instr()
702 instr_encoding->backend.dma.smp.sbmode = SBMODE_BOTH; in rogue_encode_backend_instr()
704 instr_encoding->backend.dma.smp.sbmode = SBMODE_NONE; in rogue_encode_backend_instr()
706 instr_encoding->backend.dma.smp.proj = in rogue_encode_backend_instr()
707 rogue_backend_op_mod_is_set(backend, OM(PROJ)); in rogue_encode_backend_instr()
708 instr_encoding->backend.dma.smp.pplod = in rogue_encode_backend_instr()
709 rogue_backend_op_mod_is_set(backend, OM(PPLOD)); in rogue_encode_backend_instr()
713 instr_encoding->backend.dma.smp.extb = 1; in rogue_encode_backend_instr()
715 instr_encoding->backend.dma.smp.w = in rogue_encode_backend_instr()
716 rogue_backend_op_mod_is_set(backend, OM(WRT)); in rogue_encode_backend_instr()
718 instr_encoding->backend.dma.smp.cachemode = in rogue_encode_backend_instr()
719 rogue_backend_get_cachemode(backend); in rogue_encode_backend_instr()
721 instr_encoding->backend.dma.smp.swap = in rogue_encode_backend_instr()
722 rogue_backend_op_mod_is_set(backend, OM(SCHEDSWAP)); in rogue_encode_backend_instr()
723 instr_encoding->backend.dma.smp.f16 = in rogue_encode_backend_instr()
724 rogue_backend_op_mod_is_set(backend, OM(F16)); in rogue_encode_backend_instr()
726 instr_encoding->backend.dma.smp.slccachemode = in rogue_encode_backend_instr()
727 rogue_backend_get_slccachemode(backend); in rogue_encode_backend_instr()
731 instr_encoding->backend.dma.smp.extc = 1; in rogue_encode_backend_instr()
733 instr_encoding->backend.dma.smp.array = in rogue_encode_backend_instr()
734 rogue_backend_op_mod_is_set(backend, OM(ARRAY)); in rogue_encode_backend_instr()
740 instr_encoding->backend.op = BACKENDOP_DMA; in rogue_encode_backend_instr()
741 instr_encoding->backend.dma.dmaop = DMAOP_IDF; in rogue_encode_backend_instr()
742 instr_encoding->backend.dma.idf.drc = in rogue_encode_backend_instr()
743 rogue_ref_get_drc_index(&backend->src[0].ref); in rogue_encode_backend_instr()
744 instr_encoding->backend.dma.idf.srcseladd = in rogue_encode_backend_instr()
745 rogue_ref_get_io_src_index(&backend->src[1].ref); in rogue_encode_backend_instr()
749 instr_encoding->backend.op = BACKENDOP_EMIT; in rogue_encode_backend_instr()
750 instr_encoding->backend.emitpix.freep = in rogue_encode_backend_instr()
751 rogue_backend_op_mod_is_set(backend, OM(FREEP)); in rogue_encode_backend_instr()