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