Module: Mesa Branch: master Commit: a4324dcefb749983e45d2ae7b005e1a6de4a3064 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a4324dcefb749983e45d2ae7b005e1a6de4a3064
Author: Andre Heider <[email protected]> Date: Sun Feb 10 18:31:59 2019 +0100 iris: add support for tgsi_to_nir The Gallium Nine state tracker now works on iris. Also tested with GALLIUM_HUD and Star Wars: Knights of the Old Republic on WINE (GL_ATI_fragment_shader). Signed-off-by: Andre Heider <[email protected]> Reviewed-by: Timur Kristóf <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> --- src/gallium/drivers/iris/iris_program.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index 2feb43a367f..0ceaeb22d27 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -41,6 +41,7 @@ #include "intel/compiler/brw_compiler.h" #include "intel/compiler/brw_nir.h" #include "iris_context.h" +#include "nir/tgsi_to_nir.h" #define KEY_INIT_NO_ID(gen) \ .tex.swizzles[0 ... MAX_SAMPLERS - 1] = 0x688, \ @@ -1410,10 +1411,14 @@ static struct iris_uncompiled_shader * iris_create_shader_state(struct pipe_context *ctx, const struct pipe_shader_state *state) { - assert(state->type == PIPE_SHADER_IR_NIR); + struct nir_shader *nir; - return iris_create_uncompiled_shader(ctx, state->ir.nir, - &state->stream_output); + if (state->type == PIPE_SHADER_IR_TGSI) + nir = tgsi_to_nir(state->tokens, ctx->screen); + else + nir = state->ir.nir; + + return iris_create_uncompiled_shader(ctx, nir, &state->stream_output); } static void * _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
