mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
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 <a.heider@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
8b010f3557
commit
a4324dcefb
1 changed files with 8 additions and 3 deletions
|
|
@ -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 *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue