From 73d07bbb52db9dfb485be155eaa6ed132b1684f8 Mon Sep 17 00:00:00 2001 From: Simon Perretta Date: Tue, 14 Feb 2023 00:48:57 +0000 Subject: [PATCH] pvr: Add support for generating NOP program Signed-off-by: Simon Perretta Acked-by: Frank Binns Part-of: --- 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 +/* 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 */