mesa/compiler: add stage to shader_info
authorTimothy Arceri <timothy.arceri@collabora.com>
Mon, 31 Oct 2016 08:57:57 +0000 (19:57 +1100)
committerTimothy Arceri <timothy.arceri@collabora.com>
Thu, 29 Dec 2016 23:57:15 +0000 (10:57 +1100)
This will allow us to simplify the current program logic for SSO.

Also since we aim to detach shader_info from nir_shader this will come
in handy avoiding passing nir_shader around just to keep track of
the stage we are dealing with.

V2: set stage for arb asm programs also.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/compiler/shader_info.h
src/mesa/program/program.c

index 768f0531bc7865c8b7533bc27676fe70c642e7ac..6c05f3807ee90bef79b20d87850a8eae6e920622 100644 (file)
@@ -32,6 +32,9 @@ extern "C" {
 #endif
 
 typedef struct shader_info {
+   /** The shader stage, such as MESA_SHADER_VERTEX. */
+   gl_shader_stage stage;
+
    const char *name;
 
    /* Descriptive name provided by the client; may be NULL */
index e5eb06cb4b735076d3868288328c1d20088e8ca1..27ae1c6d0eed9ac4f09af2988c4ad8ebee8a4dc8 100644 (file)
@@ -190,6 +190,7 @@ _mesa_init_gl_program(struct gl_program *prog, GLenum target, GLuint id)
    prog->Target = target;
    prog->RefCount = 1;
    prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
+   prog->info.stage = _mesa_program_enum_to_shader_stage(target);
 
    /* default mapping from samplers to texture units */
    for (i = 0; i < MAX_SAMPLERS; i++)