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 */
