glsl/standalone: init shader stage in init_gl_program()
authorVasily Khoruzhick <anarsoul@gmail.com>
Fri, 16 Aug 2019 05:17:26 +0000 (22:17 -0700)
committerVasily Khoruzhick <anarsoul@gmail.com>
Sat, 17 Aug 2019 18:14:40 +0000 (11:14 -0700)
Otherwise lima standalone compiler fails when trying to compile fragment
shader with:

lima_compiler: ../src/compiler/nir/nir.c:55: nir_shader_create: Assertion `si->stage == stage' failed

Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
src/compiler/glsl/standalone.cpp

index 7b3d358ca96116926e1538f61db7edb7d802af23..b32fb626ef68449eb2408709ca8b974902a7a7b0 100644 (file)
@@ -44,6 +44,7 @@
 #include "builtin_functions.h"
 #include "opt_add_neg_to_sub.h"
 #include "main/mtypes.h"
+#include "program/program.h"
 
 class dead_variable_visitor : public ir_hierarchical_visitor {
 public:
@@ -98,11 +99,12 @@ private:
 };
 
 static void
-init_gl_program(struct gl_program *prog, bool is_arb_asm)
+init_gl_program(struct gl_program *prog, bool is_arb_asm, GLenum target)
 {
    prog->RefCount = 1;
    prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
    prog->is_arb_asm = is_arb_asm;
+   prog->info.stage = (gl_shader_stage)_mesa_program_enum_to_shader_stage(target);
 }
 
 static struct gl_program *
@@ -117,7 +119,7 @@ new_program(UNUSED struct gl_context *ctx, GLenum target,
    case GL_FRAGMENT_PROGRAM_ARB:
    case GL_COMPUTE_PROGRAM_NV: {
       struct gl_program *prog = rzalloc(NULL, struct gl_program);
-      init_gl_program(prog, is_arb_asm);
+      init_gl_program(prog, is_arb_asm, target);
       return prog;
    }
    default: