Module: Mesa
Branch: main
Commit: eb65c4be88b2ad86be697c1c16bcc7629c3f4748
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eb65c4be88b2ad86be697c1c16bcc7629c3f4748

Author: Simon Perretta <[email protected]>
Date:   Mon Feb 13 22:09:58 2023 +0000

pvr: Add support for WOP

Signed-off-by: Simon Perretta <[email protected]>
Acked-by: Frank Binns <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21474>

---

 src/imagination/rogue/passes/rogue_schedule_instr_groups.c | 4 ++++
 src/imagination/rogue/rogue.h                              | 1 +
 src/imagination/rogue/rogue_ctrl_instrs.def                | 1 +
 src/imagination/rogue/rogue_encode.c                       | 4 ++++
 src/imagination/rogue/rogue_info.c                         | 1 +
 5 files changed, 11 insertions(+)

diff --git a/src/imagination/rogue/passes/rogue_schedule_instr_groups.c 
b/src/imagination/rogue/passes/rogue_schedule_instr_groups.c
index 465c913ece0..7cef13a0c9c 100644
--- a/src/imagination/rogue/passes/rogue_schedule_instr_groups.c
+++ b/src/imagination/rogue/passes/rogue_schedule_instr_groups.c
@@ -647,6 +647,10 @@ static void rogue_calc_ctrl_instrs_size(rogue_instr_group 
*group,
       group->size.instrs[phase] = 1;
       break;
 
+   case ROGUE_CTRL_OP_WOP:
+      group->size.instrs[phase] = 0;
+      break;
+
    default:
       unreachable("Unsupported ctrl op.");
    }
diff --git a/src/imagination/rogue/rogue.h b/src/imagination/rogue/rogue.h
index afcdcf7cbad..0f442f2dd12 100644
--- a/src/imagination/rogue/rogue.h
+++ b/src/imagination/rogue/rogue.h
@@ -1097,6 +1097,7 @@ enum rogue_ctrl_op {
 
    /* Real instructions. */
    ROGUE_CTRL_OP_NOP,
+   ROGUE_CTRL_OP_WOP,
    ROGUE_CTRL_OP_BA,
    ROGUE_CTRL_OP_WDF,
 
diff --git a/src/imagination/rogue/rogue_ctrl_instrs.def 
b/src/imagination/rogue/rogue_ctrl_instrs.def
index 656a66b9f7b..55b61180818 100644
--- a/src/imagination/rogue/rogue_ctrl_instrs.def
+++ b/src/imagination/rogue/rogue_ctrl_instrs.def
@@ -57,6 +57,7 @@ ROGUE_BUILDER_DEFINE_CTRLB(BA)
 
 ROGUE_BUILDER_DEFINE_CTRL00(END)
 ROGUE_BUILDER_DEFINE_CTRL00(NOP)
+ROGUE_BUILDER_DEFINE_CTRL00(WOP)
 
 ROGUE_BUILDER_DEFINE_CTRL01(WDF)
 
diff --git a/src/imagination/rogue/rogue_encode.c 
b/src/imagination/rogue/rogue_encode.c
index b87b5a89885..6b15ad9be41 100644
--- a/src/imagination/rogue/rogue_encode.c
+++ b/src/imagination/rogue/rogue_encode.c
@@ -158,6 +158,10 @@ static void 
rogue_encode_instr_group_header(rogue_instr_group *group,
          h.miscctl = rogue_ctrl_op_mod_is_set(ctrl, ROGUE_CTRL_OP_MOD_END);
          break;
 
+      case ROGUE_CTRL_OP_WOP:
+         h.ctrlop = CTRLOP_WOP;
+         break;
+
       default:
          unreachable("Unsupported ctrl op.");
       }
diff --git a/src/imagination/rogue/rogue_info.c 
b/src/imagination/rogue/rogue_info.c
index 2109b0a61ce..518ebd81111 100644
--- a/src/imagination/rogue/rogue_info.c
+++ b/src/imagination/rogue/rogue_info.c
@@ -229,6 +229,7 @@ const rogue_ctrl_op_info 
rogue_ctrl_op_infos[ROGUE_CTRL_OP_COUNT] = {
        [ROGUE_CTRL_OP_NOP] = { .str = "nop",
                .supported_op_mods = OM(END),
        },
+       [ROGUE_CTRL_OP_WOP] = { .str = "wop", },
        [ROGUE_CTRL_OP_BA] = { .str = "ba", .has_target = true, .ends_block = 
true, },
        [ROGUE_CTRL_OP_WDF] = { .str = "wdf", .num_srcs = 1,
       .supported_src_types = { [0] = T(DRC), },

Reply via email to