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

Author: Simon Perretta <[email protected]>
Date:   Tue Feb 14 00:48:57 2023 +0000

pvr: Add support for generating NOP program

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/vulkan/usc/pvr_uscgen.c | 15 +++++++++++++++
 src/imagination/vulkan/usc/pvr_uscgen.h |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/src/imagination/vulkan/usc/pvr_uscgen.c 
b/src/imagination/vulkan/usc/pvr_uscgen.c
index 7dd243304a8..6c89c5d7f8b 100644
--- a/src/imagination/vulkan/usc/pvr_uscgen.c
+++ b/src/imagination/vulkan/usc/pvr_uscgen.c
@@ -61,3 +61,18 @@ void pvr_uscgen_per_job_eot(uint32_t state0,
    ralloc_free(shader);
 }
 
+void pvr_uscgen_nop(struct util_dynarray *binary)
+{
+   rogue_builder b;
+   rogue_shader *shader = rogue_shader_create(NULL, MESA_SHADER_NONE);
+   rogue_set_shader_name(shader, "NOP");
+   rogue_builder_init(&b, shader);
+   rogue_push_block(&b);
+
+   rogue_END(&b);
+
+   rogue_shader_passes(shader);
+   rogue_encode_shader(NULL, shader, binary);
+
+   ralloc_free(shader);
+}
diff --git a/src/imagination/vulkan/usc/pvr_uscgen.h 
b/src/imagination/vulkan/usc/pvr_uscgen.h
index a4f0d956316..3918983e541 100644
--- a/src/imagination/vulkan/usc/pvr_uscgen.h
+++ b/src/imagination/vulkan/usc/pvr_uscgen.h
@@ -28,9 +28,13 @@
 
 #include <stdint.h>
 
+/* TODO: Shader caching (not pipeline caching) support. */
+
 void pvr_uscgen_per_job_eot(uint32_t state0,
                             uint32_t state1,
                             unsigned *temps_used,
                             struct util_dynarray *binary);
 
+void pvr_uscgen_nop(struct util_dynarray *binary);
+
 #endif /* PVR_USCGEN_H */

Reply via email to