On 11/16/2017 12:23 AM, Timothy Arceri wrote:
On 16/11/17 00:22, Eduardo Lima Mitev wrote:
This will be used by the linker code to dfferentiate between
programs made out of SPIR-V or GLSL shaders.

So far everywhere this is used it seems you could just do something like:

 if (shProg->_LinkedShaders[stage]->spirv_data)
   ... spriv stuff ...
 else
   ... glsl stuff ...


This flag is a per-program variable (as oppose to a per-shader one). While it would be possible to know the type of program (spirv vs. glsl) indirectly by looking at its linked shaders, I think it is clearer and more readable (and more formal) to have a flag in the program data for this.

This also allows for releasing the memory of the spirv_data structure when we don't need it, and still being able to know what kind of program we have.

I would personally keep this flag.

Are there more opinions about this?

Thanks for reviewing, Timothy.

Edu


---
  src/mesa/main/mtypes.h | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index d624f2cbd19..db9c2e1deaa 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2902,6 +2902,12 @@ struct gl_shader_program_data
       /* Mask of stages this program was linked against */
     unsigned linked_stages;
+
+   /* Whether the shaders of this program are loaded from SPIR-V binaries +    * (all have the SPIR_V_BINARY_ARB state). This was introduced by the
+    * ARB_gl_spirv extension.
+    */
+   bool spirv;
  };
    /**



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to