diff options
author | Francisco Jerez <[email protected]> | 2014-02-12 16:56:01 +0100 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2014-02-12 18:44:05 +0100 |
commit | 299e869d25c88a3c2da4bd4a6d85ce24684136f0 (patch) | |
tree | b6b2fc7c90e8b2ebe3a463f92b36eccb91c90f90 /src/glsl/ast.h | |
parent | c116541b2c3a45715de15e3180627263143ad426 (diff) |
glsl/ast: Keep track of type qualifiers defined by ARB_shader_image_load_store.
v2: Add comment next to the read_only and write_only qualifier flags.
Change temporary copies of the type qualifier mask to use uint64_t
too.
Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/glsl/ast.h')
-rw-r--r-- | src/glsl/ast.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/glsl/ast.h b/src/glsl/ast.h index 61fd923bcf9..cd913ab34eb 100644 --- a/src/glsl/ast.h +++ b/src/glsl/ast.h @@ -466,12 +466,23 @@ struct ast_type_qualifier { * local_size_x, and so on. */ unsigned local_size:3; + + /** \name Layout and memory qualifiers for ARB_shader_image_load_store. */ + /** \{ */ + unsigned early_fragment_tests:1; + unsigned explicit_image_format:1; + unsigned coherent:1; + unsigned _volatile:1; + unsigned _restrict:1; + unsigned read_only:1; /**< "readonly" qualifier. */ + unsigned write_only:1; /**< "writeonly" qualifier. */ + /** \} */ } /** \brief Set of flags, accessed by name. */ q; /** \brief Set of flags, accessed as a bitmask. */ - unsigned i; + uint64_t i; } flags; /** Precision of the type (highp/medium/lowp). */ @@ -523,6 +534,25 @@ struct ast_type_qualifier { int local_size[3]; /** + * Image format specified with an ARB_shader_image_load_store + * layout qualifier. + * + * \note + * This field is only valid if \c explicit_image_format is set. + */ + GLenum image_format; + + /** + * Base type of the data read from or written to this image. Only + * the following enumerants are allowed: GLSL_TYPE_UINT, + * GLSL_TYPE_INT, GLSL_TYPE_FLOAT. + * + * \note + * This field is only valid if \c explicit_image_format is set. + */ + glsl_base_type image_base_type; + + /** * Return true if and only if an interpolation qualifier is present. */ bool has_interpolation() const; |